Re: HAL user-land audio driver
Re: HAL user-land audio driver
- Subject: Re: HAL user-land audio driver
- From: "Mikael Hakman" <email@hidden>
- Date: Wed, 26 Mar 2008 13:25:32 +0100
- Organization: Datakonsulten AB
Before I ask my question, I need to describe how I understand certain
things, please correct me if I'm wrong.
When 2 applications simultaneously access my plug-in, HAL will create 2
instances of it with each instance executing in a corresponding application's
process space. As long as my plug-in is only an interface to some other
shared resource, this will work without problems. If my plug-in holds some
state information or implements some property using its static or heap data
area memory then a new instance of this area will be contained within each
process. When an application calls e.g. a property set method then this call
will arrive only to plug-in instance owned by that application, but not to
the other plug-in instance. If actual property setting (state) is
implemented on applications heap or static data area then this property will
be set only in that particular instance. How do I synchronize property
settings among the 2 instances? Are the basic (and laborious) shared memory
and/or IPC and/or dividing the plug-in into multiple clients/shared server
architecture the only alternatives?
Furthermore, if the actual effect of a property setting is implemented in my
plug-in code, not in some shared code farther down the chain, then this
setting will have an effect in one instance but not in the other. For
example, if I implement mute control in my plug-in by replacing contents of
audio buffers passed from application by silence then the audio will be
muted only in plug-in instance owned by the application that muted it. The
other application will still produce audible output.
Could you please comment on this issue?
TIA
_______________________________________________
Do not post admin requests to the list. They will be ignored.
Coreaudio-api mailing list (email@hidden)
Help/Unsubscribe/Update your Subscription:
This email sent to email@hidden