changeset 1672:600efc52c645 trunk

[svn] - be careful about referencing a NULL widget (e.g. headless/serveronly mode crashes on streams, bug #562)
author nenolod
date Tue, 12 Sep 2006 23:11:07 -0700
parents daabad781796
children f64e4d5ec1ea
files ChangeLog audacious/input.c audacious/mainwin.c audacious/playback.c
diffstat 4 files changed, 46 insertions(+), 7 deletions(-) [+]
line wrap: on
line diff
--- a/ChangeLog	Tue Sep 12 10:59:59 2006 -0700
+++ b/ChangeLog	Tue Sep 12 23:11:07 2006 -0700
@@ -1,3 +1,33 @@
+2006-09-12 17:59:59 +0000  Giacomo Lozito <james@develia.org>
+  revision [2279]
+  - amidi-plug 0.6 imported; among other improvements, multiple soundfont loading for fluidsynth backend and option to extract/display lyrics and comments contained in midi files
+
+  Changes:        Modified:
+  +3 -2           trunk/Plugins/Input/amidi-plug/Makefile.in  
+  +7 -1           trunk/Plugins/Input/amidi-plug/amidi-plug.c  
+  +1 -1           trunk/Plugins/Input/amidi-plug/backend-alsa/Makefile.in  
+  +1 -1           trunk/Plugins/Input/amidi-plug/backend-dummy/Makefile.in  
+  +1 -1           trunk/Plugins/Input/amidi-plug/backend-fluidsynth/Makefile.in  
+  +30 -14         trunk/Plugins/Input/amidi-plug/backend-fluidsynth/b-fluidsynth.c  
+  +1 -1           trunk/Plugins/Input/amidi-plug/backend-fluidsynth/b-fluidsynth.h  
+  +5 -5           trunk/Plugins/Input/amidi-plug/i_backend.c  
+  +1 -1           trunk/Plugins/Input/amidi-plug/i_common.h  
+  +4 -3           trunk/Plugins/Input/amidi-plug/i_configure-alsa.c  
+  +42 -6          trunk/Plugins/Input/amidi-plug/i_configure-ap.c  
+  +5 -5           trunk/Plugins/Input/amidi-plug/i_configure-dummy.c  
+  +223 -38        trunk/Plugins/Input/amidi-plug/i_configure-fluidsynth.c  
+  +75 -22         trunk/Plugins/Input/amidi-plug/i_configure.c  
+  +2 -0           trunk/Plugins/Input/amidi-plug/i_configure.h  
+  +167 -6         trunk/Plugins/Input/amidi-plug/i_fileinfo.c  
+  +44 -0          trunk/Plugins/Input/amidi-plug/i_midi.c  
+  +5 -0           trunk/Plugins/Input/amidi-plug/i_midi.h  
+  +1 -0           trunk/Plugins/Input/amidi-plug/i_midievent.h  
+  +4 -1           trunk/Plugins/Input/amidi-plug/i_utils.c  
+  +1 -1           trunk/Plugins/Input/amidi-plug/i_utils.h  
+  +2 -2           trunk/configure.ac  
+  +1 -1           trunk/mk/rules.mk.in  
+
+
 2006-09-11 23:06:23 +0000  Tony Vroon <chainsaw@gentoo.org>
   revision [2277]
   Use the VFS.
--- a/audacious/input.c	Tue Sep 12 10:59:59 2006 -0700
+++ b/audacious/input.c	Tue Sep 12 23:11:07 2006 -0700
@@ -760,8 +760,11 @@
 
     ip_data.buffering = status;
 
-    if (ip_data.buffering == TRUE && mainwin_playstatus->ps_status == STATUS_STOP)
+    g_return_if_fail(mainwin_playstatus != NULL);
+
+    if (ip_data.buffering == TRUE && mainwin_playstatus != NULL && mainwin_playstatus->ps_status == STATUS_STOP)
         mainwin_playstatus->ps_status = STATUS_PLAY;
+
     playstatus_set_status_buffering(mainwin_playstatus, ip_data.buffering);
 }
 
--- a/audacious/mainwin.c	Tue Sep 12 10:59:59 2006 -0700
+++ b/audacious/mainwin.c	Tue Sep 12 23:11:07 2006 -0700
@@ -874,7 +874,7 @@
     widget_show(WIDGET(mainwin_10sec_num));
     widget_show(WIDGET(mainwin_sec_num));
 
-    if (!bmp_playback_get_paused())
+    if (!bmp_playback_get_paused() && mainwin_playstatus != NULL)
         playstatus_set_status(mainwin_playstatus, STATUS_PLAY);
 
     if (playlist_get_current_length() != -1) {
@@ -944,7 +944,8 @@
     textbox_set_text(mainwin_freq_text, "  ");
     monostereo_set_num_channels(mainwin_monostereo, 0);
 
-    playstatus_set_status(mainwin_playstatus, STATUS_STOP);
+    if (mainwin_playstatus != NULL)
+        playstatus_set_status(mainwin_playstatus, STATUS_STOP);
 
     /* hide playback time */
     widget_hide(WIDGET(mainwin_minus_num));
--- a/audacious/playback.c	Tue Sep 12 10:59:59 2006 -0700
+++ b/audacious/playback.c	Tue Sep 12 23:11:07 2006 -0700
@@ -124,13 +124,15 @@
 
     ip_data.paused = !ip_data.paused;
 
+    if (get_current_input_plugin()->pause)
+        get_current_input_plugin()->pause(ip_data.paused);
+
+    g_return_if_fail(mainwin_playstatus != NULL);
+
     if (ip_data.paused)
         playstatus_set_status(mainwin_playstatus, STATUS_PAUSE);
     else
         playstatus_set_status(mainwin_playstatus, STATUS_PLAY);
-
-    if (get_current_input_plugin()->pause)
-        get_current_input_plugin()->pause(ip_data.paused);
 }
 
 void
@@ -156,8 +158,11 @@
     }
 
     ip_data.buffering = FALSE;
+    ip_data.playing = FALSE;
+
+    g_return_if_fail(mainwin_playstatus != NULL);
+
     playstatus_set_status_buffering(mainwin_playstatus, FALSE);
-    ip_data.playing = FALSE;
 }
 
 void