author | simon <simon> | 2002-12-02 23:22:22 (UTC) |
---|---|---|
committer | simon <simon> | 2002-12-02 23:22:22 (UTC) |
commit | 24a00c944aace8d7627c1eb0d7cc0ebf40731c57 (patch) (unidiff) | |
tree | 3ae5406e15f169849a50e12fec01faa4cfc035e3 | |
parent | 779219b813f0eba82a8d9236fafd28dbafc594d1 (diff) | |
download | opie-24a00c944aace8d7627c1eb0d7cc0ebf40731c57.zip opie-24a00c944aace8d7627c1eb0d7cc0ebf40731c57.tar.gz opie-24a00c944aace8d7627c1eb0d7cc0ebf40731c57.tar.bz2 |
- AudioWidget and VideoWidget are no more singletons via audioUI and
videoUI. this allows switching skins at run-time (the appropriate
connections are already made and it works quite nicely :)
-rw-r--r-- | noncore/multimedia/opieplayer2/main.cpp | 11 | ||||
-rw-r--r-- | noncore/multimedia/opieplayer2/mediaplayer.cpp | 39 | ||||
-rw-r--r-- | noncore/multimedia/opieplayer2/mediaplayer.h | 9 | ||||
-rw-r--r-- | noncore/multimedia/opieplayer2/playlistwidget.cpp | 14 | ||||
-rw-r--r-- | noncore/multimedia/opieplayer2/playlistwidget.h | 3 | ||||
-rw-r--r-- | noncore/multimedia/opieplayer2/xinecontrol.cpp | 5 | ||||
-rw-r--r-- | noncore/multimedia/opieplayer2/xinecontrol.h | 6 |
7 files changed, 56 insertions, 31 deletions
diff --git a/noncore/multimedia/opieplayer2/main.cpp b/noncore/multimedia/opieplayer2/main.cpp index 7d11ca0..7fc7b94 100644 --- a/noncore/multimedia/opieplayer2/main.cpp +++ b/noncore/multimedia/opieplayer2/main.cpp | |||
@@ -1,29 +1,22 @@ | |||
1 | 1 | ||
2 | #include <qpe/qpeapplication.h> | 2 | #include <qpe/qpeapplication.h> |
3 | #include "mediaplayerstate.h" | 3 | #include "mediaplayerstate.h" |
4 | #include "playlistwidget.h" | 4 | #include "playlistwidget.h" |
5 | #include "audiowidget.h" | ||
6 | #include "videowidget.h" | ||
7 | #include "mediaplayer.h" | 5 | #include "mediaplayer.h" |
8 | 6 | ||
9 | PlayListWidget *playList; | 7 | PlayListWidget *playList; |
10 | AudioWidget *audioUI; | ||
11 | VideoWidget *videoUI; | ||
12 | 8 | ||
13 | int main(int argc, char **argv) { | 9 | int main(int argc, char **argv) { |
14 | QPEApplication a(argc,argv); | 10 | QPEApplication a(argc,argv); |
15 | 11 | ||
16 | MediaPlayerState st( 0, "mediaPlayerState" ); | 12 | MediaPlayerState st( 0, "mediaPlayerState" ); |
17 | PlayListWidget pl( st, 0, "playList" ); | 13 | PlayListWidget pl( st, 0, "playList" ); |
18 | playList = &pl; | 14 | playList = &pl; |
19 | pl.showMaximized(); | 15 | pl.showMaximized(); |
20 | AudioWidget aw( st, 0, "audioUI" ); | ||
21 | audioUI = &aw; | ||
22 | VideoWidget vw( st, 0, "videoUI" ); | ||
23 | videoUI = &vw; | ||
24 | a.processEvents(); | ||
25 | MediaPlayer mp( st, 0, "mediaPlayer" ); | 16 | MediaPlayer mp( st, 0, "mediaPlayer" ); |
17 | QObject::connect( &pl, SIGNAL( skinSelected() ), | ||
18 | &mp, SLOT( recreateAudioAndVideoWidgets() ) ); | ||
26 | 19 | ||
27 | a.showMainDocumentWidget(&pl); | 20 | a.showMainDocumentWidget(&pl); |
28 | 21 | ||
29 | return a.exec(); | 22 | return a.exec(); |
diff --git a/noncore/multimedia/opieplayer2/mediaplayer.cpp b/noncore/multimedia/opieplayer2/mediaplayer.cpp index eccb5d9..a9c74c4 100644 --- a/noncore/multimedia/opieplayer2/mediaplayer.cpp +++ b/noncore/multimedia/opieplayer2/mediaplayer.cpp | |||
@@ -23,9 +23,8 @@ | |||
23 | #include <sys/file.h> | 23 | #include <sys/file.h> |
24 | #include <sys/ioctl.h> | 24 | #include <sys/ioctl.h> |
25 | 25 | ||
26 | 26 | ||
27 | extern AudioWidget *audioUI; | ||
28 | extern VideoWidget *videoUI; | 27 | extern VideoWidget *videoUI; |
29 | extern PlayListWidget *playList; | 28 | extern PlayListWidget *playList; |
30 | 29 | ||
31 | 30 | ||
@@ -33,8 +32,13 @@ extern PlayListWidget *playList; | |||
33 | 32 | ||
34 | MediaPlayer::MediaPlayer( MediaPlayerState &_mediaPlayerState, QObject *parent, const char *name ) | 33 | MediaPlayer::MediaPlayer( MediaPlayerState &_mediaPlayerState, QObject *parent, const char *name ) |
35 | : QObject( parent, name ), volumeDirection( 0 ), mediaPlayerState( _mediaPlayerState ) { | 34 | : QObject( parent, name ), volumeDirection( 0 ), mediaPlayerState( _mediaPlayerState ) { |
36 | 35 | ||
36 | audioUI = 0; | ||
37 | videoUI = 0; | ||
38 | xineControl = 0; | ||
39 | recreateAudioAndVideoWidgets(); | ||
40 | |||
37 | fd=-1;fl=-1; | 41 | fd=-1;fl=-1; |
38 | playList->setCaption( tr( "OpiePlayer: Initializating" ) ); | 42 | playList->setCaption( tr( "OpiePlayer: Initializating" ) ); |
39 | 43 | ||
40 | qApp->processEvents(); | 44 | qApp->processEvents(); |
@@ -48,20 +52,9 @@ MediaPlayer::MediaPlayer( MediaPlayerState &_mediaPlayerState, QObject *parent, | |||
48 | connect( &mediaPlayerState, SIGNAL( next() ), this, SLOT( next() ) ); | 52 | connect( &mediaPlayerState, SIGNAL( next() ), this, SLOT( next() ) ); |
49 | connect( &mediaPlayerState, SIGNAL( prev() ), this, SLOT( prev() ) ); | 53 | connect( &mediaPlayerState, SIGNAL( prev() ), this, SLOT( prev() ) ); |
50 | connect( &mediaPlayerState, SIGNAL( blankToggled( bool ) ), this, SLOT ( blank( bool ) ) ); | 54 | connect( &mediaPlayerState, SIGNAL( blankToggled( bool ) ), this, SLOT ( blank( bool ) ) ); |
51 | 55 | ||
52 | connect( audioUI, SIGNAL( moreClicked() ), this, SLOT( startIncreasingVolume() ) ); | ||
53 | connect( audioUI, SIGNAL( lessClicked() ), this, SLOT( startDecreasingVolume() ) ); | ||
54 | connect( audioUI, SIGNAL( moreReleased() ), this, SLOT( stopChangingVolume() ) ); | ||
55 | connect( audioUI, SIGNAL( lessReleased() ), this, SLOT( stopChangingVolume() ) ); | ||
56 | |||
57 | connect( videoUI, SIGNAL( moreClicked() ), this, SLOT( startIncreasingVolume() ) ); | ||
58 | connect( videoUI, SIGNAL( lessClicked() ), this, SLOT( startDecreasingVolume() ) ); | ||
59 | connect( videoUI, SIGNAL( moreReleased() ), this, SLOT( stopChangingVolume() ) ); | ||
60 | connect( videoUI, SIGNAL( lessReleased() ), this, SLOT( stopChangingVolume() ) ); | ||
61 | |||
62 | volControl = new VolumeControl; | 56 | volControl = new VolumeControl; |
63 | xineControl = new XineControl( mediaPlayerState ); | ||
64 | Config cfg( "OpiePlayer" ); | 57 | Config cfg( "OpiePlayer" ); |
65 | cfg.setGroup("PlayList"); | 58 | cfg.setGroup("PlayList"); |
66 | QString currentPlaylist = cfg.readEntry( "CurrentPlaylist", "default"); | 59 | QString currentPlaylist = cfg.readEntry( "CurrentPlaylist", "default"); |
67 | playList->setCaption( tr( "OpiePlayer: " ) + QFileInfo(currentPlaylist).baseName() ); | 60 | playList->setCaption( tr( "OpiePlayer: " ) + QFileInfo(currentPlaylist).baseName() ); |
@@ -350,4 +343,26 @@ void MediaPlayer::cleanUp() {// this happens on closing | |||
350 | 343 | ||
351 | // QPEApplication::grabKeyboard(); | 344 | // QPEApplication::grabKeyboard(); |
352 | // QPEApplication::ungrabKeyboard(); | 345 | // QPEApplication::ungrabKeyboard(); |
353 | } | 346 | } |
347 | |||
348 | void MediaPlayer::recreateAudioAndVideoWidgets() | ||
349 | { | ||
350 | delete xineControl; | ||
351 | delete audioUI; | ||
352 | delete videoUI; | ||
353 | audioUI = new AudioWidget( mediaPlayerState, 0, "audioUI" ); | ||
354 | videoUI = new VideoWidget( mediaPlayerState, 0, "videoUI" ); | ||
355 | |||
356 | connect( audioUI, SIGNAL( moreClicked() ), this, SLOT( startIncreasingVolume() ) ); | ||
357 | connect( audioUI, SIGNAL( lessClicked() ), this, SLOT( startDecreasingVolume() ) ); | ||
358 | connect( audioUI, SIGNAL( moreReleased() ), this, SLOT( stopChangingVolume() ) ); | ||
359 | connect( audioUI, SIGNAL( lessReleased() ), this, SLOT( stopChangingVolume() ) ); | ||
360 | |||
361 | connect( videoUI, SIGNAL( moreClicked() ), this, SLOT( startIncreasingVolume() ) ); | ||
362 | connect( videoUI, SIGNAL( lessClicked() ), this, SLOT( startDecreasingVolume() ) ); | ||
363 | connect( videoUI, SIGNAL( moreReleased() ), this, SLOT( stopChangingVolume() ) ); | ||
364 | connect( videoUI, SIGNAL( lessReleased() ), this, SLOT( stopChangingVolume() ) ); | ||
365 | |||
366 | xineControl = new XineControl( videoUI, mediaPlayerState ); | ||
367 | } | ||
368 | |||
diff --git a/noncore/multimedia/opieplayer2/mediaplayer.h b/noncore/multimedia/opieplayer2/mediaplayer.h index 6aeac7c..0d6f722 100644 --- a/noncore/multimedia/opieplayer2/mediaplayer.h +++ b/noncore/multimedia/opieplayer2/mediaplayer.h | |||
@@ -41,14 +41,20 @@ | |||
41 | 41 | ||
42 | class DocLnk; | 42 | class DocLnk; |
43 | class VolumeControl; | 43 | class VolumeControl; |
44 | class MediaPlayerState; | 44 | class MediaPlayerState; |
45 | class AudioWidget; | ||
46 | class VideoWidget; | ||
45 | 47 | ||
46 | class MediaPlayer : public QObject { | 48 | class MediaPlayer : public QObject { |
47 | Q_OBJECT | 49 | Q_OBJECT |
48 | public: | 50 | public: |
49 | MediaPlayer( MediaPlayerState &_mediaPlayerState, QObject *parent, const char *name ); | 51 | MediaPlayer( MediaPlayerState &_mediaPlayerState, QObject *parent, const char *name ); |
50 | ~MediaPlayer(); | 52 | ~MediaPlayer(); |
53 | |||
54 | public slots: | ||
55 | void recreateAudioAndVideoWidgets(); | ||
56 | |||
51 | private slots: | 57 | private slots: |
52 | void setPlaying( bool ); | 58 | void setPlaying( bool ); |
53 | void pauseCheck( bool ); | 59 | void pauseCheck( bool ); |
54 | void play(); | 60 | void play(); |
@@ -63,14 +69,17 @@ private slots: | |||
63 | protected: | 69 | protected: |
64 | void timerEvent( QTimerEvent *e ); | 70 | void timerEvent( QTimerEvent *e ); |
65 | void keyReleaseEvent( QKeyEvent *e); | 71 | void keyReleaseEvent( QKeyEvent *e); |
66 | private: | 72 | private: |
73 | |||
67 | bool isBlanked, l, r; | 74 | bool isBlanked, l, r; |
68 | int fd, fl; | 75 | int fd, fl; |
69 | int volumeDirection; | 76 | int volumeDirection; |
70 | XineControl *xineControl; | 77 | XineControl *xineControl; |
71 | VolumeControl *volControl; | 78 | VolumeControl *volControl; |
72 | MediaPlayerState &mediaPlayerState; | 79 | MediaPlayerState &mediaPlayerState; |
80 | AudioWidget *audioUI; | ||
81 | VideoWidget *videoUI; | ||
73 | }; | 82 | }; |
74 | 83 | ||
75 | 84 | ||
76 | #endif // MEDIA_PLAYER_H | 85 | #endif // MEDIA_PLAYER_H |
diff --git a/noncore/multimedia/opieplayer2/playlistwidget.cpp b/noncore/multimedia/opieplayer2/playlistwidget.cpp index 7ba342b..6bda71e 100644 --- a/noncore/multimedia/opieplayer2/playlistwidget.cpp +++ b/noncore/multimedia/opieplayer2/playlistwidget.cpp | |||
@@ -1094,14 +1094,16 @@ void PlayListWidget::skinsMenuActivated( int item ) { | |||
1094 | skinsMenu->setItemChecked( i, FALSE ); | 1094 | skinsMenu->setItemChecked( i, FALSE ); |
1095 | } | 1095 | } |
1096 | skinsMenu->setItemChecked( item, TRUE ); | 1096 | skinsMenu->setItemChecked( item, TRUE ); |
1097 | 1097 | ||
1098 | Config cfg( "OpiePlayer" ); | 1098 | { |
1099 | cfg.setGroup("Options"); | 1099 | Config cfg( "OpiePlayer" ); |
1100 | cfg.writeEntry("Skin", skinsMenu->text( item ) ); | 1100 | cfg.setGroup("Options"); |
1101 | QMessageBox::warning( this, tr( "OpiePlayer" ), | 1101 | cfg.writeEntry("Skin", skinsMenu->text( item ) ); |
1102 | tr( "You must <b>restart</b> Opieplayer<br>to see your changes." ) ); | 1102 | } |
1103 | } | 1103 | |
1104 | emit skinSelected(); | ||
1105 | } | ||
1104 | 1106 | ||
1105 | PlayListWidget::TabType PlayListWidget::currentTab() const | 1107 | PlayListWidget::TabType PlayListWidget::currentTab() const |
1106 | { | 1108 | { |
1107 | static const TabType indexToTabType[ TabTypeCount ] = | 1109 | static const TabType indexToTabType[ TabTypeCount ] = |
diff --git a/noncore/multimedia/opieplayer2/playlistwidget.h b/noncore/multimedia/opieplayer2/playlistwidget.h index 3f52e63..ad5c9a3 100644 --- a/noncore/multimedia/opieplayer2/playlistwidget.h +++ b/noncore/multimedia/opieplayer2/playlistwidget.h | |||
@@ -93,8 +93,11 @@ public slots: | |||
93 | QString currentFileListPathName() const; | 93 | QString currentFileListPathName() const; |
94 | protected: | 94 | protected: |
95 | void keyReleaseEvent( QKeyEvent *e); | 95 | void keyReleaseEvent( QKeyEvent *e); |
96 | 96 | ||
97 | signals: | ||
98 | void skinSelected(); | ||
99 | |||
97 | private: | 100 | private: |
98 | int defaultSkinIndex; | 101 | int defaultSkinIndex; |
99 | bool audioScan, videoScan, audioPopulated, videoPopulated; | 102 | bool audioScan, videoScan, audioPopulated, videoPopulated; |
100 | void readm3u(const QString &); | 103 | void readm3u(const QString &); |
diff --git a/noncore/multimedia/opieplayer2/xinecontrol.cpp b/noncore/multimedia/opieplayer2/xinecontrol.cpp index 071ef7c..b4ae783 100644 --- a/noncore/multimedia/opieplayer2/xinecontrol.cpp +++ b/noncore/multimedia/opieplayer2/xinecontrol.cpp | |||
@@ -39,11 +39,10 @@ | |||
39 | #include "xinecontrol.h" | 39 | #include "xinecontrol.h" |
40 | #include "mediaplayerstate.h" | 40 | #include "mediaplayerstate.h" |
41 | #include "videowidget.h" | 41 | #include "videowidget.h" |
42 | 42 | ||
43 | extern VideoWidget *videoUI; | 43 | XineControl::XineControl( VideoWidget *videoWidget, MediaPlayerState &_mediaPlayerState, QObject *parent, const char *name ) |
44 | XineControl::XineControl( MediaPlayerState &_mediaPlayerState, QObject *parent, const char *name ) | 44 | : QObject( parent, name ), mediaPlayerState( _mediaPlayerState ), videoUI( videoWidget ) { |
45 | : QObject( parent, name ), mediaPlayerState( _mediaPlayerState ) { | ||
46 | 45 | ||
47 | libXine = new XINE::Lib( videoUI->vidWidget() ); | 46 | libXine = new XINE::Lib( videoUI->vidWidget() ); |
48 | 47 | ||
49 | connect ( videoUI, SIGNAL( videoResized( const QSize & )), this, SLOT( videoResized ( const QSize & ) ) ); | 48 | connect ( videoUI, SIGNAL( videoResized( const QSize & )), this, SLOT( videoResized ( const QSize & ) ) ); |
diff --git a/noncore/multimedia/opieplayer2/xinecontrol.h b/noncore/multimedia/opieplayer2/xinecontrol.h index 00486f2..24e966b 100644 --- a/noncore/multimedia/opieplayer2/xinecontrol.h +++ b/noncore/multimedia/opieplayer2/xinecontrol.h | |||
@@ -38,12 +38,14 @@ | |||
38 | #include <qobject.h> | 38 | #include <qobject.h> |
39 | 39 | ||
40 | #include "mediaplayerstate.h" | 40 | #include "mediaplayerstate.h" |
41 | 41 | ||
42 | class VideoWidget; | ||
43 | |||
42 | class XineControl : public QObject { | 44 | class XineControl : public QObject { |
43 | Q_OBJECT | 45 | Q_OBJECT |
44 | public: | 46 | public: |
45 | XineControl( MediaPlayerState &_mediaPlayerState, QObject *parent = 0, const char *name =0 ); | 47 | XineControl( VideoWidget *videoWidget, MediaPlayerState &_mediaPlayerState, QObject *parent = 0, const char *name =0 ); |
46 | ~XineControl(); | 48 | ~XineControl(); |
47 | 49 | ||
48 | bool hasVideo() const { return hasVideoChannel; } | 50 | bool hasVideo() const { return hasVideoChannel; } |
49 | bool hasAudio() const { return hasAudioChannel; } | 51 | bool hasAudio() const { return hasAudioChannel; } |
@@ -112,8 +114,10 @@ private: | |||
112 | 114 | ||
113 | signals: | 115 | signals: |
114 | void positionChanged( long ); | 116 | void positionChanged( long ); |
115 | 117 | ||
118 | private: | ||
119 | VideoWidget *videoUI; | ||
116 | }; | 120 | }; |
117 | 121 | ||
118 | 122 | ||
119 | #endif | 123 | #endif |