Event modifications
[melted] / mlt++ / test / play.cpp
index 6c1341e..1654e8e 100644 (file)
@@ -11,25 +11,12 @@ using namespace Mlt;
 int main( int argc, char **argv )
 {
        Factory::init( NULL );
-       Producer *producer = new Producer( argv[ 1 ] );
-       if ( !producer->is_valid( ) )
-       {
-               cerr << "Can't construct producer for " << argv[ 1 ] << endl;
-               return 0;
-       }
-       Consumer *consumer = new Consumer( "sdl" );
-       consumer->set( "rescale", "none" );
-       Filter *filter = new Filter( "greyscale" );
-       filter->connect( *producer );
-       consumer->connect( *filter );
-       consumer->start( );
-       struct timespec tm = { 1, 0 };
-       while ( !consumer->is_stopped( ) )
-               nanosleep( &tm, NULL );
-       consumer->stop( );
-       delete consumer;
-       delete producer;
-       delete filter;
-       Factory::close( );
+       Producer producer( argv[ 1 ] );
+       Consumer consumer( "sdl" );
+       consumer.set( "rescale", "none" );
+       consumer.connect( producer );
+       Event *event = consumer.setup_wait_for( "consumer-stopped" );
+       consumer.start( );
+       consumer.wait_for( event, false );
        return 0;
 }