summaryrefslogtreecommitdiff
authorsimon <simon>2002-12-02 23:22:22 (UTC)
committer simon <simon>2002-12-02 23:22:22 (UTC)
commit24a00c944aace8d7627c1eb0d7cc0ebf40731c57 (patch) (unidiff)
tree3ae5406e15f169849a50e12fec01faa4cfc035e3
parent779219b813f0eba82a8d9236fafd28dbafc594d1 (diff)
downloadopie-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 :)
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--noncore/multimedia/opieplayer2/main.cpp11
-rw-r--r--noncore/multimedia/opieplayer2/mediaplayer.cpp39
-rw-r--r--noncore/multimedia/opieplayer2/mediaplayer.h9
-rw-r--r--noncore/multimedia/opieplayer2/playlistwidget.cpp14
-rw-r--r--noncore/multimedia/opieplayer2/playlistwidget.h3
-rw-r--r--noncore/multimedia/opieplayer2/xinecontrol.cpp5
-rw-r--r--noncore/multimedia/opieplayer2/xinecontrol.h6
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,31 +1,24 @@
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
9PlayListWidget *playList; 7PlayListWidget *playList;
10AudioWidget *audioUI;
11VideoWidget *videoUI;
12 8
13int main(int argc, char **argv) { 9int 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();
30} 23}
31 24
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
@@ -21,22 +21,26 @@
21// for setBacklight() 21// for setBacklight()
22#include <linux/fb.h> 22#include <linux/fb.h>
23#include <sys/file.h> 23#include <sys/file.h>
24#include <sys/ioctl.h> 24#include <sys/ioctl.h>
25 25
26 26
27extern AudioWidget *audioUI;
28extern VideoWidget *videoUI; 27extern VideoWidget *videoUI;
29extern PlayListWidget *playList; 28extern PlayListWidget *playList;
30 29
31 30
32#define FBIOBLANK 0x4611 31#define FBIOBLANK 0x4611
33 32
34MediaPlayer::MediaPlayer( MediaPlayerState &_mediaPlayerState, QObject *parent, const char *name ) 33MediaPlayer::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();
41 // QPEApplication::grabKeyboard(); // EVIL 45 // QPEApplication::grabKeyboard(); // EVIL
42 connect( qApp,SIGNAL( aboutToQuit()),SLOT( cleanUp()) ); 46 connect( qApp,SIGNAL( aboutToQuit()),SLOT( cleanUp()) );
@@ -46,24 +50,13 @@ MediaPlayer::MediaPlayer( MediaPlayerState &_mediaPlayerState, QObject *parent,
46 connect( &mediaPlayerState, SIGNAL( pausedToggled( bool ) ), this, SLOT( pauseCheck( bool ) ) ); 50 connect( &mediaPlayerState, SIGNAL( pausedToggled( bool ) ), this, SLOT( pauseCheck( bool ) ) );
47 51
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() );
68} 61}
69 62
@@ -348,6 +341,28 @@ void MediaPlayer::cleanUp() {// this happens on closing
348 mediaPlayerState.writeConfig( cfg ); 341 mediaPlayerState.writeConfig( cfg );
349 playList->writeDefaultPlaylist( ); 342 playList->writeDefaultPlaylist( );
350 343
351// QPEApplication::grabKeyboard(); 344// QPEApplication::grabKeyboard();
352// QPEApplication::ungrabKeyboard(); 345// QPEApplication::ungrabKeyboard();
353} 346}
347
348void 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
@@ -39,18 +39,24 @@
39 39
40#include "xinecontrol.h" 40#include "xinecontrol.h"
41 41
42class DocLnk; 42class DocLnk;
43class VolumeControl; 43class VolumeControl;
44class MediaPlayerState; 44class MediaPlayerState;
45class AudioWidget;
46class VideoWidget;
45 47
46class MediaPlayer : public QObject { 48class MediaPlayer : public QObject {
47 Q_OBJECT 49 Q_OBJECT
48public: 50public:
49 MediaPlayer( MediaPlayerState &_mediaPlayerState, QObject *parent, const char *name ); 51 MediaPlayer( MediaPlayerState &_mediaPlayerState, QObject *parent, const char *name );
50 ~MediaPlayer(); 52 ~MediaPlayer();
53
54public slots:
55 void recreateAudioAndVideoWidgets();
56
51private slots: 57private slots:
52 void setPlaying( bool ); 58 void setPlaying( bool );
53 void pauseCheck( bool ); 59 void pauseCheck( bool );
54 void play(); 60 void play();
55 void next(); 61 void next();
56 void prev(); 62 void prev();
@@ -61,17 +67,20 @@ private slots:
61 void blank( bool ); 67 void blank( bool );
62 68
63protected: 69protected:
64 void timerEvent( QTimerEvent *e ); 70 void timerEvent( QTimerEvent *e );
65 void keyReleaseEvent( QKeyEvent *e); 71 void keyReleaseEvent( QKeyEvent *e);
66private: 72private:
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
77 86
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
@@ -1092,18 +1092,20 @@ void PlayListWidget::populateSkinsMenu() {
1092void PlayListWidget::skinsMenuActivated( int item ) { 1092void PlayListWidget::skinsMenuActivated( int item ) {
1093 for(unsigned int i = defaultSkinIndex; i > defaultSkinIndex - skinsMenu->count(); i-- ) { 1093 for(unsigned int i = defaultSkinIndex; i > defaultSkinIndex - skinsMenu->count(); i-- ) {
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
1105PlayListWidget::TabType PlayListWidget::currentTab() const 1107PlayListWidget::TabType PlayListWidget::currentTab() const
1106{ 1108{
1107 static const TabType indexToTabType[ TabTypeCount ] = 1109 static const TabType indexToTabType[ TabTypeCount ] =
1108 { CurrentPlayList, AudioFiles, VideoFiles, PlayLists }; 1110 { CurrentPlayList, AudioFiles, VideoFiles, PlayLists };
1109 1111
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
@@ -91,12 +91,15 @@ public slots:
91 bool prev(); 91 bool prev();
92 void writeDefaultPlaylist( ); 92 void writeDefaultPlaylist( );
93 QString currentFileListPathName() const; 93 QString currentFileListPathName() const;
94protected: 94protected:
95 void keyReleaseEvent( QKeyEvent *e); 95 void keyReleaseEvent( QKeyEvent *e);
96 96
97signals:
98 void skinSelected();
99
97private: 100private:
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 &);
101 void readPls(const QString &); 104 void readPls(const QString &);
102 void initializeStates(); 105 void initializeStates();
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
@@ -37,15 +37,14 @@
37#include <qpe/qcopenvelope_qws.h> 37#include <qpe/qcopenvelope_qws.h>
38#include <qpe/qpeapplication.h> 38#include <qpe/qpeapplication.h>
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
43extern VideoWidget *videoUI; 43XineControl::XineControl( VideoWidget *videoWidget, MediaPlayerState &_mediaPlayerState, QObject *parent, const char *name )
44XineControl::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 & ) ) );
50 connect( &mediaPlayerState, SIGNAL( pausedToggled( bool ) ), this, SLOT( pause( bool ) ) ); 49 connect( &mediaPlayerState, SIGNAL( pausedToggled( bool ) ), this, SLOT( pause( bool ) ) );
51 connect( this, SIGNAL( positionChanged( long ) ), &mediaPlayerState, SLOT( updatePosition( long ) ) ); 50 connect( this, SIGNAL( positionChanged( long ) ), &mediaPlayerState, SLOT( updatePosition( long ) ) );
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
@@ -36,16 +36,18 @@
36 36
37#include "lib.h" 37#include "lib.h"
38#include <qobject.h> 38#include <qobject.h>
39 39
40#include "mediaplayerstate.h" 40#include "mediaplayerstate.h"
41 41
42class VideoWidget;
43
42class XineControl : public QObject { 44class XineControl : public QObject {
43 Q_OBJECT 45 Q_OBJECT
44public: 46public:
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; }
50 52
51public slots: 53public slots:
@@ -110,10 +112,12 @@ private:
110 bool hasAudioChannel : 1; 112 bool hasAudioChannel : 1;
111 MediaPlayerState &mediaPlayerState; 113 MediaPlayerState &mediaPlayerState;
112 114
113signals: 115signals:
114 void positionChanged( long ); 116 void positionChanged( long );
115 117
118private:
119 VideoWidget *videoUI;
116}; 120};
117 121
118 122
119#endif 123#endif