author | simon <simon> | 2002-12-02 10:25:36 (UTC) |
---|---|---|
committer | simon <simon> | 2002-12-02 10:25:36 (UTC) |
commit | 4447c70039ba1a3104bf229628699f33b8608973 (patch) (side-by-side diff) | |
tree | 9810b07492a20f1ec9332da8c353469c8c120e2e /noncore/multimedia/opieplayer2/lib.cpp | |
parent | 2f11390d99fba4eefa330322e11280802fb6dc26 (diff) | |
download | opie-4447c70039ba1a3104bf229628699f33b8608973.zip opie-4447c70039ba1a3104bf229628699f33b8608973.tar.gz opie-4447c70039ba1a3104bf229628699f33b8608973.tar.bz2 |
- put a thread pipe between the xine callback handler and the receiver
on qt side, to avoid problems like repaints from within a non-gui thread
Diffstat (limited to 'noncore/multimedia/opieplayer2/lib.cpp') (more/less context) (show whitespace changes)
-rw-r--r-- | noncore/multimedia/opieplayer2/lib.cpp | 15 |
1 files changed, 14 insertions, 1 deletions
diff --git a/noncore/multimedia/opieplayer2/lib.cpp b/noncore/multimedia/opieplayer2/lib.cpp index 19b64e8..1ac9809 100644 --- a/noncore/multimedia/opieplayer2/lib.cpp +++ b/noncore/multimedia/opieplayer2/lib.cpp @@ -42,6 +42,8 @@ #include <qgfx_qws.h> #include <qdirectpainter_qws.h> +#include <assert.h> + #include "xinevideowidget.h" #include "frame.h" #include "lib.h" @@ -219,8 +221,19 @@ int Lib::error() { return xine_get_error( m_stream ); }; +void Lib::receiveMessage( ThreadUtil::ChannelMessage *msg, SendType sendType ) +{ + assert( sendType == ThreadUtil::Channel::OneWay ); + handleXineEvent( msg->type() ); + delete msg; +} + void Lib::handleXineEvent( const xine_event_t* t ) { - if ( t->type == XINE_EVENT_UI_PLAYBACK_FINISHED ) { + send( new ThreadUtil::ChannelMessage( t->type ), OneWay ); +} + +void Lib::handleXineEvent( int type ) { + if ( type == XINE_EVENT_UI_PLAYBACK_FINISHED ) { emit stopped(); } } |