Diffstat (limited to 'noncore/multimedia/opieplayer2/lib.h') (more/less context) (ignore whitespace changes)
-rw-r--r-- | noncore/multimedia/opieplayer2/lib.h | 18 |
1 files changed, 17 insertions, 1 deletions
diff --git a/noncore/multimedia/opieplayer2/lib.h b/noncore/multimedia/opieplayer2/lib.h index 4b8dc81..34b85b9 100644 --- a/noncore/multimedia/opieplayer2/lib.h +++ b/noncore/multimedia/opieplayer2/lib.h @@ -50,17 +50,18 @@ namespace XINE { /** * Lib wrapps the simple interface * of libxine for easy every day use * This will become a full C++ Wrapper * It supports playing, pausing, info, * stooping, seeking. */ class Frame; - class Lib : public ThreadUtil::Channel { + class Lib : public ThreadUtil::Channel, private ThreadUtil::Thread + { Q_OBJECT public: Lib(XineVideoWidget* = 0); ~Lib(); static int majorVersion(); static int minorVersion(); static int subVersion(); @@ -172,24 +173,39 @@ namespace XINE { * XINE_ERROR_DEMUXER_FAILED 3 */ int error() const; signals: void stopped(); + void initialized(); + protected: virtual void receiveMessage( ThreadUtil::ChannelMessage *msg, SendType sendType ); + virtual void run(); + private: void initialize(); void assertInitialized() const; + enum { XineMessageType = 1, InitializationMessageType }; + + struct XineMessage : public ThreadUtil::ChannelMessage + { + XineMessage( int _xineEvent ) : ThreadUtil::ChannelMessage( XineMessageType ), + xineEvent( _xineEvent ) + {} + + int xineEvent; + }; + mutable ThreadUtil::Mutex m_initGuard; bool m_initialized : 1; int m_bytes_per_pixel; bool m_video:1; XineVideoWidget *m_wid; xine_t *m_xine; xine_stream_t *m_stream; |