diff --git a/gui/gst.cpp b/gui/gst.cpp index fcfe9a9b..a727c524 100644 --- a/gui/gst.cpp +++ b/gui/gst.cpp @@ -18,9 +18,6 @@ static GtkScale *o_seek; static GtkSpinButton *o_count; static GtkToggleButton *o_enabled; - -static GtkLabel *o_duration; -static GtkLabel *o_position; static GtkAdjustment *o_progress; const gchar *TITLE_FMT = "%s"; @@ -35,18 +32,23 @@ static inline void __audio_set_label(const gchar *label, const gchar *fmt, g_free(markup); } +static inline void __audio_set_time_label(const gchar *label, unsigned int time) +{ + gchar *str = string_sec2str(time); + __audio_set_label(label, "%s", str); + g_free(str); +} + static void on_load(struct track *track) { Gtk::ToggleButton *toggle; - gchar *str; __audio_set_label("o_title", TITLE_FMT, track->tr_title); __audio_set_label("o_artist", ARTIST_FMT, track->tr_artist->ar_name); __audio_set_label("o_album", ALBUM_FMT, track->tr_album->al_name); - str = string_sec2str(track->tr_length); - gtk_label_set_text(o_duration, str); - g_free(str); + __audio_set_time_label("o_position", 0); + __audio_set_time_label("o_duration", track->tr_length); toggle = Glib :: wrap(GTK_TOGGLE_BUTTON(gui_builder_widget("o_ban")), false); toggle->set_active(playlist_has(PL_HIDDEN, track)); @@ -106,12 +108,9 @@ static void on_pause_enabled() static bool on_timeout() { - gchar *pos = string_sec2str(audio_position() / GST_SECOND); - gtk_adjustment_set_upper(o_progress, audio_duration()); gtk_adjustment_set_value(o_progress, audio_position()); - gtk_label_set_text(o_position, pos); - g_free(pos); + __audio_set_time_label("o_position", audio_position() / GST_SECOND); return true; } @@ -129,9 +128,6 @@ void gst :: init_pre() o_count = GTK_SPIN_BUTTON(gui_builder_widget("o_pause_count")); o_enabled = GTK_TOGGLE_BUTTON(gui_builder_widget("o_pause_enabled")); - - o_duration = GTK_LABEL(gui_builder_widget("o_duration")); - o_position = GTK_LABEL(gui_builder_widget("o_position")); o_progress = GTK_ADJUSTMENT(gui_builder_object("o_progress")); g_signal_connect(o_seek, "change-value", G_CALLBACK(on_seek), NULL);