At Sat, 12 May 2012 00:21:14 +0100 (BST), Mark Hills wrote:
On Fri, 11 May 2012, Takashi Iwai wrote:
+/*
- The mixer units for Ebox-44 are corrupt, and even where they
- are valid they presents mono controls as L and R channels of
- stereo. So we create provide a good mixer here.
- */
+struct std_mono_table ebox44_table[] = {
- { 4, 1, 0x0, USB_MIXER_INV_BOOLEAN, "Headphone Playback Switch", NULL },
- { 4, 2, 0x1, USB_MIXER_S16, "Headphone A Mix Playback Volume", NULL },
- { 4, 2, 0x2, USB_MIXER_S16, "Headphone B Mix Playback Volume", NULL },
- { 7, 1, 0x0, USB_MIXER_INV_BOOLEAN, "Output Playback Switch", NULL },
- { 7, 2, 0x1, USB_MIXER_S16, "Output A Playback Volume", NULL },
- { 7, 2, 0x2, USB_MIXER_S16, "Output B Playback Volume", NULL },
- { 10, 1, 0x0, USB_MIXER_INV_BOOLEAN, "Input Capture Switch", NULL },
- { 10, 2, 0x1, USB_MIXER_S16, "Input A Capture Volume", NULL },
- { 10, 2, 0x2, USB_MIXER_S16, "Input B Capture Volume", NULL },
- { }
C99 style struct initialization is preferred. Then NULL settings can be omittted.
Do you mean like this?
ebox44_table[] = { { .unitid = 4, .control = 1 .cmask = 0x0 /* etc. */ }
Because then it becomes a lot less concise and a lot less readable?
I can't count fields more than two, so to me, C99 style is more readable :)
Of course, if there are more optional params in the future, then maybe.
Yep.
IIRC, I could omit the NULL anyway, because static memory is initialised to contain zeroes (hence the "{ }" works). Am I correct? It's late, I might be mistaken.
Yes. But it's not recommended much, when you think of adding a new field.
Takashi