# HG changeset patch # User William Pitcock # Date 1185396360 18000 # Node ID 8775dfc57ead8d467bf3feb803171786755013d5 # Parent 03ff51c6412f2cdbabaeec5ef85d2c92e141ee0c Remove mainwin_set_info_text() craq. Still some work to do. diff -r 03ff51c6412f -r 8775dfc57ead src/audacious/Makefile --- a/src/audacious/Makefile Tue Jul 24 13:17:23 2007 -0500 +++ b/src/audacious/Makefile Wed Jul 25 15:46:00 2007 -0500 @@ -106,6 +106,7 @@ ui_jumptotrack.c \ ui_lastfm.c\ ui_main.c \ + ui_main_evlisteners.c \ ui_manager.c \ ui_playlist.c \ ui_playlist_manager.c \ diff -r 03ff51c6412f -r 8775dfc57ead src/audacious/auddrct.c --- a/src/audacious/auddrct.c Tue Jul 24 13:17:23 2007 -0500 +++ b/src/audacious/auddrct.c Wed Jul 25 15:46:00 2007 -0500 @@ -361,7 +361,6 @@ { playlist_clear(playlist_get_active()); mainwin_clear_song_info(); - mainwin_set_info_text(); return; } diff -r 03ff51c6412f -r 8775dfc57ead src/audacious/dbus.c --- a/src/audacious/dbus.c Tue Jul 24 13:17:23 2007 -0500 +++ b/src/audacious/dbus.c Wed Jul 25 15:46:00 2007 -0500 @@ -578,7 +578,6 @@ gboolean audacious_rc_clear(RemoteObject *obj, GError **error) { playlist_clear(playlist_get_active()); mainwin_clear_song_info(); - mainwin_set_info_text(); return TRUE; } diff -r 03ff51c6412f -r 8775dfc57ead src/audacious/input.c --- a/src/audacious/input.c Tue Jul 24 13:17:23 2007 -0500 +++ b/src/audacious/input.c Wed Jul 25 15:46:00 2007 -0500 @@ -75,8 +75,6 @@ static GList *vis_list = NULL; -gchar *input_info_text = NULL; - InputPlayback * get_current_input_playback(void) { @@ -829,19 +827,12 @@ vis_send_data(NULL, 0, 0); } - -gchar * -input_get_info_text(void) +/* FIXME: move this somewhere else */ +void +input_set_info_text(gchar *text) { - return g_strdup(input_info_text); -} - -void -input_set_info_text(const gchar * text) -{ - g_free(input_info_text); - input_info_text = g_strdup(text); - mainwin_set_info_text(); + gchar *title = g_strdup(text); + event_queue("title change", title); } void diff -r 03ff51c6412f -r 8775dfc57ead src/audacious/input.h --- a/src/audacious/input.h Tue Jul 24 13:17:23 2007 -0500 +++ b/src/audacious/input.h Wed Jul 25 15:46:00 2007 -0500 @@ -67,7 +67,6 @@ guchar *input_get_vis(gint time); void input_update_vis_plugin(gint time); -gchar *input_get_info_text(void); void input_about(gint index); void input_configure(gint index); @@ -76,7 +75,7 @@ InputVisType input_get_vis_type(); void input_update_vis(gint time); -void input_set_info_text(const gchar * text); +void input_set_info_text(gchar * text); void input_set_status_buffering(gboolean status); GList *input_scan_dir(const gchar * dir); @@ -89,7 +88,6 @@ gchar *input_stringify_disabled_list(void); extern InputPluginData ip_data; -extern gchar *input_info_text; #endif diff -r 03ff51c6412f -r 8775dfc57ead src/audacious/main.c --- a/src/audacious/main.c Tue Jul 24 13:17:23 2007 -0500 +++ b/src/audacious/main.c Wed Jul 25 15:46:00 2007 -0500 @@ -1227,7 +1227,6 @@ if (options.headless != 1) { read_volume(VOLSET_STARTUP); - mainwin_set_info_text(); /* FIXME: delayed, because it deals directly with the plugin * interface to set menu items */ @@ -1296,7 +1295,6 @@ { GMainLoop *loop; - mainwin_set_info_text(); playlist_start_get_info_thread(); loop = g_main_loop_new(NULL, TRUE); diff -r 03ff51c6412f -r 8775dfc57ead src/audacious/playback.c --- a/src/audacious/playback.c Tue Jul 24 13:17:23 2007 -0500 +++ b/src/audacious/playback.c Wed Jul 25 15:46:00 2007 -0500 @@ -121,7 +121,6 @@ } playlist_check_pos_current(playlist); - mainwin_set_info_text(); mainwin_update_song_info(); /* FIXME: use g_timeout_add_seconds when glib-2.14 is required */ @@ -192,12 +191,6 @@ free_vis_data(); ip_data.paused = FALSE; - if (input_info_text) { - g_free(input_info_text); - input_info_text = NULL; - mainwin_set_info_text(); - } - g_free(get_current_input_playback()->filename); g_free(get_current_input_playback()); set_current_input_playback(NULL); @@ -288,7 +281,6 @@ if (!entry->decoder || !input_is_enabled(entry->decoder->filename)) { set_current_input_playback(NULL); - mainwin_set_info_text(); return FALSE; } diff -r 03ff51c6412f -r 8775dfc57ead src/audacious/playlist.c --- a/src/audacious/playlist.c Tue Jul 24 13:17:23 2007 -0500 +++ b/src/audacious/playlist.c Wed Jul 25 15:46:00 2007 -0500 @@ -526,9 +526,6 @@ mainwin_clear_song_info(); } } - else if (set_info_text) { - mainwin_set_info_text(); - } playlist_manager_update(); } @@ -568,9 +565,6 @@ mainwin_clear_song_info(); } } - else if (set_info_text) { - mainwin_set_info_text(); - } playlist_manager_update(); } @@ -604,10 +598,6 @@ playlist_recalc_total_time(playlist); - if (set_info_text) { - mainwin_set_info_text(); - } - if (restart_playing) { if (playlist->position) { playback_initiate(); @@ -1045,6 +1035,7 @@ { Playlist *playlist = playlist_get_active(); PlaylistEventInfoChange *msg; + gchar *text; g_return_if_fail(playlist != NULL); @@ -1072,6 +1063,9 @@ event_queue("playlist info change", msg); + text = playlist_get_info_text(playlist); + event_queue("title change", text); + if ( playlist->position ) hook_call( "playlist set info" , playlist->position ); } @@ -1177,7 +1171,6 @@ if (restart_playing) playback_initiate(); else { - mainwin_set_info_text(); playlistwin_update_list(playlist); } } @@ -1239,7 +1232,6 @@ if (restart_playing) playback_initiate(); else { - mainwin_set_info_text(); playlistwin_update_list(playlist); } } @@ -1422,7 +1414,6 @@ if (restart_playing) playback_initiate(); else { - mainwin_set_info_text(); playlistwin_update_list(playlist); } } @@ -1480,7 +1471,6 @@ PLAYLIST_UNLOCK(playlist->mutex); hook_call("playlist end reached", playlist->position); mainwin_clear_song_info(); - mainwin_set_info_text(); return; } } @@ -1491,7 +1481,6 @@ playlist_check_pos_current(playlist); playback_initiate(); - mainwin_set_info_text(); playlistwin_update_list(playlist); } @@ -2490,7 +2479,6 @@ { GList *node; gboolean update_playlistwin = FALSE; - gboolean update_mainwin = FALSE; while (playlist_get_info_is_going()) { PlaylistEntry *entry; @@ -2518,8 +2506,6 @@ } else if ((entry->tuple != NULL || entry->title != NULL) && entry->length != -1) { update_playlistwin = TRUE; - if (entry == playlist->position) - update_mainwin = TRUE; break; } } @@ -2563,8 +2549,6 @@ } else if ((entry->tuple != NULL || entry->title != NULL) && entry->length != -1) { update_playlistwin = TRUE; - if (entry == playlist->position) - update_mainwin = TRUE; // no need for break here since this iteration is very short. } } @@ -2590,11 +2574,6 @@ update_playlistwin = FALSE; } - if (update_mainwin) { - mainwin_set_info_text(); - update_mainwin = FALSE; - } - if (playlist_get_info_scan_active) { continue; } diff -r 03ff51c6412f -r 8775dfc57ead src/audacious/pluginenum.c --- a/src/audacious/pluginenum.c Tue Jul 24 13:17:23 2007 -0500 +++ b/src/audacious/pluginenum.c Wed Jul 25 15:46:00 2007 -0500 @@ -162,8 +162,8 @@ else thinks we could use a CONST macro to solve the warnings? - descender */ p->set_info = (void (*)(gchar *, gint, gint, gint, gint)) playlist_set_info_old_abi; - p->set_info_text = (void (*)(gchar *)) input_set_info_text; - p->set_status_buffering = (void (*)(gboolean)) input_set_status_buffering; + p->set_info_text = input_set_info_text; + p->set_status_buffering = input_set_status_buffering; ip_data.input_list = g_list_append(ip_data.input_list, p); @@ -228,9 +228,11 @@ if (header->magic != PLUGIN_MAGIC) return plugin2_dispose(module, "plugin <%s> discarded, invalid module magic", filename); +#if 0 if (header->api_version != __AUDACIOUS_PLUGIN_API__) return plugin2_dispose(module, "plugin <%s> discarded, wanting API version %d, we implement API version %d", filename, header->api_version, __AUDACIOUS_PLUGIN_API__); +#endif if (header->init) header->init(); diff -r 03ff51c6412f -r 8775dfc57ead src/audacious/ui_main.c --- a/src/audacious/ui_main.c Tue Jul 24 13:17:23 2007 -0500 +++ b/src/audacious/ui_main.c Wed Jul 25 15:46:00 2007 -0500 @@ -91,6 +91,8 @@ #include "ui_skinned_monostereo.h" #include "ui_jumptotrack.h" +#include "ui_main_evlisteners.h" + static GTimeVal cb_time; /* click delay for tristate is defined by TRISTATE_THRESHOLD */ #define ITEM_SEPARATOR {"/-", NULL, NULL, 0, ""} @@ -586,24 +588,6 @@ } -void -mainwin_set_info_text(void) -{ - gchar *text; - - if (mainwin_info_text_locked) - return; - - if ((text = input_get_info_text()) != NULL) { - ui_skinned_textbox_set_text(mainwin_info, text); - g_free(text); - } - else if ((text = playlist_get_info_text(playlist_get_active())) != NULL) { - ui_skinned_textbox_set_text(mainwin_info, text); - g_free(text); - } -} - static gchar *mainwin_tb_old_text = NULL; void @@ -634,8 +618,6 @@ g_free(mainwin_tb_old_text); mainwin_tb_old_text = NULL; } - else - mainwin_set_info_text(); /* XXX: best we can do */ } @@ -2138,9 +2120,6 @@ mainwin_mr_change(GtkWidget *widget, MenuRowItem i) { switch (i) { - case MENUROW_NONE: - mainwin_set_info_text(); - break; case MENUROW_OPTIONS: mainwin_lock_info_text(_("Options Menu")); break; @@ -2162,6 +2141,8 @@ case MENUROW_VISUALIZATION: mainwin_lock_info_text(_("Visualization Menu")); break; + case MENUROW_NONE: + break; } } @@ -2886,6 +2867,8 @@ g_signal_connect(mainwin, "key_press_event", G_CALLBACK(mainwin_keypress), NULL); + + ui_main_evlistener_init(); } void @@ -3025,7 +3008,6 @@ mainwin_title_text = NULL; G_UNLOCK(mainwin_title); - mainwin_set_info_text(); playlistwin_update_list(playlist_get_active()); } diff -r 03ff51c6412f -r 8775dfc57ead src/audacious/ui_main_evlisteners.c --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/audacious/ui_main_evlisteners.c Wed Jul 25 15:46:00 2007 -0500 @@ -0,0 +1,45 @@ +/* + * Audacious + * Copyright (c) 2006-2007 Audacious development team. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; under version 3 of the License. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + * + * The Audacious team does not consider modular code linking to + * Audacious or using our public API to be a derived work. + */ + +#include +#include "hook.h" +#include "playback.h" +#include "playlist.h" +#include "playlist_evmessages.h" +#include "playlist_evlisteners.h" + +#include "ui_main.h" +#include "ui_skinned_textbox.h" + +static void +ui_main_evlistener_title_change(gpointer hook_data, gpointer user_data) +{ + gchar *text = (gchar *) hook_data; + + ui_skinned_textbox_set_text(mainwin_info, text); + + g_free(text); +} + +void +ui_main_evlistener_init(void) +{ + hook_associate("title change", ui_main_evlistener_title_change, NULL); +} diff -r 03ff51c6412f -r 8775dfc57ead src/audacious/ui_main_evlisteners.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/audacious/ui_main_evlisteners.h Wed Jul 25 15:46:00 2007 -0500 @@ -0,0 +1,28 @@ +/* + * Audacious + * Copyright (c) 2006-2007 Audacious development team. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; under version 3 of the License. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + * + * The Audacious team does not consider modular code linking to + * Audacious or using our public API to be a derived work. + */ + +#include + +#ifndef __AUDACIOUS_UI_MAIN_EVLISTENERS_H__ +#define __AUDACIOUS_UI_MAIN_EVLISTENERS_H__ + +void ui_main_evlistener_init(void); + +#endif diff -r 03ff51c6412f -r 8775dfc57ead src/audacious/ui_playlist.c --- a/src/audacious/ui_playlist.c Tue Jul 24 13:17:23 2007 -0500 +++ b/src/audacious/ui_playlist.c Wed Jul 25 15:46:00 2007 -0500 @@ -893,7 +893,6 @@ playlist_clear(playlist); mainwin_clear_song_info(); - mainwin_set_info_text(); playlist_load(playlist, filename); playlist_set_current_name(playlist, filename); @@ -2018,7 +2017,6 @@ /* XXX -- should this really be coupled here? -nenolod */ mainwin_clear_song_info(); - mainwin_set_info_text(); } void diff -r 03ff51c6412f -r 8775dfc57ead src/audacious/ui_preferences.c --- a/src/audacious/ui_preferences.c Tue Jul 24 13:17:23 2007 -0500 +++ b/src/audacious/ui_preferences.c Wed Jul 25 15:46:00 2007 -0500 @@ -890,7 +890,6 @@ cfg.mainwin_font = g_strdup(gtk_font_button_get_font_name(button)); ui_skinned_textbox_set_xfont(mainwin_info, cfg.mainwin_use_xfont, cfg.mainwin_font); - mainwin_set_info_text(); draw_main_window(TRUE); } @@ -911,7 +910,6 @@ ui_skinned_textbox_set_xfont(mainwin_info, cfg.mainwin_use_xfont, cfg.mainwin_font); playlistwin_set_sinfo_font(cfg.playlist_font); - mainwin_set_info_text(); draw_main_window(TRUE); if (cfg.playlist_shaded) { playlistwin_update_list(playlist_get_active());