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