]> git.alsa-project.org Git - alsa-tools.git/commitdiff
Added value label for analog volume
authorJaroslav Kysela <perex@perex.cz>
Tue, 4 Sep 2001 10:39:34 +0000 (10:39 +0000)
committerJaroslav Kysela <perex@perex.cz>
Tue, 4 Sep 2001 10:39:34 +0000 (10:39 +0000)
envy24control/envy24control.c
envy24control/envy24control.h
envy24control/volume.c

index 8f524d8f436faedf3f670de4a87ca8501c32abaa..bc639fcffac6f5036346bbfa853b1d325075fa79 100644 (file)
@@ -78,6 +78,8 @@ GtkWidget *hw_spdif_input_optical_radio;
 
 GtkObject *av_dac_volume_adj[10];
 GtkObject *av_adc_volume_adj[10];
+GtkLabel *av_dac_volume_label[10];
+GtkLabel *av_adc_volume_label[10];
 GtkWidget *av_dac_sense_radio[10][4];
 GtkWidget *av_adc_sense_radio[10][4];
 
@@ -1061,12 +1063,19 @@ static void create_analog_volume(GtkWidget *main, GtkWidget *notebook, int page)
                gtk_scale_set_draw_value(GTK_SCALE(vscale), FALSE);
                gtk_widget_show(vscale);
                gtk_fixed_put(GTK_FIXED(fixed1), vscale, 2, 2);
-               gtk_widget_set_usize(vscale, 66, 200);
-
+               gtk_widget_set_usize(vscale, 66, 180);
                gtk_scale_set_value_pos(GTK_SCALE(vscale), GTK_POS_BOTTOM);
                gtk_scale_set_digits(GTK_SCALE(vscale), 0);
                gtk_signal_connect(GTK_OBJECT(adj), "value_changed",
                                   GTK_SIGNAL_FUNC(dac_volume_adjust), (gpointer)(i));
+
+               label = gtk_label_new("100 (-000dB)");
+               av_dac_volume_label[i] = (GtkLabel *)label;
+               gtk_widget_show(label);
+               gtk_fixed_put(GTK_FIXED(fixed1), label, 0, 182);
+               gtk_widget_set_uposition(label, 0, 182);
+               gtk_widget_set_usize(label, 66, 16);
+
                if (i >= envy_dac_senses())
                        continue;
                group = NULL;
@@ -1103,12 +1112,19 @@ static void create_analog_volume(GtkWidget *main, GtkWidget *notebook, int page)
                gtk_scale_set_draw_value(GTK_SCALE(vscale), FALSE);
                gtk_widget_show(vscale);
                gtk_fixed_put(GTK_FIXED(fixed1), vscale, 2, 2);
-               gtk_widget_set_usize(vscale, 66, 200);
-
+               gtk_widget_set_usize(vscale, 66, 180);
                gtk_scale_set_value_pos(GTK_SCALE(vscale), GTK_POS_BOTTOM);
                gtk_scale_set_digits(GTK_SCALE(vscale), 0);
                gtk_signal_connect(GTK_OBJECT(adj), "value_changed",
                                   GTK_SIGNAL_FUNC(adc_volume_adjust), (gpointer)(i));
+
+               label = gtk_label_new("100 (-000dB)");
+               av_adc_volume_label[i] = (GtkLabel *)label;
+               gtk_widget_show(label);
+               gtk_fixed_put(GTK_FIXED(fixed1), label, 0, 182);
+               gtk_widget_set_uposition(label, 0, 182);
+               gtk_widget_set_usize(label, 66, 16);
+
                if (i >= envy_adc_senses())
                        continue;
                group = NULL;
index 0487cb8e295640575c8f056cce8303c267b2936c..5d08342987adf1fa485d53b7b10121ed300d5c92 100644 (file)
@@ -87,6 +87,8 @@ extern GtkWidget *hw_spdif_input_optical_radio;
 
 extern GtkObject *av_dac_volume_adj[];
 extern GtkObject *av_adc_volume_adj[];
+extern GtkLabel *av_dac_volume_label[];
+extern GtkLabel *av_adc_volume_label[];
 extern GtkWidget *av_dac_sense_radio[][4];
 extern GtkWidget *av_adc_sense_radio[][4];
 
index 5a3e25164b204ba1d6e8e78c730982182894a41b..5cb746e6bad4560ed6d87d8777fc0f46501287b6 100644 (file)
@@ -162,13 +162,16 @@ void dac_volume_adjust(GtkAdjustment *adj, gpointer data)
 {
        int idx = (int)data;
        snd_ctl_elem_value_t *val;
-       int err;
+       int err, ival = -(int)adj->value;
+       char text[16];
 
        snd_ctl_elem_value_alloca(&val);
        snd_ctl_elem_value_set_interface(val, SND_CTL_ELEM_IFACE_MIXER);
        snd_ctl_elem_value_set_name(val, DAC_VOLUME_NAME);
        snd_ctl_elem_value_set_index(val, idx);
-       snd_ctl_elem_value_set_integer(val, 0, -(int)adj->value);
+       snd_ctl_elem_value_set_integer(val, 0, ival);
+       sprintf(text, "%03i %s", ival, ival == 127 ? "consum" : (ival == 111 ? "-10dB" : ""));
+       gtk_label_set_text(av_dac_volume_label[idx], text);
        if ((err = snd_ctl_elem_write(ctl, val)) < 0)
                g_print("Unable to write dac volume: %s\n", snd_strerror(err));
 }
@@ -177,13 +180,16 @@ void adc_volume_adjust(GtkAdjustment *adj, gpointer data)
 {
        int idx = (int)data;
        snd_ctl_elem_value_t *val;
-       int err;
+       int err, ival = -(int)adj->value;
+       char text[16];
 
        snd_ctl_elem_value_alloca(&val);
        snd_ctl_elem_value_set_interface(val, SND_CTL_ELEM_IFACE_MIXER);
        snd_ctl_elem_value_set_name(val, ADC_VOLUME_NAME);
        snd_ctl_elem_value_set_index(val, idx);
-       snd_ctl_elem_value_set_integer(val, 0, -(int)adj->value);
+       snd_ctl_elem_value_set_integer(val, 0, ival);
+       sprintf(text, "%03i %s", ival, ival == 127 ? "consum" : (ival == 111 ? "-10dB" : ""));
+       gtk_label_set_text(av_adc_volume_label[idx], text);
        if ((err = snd_ctl_elem_write(ctl, val)) < 0)
                g_print("Unable to write adc volume: %s\n", snd_strerror(err));
 }
@@ -292,10 +298,14 @@ void analog_volume_postinit(void)
 {
        int i;
 
-       for (i = 0; i < dac_volumes; i++)
+       for (i = 0; i < dac_volumes; i++) {
                dac_volume_update(i);
-       for (i = 0; i < adc_volumes; i++)
+               dac_volume_adjust((GtkAdjustment *)av_dac_volume_adj[i], (gpointer)i);
+       }
+       for (i = 0; i < adc_volumes; i++) {
                adc_volume_update(i);
+               adc_volume_adjust((GtkAdjustment *)av_adc_volume_adj[i], (gpointer)i);
+       }
        for (i = 0; i < dac_senses; i++)
                dac_sense_update(i);
        for (i = 0; i < adc_senses; i++)