From c8c8ab1aabc373033798bdcc2d0ed63c13bc00cb Mon Sep 17 00:00:00 2001 From: lilo_booter Date: Mon, 29 Aug 2005 18:38:06 +0000 Subject: [PATCH] + Keyboard handling events on Darwin git-svn-id: https://mlt.svn.sourceforge.net/svnroot/mlt/trunk/mlt@820 d19143bc-622f-0410-bfdd-b5b2a6649095 --- src/inigo/inigo.c | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) diff --git a/src/inigo/inigo.c b/src/inigo/inigo.c index b3a4b105..807d7e10 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 ) ); -- 2.39.2