PKGBUILDs/extra/bmp/bmp-0.9.7.1-crossfade-0.3.9.patch
2009-10-09 21:23:22 -05:00

108 lines
3.4 KiB
Diff

Patch taken from xmms-crossfade 3.10 tarball. Required for crossfade to
work. http://www.eisenlohr.org/xmms-crossfade/
diff -ur bmp-0.9.7.1/beep/mainwin.c bmp-0.9.7.1.patched/beep/mainwin.c
--- bmp-0.9.7.1/beep/mainwin.c 2005-05-09 10:45:39.000000000 +0200
+++ bmp-0.9.7.1.patched/beep/mainwin.c 2005-11-25 00:03:59.000000000 +0100
@@ -655,9 +655,11 @@
mainwin_set_shade(!cfg.player_shaded);
}
+gboolean is_quitting = FALSE;
void
mainwin_quit_cb(void)
{
+ is_quitting = TRUE;
gtk_widget_hide(equalizerwin);
gtk_widget_hide(playlistwin);
gtk_widget_hide(mainwin);
@@ -1318,7 +1320,7 @@
change_song(guint pos)
{
if (bmp_playback_get_playing())
- bmp_playback_stop();
+ bmp_playback_stop_for_restart();
playlist_set_position(pos);
bmp_playback_initiate();
diff -ur bmp-0.9.7.1/beep/playback.c bmp-0.9.7.1.patched/beep/playback.c
--- bmp-0.9.7.1/beep/playback.c 2005-01-26 06:56:15.000000000 +0100
+++ bmp-0.9.7.1.patched/beep/playback.c 2005-11-25 00:03:59.000000000 +0100
@@ -89,7 +89,7 @@
return;
if (bmp_playback_get_playing())
- bmp_playback_stop();
+ bmp_playback_stop_for_restart();
vis_clear_data(mainwin_vis);
vis_clear_data(playlistwin_vis);
@@ -135,6 +135,15 @@
get_current_input_plugin()->pause(ip_data.paused);
}
+gboolean input_stopped_for_restart = FALSE;
+void
+bmp_playback_stop_for_restart(void)
+{
+ input_stopped_for_restart = TRUE;
+ bmp_playback_stop();
+ input_stopped_for_restart = FALSE;
+}
+
void
bmp_playback_stop(void)
{
diff -ur bmp-0.9.7.1/beep/playback.h bmp-0.9.7.1.patched/beep/playback.h
--- bmp-0.9.7.1/beep/playback.h 2004-12-04 10:04:26.000000000 +0100
+++ bmp-0.9.7.1.patched/beep/playback.h 2005-11-25 00:03:59.000000000 +0100
@@ -26,6 +26,7 @@
void bmp_playback_initiate(void);
void bmp_playback_pause(void);
void bmp_playback_stop(void);
+void bmp_playback_stop_for_restart(void);
gboolean bmp_playback_play_file(const gchar * filename);
gboolean bmp_playback_get_playing(void);
gboolean bmp_playback_get_paused(void);
diff -ur bmp-0.9.7.1/beep/playlist.c bmp-0.9.7.1.patched/beep/playlist.c
--- bmp-0.9.7.1/beep/playlist.c 2005-08-11 09:25:51.000000000 +0200
+++ bmp-0.9.7.1.patched/beep/playlist.c 2005-11-25 00:03:59.000000000 +0100
@@ -817,7 +817,7 @@
if (bmp_playback_get_playing()) {
/* We need to stop before changing playlist_position */
PLAYLIST_UNLOCK();
- bmp_playback_stop();
+ bmp_playback_stop_for_restart();
PLAYLIST_LOCK();
restart_playing = TRUE;
}
@@ -868,7 +868,7 @@
if (bmp_playback_get_playing()) {
/* We need to stop before changing playlist_position */
PLAYLIST_UNLOCK();
- bmp_playback_stop();
+ bmp_playback_stop_for_restart();
PLAYLIST_LOCK();
restart_playing = TRUE;
}
@@ -1018,7 +1018,7 @@
if (bmp_playback_get_playing()) {
/* We need to stop before changing playlist_position */
PLAYLIST_UNLOCK();
- bmp_playback_stop();
+ bmp_playback_stop_for_restart();
PLAYLIST_LOCK();
restart_playing = TRUE;
}
@@ -1047,7 +1047,10 @@
{
GList *plist_pos_list;
- bmp_playback_stop();
+ if (cfg.repeat)
+ bmp_playback_stop_for_restart();
+ else
+ bmp_playback_stop();
PLAYLIST_LOCK();
plist_pos_list = find_playlist_position_list();