# Liquidsoap

## Audio Stream Generation

### lang_rewrite.liq

    # Rewrite metadata on the fly using a list of (target,rule).
    # @category Source / Track Processing
    # @param l  List of (target,value) rewriting rules
    # @param ~insert_missing \
    #           Treat track beginnings without metadata \
    #           as having empty ones.
    def rewrite_metadata(l,~insert_missing=true,s)
      def map(m)
        def apply(x)
          label = fst(x)
          meta = snd(x)
          if list.mem_assoc(label,l) then
            pattern = l[label]
            (label,pattern % m)
          else
            (label,meta)
          end
        end
        m = list.map(apply,m)
        def add(m,x)
          label = fst(x)
          pattern = snd(x)
          # If m does not have (label,_), then it was
          # not processed previously, we have to
          # add it now..
          if not list.mem_assoc(label,m) then
            list.append(m,[(label,pattern % m)])
          else
            m
          end
        end
        list.fold(add,m,l)
      end
      map_metadata(map,insert_missing=insert_missing,s)
    end

Download