author | simon <simon> | 2002-12-13 23:28:19 (UTC) |
---|---|---|
committer | simon <simon> | 2002-12-13 23:28:19 (UTC) |
commit | 46888759da1aea08ef4b5ebdbaee7c10faaecc70 (patch) (unidiff) | |
tree | 50120eb119daf39cda2c3168f710eff5a8855117 | |
parent | 1830ae3069a3ca35df678ce6d1700bf31d968a5c (diff) | |
download | opie-46888759da1aea08ef4b5ebdbaee7c10faaecc70.zip opie-46888759da1aea08ef4b5ebdbaee7c10faaecc70.tar.gz opie-46888759da1aea08ef4b5ebdbaee7c10faaecc70.tar.bz2 |
- activate the threaded xine init code! :)
-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 | |||
@@ -91,19 +91,21 @@ Lib::Lib( InitializationMode initMode, XineVideoWidget* widget ) | |||
91 | 91 | ||
92 | if ( initMode == InitializeImmediately ) { | 92 | if ( initMode == InitializeImmediately ) { |
93 | initialize(); | 93 | initialize(); |
94 | m_initialized = true; | 94 | m_initialized = true; |
95 | } | 95 | } |
96 | else | 96 | else |
97 | assert( false ); | 97 | start(); |
98 | } | 98 | } |
99 | 99 | ||
100 | void Lib::run() | 100 | void Lib::run() |
101 | { | 101 | { |
102 | qDebug( "Lib::run() started" ); | ||
102 | initialize(); | 103 | initialize(); |
103 | m_initialized = true; | 104 | m_initialized = true; |
105 | qDebug( "Lib::run() finished" ); | ||
104 | } | 106 | } |
105 | 107 | ||
106 | void Lib::initialize() | 108 | void Lib::initialize() |
107 | { | 109 | { |
108 | m_duringInitialization = true; | 110 | m_duringInitialization = true; |
109 | m_xine = xine_new( ); | 111 | m_xine = xine_new( ); |
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 | |||
@@ -32,12 +32,13 @@ | |||
32 | MediaPlayer::MediaPlayer( PlayListWidget &_playList, MediaPlayerState &_mediaPlayerState, QObject *parent, const char *name ) | 32 | MediaPlayer::MediaPlayer( PlayListWidget &_playList, MediaPlayerState &_mediaPlayerState, QObject *parent, const char *name ) |
33 | : QObject( parent, name ), volumeDirection( 0 ), mediaPlayerState( _mediaPlayerState ), playList( _playList ) { | 33 | : QObject( parent, name ), volumeDirection( 0 ), mediaPlayerState( _mediaPlayerState ), playList( _playList ) { |
34 | 34 | ||
35 | m_audioUI = 0; | 35 | m_audioUI = 0; |
36 | m_videoUI = 0; | 36 | m_videoUI = 0; |
37 | m_xineControl = 0; | 37 | m_xineControl = 0; |
38 | xine = new XINE::Lib( XINE::Lib::InitializeInThread ); | ||
38 | 39 | ||
39 | fd=-1;fl=-1; | 40 | fd=-1;fl=-1; |
40 | playList.setCaption( tr( "OpiePlayer: Initializating" ) ); | 41 | playList.setCaption( tr( "OpiePlayer: Initializating" ) ); |
41 | 42 | ||
42 | qApp->processEvents(); | 43 | qApp->processEvents(); |
43 | // QPEApplication::grabKeyboard(); // EVIL | 44 | // QPEApplication::grabKeyboard(); // EVIL |
@@ -62,12 +63,17 @@ MediaPlayer::MediaPlayer( PlayListWidget &_playList, MediaPlayerState &_mediaPla | |||
62 | m_skinLoader->schedule( AudioWidget::guiInfo() ); | 63 | m_skinLoader->schedule( AudioWidget::guiInfo() ); |
63 | m_skinLoader->schedule( VideoWidget::guiInfo() ); | 64 | m_skinLoader->schedule( VideoWidget::guiInfo() ); |
64 | m_skinLoader->start(); | 65 | m_skinLoader->start(); |
65 | } | 66 | } |
66 | 67 | ||
67 | MediaPlayer::~MediaPlayer() { | 68 | MediaPlayer::~MediaPlayer() { |
69 | // this shold never happen, but one never knows... | ||
70 | if ( xine ) { | ||
71 | xine->ensureInitialized(); | ||
72 | delete xine; | ||
73 | } | ||
68 | delete m_xineControl; | 74 | delete m_xineControl; |
69 | delete m_audioUI; | 75 | delete m_audioUI; |
70 | delete m_videoUI; | 76 | delete m_videoUI; |
71 | delete volControl; | 77 | delete volControl; |
72 | } | 78 | } |
73 | 79 | ||
@@ -368,14 +374,18 @@ void MediaPlayer::recreateAudioAndVideoWidgets() const | |||
368 | 374 | ||
369 | connect( m_videoUI, SIGNAL( moreClicked() ), this, SLOT( startIncreasingVolume() ) ); | 375 | connect( m_videoUI, SIGNAL( moreClicked() ), this, SLOT( startIncreasingVolume() ) ); |
370 | connect( m_videoUI, SIGNAL( lessClicked() ), this, SLOT( startDecreasingVolume() ) ); | 376 | connect( m_videoUI, SIGNAL( lessClicked() ), this, SLOT( startDecreasingVolume() ) ); |
371 | connect( m_videoUI, SIGNAL( moreReleased() ), this, SLOT( stopChangingVolume() ) ); | 377 | connect( m_videoUI, SIGNAL( moreReleased() ), this, SLOT( stopChangingVolume() ) ); |
372 | connect( m_videoUI, SIGNAL( lessReleased() ), this, SLOT( stopChangingVolume() ) ); | 378 | connect( m_videoUI, SIGNAL( lessReleased() ), this, SLOT( stopChangingVolume() ) ); |
373 | 379 | ||
374 | XINE::Lib *xine = new XINE::Lib( XINE::Lib::InitializeImmediately ); | 380 | if ( !xine ) |
381 | xine = new XINE::Lib( XINE::Lib::InitializeImmediately ); | ||
382 | |||
375 | m_xineControl = new XineControl( xine, m_videoUI->vidWidget(), mediaPlayerState ); | 383 | m_xineControl = new XineControl( xine, m_videoUI->vidWidget(), mediaPlayerState ); |
384 | |||
385 | xine = 0; | ||
376 | } | 386 | } |
377 | 387 | ||
378 | AudioWidget *MediaPlayer::audioUI() const | 388 | AudioWidget *MediaPlayer::audioUI() const |
379 | { | 389 | { |
380 | if ( !m_audioUI ) | 390 | if ( !m_audioUI ) |
381 | recreateAudioAndVideoWidgets(); | 391 | recreateAudioAndVideoWidgets(); |
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 | |||
@@ -45,12 +45,17 @@ | |||
45 | class DocLnk; | 45 | class DocLnk; |
46 | class VolumeControl; | 46 | class VolumeControl; |
47 | class MediaPlayerState; | 47 | class MediaPlayerState; |
48 | class AudioWidget; | 48 | class AudioWidget; |
49 | class VideoWidget; | 49 | class VideoWidget; |
50 | 50 | ||
51 | namespace XINE | ||
52 | { | ||
53 | class Lib; | ||
54 | }; | ||
55 | |||
51 | class MediaPlayer : public QObject { | 56 | class MediaPlayer : public QObject { |
52 | Q_OBJECT | 57 | Q_OBJECT |
53 | public: | 58 | public: |
54 | MediaPlayer( PlayListWidget &_playList, MediaPlayerState &_mediaPlayerState, QObject *parent, const char *name ); | 59 | MediaPlayer( PlayListWidget &_playList, MediaPlayerState &_mediaPlayerState, QObject *parent, const char *name ); |
55 | ~MediaPlayer(); | 60 | ~MediaPlayer(); |
56 | 61 | ||
@@ -87,12 +92,13 @@ private: | |||
87 | 92 | ||
88 | void recreateAudioAndVideoWidgets() const; | 93 | void recreateAudioAndVideoWidgets() const; |
89 | 94 | ||
90 | mutable XineControl *m_xineControl; | 95 | mutable XineControl *m_xineControl; |
91 | mutable AudioWidget *m_audioUI; | 96 | mutable AudioWidget *m_audioUI; |
92 | mutable VideoWidget *m_videoUI; | 97 | mutable VideoWidget *m_videoUI; |
98 | mutable XINE::Lib *xine; | ||
93 | 99 | ||
94 | QGuardedPtr<SkinLoader> m_skinLoader; | 100 | QGuardedPtr<SkinLoader> m_skinLoader; |
95 | }; | 101 | }; |
96 | 102 | ||
97 | 103 | ||
98 | #endif // MEDIA_PLAYER_H | 104 | #endif // MEDIA_PLAYER_H |