All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] cleanup controllers in snd-usb-caiaq
@ 2008-11-26 15:19 Daniel Mack
  2008-11-26 15:44 ` Takashi Iwai
  0 siblings, 1 reply; 6+ messages in thread
From: Daniel Mack @ 2008-11-26 15:19 UTC (permalink / raw)
  To: alsa-devel

[-- Attachment #1: Type: text/plain, Size: 145 bytes --]

Hi,

this patch does some code cleanup in snd-usb-caiaq. No functional change
whatsoever. Version number bumped to 1.3.9.

Best regards,
Daniel


[-- Attachment #2: caiaq-controls-cleanup.diff --]
[-- Type: text/x-diff, Size: 3458 bytes --]

Cleanup controler registration in snd-usb-caiaq.

Signed-off-by: Daniel Mack <daniel@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@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},"

[-- Attachment #3: Type: text/plain, Size: 160 bytes --]

_______________________________________________
Alsa-devel mailing list
Alsa-devel@alsa-project.org
http://mailman.alsa-project.org/mailman/listinfo/alsa-devel

^ permalink raw reply related	[flat|nested] 6+ messages in thread

* Re: [PATCH] cleanup controllers in snd-usb-caiaq
  2008-11-26 15:19 [PATCH] cleanup controllers in snd-usb-caiaq Daniel Mack
@ 2008-11-26 15:44 ` Takashi Iwai
  2008-11-26 18:57   ` Daniel Mack
  0 siblings, 1 reply; 6+ messages in thread
From: Takashi Iwai @ 2008-11-26 15:44 UTC (permalink / raw)
  To: Daniel Mack; +Cc: alsa-devel

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@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@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@alsa-project.org
> http://mailman.alsa-project.org/mailman/listinfo/alsa-devel

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [PATCH] cleanup controllers in snd-usb-caiaq
  2008-11-26 15:44 ` Takashi Iwai
@ 2008-11-26 18:57   ` Daniel Mack
  2008-11-26 20:28     ` Takashi Iwai
  0 siblings, 1 reply; 6+ messages in thread
From: Daniel Mack @ 2008-11-26 18:57 UTC (permalink / raw)
  To: Takashi Iwai; +Cc: alsa-devel

[-- Attachment #1: Type: text/plain, Size: 491 bytes --]

Hi Takashi,

On Wed, Nov 26, 2008 at 04:44:08PM +0100, Takashi Iwai wrote:
> > 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().

Ok, agreed and done. However, I considered it a good idea as it avoided
writing the array's name more than once.

Daniel


[-- Attachment #2: caiaq-controls-cleanup.diff --]
[-- Type: text/x-diff, Size: 3832 bytes --]

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

Signed-off-by: Daniel Mack <daniel@caiaq.de>

diff --git a/sound/usb/caiaq/caiaq-control.c b/sound/usb/caiaq/caiaq-control.c
index 798ca12..ccd763d 100644
--- a/sound/usb/caiaq/caiaq-control.c
+++ b/sound/usb/caiaq/caiaq-control.c
@@ -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;
 
+	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);
+		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):
-		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);
-		}
-
+		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;
 }
 
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@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},"

