From mboxrd@z Thu Jan 1 00:00:00 1970 From: Clemens Ladisch Subject: Re: Detect when sound card is in use Date: Wed, 29 Apr 2009 09:16:37 +0200 Message-ID: <49F7FED5.7080407@ladisch.de> References: <1240946186.6657.8.camel@trex> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Return-path: Received: from out1.smtp.messagingengine.com (out1.smtp.messagingengine.com [66.111.4.25]) by alsa0.perex.cz (Postfix) with ESMTP id 1D695244F4 for ; Wed, 29 Apr 2009 09:16:32 +0200 (CEST) In-Reply-To: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: alsa-devel-bounces@alsa-project.org Errors-To: alsa-devel-bounces@alsa-project.org To: Takashi Iwai Cc: alsa-devel@alsa-project.org, Claus Ilginnis List-Id: alsa-devel@alsa-project.org 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