comparison src/audacious/ui_new.c @ 4688:b3e2ea3f9297

display what would be played if user presses play button
author Tomasz Mon <desowin@gmail.com>
date Sat, 05 Jul 2008 15:42:03 +0200
parents 9e70ca57b5dd
children a5707f571100
comparison
equal deleted inserted replaced
4687:9e70ca57b5dd 4688:b3e2ea3f9297
83 { 83 {
84 playlist_next(playlist_get_active()); 84 playlist_next(playlist_get_active());
85 } 85 }
86 86
87 static void 87 static void
88 set_song_title(gpointer hook_data, gpointer user_data) 88 ui_set_current_song_title(gchar *text, gpointer user_data)
89 { 89 {
90 gchar *title = 90 gchar *title = g_strdup_printf("<big>%s</big>", text);
91 g_strdup_printf("<big>%s</big>",
92 playlist_get_info_text(playlist_get_active()));
93 gtk_label_set_text(GTK_LABEL(label_current), title); 91 gtk_label_set_text(GTK_LABEL(label_current), title);
94 g_object_set(G_OBJECT(label_current), "use-markup", TRUE, NULL); 92 g_object_set(G_OBJECT(label_current), "use-markup", TRUE, NULL);
95 g_free(title); 93 g_free(title);
96 } 94 }
97 95
98 static gboolean 96 static void
99 update_song_info(gpointer hook_data, gpointer user_data) 97 ui_playlist_update(Playlist *playlist, gpointer user_data)
98 {
99 gchar *text = playlist_get_info_text(playlist);
100 ui_set_current_song_title(text, NULL);
101 g_free(text);
102 }
103
104 static gboolean
105 ui_update_song_info(gpointer hook_data, gpointer user_data)
100 { 106 {
101 if (!playback_get_playing()) 107 if (!playback_get_playing())
102 { 108 {
103 gtk_range_set_value(GTK_RANGE(slider), (gdouble)0); 109 gtk_range_set_value(GTK_RANGE(slider), (gdouble)0);
104 return FALSE; 110 return FALSE;
143 } 149 }
144 150
145 static void 151 static void
146 ui_playback_begin(gpointer hook_data, gpointer user_data) 152 ui_playback_begin(gpointer hook_data, gpointer user_data)
147 { 153 {
148 update_song_info(NULL, NULL); 154 ui_update_song_info(NULL, NULL);
149 update_song_timeout_source = 155 update_song_timeout_source =
150 g_timeout_add_seconds(1, (GSourceFunc) update_song_info, NULL); 156 g_timeout_add_seconds(1, (GSourceFunc) ui_update_song_info, NULL);
151 } 157 }
152 158
153 static void 159 static void
154 ui_playback_stop(gpointer hook_data, gpointer user_data) 160 ui_playback_stop(gpointer hook_data, gpointer user_data)
155 { 161 {
160 } 166 }
161 167
162 static void 168 static void
163 ui_playback_end(gpointer hook_data, gpointer user_data) 169 ui_playback_end(gpointer hook_data, gpointer user_data)
164 { 170 {
165 update_song_info(NULL, NULL); 171 ui_update_song_info(NULL, NULL);
166 } 172 }
167 173
168 static GtkToolItem * 174 static GtkToolItem *
169 gtk_toolbar_button_add(GtkWidget *toolbar, void(*callback)(), const gchar *stock_id) 175 gtk_toolbar_button_add(GtkWidget *toolbar, void(*callback)(), const gchar *stock_id)
170 { 176 {
252 gtk_scale_set_draw_value(GTK_SCALE(slider), FALSE); 258 gtk_scale_set_draw_value(GTK_SCALE(slider), FALSE);
253 /* TODO: make this configureable */ 259 /* TODO: make this configureable */
254 gtk_range_set_update_policy(GTK_RANGE(slider), GTK_UPDATE_DELAYED); 260 gtk_range_set_update_policy(GTK_RANGE(slider), GTK_UPDATE_DELAYED);
255 gtk_box_pack_end(GTK_BOX(cvbox), slider, TRUE, TRUE, 0); 261 gtk_box_pack_end(GTK_BOX(cvbox), slider, TRUE, TRUE, 0);
256 262
257 hook_associate("title change", set_song_title, NULL); 263 hook_associate("title change", (HookFunction) ui_set_current_song_title, NULL);
258 hook_associate("playback seek", (HookFunction) update_song_info, NULL); 264 hook_associate("playback seek", (HookFunction) ui_update_song_info, NULL);
259 hook_associate("playback begin", (HookFunction) ui_playback_begin, NULL); 265 hook_associate("playback begin", (HookFunction) ui_playback_begin, NULL);
260 hook_associate("playback stop", (HookFunction) ui_playback_stop, NULL); 266 hook_associate("playback stop", (HookFunction) ui_playback_stop, NULL);
261 hook_associate("playback end", (HookFunction) ui_playback_end, NULL); 267 hook_associate("playback end", (HookFunction) ui_playback_end, NULL);
268 hook_associate("playlist update", (HookFunction) ui_playlist_update, NULL);
262 269
263 slider_change_handler_id = 270 slider_change_handler_id =
264 g_signal_connect(slider, "value-changed", 271 g_signal_connect(slider, "value-changed",
265 G_CALLBACK(ui_slider_value_changed_cb), NULL); 272 G_CALLBACK(ui_slider_value_changed_cb), NULL);
266 273
267 g_signal_connect(slider, "button-press-event", 274 g_signal_connect(slider, "button-press-event",
268 G_CALLBACK(ui_slider_button_press_cb), NULL); 275 G_CALLBACK(ui_slider_button_press_cb), NULL);
269 g_signal_connect(slider, "button-release-event", 276 g_signal_connect(slider, "button-release-event",
270 G_CALLBACK(ui_slider_button_release_cb), NULL); 277 G_CALLBACK(ui_slider_button_release_cb), NULL);
278
279 ui_playlist_update(playlist_get_active(), NULL);
271 280
272 gtk_widget_show_all(window); 281 gtk_widget_show_all(window);
273 gtk_main(); 282 gtk_main();
274 283
275 return TRUE; 284 return TRUE;