libao documentation |
libao version 1.1.0 - 20110221 |
ao_plugin_device_init
declared in "ao/plugin.h";
Initialize the private device data structures. Memory should be
allocated, and default values set if necessary, but devices should not
be opened until ao_plugin_open() is
called.
Drivers that wish to support automatic surround channel mapping should set device->output_matrix_order to one of:
- AO_OUTPUT_MATRIX_FIXED - The audio driver outputs a fixed channel
order that is always the same for a given number of channels and can't
be changed. One example is ALSA where to play to the side right
speaker, it is necessary to open eight channels and write to side
right as channel eight, even if the other seven channels are unused.
- AO_OUTPUT_MATRIX_COLLAPSIBLE - The audio driver outputs a fixed
channel order that is always the same, but unused channels are not
sent. In such a driver with the channel order 'L,R,C,LFE,BL,BR', we
can write to the two rear speakers without opening six channels but
the rear speakers must still be in the order 'BL,BR'. Such drivers
usually use a bitmap to represent the channels present in the output.
Examples are wav, wmm and macosx.
- AO_OUTPUT_MATRIX_PERMUTABLE - Channels may be arranged in any
order. An example of such a driver is pulse.
In addition, a driver may set device->output_matrix to the
list of possible output channels in order. Note that even
AO_OUTPUT_MATRIX_PERMUTABLE drivers usually have a fixed numbering
scheme for channels even if the channels may be sent in any order. A
driver that is unable to set an output matrix without inspecting the
input sample format (for example, the roar driver), may set
device->output_matrix_order to
AO_OUTPUT_MATRIX_FIXED and delay channel mapping
initialization until ao_plugin_open().
int ao_plugin_device_init(ao_device *device);
|
Parameters
- device
- Pointer to pre-allocated device structure. The driver should
store the address of its private memory in device->internal.
Return Values
1 indicates success.
0 indicates failure, probably due to memory allocation problems.
ao_plugin_device_clear() should be
called to ensure the deallocate of all private data structures.
copyright © 2001-2003 Stan Seibert, 2010-2011 Monty |
xiph.org monty@xiph.org |
libao documentation |
libao version 1.1.0 - 20110221 |