X-Git-Url: http://research.m1stereo.tv/gitweb?a=blobdiff_plain;f=src%2Finigo%2Finigo.c;h=807d7e108785a6ce78aa0511d1043f2a853aa669;hb=c8c8ab1aabc373033798bdcc2d0ed63c13bc00cb;hp=b3a4b105f1cce68ed6179d82ae7464e888b481ff;hpb=505804aa1390e6caa9fd3665e89901462896f02c;p=melted diff --git a/src/inigo/inigo.c b/src/inigo/inigo.c index b3a4b10..807d7e1 100644 --- a/src/inigo/inigo.c +++ b/src/inigo/inigo.c @@ -148,6 +148,33 @@ static mlt_consumer create_consumer( char *id, mlt_producer producer ) return consumer; } +#ifdef __DARWIN__ + +static void event_handling( mlt_producer producer, mlt_consumer consumer ) +{ + SDL_Event event; + + while ( SDL_PollEvent( &event ) ) + { + switch( event.type ) + { + case SDL_QUIT: + mlt_properties_set_int( MLT_PRODUCER_PROPERTIES( consumer ), "done", 1 ); + break; + + case SDL_KEYDOWN: + if ( event.key.keysym.unicode < 0x80 && event.key.keysym.unicode > 0 ) + { + char keyboard[ 2 ] = { event.key.keysym.unicode, 0 }; + transport_action( producer, keyboard ); + } + break; + } + } +} + +#endif + static void transport( mlt_producer producer, mlt_consumer consumer ) { mlt_properties properties = MLT_PRODUCER_PROPERTIES( producer ); @@ -182,6 +209,10 @@ static void transport( mlt_producer producer, mlt_consumer consumer ) transport_action( producer, string ); } +#ifdef __DARWIN__ + event_handling( producer, consumer ); +#endif + if ( !silent && mlt_properties_get_int( properties, "stats_off" ) == 0 ) fprintf( stderr, "Current Position: %10d\r", (int)mlt_producer_position( producer ) );