On Mon, 31 Mar 2003, Paul Davis wrote:

> i don't understand this discussion. it seems to originate from
> jaroslav's desire to have alsactl be capable of automatically working
> correctly for everything. i say this because the current scheme with
> the hdsp works just fine, and will work even better in thomas's new
> version of the driver in which all the controls are in the hwdep
> "namespace", so that regular mixer programs won't (or shouldn't) see
> them. all that doesn't work is alsactl.
> 
> amixer is quite able to handle the current hdsp control design, and so
> i ask again, why do we have both amixer and alsactl when they do
> identical work but in different ways? amixer is more flexible, and i
> think that it would be better to focus on extending it (for example,
> by allowing it to handle multiple controls in one invocation) so that
> it can replace alsactl and form the basis of a flexible, powerful
> script-based configuration system. i think this is better than
> requiring the "shoe-horning" of a difficult issue (matrix controls)
> into unnatural frameworks. i say unnatural because the mixer on the
> hdsp series really is a matrix, not 1564 individual controls.

amixer - command line oriented tool to handle card settings oriented only
         to mixer elements
alsactl - handle all elements and store/restore settings to/from a file at 
          one shot

I think that both tools are different. While amixer supports more human 
"readable" format to modify/read elements, the alsactl purpose is batch 
processing of card settings with exact file syntax.

Paul, with all respects, please, read my original message. I am (maybe) 
thinking a bit forward.

Actually, we are not able to ENUMERATE all hardware controls in a generic
way for HDSP regarless you are using the element values as identification
what to read/write or hwdep interface. You need to write your own tools
for this extension to API which is not "standard". No ALSA generic 
applications can share your control mechanism.

Little practise example: Imagine a small program using actual ALSA 
API which watches one control element and shows the actual value and 
writes down the changes. It can be used with EVERY CARD except HDSP with 
it's own API for the matrix mixer. Is this good or bad? It's bad. I was 
happy to see in Karslruhe the sequencer applications working together via 
one interface. The same applies to the control API. If you are different, 
applications don't talk with you anymore.

Also, if you will support all features as the control interface offers, 
then you'll end with nearly same code. And we definitely want to eliminate 
the code duplication.

Please, also think in direction, that we want to control the card settings 
over the control API but not to describe the connection layout (e.g. - 
there is a matrix of volumes with N x M size). This is definitely thing 
for the user space and we'll extend alsa-lib at some time to offer this 
layer to applications as well doing transparent mapping to the control 
elements.

                                                Jaroslav

-----
Jaroslav Kysela <[EMAIL PROTECTED]>
Linux Kernel Sound Maintainer
ALSA Project, SuSE Labs



-------------------------------------------------------
This SF.net email is sponsored by: ValueWeb: 
Dedicated Hosting for just $79/mo with 500 GB of bandwidth! 
No other company gives more support or power for your dedicated server
http://click.atdmt.com/AFF/go/sdnxxaff00300020aff/direct/01/
_______________________________________________
Alsa-devel mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/alsa-devel

Reply via email to