[alsa-devel] How do I use SNDRV_PCM_INFO_JOINT_DUPLEX?

Clemens Ladisch cladisch at fastmail.net
Wed Dec 19 09:27:34 CET 2007


Timur Tabi wrote:
> I discovered the SNDRV_PCM_INFO_JOINT_DUPLEX option, but I can't figure out how 
> to use it.  I know it needs to be set in my snd_pcm_hardware.info, but then 
> what?  How do I tell ALSA that the "joint" part is just that the sample sizes 
> must be the same?

This flag just tells applications that this device may behave
somewhat differently when playback and capture are used at the same
time.

The actual behaviour must be implemented by the driver.  In the PCM open
callbacks, set a constraint on the sample format if the other stream is
already configured:
snd_pcm_hw_constraint_mask(runtime, SNDRV_PCM_HW_PARAM_FORMAT, SNDRV_PCM_FMTBIT_xxx);

Since it is possible to open both streams at the same time without yet
configuring them, you have to check again in the hw_params callback.


HTH
Clemens


More information about the Alsa-devel mailing list