diff src/amidi-plug/amidi-plug.c @ 1447:195b5657303e

updated input plugins to use set_pb_ready to signal to the core that they're ready for playback
author Giacomo Lozito <james@develia.org>
date Fri, 10 Aug 2007 22:00:07 +0200
parents e11d83ce8d16
children 489e32a8e106
line wrap: on
line diff
--- a/src/amidi-plug/amidi-plug.c	Fri Aug 10 12:42:07 2007 -0500
+++ b/src/amidi-plug/amidi-plug.c	Fri Aug 10 22:00:07 2007 +0200
@@ -139,24 +139,9 @@
 
 static void amidiplug_stop( InputPlayback * playback )
 {
-  gboolean is_error = FALSE;
   DEBUGMSG( "STOP request at tick: %i\n" , midifile.playing_tick );
 
   g_mutex_lock( amidiplug_playing_mutex );
-  if ( amidiplug_playing_status == AMIDIPLUG_ERR )
-    is_error = TRUE;
-  g_mutex_unlock( amidiplug_playing_mutex );
-  
-  if ( !is_error )
-  {
-    /* if stop wasn't called due to error condition,
-       wait until the play thread reach a 'safe state'
-       (that is, when amidiplug_play_thread exists) */
-    while ( !amidiplug_play_thread )
-      g_usleep( 20000 );
-  }
-
-  g_mutex_lock( amidiplug_playing_mutex );
   amidiplug_playing_status = AMIDIPLUG_STOP;
   g_cond_signal( amidiplug_pause_cond );
   g_mutex_unlock( amidiplug_playing_mutex );
@@ -476,6 +461,7 @@
       amidiplug_playing_status = AMIDIPLUG_PLAY;
       g_mutex_unlock( amidiplug_playing_mutex );
       amidiplug_play_thread = g_thread_self();
+      playback->set_pb_ready(playback);
       amidiplug_play_loop(playback);
       break;
     }