-rw-r--r-- | noncore/multimedia/opieplayer2/lib.cpp | 4 | ||||
-rw-r--r-- | noncore/multimedia/opieplayer2/mediaplayer.cpp | 12 | ||||
-rw-r--r-- | noncore/multimedia/opieplayer2/mediaplayer.h | 6 |
3 files changed, 20 insertions, 2 deletions
diff --git a/noncore/multimedia/opieplayer2/lib.cpp b/noncore/multimedia/opieplayer2/lib.cpp index 299239b..8896cfe 100644 --- a/noncore/multimedia/opieplayer2/lib.cpp +++ b/noncore/multimedia/opieplayer2/lib.cpp @@ -93,15 +93,17 @@ Lib::Lib( InitializationMode initMode, XineVideoWidget* widget ) initialize(); m_initialized = true; } else - assert( false ); + start(); } void Lib::run() { + qDebug( "Lib::run() started" ); initialize(); m_initialized = true; + qDebug( "Lib::run() finished" ); } void Lib::initialize() { diff --git a/noncore/multimedia/opieplayer2/mediaplayer.cpp b/noncore/multimedia/opieplayer2/mediaplayer.cpp index d6fbb53..0ec6fad 100644 --- a/noncore/multimedia/opieplayer2/mediaplayer.cpp +++ b/noncore/multimedia/opieplayer2/mediaplayer.cpp @@ -34,8 +34,9 @@ MediaPlayer::MediaPlayer( PlayListWidget &_playList, MediaPlayerState &_mediaPla m_audioUI = 0; m_videoUI = 0; m_xineControl = 0; + xine = new XINE::Lib( XINE::Lib::InitializeInThread ); fd=-1;fl=-1; playList.setCaption( tr( "OpiePlayer: Initializating" ) ); @@ -64,8 +65,13 @@ MediaPlayer::MediaPlayer( PlayListWidget &_playList, MediaPlayerState &_mediaPla m_skinLoader->start(); } MediaPlayer::~MediaPlayer() { + // this shold never happen, but one never knows... + if ( xine ) { + xine->ensureInitialized(); + delete xine; + } delete m_xineControl; delete m_audioUI; delete m_videoUI; delete volControl; @@ -370,10 +376,14 @@ void MediaPlayer::recreateAudioAndVideoWidgets() const connect( m_videoUI, SIGNAL( lessClicked() ), this, SLOT( startDecreasingVolume() ) ); connect( m_videoUI, SIGNAL( moreReleased() ), this, SLOT( stopChangingVolume() ) ); connect( m_videoUI, SIGNAL( lessReleased() ), this, SLOT( stopChangingVolume() ) ); - XINE::Lib *xine = new XINE::Lib( XINE::Lib::InitializeImmediately ); + if ( !xine ) + xine = new XINE::Lib( XINE::Lib::InitializeImmediately ); + m_xineControl = new XineControl( xine, m_videoUI->vidWidget(), mediaPlayerState ); + + xine = 0; } AudioWidget *MediaPlayer::audioUI() const { diff --git a/noncore/multimedia/opieplayer2/mediaplayer.h b/noncore/multimedia/opieplayer2/mediaplayer.h index 351c884..cbe4d86 100644 --- a/noncore/multimedia/opieplayer2/mediaplayer.h +++ b/noncore/multimedia/opieplayer2/mediaplayer.h @@ -47,8 +47,13 @@ class VolumeControl; class MediaPlayerState; class AudioWidget; class VideoWidget; +namespace XINE +{ + class Lib; +}; + class MediaPlayer : public QObject { Q_OBJECT public: MediaPlayer( PlayListWidget &_playList, MediaPlayerState &_mediaPlayerState, QObject *parent, const char *name ); @@ -89,8 +94,9 @@ private: mutable XineControl *m_xineControl; mutable AudioWidget *m_audioUI; mutable VideoWidget *m_videoUI; + mutable XINE::Lib *xine; QGuardedPtr<SkinLoader> m_skinLoader; }; |