On Fri, 16.05.08 09:58, Nick Thompson (rextanka at comcast.net) wrote: Sorry for the late response! > I'm writing a module to tag streams so that a routing policy can be > implemented. Tanu suggested a mechanism by which I can get called > back each time a new sink-input comes in and this mechanism works, > however I'm having an issue trying to access the index for the stream. > > The index is not assigned until the end of pa_sink_input_new where the > data passed in has been verified. Long after FIXATE. Here's a bit of > background. > > There are two hooks in pa_sink_input_new (which is implemented in sink- > input.c): > > PA_CORE_HOOK_SINK_INPUT_NEW > PA_CORE_HOOK_SINK_INPUT_FIXATE You are aware of PA_CORE_HOOK_SINK_INPUT_PUT? It's called when the sink input is actually made available to the PA system, i.e. after creation and after the code implementing the sink input actaully filled in all method pointers. > > Would moving FIXATE towards the end of the routine be appropriate (I > suspect that moving it could have undesirable side effects if external > hook functions in people's modules were relying on returning anything > other than PA_HOOK_OK, or in further manipulating data. However > manipulating the data after it's been verified is a potentially risky > move). No. FIXATE is there to do fixation of the sink input parameters. What you really want is the _PUT hook, as far as I understood your problem. Lennart -- Lennart Poettering Red Hat, Inc. lennart [at] poettering [dot] net ICQ# 11060553 http://0pointer.net/lennart/ GnuPG 0x1A015CC4