Diffstat (limited to 'noncore/multimedia/opieplayer2/lib.cpp') (more/less context) (ignore whitespace changes)
-rw-r--r-- | noncore/multimedia/opieplayer2/lib.cpp | 23 |
1 files changed, 20 insertions, 3 deletions
diff --git a/noncore/multimedia/opieplayer2/lib.cpp b/noncore/multimedia/opieplayer2/lib.cpp index 99d5de6..20fd1e2 100644 --- a/noncore/multimedia/opieplayer2/lib.cpp +++ b/noncore/multimedia/opieplayer2/lib.cpp @@ -72,3 +72,5 @@ using namespace XINE; -Lib::Lib( XineVideoWidget* widget ) { +Lib::Lib( XineVideoWidget* widget ) +{ + ThreadUtil::AutoLock lock( m_initGuard ); m_initialized = false; @@ -89,2 +91,7 @@ Lib::Lib( XineVideoWidget* widget ) { + start(); +} + +void Lib::run() +{ initialize(); @@ -126,3 +133,6 @@ void Lib::initialize() + ThreadUtil::AutoLock lock( m_initGuard ); m_initialized = true; + + send( new ThreadUtil::ChannelMessage( InitializationMessageType ), OneWay ); } @@ -286,3 +296,10 @@ void Lib::receiveMessage( ThreadUtil::ChannelMessage *msg, SendType sendType ) assert( sendType == ThreadUtil::Channel::OneWay ); - handleXineEvent( msg->type() ); + switch ( msg->type() ) { + case XineMessageType: + handleXineEvent( static_cast<XineMessage *>( msg )->xineEvent ); + break; + case InitializationMessageType: + emit initialized(); + break; + } delete msg; @@ -291,3 +308,3 @@ void Lib::receiveMessage( ThreadUtil::ChannelMessage *msg, SendType sendType ) void Lib::handleXineEvent( const xine_event_t* t ) { - send( new ThreadUtil::ChannelMessage( t->type ), OneWay ); + send( new XineMessage( t->type ), OneWay ); } |