# HG changeset patch # User William Pitcock # Date 1214887851 18000 # Node ID 533d73cfa1ffb5006a5a5222a296729cec843259 # Parent 6319a15e724375e7a75f0f0f608c5b3bd1d6e454 Finalize event loop for the playback thread; the plugin is now done except for seeking. diff -r 6319a15e7243 -r 533d73cfa1ff src/psf2/plugin.c --- a/src/psf2/plugin.c Mon Jun 30 23:39:49 2008 -0500 +++ b/src/psf2/plugin.c Mon Jun 30 23:50:51 2008 -0500 @@ -69,6 +69,8 @@ return AO_SUCCESS; } +static gint seek = 0; + Tuple *psf2_tuple(gchar *filename) { Tuple *t; @@ -169,17 +171,29 @@ data->playing = TRUE; data->set_pb_ready(data); - while (data->playing) + + for (;;) { psf2_execute(data); - } - psf2_stop(); + if (seek) + { + seek = 0; + continue; + } + + psf2_stop(); - data->output->buffer_free(); - data->output->buffer_free(); + data->output->buffer_free(); + data->output->buffer_free(); - data->output->close_audio(); + while (data->eof && data->output->buffer_playing()) + g_usleep(10000); + + data->output->close_audio(); + + break; + } g_free(buffer); g_free(path);