output in a output, it makes no sense, sorry :S I should be something more like
out = output.dummy(blank()) But really I am bit lost :D Le 12/05/2011 11:37, Martin Hamant a écrit : > Hello Romain, > > Thank you for this detailed answer ! > I read the documentation section you specified > (http://savonet.sourceforge.net/doc-svn/dynamic_sources.html) > I tried a dry test by copy/paste of the code, adding a dummy source > parameter like this: > > out = output.icecast(%mp3, > host="test", > password="hackme", > fallible=true, > output.dummy(blank())) > > Gives the following error > > At line 19, char 15: > this value has type > source(_) (infered at line 6 char 21 - line 10 char 25) > but it should be a subtype of > (_)->_ > > What am I doing wrong ? > > > Le 10/05/2011 17:05, Romain Beauxis a écrit : >> 2011/5/10 Martin Hamant<[email protected]>: >>> Hi everybody, >> Hi Martin! >> >>> Here is the context of my questions: At our company SOUND4, we are >>> designing professional broadcast sound cards (voice and FM processors). >>> As our products are going to be driven by linux in a next future, I am >>> looking for a simple method (ie: third party software, not packaged >>> within our product) that would provide to our customer a way to add >>> their own ice/shoutcast stream links from the computer which host the >>> soundcard (the audio driver is alsa compliant). >> That sounds great! >> >>> By now we are pointing >>> our customer to edcast, as they are using windows hosts - problem - >>> such >>> a software doesn't really exist in this way under linux... there are a >>> few GUI like darksnow/darkice but it doesn't really do the trick: we >>> need the customer to be able to add a output link in a dynamic way >>> (without interupting, mostly). My first question is: >>> >>> - is there a way to give to liquidsoap a list of outputs (ie: a file) >>> that would be checked periodically, and when a new output "server" is >>> discovered in this file, a new connection is initiated to it. >> Yes! In the recent hg trunk, we have a support for dynamically >> creating/destroying new sources and output. It is supported by the >> scripting language so you may be able to fit it to your own needs. In >> your case, it could be: >> * A regular tasks started using add_timeout that periodically checks >> your file and behaves according to your convention >> However, you may also implement it as a push: >> * When the client clics on a button, a telnet/server command is sent >> to liquidsoap to create/destroy an output. >> >> There is some documentation online about this functionality there: >> http://savonet.sourceforge.net/doc-svn/dynamic_sources.html >> >>> - second, is there a way to get the network status of a given link (on >>> air time, last reconnection, transfer rate, used codec, server name). >> * On air: yes using on_metadata be notified of any new metadata on >> the stream. >> * Is connected/Last reconnection: yes using the >> on_{connect,disconnect} from output.icecast (or shoutcast) operators >> * Transfer rate: not for now I think >> * Used coded: if you mean it for an output, then the best is probably >> to record that information when you create the output. >> * Server name: same answer as above :) >> >>> You'll understand, the need is a simple, provide to the user a "add a >>> shoutcast server" and "monitor the link" thing. >>> >>> I can feel liquidsoap could do that easily but I need starting tips. >>> Then, I could do a simple interface to control all of that with some >>> py/glade working (with time, because I am pretty new to python and >>> object programming and i'll need to learn it). >> Well all of it sounds highly possible. Concerning the interface >> between liquidsoap and your application, you have 3 choices: >> * Telnet server >> * Unix socket >> * HTTP server >> >> The telnet and http server require to open some network port and to >> make sure they are protected from the evil global internet while the >> Unix socket can be accessed locally and protected as done for regular >> files. >> The telnet/unix socket API was not initially meant for machine reading >> but is not too hard to parse and should not change (we care about >> backward compatibility). On the other hand, the HTTP server interface >> has the advantage of being quite standard to implement in many >> programming languages. >> You may register your own telnet/server commands as well as HTTP >> handles. With a recent hg, you can also export any language variable >> to the JSON format, which makes it easier to parse in your >> application.. >> >> A couple of references: >> * http://savonet.sourceforge.net/doc-svn/server.html : Interaction >> with telnet/unix socket >> * http://savonet.sourceforge.net/doc-svn/harbor_http.html : >> interaction with the HTTP server >> * http://savonet.sourceforge.net/doc-svn/icy_metadata.html : you may >> want to allow your user to manually update the metadatas of the output >> stream. This can be one way to do it directly at the icecast/shoutcast >> level. Otherwise, you may use insert_metadata. >> >> >> Romain ------------------------------------------------------------------------------ Achieve unprecedented app performance and reliability What every C/C++ and Fortran developer should know. Learn how Intel has extended the reach of its next-generation tools to help boost performance applications - inlcuding clusters. http://p.sf.net/sfu/intel-dev2devmay _______________________________________________ Savonet-users mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/savonet-users
