mirror of
https://github.com/alsa-project/alsa-tools.git
synced 2025-10-29 05:40:25 -04:00
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:
parent
772fbde91c
commit
f3c2688f9d
6 changed files with 96 additions and 74 deletions
|
|
@ -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;
|
||||
|
|
|
|||
|
|
@ -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"
|
||||
};
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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:
|
||||
|
|
|
|||
|
|
@ -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,
|
||||
|
|
|
|||
|
|
@ -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];
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue