Robin Gareus wrote:
On 03/19/2015 11:46 PM, Takashi Sakamoto wrote:
For example, to control the clock selector of Digi 002/003 family, we just execute this command with firewire-request.
$ ./firewire-request /dev/fw1 write 0xffffe0000118 0x0000000[0|1|2|3]
Yes, that's what I was asking about. Can one safely write raw control messages to /dev/fw* without interfering with ongoing streaming?
Yes. If a device did not allow this, or if the mixer accesses would be part of the audio stream, the driver would have no choice but to implement this in the kernel. But this is not the case for most devices.
Instead interfacing via established protocols /dev/snd/control* or rather libasound's snd_mixer_t seems like a no-brainer to me.
It is possible to attach 'virtual' mixer controls to hardware sound cards. (This was originally designed for the software volume control.)
The only reason that FFADO did not use this was that there was no suitable ALSA card instance to attach to.
Regards, Clemens