[pulseaudio-discuss] [PATCH v2] call-state-tracker: New component.

Tanu Kaskinen tanu.kaskinen at digia.com
Wed Apr 20 03:54:37 PDT 2011

On Wed, 2011-04-20 at 11:36 +0300, Colin Guthrie wrote:
> > The api object header could be located in
> > src/extra_apis - that would make the api not directly dependent on a
> > particular module. 
> If the API is not dependant on a particular module, what code calls
> pa_extra_api_register? I'd be happy enough defining this extra API as an
> "IMC" (c.f. IPC) system and thus make it very much tied to modules.

Hmm... did you get the impression that these apis would not necessarily
be tied to any modules at all? That was not the idea - the apis would be
implemented always by modules, but not necessarily by any particular
module. For example, if there was an api for getting the current call
state, it could be implemented by multiple modules, each of which would
use different logic for determining whether a call is active or not. The
modules would of course conflict with each other, so they could not be
loaded at the same time. This would be handled by
pa_extra_api_register() - only one module could have the api registered
at any given time, the other modules would get an error when they try to
call pa_extra_api_register().

> > I've been using the term "extra api" here. I don't think it's the
> > greatest name in the world, but that's the best I could think of. I'd
> > like "extension" more, but that word is already used for other purposes.
> Yeah extension is already in use for protocol extensions I guess.
> How about pa_imc_*? (for inter-module comms) or is that perhaps too
> cryptic?

Yeah, it's cryptic, but it's also shorter. And "extra api" isn't an
obvious name either. I'm not sure which I like more. Probably imc.
Regarding function names, they will actually have form pa_imc_manager_*
or pa_extra_api_manager_* if I get to decide... The functions can be
"methods" of either some manager object or pa_core. If they're
implemented directly by pa_core, then the prefix will of course be
pa_core_, but I'd prefer having a separate manager object.


More information about the pulseaudio-discuss mailing list