Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 12666f05 authored by Daniel Mack's avatar Daniel Mack Committed by Takashi Iwai
Browse files

ALSA: snd-usb-caiaq: clean up the control adding code



snd-usb-caiaq: clean up the control adding code by moving dulpicate code
to a function.

Signed-off-by: default avatarDaniel Mack <daniel@caiaq.de>
Signed-off-by: default avatarTakashi Iwai <tiwai@suse.de>
parent bc4a68fe
Loading
Loading
Loading
Loading
+30 −43
Original line number Diff line number Diff line
@@ -247,69 +247,56 @@ static struct caiaq_controller a8dj_controller[] = {
	{ "Software lock", 			40 		}
};

int __devinit snd_usb_caiaq_control_init(struct snd_usb_caiaqdev *dev)
static int __devinit add_controls(struct caiaq_controller *c, int num,
				  struct snd_usb_caiaqdev *dev)
{
	int i;
	int i, ret;
	struct snd_kcontrol *kc;

	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;
	for (i = 0; i < num; i++, c++) {
		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);
		ret = snd_ctl_add(dev->chip.card, kc);
		if (ret < 0)
			return ret;
	}

	return 0;
}

int __devinit snd_usb_caiaq_control_init(struct snd_usb_caiaqdev *dev)
{
	int ret = 0;

	switch (dev->chip.usb_id) {
	case USB_ID(USB_VID_NATIVEINSTRUMENTS, USB_PID_AK1):
		ret = add_controls(ak1_controller,
			ARRAY_SIZE(ak1_controller), dev);
		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);
		}

		ret = add_controls(rk2_controller,
			ARRAY_SIZE(rk2_controller), dev);
		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);
		}

		ret = add_controls(rk3_controller,
			ARRAY_SIZE(rk3_controller), dev);
		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);
		}

		ret = add_controls(kore_controller,
			ARRAY_SIZE(kore_controller), dev);
		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);
		}

		ret = add_controls(a8dj_controller,
			ARRAY_SIZE(a8dj_controller), dev);
		break;
	}

	return 0;
	return ret;
}
+1 −1
Original line number Diff line number Diff line
@@ -42,7 +42,7 @@
#endif

MODULE_AUTHOR("Daniel Mack <daniel@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},"