[alsa-devel] [PATCH 1/7] Unify M-Audio Fast Track Ultra and Ebox-44 mixer quirks.

Mark Hills mark at pogo.org.uk
Mon Apr 23 20:43:09 CEST 2012


On Mon, 23 Apr 2012, Takashi Iwai wrote:

> At Mon, 23 Apr 2012 16:37:31 +0200, Felix Homann wrote:
[...]
> >  /*
> >   * Create mixer for Electrix Ebox-44
> >   *
> > @@ -605,17 +636,26 @@ static int snd_ebox44_create_ctl(struct usb_mixer_interface *mixer,
> >  
> >  static int snd_ebox44_create_mixer(struct usb_mixer_interface *mixer)
> >  {
> > -	snd_ebox44_create_ctl(mixer, 4, 1, 0x0, USB_MIXER_INV_BOOLEAN, "Headphone Playback Switch");
> > -	snd_ebox44_create_ctl(mixer, 4, 2, 0x1, USB_MIXER_S16, "Headphone A Mix Playback Volume");
> > -	snd_ebox44_create_ctl(mixer, 4, 2, 0x2, USB_MIXER_S16, "Headphone B Mix Playback Volume");
> > -
> > -	snd_ebox44_create_ctl(mixer, 7, 1, 0x0, USB_MIXER_INV_BOOLEAN, "Output Playback Switch");
> > -	snd_ebox44_create_ctl(mixer, 7, 2, 0x1, USB_MIXER_S16, "Output A Playback Volume");
> > -	snd_ebox44_create_ctl(mixer, 7, 2, 0x2, USB_MIXER_S16, "Output B Playback Volume");
> > -
> > -	snd_ebox44_create_ctl(mixer, 10, 1, 0x0, USB_MIXER_INV_BOOLEAN, "Input Capture Switch");
> > -	snd_ebox44_create_ctl(mixer, 10, 2, 0x1, USB_MIXER_S16, "Input A Capture Volume");
> > -	snd_ebox44_create_ctl(mixer, 10, 2, 0x2, USB_MIXER_S16, "Input B Capture Volume");
> > +	snd_create_std_mono_ctl(mixer, 4, 1, 0x0, USB_MIXER_INV_BOOLEAN,
> > +				"Headphone Playback Switch", NULL);
> > +	snd_create_std_mono_ctl(mixer, 4, 2, 0x1, USB_MIXER_S16,
> > +				"Headphone A Mix Playback Volume", NULL);
> > +	snd_create_std_mono_ctl(mixer, 4, 2, 0x2, USB_MIXER_S16,
> > +				"Headphone B Mix Playback Volume", NULL);
> > +
> > +	snd_create_std_mono_ctl(mixer, 7, 1, 0x0, USB_MIXER_INV_BOOLEAN,
> > +				"Output Playback Switch", NULL);
> > +	snd_create_std_mono_ctl(mixer, 7, 2, 0x1, USB_MIXER_S16,
> > +				"Output A Playback Volume", NULL);
> > +	snd_create_std_mono_ctl(mixer, 7, 2, 0x2, USB_MIXER_S16,
> > +				"Output B Playback Volume", NULL);
> > +
> > +	snd_create_std_mono_ctl(mixer, 10, 1, 0x0, USB_MIXER_INV_BOOLEAN,
> > +				"Input Capture Switch", NULL);
> > +	snd_create_std_mono_ctl(mixer, 10, 2, 0x1, USB_MIXER_S16,
> > +				"Input A Capture Volume", NULL);
> > +	snd_create_std_mono_ctl(mixer, 10, 2, 0x2, USB_MIXER_S16,
> > +				"Input B Capture Volume", NULL);
> 
> It would be safer to check the error of each call, but then it'd be
> better to make a table and loop over it.  You can create a new patch
> for that.

I can do this, if somebody can tell me how best to handle the error. If 
snd_ebox44_create_ctl fails andI return an error code, I become 
responsible for un-winding the previous creations?

Thanks

-- 
Mark


More information about the Alsa-devel mailing list