1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
|
diff -ur xmms-1.2.10/xmms/input.c xmms-1.2.10.patched/xmms/input.c
--- xmms-1.2.10/xmms/input.c 2003-08-08 19:10:44.000000000 +0200
+++ xmms-1.2.10.patched/xmms/input.c 2005-11-25 00:12:36.000000000 +0100
@@ -285,6 +285,14 @@
}
}
+gboolean input_stopped_for_restart = FALSE; /* crossfade */
+void input_stop_for_restart() /* crossfade */
+{
+ input_stopped_for_restart = TRUE;
+ input_stop();
+ input_stopped_for_restart = FALSE;
+}
+
void input_stop(void)
{
if (ip_data->playing && get_current_input_plugin())
diff -ur xmms-1.2.10/xmms/input.h xmms-1.2.10.patched/xmms/input.h
--- xmms-1.2.10/xmms/input.h 2000-02-16 22:05:57.000000000 +0100
+++ xmms-1.2.10.patched/xmms/input.h 2005-11-25 00:12:36.000000000 +0100
@@ -34,6 +34,7 @@
gboolean input_check_file(gchar * filename);
void input_play(char *filename);
void input_stop(void);
+void input_stop_for_restart(void);
void input_pause(void);
int input_get_time(void);
void input_set_eq(int on, float preamp, float *bands);
diff -ur xmms-1.2.10/xmms/main.c xmms-1.2.10.patched/xmms/main.c
--- xmms-1.2.10/xmms/main.c 2004-02-23 21:31:43.000000000 +0100
+++ xmms-1.2.10.patched/xmms/main.c 2005-11-25 00:12:36.000000000 +0100
@@ -881,8 +881,10 @@
mainwin_set_shade(!cfg.player_shaded);
}
+gboolean is_quitting = FALSE; /* crossfade */
void mainwin_quit_cb(void)
{
+ is_quitting = TRUE; /* crossfade */
input_stop();
gtk_widget_hide(equalizerwin);
gtk_widget_hide(playlistwin);
@@ -1523,7 +1525,8 @@
int *pos;
if (get_input_playing())
- input_stop();
+ input_stop_for_restart();
+
pos = gtk_clist_get_row_data(clist, GPOINTER_TO_INT(clist->selection->data));
playlist_set_position(*pos);
playlist_play();
diff -ur xmms-1.2.10/xmms/playlist.c xmms-1.2.10.patched/xmms/playlist.c
--- xmms-1.2.10/xmms/playlist.c 2004-02-23 21:31:43.000000000 +0100
+++ xmms-1.2.10.patched/xmms/playlist.c 2005-11-25 00:12:36.000000000 +0100
@@ -124,7 +124,7 @@
if (get_input_playing())
{
PL_UNLOCK();
- input_stop();
+ input_stop_for_restart();
PL_LOCK();
*restart_playing = TRUE;
}
@@ -570,7 +570,7 @@
}
if (get_input_playing())
- input_stop();
+ input_stop_for_restart();
vis_clear_data(mainwin_vis);
vis_clear_data(playlistwin_vis);
@@ -668,7 +668,7 @@
{
/* We need to stop before changing playlist_position */
PL_UNLOCK();
- input_stop();
+ input_stop_for_restart();
PL_LOCK();
restart_playing = TRUE;
}
@@ -723,7 +723,7 @@
{
/* We need to stop before changing playlist_position */
PL_UNLOCK();
- input_stop();
+ input_stop_for_restart();
PL_LOCK();
restart_playing = TRUE;
}
@@ -852,7 +852,7 @@
{
/* We need to stop before changing playlist_position */
PL_UNLOCK();
- input_stop();
+ input_stop_for_restart();
PL_LOCK();
restart_playing = TRUE;
}
|