gui/gst: Completely define the positon and duration labels in glade

Signed-off-by: Anna Schumaker <Anna@OcarinaProject.net>
This commit is contained in:
Anna Schumaker 2015-12-24 12:46:08 -05:00
parent 15da6b4249
commit 71c4e6a1aa
1 changed files with 10 additions and 14 deletions

View File

@ -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 = "<span size='xx-large'>%s</span>";
@ -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);