mirror of
https://github.com/alsa-project/alsa-tools.git
synced 2026-03-12 05:33:48 -04:00
Rationalise envy24control controls specific to Terratec DMX6fire
Remove separate 'breakbox led' selector and use led to indicate 'front line in' is selected (as it should be); combine digital input select to a one-of-three selector; change various labels; set default pcm mixer channels to 6. Signed-off-by: Alan Horstmann <gineera@aspect135.co.uk>
This commit is contained in:
parent
80dcc7974d
commit
26b56f36f5
2 changed files with 72 additions and 163 deletions
|
|
@ -156,9 +156,13 @@ static void create_mixer_frame(GtkWidget *box, int stream)
|
||||||
} else if ((card_eeprom.subvendor == ICE1712_SUBDEVICE_DMX6FIRE) && (stream == 14)) {
|
} else if ((card_eeprom.subvendor == ICE1712_SUBDEVICE_DMX6FIRE) && (stream == 14)) {
|
||||||
sprintf(str, "Line In R");
|
sprintf(str, "Line In R");
|
||||||
} else if ((card_eeprom.subvendor == ICE1712_SUBDEVICE_DMX6FIRE) && (stream == 15)) {
|
} else if ((card_eeprom.subvendor == ICE1712_SUBDEVICE_DMX6FIRE) && (stream == 15)) {
|
||||||
sprintf(str, "Phono/Mic In L");
|
sprintf(str, "Phono/Mic L");
|
||||||
} else if ((card_eeprom.subvendor == ICE1712_SUBDEVICE_DMX6FIRE) && (stream == 16)) {
|
} else if ((card_eeprom.subvendor == ICE1712_SUBDEVICE_DMX6FIRE) && (stream == 16)) {
|
||||||
sprintf(str, "Phono/Mic In R");
|
sprintf(str, "Phono/Mic R");
|
||||||
|
} else if ((card_eeprom.subvendor == ICE1712_SUBDEVICE_DMX6FIRE) && (stream == 19)) {
|
||||||
|
sprintf(str, "Digital In L");
|
||||||
|
} else if ((card_eeprom.subvendor == ICE1712_SUBDEVICE_DMX6FIRE) && (stream == 20)) {
|
||||||
|
sprintf(str, "Digital In R");
|
||||||
} else if (stream <= (MAX_PCM_OUTPUT_CHANNELS + MAX_SPDIF_CHANNELS + MAX_INPUT_CHANNELS)) {
|
} else if (stream <= (MAX_PCM_OUTPUT_CHANNELS + MAX_SPDIF_CHANNELS + MAX_INPUT_CHANNELS)) {
|
||||||
sprintf(str, "H/W In %i", stream - (MAX_PCM_OUTPUT_CHANNELS + MAX_SPDIF_CHANNELS));
|
sprintf(str, "H/W In %i", stream - (MAX_PCM_OUTPUT_CHANNELS + MAX_SPDIF_CHANNELS));
|
||||||
} else if (stream <= (MAX_PCM_OUTPUT_CHANNELS + MAX_SPDIF_CHANNELS + MAX_INPUT_CHANNELS + MAX_SPDIF_CHANNELS)) {
|
} else if (stream <= (MAX_PCM_OUTPUT_CHANNELS + MAX_SPDIF_CHANNELS + MAX_INPUT_CHANNELS + MAX_SPDIF_CHANNELS)) {
|
||||||
|
|
@ -416,23 +420,33 @@ static void create_router_frame(GtkWidget *box, int stream, int pos)
|
||||||
|
|
||||||
if (card_eeprom.subvendor == ICE1712_SUBDEVICE_DMX6FIRE)
|
if (card_eeprom.subvendor == ICE1712_SUBDEVICE_DMX6FIRE)
|
||||||
{
|
{
|
||||||
table[2] = "CD In L";
|
table[0] = "Digital In L";
|
||||||
|
table[1] = "Digital In R";
|
||||||
|
table[2] = "CD In L";
|
||||||
table[3] = "CD In R";
|
table[3] = "CD In R";
|
||||||
table[4] = "Line In L";
|
table[4] = "Line In L";
|
||||||
table[5] = "Line In R";
|
table[5] = "Line In R";
|
||||||
table[6] = "Phono/Mic In L";
|
table[6] = "Phono/Mic L";
|
||||||
table[7] = "Phono/Mic In R";
|
table[7] = "Phono/Mic R";
|
||||||
}
|
}
|
||||||
|
|
||||||
if (stream <= MAX_OUTPUT_CHANNELS) {
|
if (stream <= MAX_OUTPUT_CHANNELS) {
|
||||||
sprintf(str, "H/W Out %i (%s)", stream, stream & 1 ? "L" : "R");
|
sprintf(str, "H/W Out %i (%s)", stream, stream & 1 ? "L" : "R");
|
||||||
} else if (stream == (MAX_OUTPUT_CHANNELS + 1)) {
|
} else if (stream == (MAX_OUTPUT_CHANNELS + 1)) {
|
||||||
strcpy(str, "S/PDIF Out (L)");
|
if (card_eeprom.subvendor == ICE1712_SUBDEVICE_DMX6FIRE) {
|
||||||
|
strcpy(str, "Digital Out (L)");
|
||||||
|
} else {
|
||||||
|
strcpy(str, "S/PDIF Out (L)");
|
||||||
|
}
|
||||||
} else if (stream == (MAX_OUTPUT_CHANNELS + 2)) {
|
} else if (stream == (MAX_OUTPUT_CHANNELS + 2)) {
|
||||||
strcpy(str, "S/PDIF Out (R)");
|
if (card_eeprom.subvendor == ICE1712_SUBDEVICE_DMX6FIRE) {
|
||||||
|
strcpy(str, "Digital Out (R)");
|
||||||
|
} else {
|
||||||
|
strcpy(str, "S/PDIF Out (R)");
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
strcpy(str, "???");
|
strcpy(str, "???");
|
||||||
}
|
}
|
||||||
if ((stream == MAX_PCM_OUTPUT_CHANNELS + 1) || (stream == MAX_PCM_OUTPUT_CHANNELS + 2)) {
|
if ((stream == MAX_PCM_OUTPUT_CHANNELS + 1) || (stream == MAX_PCM_OUTPUT_CHANNELS + 2)) {
|
||||||
sprintf(str1, "S/PDIF Out (%s)", stream & 1 ? "L" : "R");
|
sprintf(str1, "S/PDIF Out (%s)", stream & 1 ? "L" : "R");
|
||||||
} else {
|
} else {
|
||||||
|
|
@ -1193,95 +1207,20 @@ static void create_spdif_input_select(GtkWidget *box)
|
||||||
(GtkSignalFunc)spdif_input_toggled,
|
(GtkSignalFunc)spdif_input_toggled,
|
||||||
(gpointer)"Optical");
|
(gpointer)"Optical");
|
||||||
|
|
||||||
if(hide)
|
|
||||||
gtk_widget_hide_all(frame);
|
|
||||||
}
|
|
||||||
|
|
||||||
static void create_spdif_on_off(GtkWidget *box)
|
|
||||||
{
|
|
||||||
GtkWidget *frame;
|
|
||||||
GtkWidget *vbox;
|
|
||||||
GtkWidget *radiobutton;
|
|
||||||
GSList *group = NULL;
|
|
||||||
int hide = 1;
|
|
||||||
|
|
||||||
if( card_eeprom.subvendor == ICE1712_SUBDEVICE_DMX6FIRE)
|
|
||||||
hide = 0;
|
|
||||||
|
|
||||||
frame = gtk_frame_new("Digital Select");
|
|
||||||
gtk_widget_show(frame);
|
|
||||||
gtk_box_pack_start(GTK_BOX(box), frame, FALSE, TRUE, 0);
|
|
||||||
gtk_container_set_border_width(GTK_CONTAINER(frame), 6);
|
|
||||||
|
|
||||||
vbox = gtk_vbox_new(FALSE, 0);
|
|
||||||
gtk_widget_show(vbox);
|
|
||||||
gtk_container_add(GTK_CONTAINER(frame), vbox);
|
|
||||||
gtk_container_set_border_width(GTK_CONTAINER(vbox), 6);
|
|
||||||
|
|
||||||
radiobutton = gtk_radio_button_new_with_label(group, "Front Digital");
|
|
||||||
hw_spdif_switch_on_radio = radiobutton;
|
|
||||||
group = gtk_radio_button_group(GTK_RADIO_BUTTON(radiobutton));
|
|
||||||
gtk_widget_show(radiobutton);
|
|
||||||
gtk_box_pack_start(GTK_BOX(vbox), radiobutton, FALSE, FALSE, 0);
|
|
||||||
gtk_signal_connect(GTK_OBJECT(radiobutton), "toggled",
|
|
||||||
(GtkSignalFunc)spdif_on_off_toggled,
|
|
||||||
(gpointer)"On");
|
|
||||||
|
|
||||||
radiobutton = gtk_radio_button_new_with_label(group, "Internal CD");
|
radiobutton = gtk_radio_button_new_with_label(group, "Internal CD");
|
||||||
hw_spdif_switch_off_radio = radiobutton;
|
hw_spdif_switch_off_radio = radiobutton;
|
||||||
group = gtk_radio_button_group(GTK_RADIO_BUTTON(radiobutton));
|
group = gtk_radio_button_group(GTK_RADIO_BUTTON(radiobutton));
|
||||||
gtk_widget_show(radiobutton);
|
if(card_eeprom.subvendor == ICE1712_SUBDEVICE_DMX6FIRE)
|
||||||
|
gtk_widget_show(radiobutton);
|
||||||
gtk_box_pack_start(GTK_BOX(vbox), radiobutton, FALSE, FALSE, 0);
|
gtk_box_pack_start(GTK_BOX(vbox), radiobutton, FALSE, FALSE, 0);
|
||||||
gtk_signal_connect(GTK_OBJECT(radiobutton), "toggled",
|
gtk_signal_connect(GTK_OBJECT(radiobutton), "toggled",
|
||||||
(GtkSignalFunc)spdif_on_off_toggled,
|
(GtkSignalFunc)spdif_input_toggled,
|
||||||
(gpointer)"Off");
|
(gpointer)"Off");
|
||||||
|
|
||||||
if(hide)
|
if(hide)
|
||||||
gtk_widget_hide_all(frame);
|
gtk_widget_hide_all(frame);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void create_breakbox_led(GtkWidget *box)
|
|
||||||
{
|
|
||||||
GtkWidget *frame;
|
|
||||||
GtkWidget *vbox;
|
|
||||||
GtkWidget *radiobutton;
|
|
||||||
GSList *group = NULL;
|
|
||||||
int hide = 1;
|
|
||||||
|
|
||||||
if( card_eeprom.subvendor == ICE1712_SUBDEVICE_DMX6FIRE)
|
|
||||||
hide = 0;
|
|
||||||
|
|
||||||
frame = gtk_frame_new("Breakbox LED On/Off");
|
|
||||||
gtk_widget_show(frame);
|
|
||||||
gtk_box_pack_start(GTK_BOX(box), frame, FALSE, TRUE, 0);
|
|
||||||
gtk_container_set_border_width(GTK_CONTAINER(frame), 6);
|
|
||||||
|
|
||||||
vbox = gtk_vbox_new(FALSE, 0);
|
|
||||||
gtk_widget_show(vbox);
|
|
||||||
gtk_container_add(GTK_CONTAINER(frame), vbox);
|
|
||||||
gtk_container_set_border_width(GTK_CONTAINER(vbox), 6);
|
|
||||||
|
|
||||||
radiobutton = gtk_radio_button_new_with_label(group, "On");
|
|
||||||
hw_breakbox_led_on_radio = radiobutton;
|
|
||||||
group = gtk_radio_button_group(GTK_RADIO_BUTTON(radiobutton));
|
|
||||||
gtk_widget_show(radiobutton);
|
|
||||||
gtk_box_pack_start(GTK_BOX(vbox), radiobutton, FALSE, FALSE, 0);
|
|
||||||
gtk_signal_connect(GTK_OBJECT(radiobutton), "toggled",
|
|
||||||
(GtkSignalFunc)breakbox_led_toggled,
|
|
||||||
(gpointer)"On");
|
|
||||||
|
|
||||||
radiobutton = gtk_radio_button_new_with_label(group, "Off");
|
|
||||||
hw_breakbox_led_off_radio = radiobutton;
|
|
||||||
group = gtk_radio_button_group(GTK_RADIO_BUTTON(radiobutton));
|
|
||||||
gtk_widget_show(radiobutton);
|
|
||||||
gtk_box_pack_start(GTK_BOX(vbox), radiobutton, FALSE, FALSE, 0);
|
|
||||||
gtk_signal_connect(GTK_OBJECT(radiobutton), "toggled",
|
|
||||||
(GtkSignalFunc)breakbox_led_toggled,
|
|
||||||
(gpointer)"Off");
|
|
||||||
|
|
||||||
if(hide)
|
|
||||||
gtk_widget_hide_all(frame);
|
|
||||||
}
|
|
||||||
|
|
||||||
static void create_phono_input(GtkWidget *box)
|
static void create_phono_input(GtkWidget *box)
|
||||||
{
|
{
|
||||||
|
|
@ -1374,7 +1313,7 @@ static void create_input_interface(GtkWidget *box)
|
||||||
(GtkSignalFunc)analog_input_select_toggled,
|
(GtkSignalFunc)analog_input_select_toggled,
|
||||||
(gpointer)"Rear Input");
|
(gpointer)"Rear Input");
|
||||||
|
|
||||||
radiobutton = gtk_radio_button_new_with_label(group, "Wave Table");
|
radiobutton = gtk_radio_button_new_with_label(group, "Wavetable");
|
||||||
input_interface_wavetable = radiobutton;
|
input_interface_wavetable = radiobutton;
|
||||||
group = gtk_radio_button_group(GTK_RADIO_BUTTON(radiobutton));
|
group = gtk_radio_button_group(GTK_RADIO_BUTTON(radiobutton));
|
||||||
gtk_widget_show(radiobutton);
|
gtk_widget_show(radiobutton);
|
||||||
|
|
@ -1423,9 +1362,7 @@ static void create_hardware(GtkWidget *main, GtkWidget *notebook, int page)
|
||||||
|
|
||||||
create_spdif_input_select(vbox2);
|
create_spdif_input_select(vbox2);
|
||||||
create_input_interface(vbox2);
|
create_input_interface(vbox2);
|
||||||
create_breakbox_led(vbox2);
|
|
||||||
create_phono_input(vbox2);
|
create_phono_input(vbox2);
|
||||||
create_spdif_on_off(vbox2);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static void create_about(GtkWidget *main, GtkWidget *notebook, int page)
|
static void create_about(GtkWidget *main, GtkWidget *notebook, int page)
|
||||||
|
|
@ -1485,10 +1422,10 @@ static void create_analog_volume(GtkWidget *main, GtkWidget *notebook, int page)
|
||||||
static char* dmx6fire_inputs[6] = {
|
static char* dmx6fire_inputs[6] = {
|
||||||
"CD In (L)",
|
"CD In (L)",
|
||||||
"CD In (R)",
|
"CD In (R)",
|
||||||
"Line In (L)",
|
"Line (L)",
|
||||||
"Line In (R)",
|
"Line (R)",
|
||||||
"Phono In (L)",
|
"Phono (L)",
|
||||||
"Phono In (R)"
|
"Phono (R)"
|
||||||
};
|
};
|
||||||
static char* dmx6fire_outputs[6] = {
|
static char* dmx6fire_outputs[6] = {
|
||||||
"Front (L)",
|
"Front (L)",
|
||||||
|
|
@ -1958,6 +1895,7 @@ int main(int argc, char **argv)
|
||||||
int page;
|
int page;
|
||||||
int input_channels_set = 0;
|
int input_channels_set = 0;
|
||||||
int output_channels_set = 0;
|
int output_channels_set = 0;
|
||||||
|
int pcm_output_channels_set = 0;
|
||||||
static struct option long_options[] = {
|
static struct option long_options[] = {
|
||||||
{"device", 1, 0, 'D'},
|
{"device", 1, 0, 'D'},
|
||||||
{"card", 1, 0, 'c'},
|
{"card", 1, 0, 'c'},
|
||||||
|
|
@ -2042,6 +1980,7 @@ int main(int argc, char **argv)
|
||||||
fprintf(stderr, "envy24control: must have 0-%i pcm outputs\n", MAX_PCM_OUTPUT_CHANNELS);
|
fprintf(stderr, "envy24control: must have 0-%i pcm outputs\n", MAX_PCM_OUTPUT_CHANNELS);
|
||||||
exit(1);
|
exit(1);
|
||||||
}
|
}
|
||||||
|
pcm_output_channels_set = 1;
|
||||||
break;
|
break;
|
||||||
case 's':
|
case 's':
|
||||||
spdif_channels = atoi(optarg);
|
spdif_channels = atoi(optarg);
|
||||||
|
|
@ -2120,6 +2059,12 @@ int main(int argc, char **argv)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if(!pcm_output_channels_set) {
|
||||||
|
if(card_eeprom.subvendor == ICE1712_SUBDEVICE_DMX6FIRE) {
|
||||||
|
pcm_output_channels = 6; /* PCMs 7&8 can be used -set using option -p8 */
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/* Initialize code */
|
/* Initialize code */
|
||||||
config_open();
|
config_open();
|
||||||
level_meters_init();
|
level_meters_init();
|
||||||
|
|
|
||||||
|
|
@ -605,17 +605,29 @@ void spdif_output_toggled(GtkWidget *togglebutton, gpointer data)
|
||||||
void spdif_input_update(void)
|
void spdif_input_update(void)
|
||||||
{
|
{
|
||||||
int err;
|
int err;
|
||||||
|
int digoptical = FALSE;
|
||||||
|
int diginternal = FALSE;
|
||||||
|
|
||||||
if ((card_eeprom.subvendor != ICE1712_SUBDEVICE_DELTADIO2496) && (card_eeprom.subvendor != ICE1712_SUBDEVICE_DMX6FIRE))
|
if ((card_eeprom.subvendor != ICE1712_SUBDEVICE_DELTADIO2496) && (card_eeprom.subvendor != ICE1712_SUBDEVICE_DMX6FIRE))
|
||||||
return;
|
return;
|
||||||
if ((err = snd_ctl_elem_read(ctl, spdif_input)) < 0)
|
if ((err = snd_ctl_elem_read(ctl, spdif_input)) < 0)
|
||||||
g_print("Unable to read S/PDIF input switch: %s\n", snd_strerror(err));
|
g_print("Unable to read S/PDIF input switch: %s\n", snd_strerror(err));
|
||||||
if (snd_ctl_elem_value_get_boolean(spdif_input, 0)) {
|
if (snd_ctl_elem_value_get_boolean(spdif_input, 0))
|
||||||
|
digoptical = TRUE;
|
||||||
|
if (card_eeprom.subvendor = ICE1712_SUBDEVICE_DMX6FIRE) {
|
||||||
|
if ((err = snd_ctl_elem_read(ctl, spdif_on_off)) < 0)
|
||||||
|
g_print("Unable to read S/PDIF on/off switch: %s\n", snd_strerror(err));
|
||||||
|
if (!(snd_ctl_elem_value_get_boolean(spdif_on_off, 0)))
|
||||||
|
diginternal = TRUE;
|
||||||
|
}
|
||||||
|
if (digoptical) {
|
||||||
toggle_set(hw_spdif_input_optical_radio, TRUE);
|
toggle_set(hw_spdif_input_optical_radio, TRUE);
|
||||||
} else {
|
} else {
|
||||||
toggle_set(hw_spdif_input_coaxial_radio, TRUE);
|
toggle_set(hw_spdif_input_coaxial_radio, TRUE);
|
||||||
}
|
}
|
||||||
}
|
if (diginternal)
|
||||||
|
toggle_set(hw_spdif_switch_off_radio, TRUE);
|
||||||
|
}
|
||||||
|
|
||||||
void spdif_input_toggled(GtkWidget *togglebutton, gpointer data)
|
void spdif_input_toggled(GtkWidget *togglebutton, gpointer data)
|
||||||
{
|
{
|
||||||
|
|
@ -624,10 +636,18 @@ void spdif_input_toggled(GtkWidget *togglebutton, gpointer data)
|
||||||
|
|
||||||
if (!is_active(togglebutton))
|
if (!is_active(togglebutton))
|
||||||
return;
|
return;
|
||||||
if (!strcmp(str, "Optical"))
|
if (!strcmp(str, "Off"))
|
||||||
snd_ctl_elem_value_set_boolean(spdif_input, 0, 1);
|
snd_ctl_elem_value_set_boolean(spdif_on_off, 0, 0);
|
||||||
else
|
else {
|
||||||
snd_ctl_elem_value_set_boolean(spdif_input, 0, 0);
|
snd_ctl_elem_value_set_boolean(spdif_on_off, 0, 1);
|
||||||
|
if (!strcmp(str, "Optical"))
|
||||||
|
snd_ctl_elem_value_set_boolean(spdif_input, 0, 1);
|
||||||
|
else
|
||||||
|
if (!strcmp(str, "Coaxial"))
|
||||||
|
snd_ctl_elem_value_set_boolean(spdif_input, 0, 0);
|
||||||
|
}
|
||||||
|
if ((err = snd_ctl_elem_write(ctl, spdif_on_off)) < 0)
|
||||||
|
g_print("Unable to write S/PDIF on/off switch: %s\n", snd_strerror(err));
|
||||||
if ((err = snd_ctl_elem_write(ctl, spdif_input)) < 0)
|
if ((err = snd_ctl_elem_write(ctl, spdif_input)) < 0)
|
||||||
g_print("Unable to write S/PDIF input switch: %s\n", snd_strerror(err));
|
g_print("Unable to write S/PDIF input switch: %s\n", snd_strerror(err));
|
||||||
}
|
}
|
||||||
|
|
@ -664,81 +684,27 @@ void analog_input_select_set(int value)
|
||||||
void analog_input_select_toggled(GtkWidget *togglebutton, gpointer data)
|
void analog_input_select_toggled(GtkWidget *togglebutton, gpointer data)
|
||||||
{
|
{
|
||||||
char *what = (char *) data;
|
char *what = (char *) data;
|
||||||
|
int err;
|
||||||
|
|
||||||
if (!is_active(togglebutton))
|
if (!is_active(togglebutton))
|
||||||
return;
|
return;
|
||||||
if (!strcmp(what, "Internal")) {
|
if (!strcmp(what, "Internal")) {
|
||||||
analog_input_select_set(0);
|
analog_input_select_set(0);
|
||||||
|
snd_ctl_elem_value_set_boolean(breakbox_led, 0, 0);
|
||||||
} else if (!strcmp(what, "Front Input")) {
|
} else if (!strcmp(what, "Front Input")) {
|
||||||
analog_input_select_set(1);
|
analog_input_select_set(1);
|
||||||
|
snd_ctl_elem_value_set_boolean(breakbox_led, 0, 1);
|
||||||
} else if (!strcmp(what, "Rear Input")) {
|
} else if (!strcmp(what, "Rear Input")) {
|
||||||
analog_input_select_set(2);
|
analog_input_select_set(2);
|
||||||
|
snd_ctl_elem_value_set_boolean(breakbox_led, 0, 0);
|
||||||
} else if (!strcmp(what, "Wave Table")) {
|
} else if (!strcmp(what, "Wave Table")) {
|
||||||
analog_input_select_set(3);
|
analog_input_select_set(3);
|
||||||
|
snd_ctl_elem_value_set_boolean(breakbox_led, 0, 0);
|
||||||
} else {
|
} else {
|
||||||
g_print("analog_input_select_toggled: %s ???\n", what);
|
g_print("analog_input_select_toggled: %s ???\n", what);
|
||||||
}
|
}
|
||||||
}
|
if ((err = snd_ctl_elem_write(ctl, breakbox_led)) < 0)
|
||||||
|
g_print("Unable to write breakbox LED switch: %s\n", snd_strerror(err));
|
||||||
|
|
||||||
void breakbox_led_update(void)
|
|
||||||
{
|
|
||||||
int err;
|
|
||||||
|
|
||||||
if (card_eeprom.subvendor != ICE1712_SUBDEVICE_DMX6FIRE)
|
|
||||||
return;
|
|
||||||
if ((err = snd_ctl_elem_read(ctl, breakbox_led)) < 0)
|
|
||||||
g_print("Unable to read breakbox LED switch: %s\n", snd_strerror(err));
|
|
||||||
if (snd_ctl_elem_value_get_boolean(breakbox_led, 0)) {
|
|
||||||
toggle_set(hw_breakbox_led_on_radio, TRUE);
|
|
||||||
} else {
|
|
||||||
toggle_set(hw_breakbox_led_off_radio, TRUE);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
void breakbox_led_toggled(GtkWidget *togglebutton, gpointer data)
|
|
||||||
{
|
|
||||||
int err;
|
|
||||||
char *str = (char *)data;
|
|
||||||
|
|
||||||
if (!is_active(togglebutton))
|
|
||||||
return;
|
|
||||||
if (!strcmp(str, "On"))
|
|
||||||
snd_ctl_elem_value_set_boolean(breakbox_led, 0, 1);
|
|
||||||
else
|
|
||||||
snd_ctl_elem_value_set_boolean(breakbox_led, 0, 0);
|
|
||||||
if ((err = snd_ctl_elem_write(ctl, breakbox_led)) < 0)
|
|
||||||
g_print("Unable to write breakbox LED switch: %s\n", snd_strerror(err));
|
|
||||||
}
|
|
||||||
|
|
||||||
void spdif_on_off_update(void)
|
|
||||||
{
|
|
||||||
int err;
|
|
||||||
|
|
||||||
if (card_eeprom.subvendor != ICE1712_SUBDEVICE_DMX6FIRE)
|
|
||||||
return;
|
|
||||||
if ((err = snd_ctl_elem_read(ctl, spdif_on_off)) < 0)
|
|
||||||
g_print("Unable to read S/PDIF on/off switch: %s\n", snd_strerror(err));
|
|
||||||
if (snd_ctl_elem_value_get_boolean(spdif_on_off, 0)) {
|
|
||||||
toggle_set(hw_spdif_switch_on_radio, TRUE);
|
|
||||||
} else {
|
|
||||||
toggle_set(hw_spdif_switch_off_radio, TRUE);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
void spdif_on_off_toggled(GtkWidget *togglebutton, gpointer data)
|
|
||||||
{
|
|
||||||
int err;
|
|
||||||
char *str = (char *) data;
|
|
||||||
|
|
||||||
if (!is_active(togglebutton))
|
|
||||||
return;
|
|
||||||
if (!strcmp(str, "On"))
|
|
||||||
snd_ctl_elem_value_set_boolean(spdif_on_off, 0, 1);
|
|
||||||
else
|
|
||||||
snd_ctl_elem_value_set_boolean(spdif_on_off, 0, 0);
|
|
||||||
if ((err = snd_ctl_elem_write(ctl, spdif_on_off)) < 0)
|
|
||||||
g_print("Unable to write S/PDIF on/off switch: %s\n", snd_strerror(err));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void phono_input_update(void)
|
void phono_input_update(void)
|
||||||
|
|
@ -841,7 +807,5 @@ void hardware_postinit(void)
|
||||||
spdif_input_update();
|
spdif_input_update();
|
||||||
spdif_output_update();
|
spdif_output_update();
|
||||||
analog_input_select_update();
|
analog_input_select_update();
|
||||||
breakbox_led_update();
|
|
||||||
spdif_on_off_update();
|
|
||||||
phono_input_update();
|
phono_input_update();
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue