[Openal] Defective ALC_ENUMERATION_EXT support on Mac OS X /
Need OpenAL community's support
Bob Aron
baron at apple.com
Wed Jan 7 14:23:31 PST 2009
On Jan 7, 2009, at 11:07 AM, Chris Robinson wrote:
>> It could certainly do that, but then applications would be in the
>> business of parsing implementation-specific strings to find it, or
>> forcing the user to select it from a list. NULL is the cleaner way to
>> request this behaviour, for platforms that support it.
>
> Or the meta-device could be the default device, so opening NULL would
> implicitly select it when available. To me, it seems like something
> the user
> would tell from looking at the device name list, or the
> implementation would
> handle smartly, than to try to pragmatically tell which devices are
> meta-
> devices.
I don't know that the user could ever rely on the device names in the
list to have any specific meaning. Truly on OSX, the "default" device
has a meaning on the system which is the user selected device (via the
System Pref panel). The behavior of the system is that a new device
will be chosen as the "default" device if the user's device goes
away. If it returns, the system knows and will restore the device
back to the default. The current Mac implementation of OpenAL doesn't
even know if this device goes away. It may receive a format change
notification to accommodate a sample rate or channel count change, but
the implementation doesn't know (or need to know) if this is due to a
change TO the device itself, or a change to a DIFFERENT device. All
apps (iTunes, QuickTime, etc etc) that render to the default device
will continue rendering (when possible) if the default device comes
and goes.
>
>
>>> IMO, letting work through meta-devices would be better overall
>>> than only
>>> specifying that NULL can do it. It allows implementations to be
>>> smarter
>>> about device groups, even possibly giving more options for the
>>> user (eg.
>>> don't switch to speakers if these headphones are lost).
>>
>> I don't think the extension prevents this sort of behaviour. For
>> power
>> users, such a meta-device could be very useful, but it's out of scope
>> for ALC_EXT_disconnect.
>
> I think it's a bit misleading, in the end. It gives the impression
> that if you
> want a device that can reconnect to other physical devices, you need
> to use
> NULL, since no other devices can switch. It seems to be an
> implementation
> detail for a given device name than something that may be possible
> behavior
> for a special NULL device.
>
> As an example, Creative's drivers have a "Generic Software" device,
> where
> there's no reason it can't auto-switch; but users would be
> encouraged to
> select NULL for that behavior instead, where it would pick "Generic
> Hardware"
> if available, preventing auto-switching.
>
> And if you can't guarantee that NULL will select a device capable of
> auto-
> switching, when there are some that may be able to, it becomes
> impossible to
> rely on and has no point, IMO.
I think the 'auto switching' and 'device selection' aspects of this
discussion are really two separate entities. The implementation is
going to decide (if possible) if it can auto switch and this may or
may not be decided by the type of devices available on the system. For
OSX this is a no brainer as we are working entirely in sw and
rendering to all devices is the same. I assume it is a bit more
complicated when you have different kinds of sound hw. It really
isn't the 'device' that dictates the auto switching capabilities but
the implementation's ability to manage the set of devices available.
Maybe it would be better for the implementation to have a mechanism to
indicate whether it can auto-switch and leave the device selection as
it is, i.e. NULL (default) and a list of actual devices. It could even
indicate, based on the device selected device if auto switch is
available. This seems cleaner to me than defining some meta-device
that would then have to adhere to some set of behaviors which may or
may not be possible per platform implementation.
-bob aron
___________________________________________
CoreAudio Team • Apple Inc.
baron at apple.com • (408) 974-1221
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://opensource.creative.com/pipermail/openal/attachments/20090107/0b3d898e/attachment.html
More information about the Openal
mailing list