hdspmixer: Add support for RME AIO AEB boards

AIO allows to connect Analogue Extension Boards (4in/4out).

Provide those channels in hdspmixer, too.

The channel maps were copied from the driver, hence the changed casing
in the comments.

Signed-off-by: Adrian Knoth <adi@drcomp.erfurt.thur.de>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
This commit is contained in:
Adrian Knoth 2014-01-04 21:38:23 +01:00 committed by Takashi Iwai
parent 772fbde91c
commit f3c2688f9d
6 changed files with 96 additions and 74 deletions

View file

@ -348,9 +348,9 @@ void HDSPMixerCard::adjustSettings() {
switch (speed_mode) {
case 0: // SS
channels_input = 14;
channels_playback = 16;
channels_output = 16; /* SS 2xAnalog+2xAES+2xSPDIF+4xADAT+2xHeadphones */
channels_input = 18;
channels_playback = 20;
channels_output = 20; /* SS 2xAnalog+2xAES+2xSPDIF+8xADAT+2xHeadphones+4xAEB */
channel_map_input = channel_map_aio_in_ss;
channel_map_playback = channel_map_aio_out_ss;
dest_map = dest_map_aio_ss;
@ -358,9 +358,9 @@ void HDSPMixerCard::adjustSettings() {
meter_map_playback = channel_map_aio_out_ss;
break;
case 1: // DS
channels_input = 10;
channels_playback = 12;
channels_output = 12; /* DS 2xAnalog+2xAES+2xSPDIF+4xADAT(SMUX)+2xHeadphones */
channels_input = 14;
channels_playback = 16;
channels_output = 16; /* DS 2xAnalog+2xAES+2xSPDIF+4xADAT(SMUX)+2xHeadphones+4xAEB */
channel_map_input = channel_map_aio_in_ds;
channel_map_playback = channel_map_aio_out_ds;
dest_map = dest_map_aio_ds;
@ -368,9 +368,9 @@ void HDSPMixerCard::adjustSettings() {
meter_map_playback = channel_map_aio_out_ds;
break;
case 2: // QS
channels_input = 8;
channels_playback = 10;
channels_output = 10; /* QS 2xAnalog+2xAES+2xSPDIF+2xADAT(SMUX)+2xHeadphones */
channels_input = 12;
channels_playback = 14;
channels_output = 14; /* QS 2xAnalog+2xAES+2xSPDIF+2xADAT(SMUX)+2xHeadphones+4xAEB */
channel_map_input = channel_map_aio_in_qs;
channel_map_playback = channel_map_aio_out_qs;
dest_map = dest_map_aio_qs;

View file

@ -87,51 +87,57 @@ static char const *labels_rpm_input[5] = {
"Mic"
};
static char const *labels_aio_ss_input[14] = {
"AN 1", "AN 2",
"SP.L", "SP.R",
"AES.L", "AES.R",
"A 1", "A 2", "A 3", "A 4",
"A 5", "A 6", "A 7", "A 8"
};
static char const *labels_aio_ss_playback[16] = {
static char const *labels_aio_ss_input[18] = {
"AN 1", "AN 2",
"SP.L", "SP.R",
"AES.L", "AES.R",
"A 1", "A 2", "A 3", "A 4",
"A 5", "A 6", "A 7", "A 8",
"PH.L", "PH.R"
"AEB 1", "AEB 2", "AEB 3," "AEB 4"
};
static char const *labels_aio_ds_input[10] = {
"AN 1", "AN 2",
"SP.L", "SP.R",
"AES.L", "AES.R",
"A 1", "A 2", "A 3", "A 4"
};
static char const *labels_aio_ds_playback[12] = {
static char const *labels_aio_ss_playback[20] = {
"AN 1", "AN 2",
"SP.L", "SP.R",
"AES.L", "AES.R",
"A 1", "A 2", "A 3", "A 4",
"PH.L", "PH.R"
"A 5", "A 6", "A 7", "A 8",
"PH.L", "PH.R",
"AEB 1", "AEB 2", "AEB 3", "AEB 4"
};
static char const *labels_aio_qs_input[8] = {
static char const *labels_aio_ds_input[14] = {
"AN 1", "AN 2",
"SP.L", "SP.R",
"AES.L", "AES.R",
"A 1", "A 2"
"A 1", "A 2", "A 3", "A 4",
"AEB 1", "AEB 2", "AEB 3", "AEB 4"
};
static char const *labels_aio_qs_playback[10] = {
static char const *labels_aio_ds_playback[16] = {
"AN 1", "AN 2",
"SP.L", "SP.R",
"AES.L", "AES.R",
"A 1", "A 2", "A 3", "A 4",
"PH.L", "PH.R",
"AEB 1", "AEB 2", "AEB 3", "AEB 4"
};
static char const *labels_aio_qs_input[12] = {
"AN 1", "AN 2",
"SP.L", "SP.R",
"AES.L", "AES.R",
"A 1", "A 2",
"AEB 1", "AEB 2", "AEB 3", "AEB 4"
};
static char const *labels_aio_qs_playback[14] = {
"AN 1", "AN 2",
"SP.L", "SP.R",
"AES.L", "AES.R",
"A 1", "A 2",
"PH.L", "PH.R",
"AEB 1", "AEB 2", "AEB 3", "AEB 4"
};

View file

@ -81,28 +81,34 @@ static char const *destinations_raydat_qs[6] = {
};
static char const *destinations_aio_ss[8] = {
static char const *destinations_aio_ss[10] = {
"AN 1+2",
"AES",
"SPDIF",
"A 1+2", "A 3+4", "A 5+6", "A 7+8",
"Phones"
"Phones",
"AEB 1+2",
"AEB 3+4"
};
static char const *destinations_aio_ds[6] = {
static char const *destinations_aio_ds[8] = {
"AN 1+2",
"AES",
"SPDIF",
"A 1+2", "A 3+4",
"Phones"
"Phones",
"AEB 1+2",
"AEB 3+4"
};
static char const *destinations_aio_qs[5] = {
static char const *destinations_aio_qs[7] = {
"AN 1+2",
"AES",
"SPDIF",
"A 1+2",
"Phones"
"Phones",
"AEB 1+2",
"AEB 3+4"
};
static char const *destinations_mf_ss[10] = {
@ -318,15 +324,15 @@ void HDSPMixerSelector::setLabels()
} else if (HDSPeAIO == type) {
switch (sm) {
case 0:
max_dest = 8;
max_dest = 10;
destinations = destinations_aio_ss;
break;
case 1:
max_dest = 6;
max_dest = 8;
destinations = destinations_aio_ds;
break;
case 2:
max_dest = 5;
max_dest = 7;
destinations = destinations_aio_qs;
break;
}

View file

@ -753,12 +753,12 @@ void HDSPMixerWindow::restoreDefaults(int card)
num_modes = 3;
break;
case HDSPeAIO:
chnls[0] = 14;
chnls[1] = 10;
chnls[2] = 8;
maxdest[0] = 8;
maxdest[1] = 6;
maxdest[2] = 5;
chnls[0] = 18;
chnls[1] = 14;
chnls[2] = 12;
maxdest[0] = 10;
maxdest[1] = 8;
maxdest[2] = 7;
num_modes = 3;
break;
case HDSPeRayDAT:

View file

@ -247,38 +247,44 @@ char channel_map_raydat_qs[HDSPM_MAX_CHANNELS] = {
// HDSPe AIO
char dest_map_aio_ss[8] = {
char dest_map_aio_ss[10] = {
0, // Analogue
8, // AES
10, // SPDIF
12, 14, 16, 18, // ADAT
6 // Phones
6, // Phones
2, // AEB 1+2
4 // AEB 3+4
};
char dest_map_aio_ds[6] = {
char dest_map_aio_ds[8] = {
0, // Analogue
8, // AES
10, // SPDIF
12, 16, // ADAT
6 // Phones
6, // Phones
2, // AEB 1+2
4 // AEB 3+4
};
char dest_map_aio_qs[5] = {
char dest_map_aio_qs[7] = {
0, // Analogue
8, // AES
10, // SPDIF
12, // ADAT
6 // Phone
6, // Phone
2, // AEB 1+2
4 // AEB 3+4
};
char channel_map_aio_in_ss[HDSPM_MAX_CHANNELS] = {
0, 1, /* line in */
8, 9, /* AES in, */
10, 11, /* SPDIF in */
8, 9, /* aes in, */
10, 11, /* spdif in */
12, 13, 14, 15, 16, 17, 18, 19, /* ADAT in */
-1, -1,
-1, -1, -1, -1, -1, -1, -1, -1,
2, 3, 4, 5, /* AEB */
-1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1,
@ -288,11 +294,12 @@ char channel_map_aio_in_ss[HDSPM_MAX_CHANNELS] = {
char channel_map_aio_out_ss[HDSPM_MAX_CHANNELS] = {
0, 1, /* line out */
8, 9, /* AES out */
10, 11, /* SPDIF out */
8, 9, /* aes out */
10, 11, /* spdif out */
12, 13, 14, 15, 16, 17, 18, 19, /* ADAT out */
6, 7, /* phone out */
-1, -1, -1, -1, -1, -1, -1, -1,
2, 3, 4, 5, /* AEB */
-1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1,
@ -302,10 +309,11 @@ char channel_map_aio_out_ss[HDSPM_MAX_CHANNELS] = {
char channel_map_aio_in_ds[HDSPM_MAX_CHANNELS] = {
0, 1, /* line in */
8, 9, /* AES in */
10, 11, /* SPDIF in */
12, 14, 16, 18, /* ADAT in */
-1, -1, -1, -1, -1, -1,
8, 9, /* aes in */
10, 11, /* spdif in */
12, 14, 16, 18, /* adat in */
2, 3, 4, 5, /* AEB */
-1, -1,
-1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1,
@ -316,11 +324,11 @@ char channel_map_aio_in_ds[HDSPM_MAX_CHANNELS] = {
char channel_map_aio_out_ds[HDSPM_MAX_CHANNELS] = {
0, 1, /* line out */
8, 9, /* AES out */
10, 11, /* SPDIF out */
12, 14, 16, 18, /* ADAT out */
8, 9, /* aes out */
10, 11, /* spdif out */
12, 14, 16, 18, /* adat out */
6, 7, /* phone out */
-1, -1, -1, -1,
2, 3, 4, 5, /* AEB */
-1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1,
@ -331,10 +339,11 @@ char channel_map_aio_out_ds[HDSPM_MAX_CHANNELS] = {
char channel_map_aio_in_qs[HDSPM_MAX_CHANNELS] = {
0, 1, /* line in */
8, 9, /* AES in */
10, 11, /* SPDIF in */
12, 16, /* ADAT in */
-1, -1, -1, -1, -1, -1, -1, -1,
8, 9, /* aes in */
10, 11, /* spdif in */
12, 16, /* adat in */
2, 3, 4, 5, /* AEB */
-1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1,
@ -345,11 +354,12 @@ char channel_map_aio_in_qs[HDSPM_MAX_CHANNELS] = {
char channel_map_aio_out_qs[HDSPM_MAX_CHANNELS] = {
0, 1, /* line out */
8, 9, /* AES out */
10, 11, /* SPDIF out */
12, 16, /* ADAT out */
8, 9, /* aes out */
10, 11, /* spdif out */
12, 16, /* adat out */
6, 7, /* phone out */
-1, -1, -1, -1, -1, -1,
2, 3, 4, 5, /* AEB */
-1, -1,
-1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1,

View file

@ -112,12 +112,12 @@ extern char channel_map_raydat_qs[HDSPM_MAX_CHANNELS];
// HDSPe AIO
extern char dest_map_aio_ss[8];
extern char dest_map_aio_ss[10];
extern char dest_map_aio_ds[6];
extern char dest_map_aio_ds[8];
extern char dest_map_aio_qs[5];
extern char dest_map_aio_qs[7];
extern char channel_map_aio_in_ss[HDSPM_MAX_CHANNELS];