Takashi Iwai wrote:
Claus Ilginnis wrote:
I have a speaker set connected to an USB-Power-Plug (by which I can turn the speakers on and off )
Now I want to detect, when the soundcard is in use and when not. (to turn the speakers on when needed...)
Which way is best to detect wheather my sound card is in use or not ? Is there a general overview/documentation of the sound kernel modules which describes the general relationship between them ? What would you do ?
The easiest way would be to check the status of device files, such as /dev/snd/*, whether any process opens it, e.g. via lsof command.
This would require polling.
But, this doesn't cover the case like an app such as a mixer applet which keeps opening the device but access only occasionally.
I guess the mixer doesn't matter as long as nothing is playing, so it would be enough to monitor /dev/snd/pcm*.
The easiest way would be to wrap your playback application in a script, but this works only if that is the only application that plays sounds.
If all your applications use the ALSA API (and not OSS), you could write a filter plugin that just passes through all requests to the actual device and switches the power plug in the open/close callbacks.
Best regards, Clemens