[alsa-devel] [PATCH] cleanup controllers in snd-usb-caiaq
Takashi Iwai
tiwai at suse.de
Wed Nov 26 16:44:08 CET 2008
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 at caiaq.de>
>
> 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 at caiaq.de>");
> -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 at alsa-project.org
> http://mailman.alsa-project.org/mailman/listinfo/alsa-devel
More information about the Alsa-devel
mailing list