All of lore.kernel.org
 help / color / mirror / Atom feed
From: James Courtier-Dutton <James@superbug.demon.co.uk>
To: Jaroslav Kysela <perex@suse.cz>
Cc: alsa-devel <alsa-devel@lists.sourceforge.net>
Subject: Re: Mixer volume dB settings.
Date: Sat, 10 Sep 2005 18:33:50 +0100	[thread overview]
Message-ID: <432318FE.3060106@superbug.demon.co.uk> (raw)
In-Reply-To: <Pine.LNX.4.61.0507311641140.8921@tm8103.perex-int.cz>

Jaroslav Kysela wrote:
> On Sun, 31 Jul 2005, James Courtier-Dutton wrote:
> 
> 
>>Hi,
>>
>>I am thinking of a method to provide dB volume setting with alsamixer. 
>>My suggestion is to add another variable to the mixer control structure. 
>>This variable will be an integer identifying the conversion function. If 
>>set to 0, no conversion function has been defined. If set to 1 or above, 
>>use a lookup table in alsa-lib to select the conversion function. The 
>>user land api would then be: snd_mixer_convert_hardware_to_db( 
>>hardware_value, conversion_function, &db_value); 
>>snd_mixer_convert_db_to_hardware( db_value, conversion_function, 
>>hardware_value )
>>
>>The reason for this, is that it seems to me that only the hardware 
>>driver will have full knowledge of what the conversion function should 
>>be, and setting a simple integer for conversion_function_type would seem 
>>the simplest solution.
>>
>>The global conversion functions could then be defined in an alsa-lib 
>>config file.
>>
>>This would also allow the application to increase/decrease the hardware 
>>value, but display to the user the dB value.
>>
>>Any comments?
> 
> 
> I already defined the interface in alsa-lib/include/mixer.h. Look for dB 
> functions there.
> 
> Also, the skeleton of the new mixer with abstraction layer is quite 
> finished. I need only implement a first real code for one driver as 
> example and we can start adding the abstraction code for all cards.
> 
> 						Jaroslav
> 

Can you point me in the direction of the new mixer abstraction layer.
It is unclear to me which alsa-lib files are associated with the 
abstraction layer.

I am thinking that the alsa-driver module for the sound card will have 
to attach an index value identifying the vol % -> dB conversion routine 
to use with the mixer element. Then alsa-lib could then simply do a 
lookup for the index and then process the associated conversion routine.

The reason for this is that I think that the same sound card controller 
chip might have different other sound chips associated with it, but the 
mixer elem name might be the same for both. I suppose we could then give 
a different name in the driver, and then rename it at the abstraction layer.

Any pointers you can give would be helpful.

James


-------------------------------------------------------
SF.Net email is Sponsored by the Better Software Conference & EXPO
September 19-22, 2005 * San Francisco, CA * Development Lifecycle Practices
Agile & Plan-Driven Development * Managing Projects & Teams * Testing & QA
Security * Process Improvement & Measurement * http://www.sqe.com/bsce5sf

      parent reply	other threads:[~2005-09-10 17:33 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2005-07-31 12:13 Mixer volume dB settings James Courtier-Dutton
2005-07-31 14:44 ` Jaroslav Kysela
2005-07-31 15:07   ` James Courtier-Dutton
2005-09-10 17:33   ` James Courtier-Dutton [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=432318FE.3060106@superbug.demon.co.uk \
    --to=james@superbug.demon.co.uk \
    --cc=alsa-devel@lists.sourceforge.net \
    --cc=perex@suse.cz \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.