ALSA: usb-audio: Fast Track C400 mixer ranges
authorEldad Zack <eldad@fogrefinery.com>
Wed, 28 Nov 2012 22:55:39 +0000 (23:55 +0100)
committerTakashi Iwai <tiwai@suse.de>
Thu, 29 Nov 2012 07:44:42 +0000 (08:44 +0100)
Add ranges for various Fast Track C400 controls, as observed
while using the vendor's mixer control software (res values
are an estimation).

Signed-off-by: Eldad Zack <eldad@fogrefinery.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
sound/usb/mixer.c

index 4eacbe2..feed500 100644 (file)
@@ -806,6 +806,33 @@ static void volume_control_quirks(struct usb_mixer_elem_info *cval,
                                  struct snd_kcontrol *kctl)
 {
        switch (cval->mixer->chip->usb_id) {
+       case USB_ID(0x0763, 0x2030): /* M-Audio Fast Track C400 */
+               if (strcmp(kctl->id.name, "Effect Duration") == 0) {
+                       cval->min = 0x0000;
+                       cval->max = 0xffff;
+                       cval->res = 0x00e6;
+                       break;
+               }
+               if (strcmp(kctl->id.name, "Effect Volume") == 0 ||
+                   strcmp(kctl->id.name, "Effect Feedback Volume") == 0) {
+                       cval->min = 0x00;
+                       cval->max = 0xff;
+                       break;
+               }
+               if (strstr(kctl->id.name, "Effect Return") != NULL) {
+                       cval->min = 0xb706;
+                       cval->max = 0xff7b;
+                       cval->res = 0x0073;
+                       break;
+               }
+               if ((strstr(kctl->id.name, "Playback Volume") != NULL) ||
+                       (strstr(kctl->id.name, "Effect Send") != NULL)) {
+                       cval->min = 0xb5fb; /* -73 dB = 0xb6ff */
+                       cval->max = 0xfcfe;
+                       cval->res = 0x0073;
+               }
+               break;
+
        case USB_ID(0x0763, 0x2081): /* M-Audio Fast Track Ultra 8R */
        case USB_ID(0x0763, 0x2080): /* M-Audio Fast Track Ultra */
                if (strcmp(kctl->id.name, "Effect Duration") == 0) {