diff --git a/gui/controls.cpp b/gui/controls.cpp index 5306fde6..65b85024 100644 --- a/gui/controls.cpp +++ b/gui/controls.cpp @@ -5,21 +5,6 @@ #include #include -static Gtk::Label *o_position; -static Glib::RefPtr o_pos_bar; - -/* - * Timeout function is called every half-second. - */ -static bool on_timeout() -{ - o_position->set_text(audio :: position_str()); - o_pos_bar->set_upper(audio :: duration()); - o_pos_bar->set_value(audio :: position()); - return true; -} - - void o_toggle() { if (audio :: get_driver()->is_playing()) @@ -27,11 +12,3 @@ void o_toggle() else audio :: play(); } - - -void controls_init() -{ - o_position = lib :: get_widget("o_cur_position"); - o_pos_bar = lib :: get_object("o_progress"); - lib :: schedule(on_timeout, 500); -} diff --git a/gui/gst.cpp b/gui/gst.cpp index bc0d51ef..2c2de598 100644 --- a/gui/gst.cpp +++ b/gui/gst.cpp @@ -20,6 +20,9 @@ static Gtk::Button *o_prev; static Gtk::Scale *o_seek; static Gtk::Button *o_stop; +static Gtk::Label *o_position; +static Glib::RefPtr o_pos_bar; + static bool gst_change_state(GstState state) { @@ -150,6 +153,14 @@ static bool on_seek(Gtk::ScrollType type, double value) return true; } +static bool on_timeout() +{ + o_position->set_text(audio :: position_str()); + o_pos_bar->set_upper(audio :: duration()); + o_pos_bar->set_value(audio :: position()); + return true; +} + void init_gst(int *argc, char ***argv) { @@ -166,6 +177,9 @@ void init_gst(int *argc, char ***argv) o_seek = lib :: get_widget("o_seek"); o_stop = lib :: get_widget("o_stop"); + o_position = lib :: get_widget("o_cur_position"); + o_pos_bar = lib :: get_object("o_progress"); + o_next->signal_clicked().connect(sigc::ptr_fun(on_next)); o_pause->signal_clicked().connect(sigc::ptr_fun(audio :: pause)); o_play->signal_clicked().connect(sigc::ptr_fun(audio :: play)); @@ -174,6 +188,7 @@ void init_gst(int *argc, char ***argv) o_stop->signal_clicked().connect(sigc::ptr_fun(audio :: stop)); gst_bus_add_watch(gst_bus, on_gst_message, NULL); + lib :: schedule(on_timeout, 500); } void quit_gst() diff --git a/gui/gui.cpp b/gui/gui.cpp index 47409d81..53b6b7c7 100644 --- a/gui/gui.cpp +++ b/gui/gui.cpp @@ -129,7 +129,6 @@ Gtk::Window *setup_gui() on_track_loaded(audio :: current_track()); /* Set up other tabs */ - controls_init(); collection_mgr_init(); init_tabs(); return window_init(); diff --git a/include/gui/controls.h b/include/gui/controls.h index 33be8bbd..97d9d6f2 100644 --- a/include/gui/controls.h +++ b/include/gui/controls.h @@ -7,6 +7,5 @@ void o_toggle(); void on_next(); -void controls_init(); #endif /* OCARINA_GUI_CONTROLS_H */