Jaroslav Kysela ha scritto:
On Tue, 1 Apr 2003, Abramo Bagnara wrote:


I agree with Jaroslav fully:
- have one ALSA control for each primitive hw control (1536 different controls)
- add a field to struct sndrv_ctl_elem_info explaining how index field of sndvr_ctl_elem_id should be interpreted (32,16+16,10+11+11, ecc.)


This permit to have native support for N dimensional control.

About kernel memory issues, this concerns easily solvable implementation detail to not worry about when designing sane API.


Ok, I've added the dimension description to the info structure. Although it is completely irrelevant to data transfers.

Also, I've implemented multi element in the kernel space to save memory and it makes the searching faster. The reference code is in the trident driver. I'll recode other drivers containing many "same" controls to use this method later.

The lack of sparse matrix support I see in your implementation is a very unfortunate design choice.


I suggest you to use an hash table pointing to a pair { kcontrol_index, kcontrol_volatile_index } (16+16 should be enough) for control id searching and to move index info into snd_kcontrol_volatile_t.

Note also that allocating snd_kcontrol_volatile's at end of struct _snd_kcontrol (i.e. adding

snd_kcontrol_volatile_t vd[0]; /* volatile data */

at end of struct), you'd avoid an extra indirection and separate allocation (not had time to double check if this conflicts with something other, however).

--
Abramo Bagnara                       mailto:[EMAIL PROTECTED]

Opera Unica                          Phone: +39.546.656023
Via Emilia Interna, 140
48014 Castel Bolognese (RA) - Italy



-------------------------------------------------------
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