[-- Attachment #3: Type: text/plain, Size: 160 bytes --]

_______________________________________________
Alsa-devel mailing list
Alsa-devel@alsa-project.org
http://mailman.alsa-project.org/mailman/listinfo/alsa-devel

^ permalink raw reply related	[flat|nested] 6+ messages in thread

* Re: [PATCH] cleanup controllers in snd-usb-caiaq
  2008-11-26 18:57   ` Daniel Mack
@ 2008-11-26 20:28     ` Takashi Iwai
  2008-11-26 20:31       ` Daniel Mack
  0 siblings, 1 reply; 6+ messages in thread
From: Takashi Iwai @ 2008-11-26 20:28 UTC (permalink / raw)
  To: Daniel Mack; +Cc: alsa-devel

At Wed, 26 Nov 2008 19:57:20 +0100,
Daniel Mack wrote:
> 
> Hi Takashi,
> 
> On Wed, Nov 26, 2008 at 04:44:08PM +0100, Takashi Iwai wrote:
> > > 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().
> 
> Ok, agreed and done. However, I considered it a good idea as it avoided
> writing the array's name more than once.

In that case, you can use a macro, such as,

#define ADD_CTRLS(c, list) add_controls(c, ARRAY_SIZE(list), (list))

But, don't make a too complex block as a macro.  A function often
gives a better code (in this case it'll get smaller) in addition to a
better readability than a big macro.


thanks,

Takashi

> 
> Daniel
> 
> [2 caiaq-controls-cleanup.diff <text/x-diff; us-ascii (7bit)>]
> snd-usb-caiaq: clean up the control adding code by moving dulpicate code
> to a function.
> 
> Signed-off-by: Daniel Mack <daniel@caiaq.de>
> 
> diff --git a/sound/usb/caiaq/caiaq-control.c b/sound/usb/caiaq/caiaq-control.c
> index 798ca12..ccd763d 100644
> --- a/sound/usb/caiaq/caiaq-control.c
> +++ b/sound/usb/caiaq/caiaq-control.c
> @@ -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;
>  
> +	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);
> +		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):
> -		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);
> -		}
> -
> +		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;
>  }
>  
> 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@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},"

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [PATCH] cleanup controllers in snd-usb-caiaq
  2008-11-26 20:28     ` Takashi Iwai
@ 2008-11-26 20:31       ` Daniel Mack
  2008-11-27  7:24         ` Takashi Iwai
  0 siblings, 1 reply; 6+ messages in thread
From: Daniel Mack @ 2008-11-26 20:31 UTC (permalink / raw)
  To: Takashi Iwai; +Cc: alsa-devel


On 26.11.2008, at 21:28, Takashi Iwai wrote:

>> Ok, agreed and done. However, I considered it a good idea as it  
>> avoided
>> writing the array's name more than once.
>
> In that case, you can use a macro, such as,
>
> #define ADD_CTRLS(c, list) add_controls(c, ARRAY_SIZE(list), (list))
>
> But, don't make a too complex block as a macro.  A function often
> gives a better code (in this case it'll get smaller) in addition to a
> better readability than a big macro.

Ok. Do you want me to do this or are you fine with the code as-is?

Daniel

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [PATCH] cleanup controllers in snd-usb-caiaq
  2008-11-26 20:31       ` Daniel Mack
@ 2008-11-27  7:24         ` Takashi Iwai
  0 siblings, 0 replies; 6+ messages in thread
From: Takashi Iwai @ 2008-11-27  7:24 UTC (permalink / raw)
  To: Daniel Mack; +Cc: alsa-devel

At Wed, 26 Nov 2008 21:31:59 +0100,
Daniel Mack wrote:
> 
> 
> On 26.11.2008, at 21:28, Takashi Iwai wrote:
> 
> >> Ok, agreed and done. However, I considered it a good idea as it  
> >> avoided
> >> writing the array's name more than once.
> >
> > In that case, you can use a macro, such as,
> >
> > #define ADD_CTRLS(c, list) add_controls(c, ARRAY_SIZE(list), (list))
> >
> > But, don't make a too complex block as a macro.  A function often
> > gives a better code (in this case it'll get smaller) in addition to a
> > better readability than a big macro.
> 
> Ok. Do you want me to do this or are you fine with the code as-is?

I have no big preference.
But, since it's not bad to have ARRAY_SIZE() explicitly in the code
(then you notice that it's no null-terminated array), I applied your
previous one now.


thanks,

Takashi

^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2008-11-27  7:24 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2008-11-26 15:19 [PATCH] cleanup controllers in snd-usb-caiaq Daniel Mack
2008-11-26 15:44 ` Takashi Iwai
2008-11-26 18:57   ` Daniel Mack
2008-11-26 20:28     ` Takashi Iwai
2008-11-26 20:31       ` Daniel Mack
2008-11-27  7:24         ` Takashi Iwai

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.