Hi Peter,

Of course you can reuse !!

Le 30/08/2011 18:17, Peter Retep a écrit :
> Hi Martin,
>
> thanks for this coding example.
> If you allow I would like to reuse this one.
>
> Furthermore this usecase and its solution could be a part of the 
> liquidsoap online help.
>
> BR, Peter
>
>
> Am 26.08.2011 15:34, schrieb Martin Hamant:
>>
>> Le 26/08/2011 14:41, Martin Hamant a écrit :
>>> I was totally far from it.
>>> Found the trick !
>>>
>>>
>>>      x = insert_metadata(s0)
>>>      insert = fst(x)
>>>      s = snd(x)
>>>
>>>      # A reference to the latest metadata
>>>      latest_meta = ref []
>>>
>>>      # A function to update metadata
>>>      def update_meta() =
>>>        data = http.get("bla/titles")
>>>         m = [("title", snd(data))] #<= this is the right type of m !!
>>>        if m != !latest_meta then
>>>          latest_meta := m
>>>          insert(m)
>>>          print("new metadata !")
>>>        end
>>>        # Restart in 10. seconds
>>>        10.
>>>      end
>>>
>>>      # Start polling now
>>>      add_timeout(0., update_meta)
>>>
>>> :D
>> Now... I have to put all of this into a conditional :)
>> I was thinking of:
>>
>>
>>       s0 =
>>       if source_device == "pulse" then
>>             input.pulseaudio(client='#{stream_name}')
>>       else
>>           input.alsa(device="#{source_device}")
>>       end
>>
>>       s =
>>       if stream_metasource != "disabled" then
>>
>>           # Attach metadata insertion hooks
>>           x = insert_metadata(s0)
>>           insert = fst(x)
>>           s = snd(x)
>>
>>           # A reference to the latest metadata
>>           latest_meta = ref []
>>           #list.append(["coucou"], !latest_meta)
>>
>>           # A function to update metadata
>>           def update_meta() =
>>             data = http.get("http://martin-virtualbox/titles";)
>>             m = [("title", snd(data))]
>>             print(m)
>>             if m != !latest_meta then
>>               latest_meta := m
>>               insert(m)
>>               print("new metadata !")
>>             end
>>             # Restart in 10. seconds
>>             10.
>>           end
>>
>>           # Start polling now
>>           add_timeout(0., update_meta)
>>           s
>>       else
>>           s0
>>       end
>>
>> (...)
>>
>>     # The output
>>     output = out(id="#{stream_id}", host="#{stream_host}",
>> port=int_of_string("#{stream_port}"), password="#{stream_password}",
>> genre="#{stream_genre}", url="#{stream_url}", s)
>>
>>
>> The problem is the iteration part where I return "s",  else s0 ... which
>> leads to the error:
>>     this value has type
>>       (...)->source(_)
>>     but it should be a subtype of
>>       (...)->active_source(_)
>>
>> Am I close to it ?
>>
>> ------------------------------------------------------------------------------
>>  
>>
>> EMC VNX: the world's simplest storage, starting under $10K
>> The only unified storage solution that offers unified management
>> Up to 160% more powerful than alternatives and 25% more efficient.
>> Guaranteed. http://p.sf.net/sfu/emc-vnx-dev2dev
>> _______________________________________________
>> Savonet-users mailing list
>> [email protected]
>> https://lists.sourceforge.net/lists/listinfo/savonet-users
>>
>

------------------------------------------------------------------------------
Special Offer -- Download ArcSight Logger for FREE!
Finally, a world-class log management solution at an even better 
price-free! And you'll get a free "Love Thy Logs" t-shirt when you
download Logger. Secure your free ArcSight Logger TODAY!
http://p.sf.net/sfu/arcsisghtdev2dev
_______________________________________________
Savonet-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/savonet-users

Reply via email to