Many thanks Colin, this helped me. Best Regards, Himanshu On Tue, Jun 7, 2011 at 5:17 PM, Colin Guthrie <gmane at colin.guthr.ie> wrote: > Hello! > > 'Twas brillig, and Himanshu Chug at 06/06/11 17:22 did gyre and gimble: > > I am going through module-cork-music-on-phone.c > > > > To understand the code , I need some information about these functions: > > Yes, our internal developer docs don't really exist! :s I generally just > read through the code to see when these call backs are called. It's not > ideal, but it's pretty straight forward too. That said we really should > get an effort to provide better internal developer docs (e.g. internal > APIs within the server). > > > 1. when each of these calls backs gets executed/called ? > > > sink_input_put_cb > > Note that for all these questions you've asked about the function as > called in module-cork-music-on-phone.c. In reality these functions can > be called anything you like. The more important question is the HOOK > that you're attaching them to for which you need to look at the > pa__init() function in module-cork-music-on-phone.c > > PA_CORE_HOOK_SINK_INPUT_PUT > > So this hook is called when the sink input (playback stream) is > physically created. There is an earlier hook that runs called > PA_CORE_HOOK_SINK_INPUT_NEW which is run before the actual sink input > object is created. > > > sink_input_unlink_cb > > PA_CORE_HOOK_SINK_INPUT_UNLINK > > This is called when a sink input disappears (e.g. the client application > closes it's stream (user presses "Stop") or exits. > > > sink_input_move_start_cb > > PA_CORE_HOOK_SINK_INPUT_MOVE_START > > This is called when we start to move a sink input to a new sink. At this > point the sink input is still attached the sink it is moving from. > > > sink_input_move_finish_cb > > PA_CORE_HOOK_SINK_INPUT_MOVE_FINISH > > This is called when we're done moving a sink input to a new sink and > thus the sink input is now attached to the sink it was moved to. > > > > 2. these callbacks are internally calling to process() function (given > > below) , I am interested to understand the last argument pa_bool_t > > create of process(struct userdata *u, pa_sink_input *i, pa_bool_t > create) > > ,how to decide when to pass TRUE and FALSE to process? any reference > > (if available) will be helpful. > > You can work this out from the semantics of the descriptions above and > the code in the process() function itself. > > Ultimately it's telling the process method that it should be corking or > uncorking the streams. > > So when we've got a new sink input appearing on our sink (which happens > in the PUT or MOVE_FINISH hooks), we need to look at (potentially) > creating a cork on the other sink inputs on that sink, hence a TRUE value. > > But when a stream is disappearing (which can happen when it's moved off > our sink to another one, or when it's just no longer present - i.e. > UNLINK and MOVE_START hooks), we want to look at uncorking things we > have previously corked, hence a FALSE value. > > > Thanks in advance > > Hope that helps. > > Col > > PS Documentation patches or similar efforts are as welcome as any other > contribution! > > Col > -- > > Colin Guthrie > gmane(at)colin.guthr.ie > http://colin.guthr.ie/ > > Day Job: > Tribalogic Limited [http://www.tribalogic.net/] > Open Source: > Mageia Contributor [http://www.mageia.org/] > PulseAudio Hacker [http://www.pulseaudio.org/] > Trac Hacker [http://trac.edgewall.org/] > > _______________________________________________ > pulseaudio-discuss mailing list > pulseaudio-discuss at lists.freedesktop.org > http://lists.freedesktop.org/mailman/listinfo/pulseaudio-discuss > -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.freedesktop.org/archives/pulseaudio-discuss/attachments/20110607/c30dfdd4/attachment.htm>