Focusrite Scarlett 6i6 gen1 - input handling fix

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



The Scarlett 6i6 has no padding on rear inputs 3/4 but a gainstage.
This patch introduces this functionality as to be seen in the mac
or windows scarlett control.
The correct address could already be found in the dump info,
but was never used.

Cheers ... Jens


Signed-off-by: Jens Verwiebe <info@xxxxxxxxxxxxxxx>




diff --git a/sound/usb/mixer_scarlett.c b/sound/usb/mixer_scarlett.c
index 7438e7c..f3bdac3 100644
--- a/sound/usb/mixer_scarlett.c
+++ b/sound/usb/mixer_scarlett.c
@@ -152,6 +152,7 @@ enum {
     SCARLETT_OUTPUTS,
     SCARLETT_SWITCH_IMPEDANCE,
     SCARLETT_SWITCH_PAD,
+    SCARLETT_SWITCH_GAIN,
 };

 enum {
@@ -202,6 +203,15 @@ struct scarlett_device_info {
     }
 };

+static const struct scarlett_mixer_elem_enum_info opt_gain = {
+    .start = 0,
+    .len = 2,
+    .offsets = {},
+    .names = (char const * const []){
+        "Lo", "Hi"
+    }
+};
+
 static const struct scarlett_mixer_elem_enum_info opt_impedance = {
     .start = 0,
     .len = 2,
@@ -664,8 +674,8 @@ static int add_output_ctls(struct usb_mixer_interface *mixer,
         { .num = 1, .type = SCARLETT_SWITCH_PAD, .name = NULL},
         { .num = 2, .type = SCARLETT_SWITCH_IMPEDANCE, .name = NULL},
         { .num = 2, .type = SCARLETT_SWITCH_PAD, .name = NULL},
-        { .num = 3, .type = SCARLETT_SWITCH_PAD, .name = NULL},
-        { .num = 4, .type = SCARLETT_SWITCH_PAD, .name = NULL},
+        { .num = 3, .type = SCARLETT_SWITCH_GAIN, .name = NULL},
+        { .num = 4, .type = SCARLETT_SWITCH_GAIN, .name = NULL},
     },

     .matrix_mux_init = {
@@ -895,6 +905,15 @@ static int scarlett_controls_create_generic(struct usb_mixer_interface *mixer,
             if (err < 0)
                 return err;
             break;
+        case SCARLETT_SWITCH_GAIN:
+            sprintf(mx, "Input %d Gain Switch", ctl->num);
+            err = add_new_ctl(mixer, &usb_scarlett_ctl_enum,
+                      scarlett_ctl_enum_resume, 0x01,
+                      0x08, ctl->num, USB_MIXER_S16, 1, mx,
+                      &opt_gain, &elem);
+            if (err < 0)
+                return err;
+            break;
         }
     }

--

Jens Verwiebe
Allerskehre 44 - 22309 Hamburg

Tel.: +49 40 68 78 50
mobile: +49 172 400 49 07
mailto: info@xxxxxxxxxxxxxxx
web: http://www.jensverwiebe.de

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




[Index of Archives]     [ALSA User]     [Linux Audio Users]     [Kernel Archive]     [Asterisk PBX]     [Photo Sharing]     [Linux Sound]     [Video 4 Linux]     [Gimp]     [Yosemite News]

  Powered by Linux