X-Git-Url: http://research.m1stereo.tv/gitweb?a=blobdiff_plain;f=src%2Finigo%2Finigo.c;h=291e1a4c9917c5ba860c0189122a8d6d503d1fbf;hb=d0d02a8f3f96d1a032c880412e6b3459d07feb1b;hp=b3a4b105f1cce68ed6179d82ae7464e888b481ff;hpb=65e8ac86ee6e17a12892954ff4a8d46c4766fe0d;p=melted diff --git a/src/inigo/inigo.c b/src/inigo/inigo.c index b3a4b10..291e1a4 100644 --- a/src/inigo/inigo.c +++ b/src/inigo/inigo.c @@ -5,6 +5,10 @@ #include +#ifdef __DARWIN__ +#include +#endif + #include "io.h" static void transport_action( mlt_producer producer, char *value ) @@ -148,6 +152,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 +213,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 ) );