|
![](https://seccdn.libravatar.org/avatar/e068a9fc1aa332290d8ef9a94152109a05fd6d9b0f9cfacab0e39264a41e9975?s=16&d=retro) |
1fbbb3f |
diff -Nur audacious-plugins-fedora-1.5.1-orig/src/sndfile/plugin.c audacious-plugins-fedora-1.5.1/src/sndfile/plugin.c
|
|
![](https://seccdn.libravatar.org/avatar/e068a9fc1aa332290d8ef9a94152109a05fd6d9b0f9cfacab0e39264a41e9975?s=16&d=retro) |
1fbbb3f |
--- audacious-plugins-fedora-1.5.1-orig/src/sndfile/plugin.c 2008-06-08 10:37:44.000000000 +0200
|
|
![](https://seccdn.libravatar.org/avatar/e068a9fc1aa332290d8ef9a94152109a05fd6d9b0f9cfacab0e39264a41e9975?s=16&d=retro) |
1fbbb3f |
+++ audacious-plugins-fedora-1.5.1/src/sndfile/plugin.c 2009-06-05 00:35:29.000000000 +0200
|
|
![](https://seccdn.libravatar.org/avatar/e068a9fc1aa332290d8ef9a94152109a05fd6d9b0f9cfacab0e39264a41e9975?s=16&d=retro) |
1fbbb3f |
@@ -47,6 +47,7 @@
|
|
![](https://seccdn.libravatar.org/avatar/e068a9fc1aa332290d8ef9a94152109a05fd6d9b0f9cfacab0e39264a41e9975?s=16&d=retro) |
1fbbb3f |
static gint song_length;
|
|
![](https://seccdn.libravatar.org/avatar/e068a9fc1aa332290d8ef9a94152109a05fd6d9b0f9cfacab0e39264a41e9975?s=16&d=retro) |
1fbbb3f |
static gint bit_rate = 0;
|
|
![](https://seccdn.libravatar.org/avatar/e068a9fc1aa332290d8ef9a94152109a05fd6d9b0f9cfacab0e39264a41e9975?s=16&d=retro) |
1fbbb3f |
static glong seek_time = -1;
|
|
![](https://seccdn.libravatar.org/avatar/e068a9fc1aa332290d8ef9a94152109a05fd6d9b0f9cfacab0e39264a41e9975?s=16&d=retro) |
1fbbb3f |
+static volatile char pause_flag;
|
|
![](https://seccdn.libravatar.org/avatar/e068a9fc1aa332290d8ef9a94152109a05fd6d9b0f9cfacab0e39264a41e9975?s=16&d=retro) |
1fbbb3f |
|
|
![](https://seccdn.libravatar.org/avatar/e068a9fc1aa332290d8ef9a94152109a05fd6d9b0f9cfacab0e39264a41e9975?s=16&d=retro) |
1fbbb3f |
static GThread *decode_thread;
|
|
![](https://seccdn.libravatar.org/avatar/e068a9fc1aa332290d8ef9a94152109a05fd6d9b0f9cfacab0e39264a41e9975?s=16&d=retro) |
1fbbb3f |
static GMutex *decode_mutex;
|
|
![](https://seccdn.libravatar.org/avatar/e068a9fc1aa332290d8ef9a94152109a05fd6d9b0f9cfacab0e39264a41e9975?s=16&d=retro) |
1fbbb3f |
@@ -121,6 +122,7 @@
|
|
![](https://seccdn.libravatar.org/avatar/e068a9fc1aa332290d8ef9a94152109a05fd6d9b0f9cfacab0e39264a41e9975?s=16&d=retro) |
1fbbb3f |
plugin_init (void)
|
|
![](https://seccdn.libravatar.org/avatar/e068a9fc1aa332290d8ef9a94152109a05fd6d9b0f9cfacab0e39264a41e9975?s=16&d=retro) |
1fbbb3f |
{
|
|
![](https://seccdn.libravatar.org/avatar/e068a9fc1aa332290d8ef9a94152109a05fd6d9b0f9cfacab0e39264a41e9975?s=16&d=retro) |
1fbbb3f |
seek_time = -1;
|
|
![](https://seccdn.libravatar.org/avatar/e068a9fc1aa332290d8ef9a94152109a05fd6d9b0f9cfacab0e39264a41e9975?s=16&d=retro) |
1fbbb3f |
+ pause_flag = 0;
|
|
![](https://seccdn.libravatar.org/avatar/e068a9fc1aa332290d8ef9a94152109a05fd6d9b0f9cfacab0e39264a41e9975?s=16&d=retro) |
1fbbb3f |
|
|
![](https://seccdn.libravatar.org/avatar/e068a9fc1aa332290d8ef9a94152109a05fd6d9b0f9cfacab0e39264a41e9975?s=16&d=retro) |
1fbbb3f |
decode_mutex = g_mutex_new();
|
|
![](https://seccdn.libravatar.org/avatar/e068a9fc1aa332290d8ef9a94152109a05fd6d9b0f9cfacab0e39264a41e9975?s=16&d=retro) |
1fbbb3f |
decode_cond = g_cond_new();
|
|
![](https://seccdn.libravatar.org/avatar/e068a9fc1aa332290d8ef9a94152109a05fd6d9b0f9cfacab0e39264a41e9975?s=16&d=retro) |
1fbbb3f |
@@ -362,6 +364,22 @@
|
|
![](https://seccdn.libravatar.org/avatar/e068a9fc1aa332290d8ef9a94152109a05fd6d9b0f9cfacab0e39264a41e9975?s=16&d=retro) |
1fbbb3f |
return TRUE;
|
|
![](https://seccdn.libravatar.org/avatar/e068a9fc1aa332290d8ef9a94152109a05fd6d9b0f9cfacab0e39264a41e9975?s=16&d=retro) |
1fbbb3f |
}
|
|
![](https://seccdn.libravatar.org/avatar/e068a9fc1aa332290d8ef9a94152109a05fd6d9b0f9cfacab0e39264a41e9975?s=16&d=retro) |
1fbbb3f |
|
|
![](https://seccdn.libravatar.org/avatar/e068a9fc1aa332290d8ef9a94152109a05fd6d9b0f9cfacab0e39264a41e9975?s=16&d=retro) |
1fbbb3f |
+static void do_seek (InputPlayback * playback) {
|
|
![](https://seccdn.libravatar.org/avatar/e068a9fc1aa332290d8ef9a94152109a05fd6d9b0f9cfacab0e39264a41e9975?s=16&d=retro) |
1fbbb3f |
+ playback->output->flush (seek_time);
|
|
![](https://seccdn.libravatar.org/avatar/e068a9fc1aa332290d8ef9a94152109a05fd6d9b0f9cfacab0e39264a41e9975?s=16&d=retro) |
1fbbb3f |
+ sf_seek (sndfile, (long long) seek_time * sfinfo.samplerate / 1000, SEEK_SET);
|
|
![](https://seccdn.libravatar.org/avatar/e068a9fc1aa332290d8ef9a94152109a05fd6d9b0f9cfacab0e39264a41e9975?s=16&d=retro) |
1fbbb3f |
+ seek_time = -1;
|
|
![](https://seccdn.libravatar.org/avatar/e068a9fc1aa332290d8ef9a94152109a05fd6d9b0f9cfacab0e39264a41e9975?s=16&d=retro) |
1fbbb3f |
+}
|
|
![](https://seccdn.libravatar.org/avatar/e068a9fc1aa332290d8ef9a94152109a05fd6d9b0f9cfacab0e39264a41e9975?s=16&d=retro) |
1fbbb3f |
+
|
|
![](https://seccdn.libravatar.org/avatar/e068a9fc1aa332290d8ef9a94152109a05fd6d9b0f9cfacab0e39264a41e9975?s=16&d=retro) |
1fbbb3f |
+static void do_pause (InputPlayback * playback) {
|
|
![](https://seccdn.libravatar.org/avatar/e068a9fc1aa332290d8ef9a94152109a05fd6d9b0f9cfacab0e39264a41e9975?s=16&d=retro) |
1fbbb3f |
+ playback->output->pause (1);
|
|
![](https://seccdn.libravatar.org/avatar/e068a9fc1aa332290d8ef9a94152109a05fd6d9b0f9cfacab0e39264a41e9975?s=16&d=retro) |
1fbbb3f |
+ while (pause_flag) {
|
|
![](https://seccdn.libravatar.org/avatar/e068a9fc1aa332290d8ef9a94152109a05fd6d9b0f9cfacab0e39264a41e9975?s=16&d=retro) |
1fbbb3f |
+ if (seek_time != -1)
|
|
![](https://seccdn.libravatar.org/avatar/e068a9fc1aa332290d8ef9a94152109a05fd6d9b0f9cfacab0e39264a41e9975?s=16&d=retro) |
1fbbb3f |
+ do_seek (playback);
|
|
![](https://seccdn.libravatar.org/avatar/e068a9fc1aa332290d8ef9a94152109a05fd6d9b0f9cfacab0e39264a41e9975?s=16&d=retro) |
1fbbb3f |
+ g_usleep(50000);
|
|
![](https://seccdn.libravatar.org/avatar/e068a9fc1aa332290d8ef9a94152109a05fd6d9b0f9cfacab0e39264a41e9975?s=16&d=retro) |
1fbbb3f |
+ }
|
|
![](https://seccdn.libravatar.org/avatar/e068a9fc1aa332290d8ef9a94152109a05fd6d9b0f9cfacab0e39264a41e9975?s=16&d=retro) |
1fbbb3f |
+ playback->output->pause (0);
|
|
![](https://seccdn.libravatar.org/avatar/e068a9fc1aa332290d8ef9a94152109a05fd6d9b0f9cfacab0e39264a41e9975?s=16&d=retro) |
1fbbb3f |
+}
|
|
![](https://seccdn.libravatar.org/avatar/e068a9fc1aa332290d8ef9a94152109a05fd6d9b0f9cfacab0e39264a41e9975?s=16&d=retro) |
1fbbb3f |
+
|
|
![](https://seccdn.libravatar.org/avatar/e068a9fc1aa332290d8ef9a94152109a05fd6d9b0f9cfacab0e39264a41e9975?s=16&d=retro) |
1fbbb3f |
static gpointer
|
|
![](https://seccdn.libravatar.org/avatar/e068a9fc1aa332290d8ef9a94152109a05fd6d9b0f9cfacab0e39264a41e9975?s=16&d=retro) |
1fbbb3f |
play_loop (gpointer arg)
|
|
![](https://seccdn.libravatar.org/avatar/e068a9fc1aa332290d8ef9a94152109a05fd6d9b0f9cfacab0e39264a41e9975?s=16&d=retro) |
1fbbb3f |
{
|
|
![](https://seccdn.libravatar.org/avatar/e068a9fc1aa332290d8ef9a94152109a05fd6d9b0f9cfacab0e39264a41e9975?s=16&d=retro) |
1fbbb3f |
@@ -407,17 +425,13 @@
|
|
![](https://seccdn.libravatar.org/avatar/e068a9fc1aa332290d8ef9a94152109a05fd6d9b0f9cfacab0e39264a41e9975?s=16&d=retro) |
1fbbb3f |
playback->eof = TRUE;
|
|
![](https://seccdn.libravatar.org/avatar/e068a9fc1aa332290d8ef9a94152109a05fd6d9b0f9cfacab0e39264a41e9975?s=16&d=retro) |
1fbbb3f |
playback->playing = FALSE;
|
|
![](https://seccdn.libravatar.org/avatar/e068a9fc1aa332290d8ef9a94152109a05fd6d9b0f9cfacab0e39264a41e9975?s=16&d=retro) |
1fbbb3f |
|
|
![](https://seccdn.libravatar.org/avatar/e068a9fc1aa332290d8ef9a94152109a05fd6d9b0f9cfacab0e39264a41e9975?s=16&d=retro) |
1fbbb3f |
- g_mutex_unlock(decode_mutex);
|
|
![](https://seccdn.libravatar.org/avatar/e068a9fc1aa332290d8ef9a94152109a05fd6d9b0f9cfacab0e39264a41e9975?s=16&d=retro) |
1fbbb3f |
break;
|
|
![](https://seccdn.libravatar.org/avatar/e068a9fc1aa332290d8ef9a94152109a05fd6d9b0f9cfacab0e39264a41e9975?s=16&d=retro) |
1fbbb3f |
}
|
|
![](https://seccdn.libravatar.org/avatar/e068a9fc1aa332290d8ef9a94152109a05fd6d9b0f9cfacab0e39264a41e9975?s=16&d=retro) |
1fbbb3f |
|
|
![](https://seccdn.libravatar.org/avatar/e068a9fc1aa332290d8ef9a94152109a05fd6d9b0f9cfacab0e39264a41e9975?s=16&d=retro) |
1fbbb3f |
- /* Do seek if seek_time is valid. */
|
|
![](https://seccdn.libravatar.org/avatar/e068a9fc1aa332290d8ef9a94152109a05fd6d9b0f9cfacab0e39264a41e9975?s=16&d=retro) |
1fbbb3f |
- if (seek_time >= 0) {
|
|
![](https://seccdn.libravatar.org/avatar/e068a9fc1aa332290d8ef9a94152109a05fd6d9b0f9cfacab0e39264a41e9975?s=16&d=retro) |
1fbbb3f |
- sf_seek (sndfile, (sf_count_t)((gint64)seek_time * (gint64)sfinfo.samplerate / 1000L),
|
|
![](https://seccdn.libravatar.org/avatar/e068a9fc1aa332290d8ef9a94152109a05fd6d9b0f9cfacab0e39264a41e9975?s=16&d=retro) |
1fbbb3f |
- SEEK_SET);
|
|
![](https://seccdn.libravatar.org/avatar/e068a9fc1aa332290d8ef9a94152109a05fd6d9b0f9cfacab0e39264a41e9975?s=16&d=retro) |
1fbbb3f |
- playback->output->flush (seek_time);
|
|
![](https://seccdn.libravatar.org/avatar/e068a9fc1aa332290d8ef9a94152109a05fd6d9b0f9cfacab0e39264a41e9975?s=16&d=retro) |
1fbbb3f |
- seek_time = -1;
|
|
![](https://seccdn.libravatar.org/avatar/e068a9fc1aa332290d8ef9a94152109a05fd6d9b0f9cfacab0e39264a41e9975?s=16&d=retro) |
1fbbb3f |
- }
|
|
![](https://seccdn.libravatar.org/avatar/e068a9fc1aa332290d8ef9a94152109a05fd6d9b0f9cfacab0e39264a41e9975?s=16&d=retro) |
1fbbb3f |
+ if (seek_time != -1)
|
|
![](https://seccdn.libravatar.org/avatar/e068a9fc1aa332290d8ef9a94152109a05fd6d9b0f9cfacab0e39264a41e9975?s=16&d=retro) |
1fbbb3f |
+ do_seek (playback);
|
|
![](https://seccdn.libravatar.org/avatar/e068a9fc1aa332290d8ef9a94152109a05fd6d9b0f9cfacab0e39264a41e9975?s=16&d=retro) |
1fbbb3f |
+ if (pause_flag)
|
|
![](https://seccdn.libravatar.org/avatar/e068a9fc1aa332290d8ef9a94152109a05fd6d9b0f9cfacab0e39264a41e9975?s=16&d=retro) |
1fbbb3f |
+ do_pause (playback);
|
|
![](https://seccdn.libravatar.org/avatar/e068a9fc1aa332290d8ef9a94152109a05fd6d9b0f9cfacab0e39264a41e9975?s=16&d=retro) |
1fbbb3f |
|
|
![](https://seccdn.libravatar.org/avatar/e068a9fc1aa332290d8ef9a94152109a05fd6d9b0f9cfacab0e39264a41e9975?s=16&d=retro) |
1fbbb3f |
if (playback->playing == FALSE)
|
|
![](https://seccdn.libravatar.org/avatar/e068a9fc1aa332290d8ef9a94152109a05fd6d9b0f9cfacab0e39264a41e9975?s=16&d=retro) |
1fbbb3f |
break;
|
|
![](https://seccdn.libravatar.org/avatar/e068a9fc1aa332290d8ef9a94152109a05fd6d9b0f9cfacab0e39264a41e9975?s=16&d=retro) |
1fbbb3f |
@@ -477,7 +491,7 @@
|
|
![](https://seccdn.libravatar.org/avatar/e068a9fc1aa332290d8ef9a94152109a05fd6d9b0f9cfacab0e39264a41e9975?s=16&d=retro) |
1fbbb3f |
static void
|
|
![](https://seccdn.libravatar.org/avatar/e068a9fc1aa332290d8ef9a94152109a05fd6d9b0f9cfacab0e39264a41e9975?s=16&d=retro) |
1fbbb3f |
play_pause (InputPlayback *playback, gshort p)
|
|
![](https://seccdn.libravatar.org/avatar/e068a9fc1aa332290d8ef9a94152109a05fd6d9b0f9cfacab0e39264a41e9975?s=16&d=retro) |
1fbbb3f |
{
|
|
![](https://seccdn.libravatar.org/avatar/e068a9fc1aa332290d8ef9a94152109a05fd6d9b0f9cfacab0e39264a41e9975?s=16&d=retro) |
1fbbb3f |
- playback->output->pause(p);
|
|
![](https://seccdn.libravatar.org/avatar/e068a9fc1aa332290d8ef9a94152109a05fd6d9b0f9cfacab0e39264a41e9975?s=16&d=retro) |
1fbbb3f |
+ pause_flag = p;
|
|
![](https://seccdn.libravatar.org/avatar/e068a9fc1aa332290d8ef9a94152109a05fd6d9b0f9cfacab0e39264a41e9975?s=16&d=retro) |
1fbbb3f |
}
|
|
![](https://seccdn.libravatar.org/avatar/e068a9fc1aa332290d8ef9a94152109a05fd6d9b0f9cfacab0e39264a41e9975?s=16&d=retro) |
1fbbb3f |
|
|
![](https://seccdn.libravatar.org/avatar/e068a9fc1aa332290d8ef9a94152109a05fd6d9b0f9cfacab0e39264a41e9975?s=16&d=retro) |
1fbbb3f |
static void
|