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