At Wed, 26 Nov 2008 16:19:01 +0100, Daniel Mack wrote: > > Hi, > > this patch does some code cleanup in snd-usb-caiaq. No functional change > whatsoever. Version number bumped to 1.3.9. A macro for such is ugly and potentially dangerous, IMO. Make a function instead. Also, please add an error check of the return value from snd_ctl_add(). thanks, Takashi > Best regards, > Daniel > > [2 caiaq-controls-cleanup.diff <text/x-diff; us-ascii (7bit)>] > Cleanup controler registration in snd-usb-caiaq. > > Signed-off-by: Daniel Mack <daniel@xxxxxxxx> > > diff --git a/sound/usb/caiaq/caiaq-control.c b/sound/usb/caiaq/caiaq-control.c > index 798ca12..fc3aed9 100644 > --- a/sound/usb/caiaq/caiaq-control.c > +++ b/sound/usb/caiaq/caiaq-control.c > @@ -247,6 +247,15 @@ static struct caiaq_controller a8dj_controller[] = { > { "Software lock", 40 } > }; > > +#define ADD_ALL_CONTROLS(a) \ > + for (i = 0; i < ARRAY_SIZE(a); i++) { \ > + struct caiaq_controller *c = a + i; \ > + kcontrol_template.name = c->name; \ > + kcontrol_template.private_value = c->index; \ > + kc = snd_ctl_new1(&kcontrol_template, dev); \ > + snd_ctl_add(dev->chip.card, kc); \ > + } > + > int __devinit snd_usb_caiaq_control_init(struct snd_usb_caiaqdev *dev) > { > int i; > @@ -254,59 +263,24 @@ int __devinit snd_usb_caiaq_control_init(struct snd_usb_caiaqdev *dev) > > switch (dev->chip.usb_id) { > case USB_ID(USB_VID_NATIVEINSTRUMENTS, USB_PID_AK1): > - for (i = 0; i < ARRAY_SIZE(ak1_controller); i++) { > - struct caiaq_controller *c = ak1_controller + i; > - kcontrol_template.name = c->name; > - kcontrol_template.private_value = c->index; > - kc = snd_ctl_new1(&kcontrol_template, dev); > - snd_ctl_add(dev->chip.card, kc); > - } > - > + ADD_ALL_CONTROLS(ak1_controller); > break; > > case USB_ID(USB_VID_NATIVEINSTRUMENTS, USB_PID_RIGKONTROL2): > - for (i = 0; i < ARRAY_SIZE(rk2_controller); i++) { > - struct caiaq_controller *c = rk2_controller + i; > - kcontrol_template.name = c->name; > - kcontrol_template.private_value = c->index; > - kc = snd_ctl_new1(&kcontrol_template, dev); > - snd_ctl_add(dev->chip.card, kc); > - } > - > + ADD_ALL_CONTROLS(rk2_controller); > break; > > case USB_ID(USB_VID_NATIVEINSTRUMENTS, USB_PID_RIGKONTROL3): > - for (i = 0; i < ARRAY_SIZE(rk3_controller); i++) { > - struct caiaq_controller *c = rk3_controller + i; > - kcontrol_template.name = c->name; > - kcontrol_template.private_value = c->index; > - kc = snd_ctl_new1(&kcontrol_template, dev); > - snd_ctl_add(dev->chip.card, kc); > - } > - > + ADD_ALL_CONTROLS(rk3_controller); > break; > > case USB_ID(USB_VID_NATIVEINSTRUMENTS, USB_PID_KORECONTROLLER): > case USB_ID(USB_VID_NATIVEINSTRUMENTS, USB_PID_KORECONTROLLER2): > - for (i = 0; i < ARRAY_SIZE(kore_controller); i++) { > - struct caiaq_controller *c = kore_controller + i; > - kcontrol_template.name = c->name; > - kcontrol_template.private_value = c->index; > - kc = snd_ctl_new1(&kcontrol_template, dev); > - snd_ctl_add(dev->chip.card, kc); > - } > - > + ADD_ALL_CONTROLS(kore_controller); > break; > > case USB_ID(USB_VID_NATIVEINSTRUMENTS, USB_PID_AUDIO8DJ): > - for (i = 0; i < ARRAY_SIZE(a8dj_controller); i++) { > - struct caiaq_controller *c = a8dj_controller + i; > - kcontrol_template.name = c->name; > - kcontrol_template.private_value = c->index; > - kc = snd_ctl_new1(&kcontrol_template, dev); > - snd_ctl_add(dev->chip.card, kc); > - } > - > + ADD_ALL_CONTROLS(a8dj_controller); > break; > } > > diff --git a/sound/usb/caiaq/caiaq-device.c b/sound/usb/caiaq/caiaq-device.c > index 8317508..b143ef7 100644 > --- a/sound/usb/caiaq/caiaq-device.c > +++ b/sound/usb/caiaq/caiaq-device.c > @@ -42,7 +42,7 @@ > #endif > > MODULE_AUTHOR("Daniel Mack <daniel@xxxxxxxx>"); > -MODULE_DESCRIPTION("caiaq USB audio, version 1.3.8"); > +MODULE_DESCRIPTION("caiaq USB audio, version 1.3.9"); > MODULE_LICENSE("GPL"); > MODULE_SUPPORTED_DEVICE("{{Native Instruments, RigKontrol2}," > "{Native Instruments, RigKontrol3}," > [3 <text/plain; us-ascii (7bit)>] > _______________________________________________ > Alsa-devel mailing list > Alsa-devel@xxxxxxxxxxxxxxxx > http://mailman.alsa-project.org/mailman/listinfo/alsa-devel _______________________________________________ Alsa-devel mailing list Alsa-devel@xxxxxxxxxxxxxxxx http://mailman.alsa-project.org/mailman/listinfo/alsa-devel