diff --git a/gui/audio.c b/gui/audio.c index f44f150b..093fd8c4 100644 --- a/gui/audio.c +++ b/gui/audio.c @@ -75,7 +75,8 @@ void __gui_audio_seek(GtkRange *range, GtkScrollType type, audio_seek(value * GST_SECOND); } -void __audio_volume_changed(GtkScaleButton *button, gdouble value, gpointer data) +void __gui_audio_volume_changed(GtkScaleButton *button, gdouble value, + gpointer data) { audio_set_volume((unsigned int)value); } @@ -90,9 +91,8 @@ gboolean __gui_audio_can_accel(GtkWidget *widget, guint signal_id) void gui_audio_init() { - GtkScaleButton *volume = GTK_SCALE_BUTTON(gui_builder_widget("o_volume")); - gtk_scale_button_set_value(volume, audio_get_volume()); - gtk_button_set_relief(GTK_BUTTON(volume), GTK_RELIEF_NORMAL); + gtk_scale_button_set_value(gui_volume_button(), audio_get_volume()); + gtk_button_set_relief(GTK_BUTTON(gui_volume_button()), GTK_RELIEF_NORMAL); audio_timeout = g_timeout_add(500, gui_audio_timeout, NULL); } diff --git a/include/gui/audio.h b/include/gui/audio.h index 832ead57..919a875c 100644 --- a/include/gui/audio.h +++ b/include/gui/audio.h @@ -83,4 +83,10 @@ static inline GtkAdjustment *gui_seek(void) return GTK_ADJUSTMENT(gui_builder_object("seek")); } +/* Called to get the volume button. */ +static inline GtkScaleButton *gui_volume_button(void) +{ + return GTK_SCALE_BUTTON(gui_builder_widget("volume_button")); +} + #endif /* OCARINA_GUI_AUDIO_H */ diff --git a/share/ocarina/ocarina.ui b/share/ocarina/ocarina.ui index 7f3294e0..01280c32 100644 --- a/share/ocarina/ocarina.ui +++ b/share/ocarina/ocarina.ui @@ -431,7 +431,7 @@ - + True True False @@ -446,7 +446,7 @@ audio-volume-high audio-volume-low audio-volume-medium False - + True @@ -1123,7 +1123,7 @@ audio-volume-medium - + diff --git a/tests/gui/audio.c b/tests/gui/audio.c index 6a8fc9c5..611e1303 100644 --- a/tests/gui/audio.c +++ b/tests/gui/audio.c @@ -31,6 +31,8 @@ static void test_audio_init() ==, "(disabled)"); g_assert_cmpuint(gtk_combo_box_get_active( GTK_COMBO_BOX(gui_pause_after())), ==, 0); + g_assert_cmpfloat(gtk_scale_button_get_value(gui_volume_button()), + ==, 100); g_assert_true( gtk_widget_is_visible(GTK_WIDGET(gui_play_button()))); g_assert_false(gtk_widget_is_visible(GTK_WIDGET(gui_pause_button()))); } @@ -90,6 +92,13 @@ static void test_audio_buttons() g_assert_cmpuint(audio_cur_state(), ==, GST_STATE_PAUSED); g_assert_cmpuint(gtk_combo_box_get_active( GTK_COMBO_BOX(gui_pause_after())), ==, 0); + + gtk_scale_button_set_value(gui_volume_button(), 50); + g_assert_cmpuint(audio_get_volume(), ==, 50); + gtk_scale_button_set_value(gui_volume_button(), 0); + g_assert_cmpuint(audio_get_volume(), ==, 0); + gtk_scale_button_set_value(gui_volume_button(), 100); + g_assert_cmpuint(audio_get_volume(), ==, 100); } static void test_audio_seek()