summaryrefslogtreecommitdiff
Unidiff
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--noncore/multimedia/opieplayer2/main.cpp2
-rw-r--r--noncore/multimedia/opieplayer2/mediaplayer.cpp55
-rw-r--r--noncore/multimedia/opieplayer2/mediaplayer.h4
3 files changed, 31 insertions, 30 deletions
diff --git a/noncore/multimedia/opieplayer2/main.cpp b/noncore/multimedia/opieplayer2/main.cpp
index e951554..24aba6c 100644
--- a/noncore/multimedia/opieplayer2/main.cpp
+++ b/noncore/multimedia/opieplayer2/main.cpp
@@ -3,32 +3,32 @@
3#include "mediaplayerstate.h" 3#include "mediaplayerstate.h"
4#include "playlistwidget.h" 4#include "playlistwidget.h"
5#include "audiowidget.h" 5#include "audiowidget.h"
6#include "videowidget.h" 6#include "videowidget.h"
7#include "mediaplayer.h" 7#include "mediaplayer.h"
8 8
9MediaPlayerState *mediaPlayerState; 9MediaPlayerState *mediaPlayerState;
10PlayListWidget *playList; 10PlayListWidget *playList;
11AudioWidget *audioUI; 11AudioWidget *audioUI;
12VideoWidget *videoUI; 12VideoWidget *videoUI;
13 13
14int main(int argc, char **argv) { 14int main(int argc, char **argv) {
15 QPEApplication a(argc,argv); 15 QPEApplication a(argc,argv);
16 16
17 MediaPlayerState st( 0, "mediaPlayerState" ); 17 MediaPlayerState st( 0, "mediaPlayerState" );
18 mediaPlayerState = &st; 18 mediaPlayerState = &st;
19 PlayListWidget pl( 0, "playList" ); 19 PlayListWidget pl( 0, "playList" );
20 playList = &pl; 20 playList = &pl;
21 pl.showMaximized(); 21 pl.showMaximized();
22 AudioWidget aw( 0, "audioUI" ); 22 AudioWidget aw( 0, "audioUI" );
23 audioUI = &aw; 23 audioUI = &aw;
24 VideoWidget vw( 0, "videoUI" ); 24 VideoWidget vw( 0, "videoUI" );
25 videoUI = &vw; 25 videoUI = &vw;
26 a.processEvents(); 26 a.processEvents();
27 MediaPlayer mp( 0, "mediaPlayer" ); 27 MediaPlayer mp( st, 0, "mediaPlayer" );
28 28
29 a.showMainDocumentWidget(&pl); 29 a.showMainDocumentWidget(&pl);
30 30
31 return a.exec(); 31 return a.exec();
32} 32}
33 33
34 34
diff --git a/noncore/multimedia/opieplayer2/mediaplayer.cpp b/noncore/multimedia/opieplayer2/mediaplayer.cpp
index 68bbae9..424259b 100644
--- a/noncore/multimedia/opieplayer2/mediaplayer.cpp
+++ b/noncore/multimedia/opieplayer2/mediaplayer.cpp
@@ -6,187 +6,186 @@
6#include <qfileinfo.h> 6#include <qfileinfo.h>
7 7
8#include <qmainwindow.h> 8#include <qmainwindow.h>
9#include <qmessagebox.h> 9#include <qmessagebox.h>
10#include <qwidgetstack.h> 10#include <qwidgetstack.h>
11#include <qfile.h> 11#include <qfile.h>
12 12
13#include "mediaplayer.h" 13#include "mediaplayer.h"
14#include "playlistwidget.h" 14#include "playlistwidget.h"
15#include "audiowidget.h" 15#include "audiowidget.h"
16#include "videowidget.h" 16#include "videowidget.h"
17#include "volumecontrol.h" 17#include "volumecontrol.h"
18 18
19#include "mediaplayerstate.h" 19#include "mediaplayerstate.h"
20 20
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; 27extern AudioWidget *audioUI;
28extern VideoWidget *videoUI; 28extern VideoWidget *videoUI;
29extern PlayListWidget *playList; 29extern PlayListWidget *playList;
30extern MediaPlayerState *mediaPlayerState;
31 30
32 31
33#define FBIOBLANK 0x4611 32#define FBIOBLANK 0x4611
34 33
35MediaPlayer::MediaPlayer( QObject *parent, const char *name ) 34MediaPlayer::MediaPlayer( MediaPlayerState &_mediaPlayerState, QObject *parent, const char *name )
36 : QObject( parent, name ), volumeDirection( 0 ) { 35 : QObject( parent, name ), volumeDirection( 0 ), mediaPlayerState( _mediaPlayerState ) {
37 36
38 fd=-1;fl=-1; 37 fd=-1;fl=-1;
39 playList->setCaption( tr( "OpiePlayer: Initializating" ) ); 38 playList->setCaption( tr( "OpiePlayer: Initializating" ) );
40 39
41 qApp->processEvents(); 40 qApp->processEvents();
42 // QPEApplication::grabKeyboard(); // EVIL 41 // QPEApplication::grabKeyboard(); // EVIL
43 connect( qApp,SIGNAL( aboutToQuit()),SLOT( cleanUp()) ); 42 connect( qApp,SIGNAL( aboutToQuit()),SLOT( cleanUp()) );
44 43
45 connect( mediaPlayerState, SIGNAL( playingToggled( bool ) ), this, SLOT( setPlaying( bool ) ) ); 44 connect( &mediaPlayerState, SIGNAL( playingToggled( bool ) ), this, SLOT( setPlaying( bool ) ) );
46 45
47 connect( mediaPlayerState, SIGNAL( pausedToggled( bool ) ), this, SLOT( pauseCheck( bool ) ) ); 46 connect( &mediaPlayerState, SIGNAL( pausedToggled( bool ) ), this, SLOT( pauseCheck( bool ) ) );
48 47
49 connect( mediaPlayerState, SIGNAL( next() ), this, SLOT( next() ) ); 48 connect( &mediaPlayerState, SIGNAL( next() ), this, SLOT( next() ) );
50 connect( mediaPlayerState, SIGNAL( prev() ), this, SLOT( prev() ) ); 49 connect( &mediaPlayerState, SIGNAL( prev() ), this, SLOT( prev() ) );
51 connect( mediaPlayerState, SIGNAL( blankToggled( bool ) ), this, SLOT ( blank( bool ) ) ); 50 connect( &mediaPlayerState, SIGNAL( blankToggled( bool ) ), this, SLOT ( blank( bool ) ) );
52 51
53 connect( audioUI, SIGNAL( moreClicked() ), this, SLOT( startIncreasingVolume() ) ); 52 connect( audioUI, SIGNAL( moreClicked() ), this, SLOT( startIncreasingVolume() ) );
54 connect( audioUI, SIGNAL( lessClicked() ), this, SLOT( startDecreasingVolume() ) ); 53 connect( audioUI, SIGNAL( lessClicked() ), this, SLOT( startDecreasingVolume() ) );
55 connect( audioUI, SIGNAL( moreReleased() ), this, SLOT( stopChangingVolume() ) ); 54 connect( audioUI, SIGNAL( moreReleased() ), this, SLOT( stopChangingVolume() ) );
56 connect( audioUI, SIGNAL( lessReleased() ), this, SLOT( stopChangingVolume() ) ); 55 connect( audioUI, SIGNAL( lessReleased() ), this, SLOT( stopChangingVolume() ) );
57 56
58 connect( videoUI, SIGNAL( moreClicked() ), this, SLOT( startIncreasingVolume() ) ); 57 connect( videoUI, SIGNAL( moreClicked() ), this, SLOT( startIncreasingVolume() ) );
59 connect( videoUI, SIGNAL( lessClicked() ), this, SLOT( startDecreasingVolume() ) ); 58 connect( videoUI, SIGNAL( lessClicked() ), this, SLOT( startDecreasingVolume() ) );
60 connect( videoUI, SIGNAL( moreReleased() ), this, SLOT( stopChangingVolume() ) ); 59 connect( videoUI, SIGNAL( moreReleased() ), this, SLOT( stopChangingVolume() ) );
61 connect( videoUI, SIGNAL( lessReleased() ), this, SLOT( stopChangingVolume() ) ); 60 connect( videoUI, SIGNAL( lessReleased() ), this, SLOT( stopChangingVolume() ) );
62 61
63 volControl = new VolumeControl; 62 volControl = new VolumeControl;
64 xineControl = new XineControl(); 63 xineControl = new XineControl();
65 Config cfg( "OpiePlayer" ); 64 Config cfg( "OpiePlayer" );
66 cfg.setGroup("PlayList"); 65 cfg.setGroup("PlayList");
67 QString currentPlaylist = cfg.readEntry( "CurrentPlaylist", "default"); 66 QString currentPlaylist = cfg.readEntry( "CurrentPlaylist", "default");
68 playList->setCaption( tr( "OpiePlayer: " ) + QFileInfo(currentPlaylist).baseName() ); 67 playList->setCaption( tr( "OpiePlayer: " ) + QFileInfo(currentPlaylist).baseName() );
69} 68}
70 69
71MediaPlayer::~MediaPlayer() { 70MediaPlayer::~MediaPlayer() {
72 delete xineControl; 71 delete xineControl;
73 delete volControl; 72 delete volControl;
74} 73}
75 74
76void MediaPlayer::pauseCheck( bool b ) { 75void MediaPlayer::pauseCheck( bool b ) {
77 if ( b && !mediaPlayerState->isPlaying() ) { 76 if ( b && !mediaPlayerState.isPlaying() ) {
78 mediaPlayerState->setPaused( FALSE ); 77 mediaPlayerState.setPaused( FALSE );
79 } 78 }
80} 79}
81 80
82void MediaPlayer::play() { 81void MediaPlayer::play() {
83 mediaPlayerState->setPlaying( FALSE ); 82 mediaPlayerState.setPlaying( FALSE );
84 mediaPlayerState->setPlaying( TRUE ); 83 mediaPlayerState.setPlaying( TRUE );
85} 84}
86 85
87void MediaPlayer::setPlaying( bool play ) { 86void MediaPlayer::setPlaying( bool play ) {
88 if ( !play ) { 87 if ( !play ) {
89 return; 88 return;
90 } 89 }
91 90
92 if ( mediaPlayerState->isPaused() ) { 91 if ( mediaPlayerState.isPaused() ) {
93 mediaPlayerState->setPaused( FALSE ); 92 mediaPlayerState.setPaused( FALSE );
94 return; 93 return;
95 } 94 }
96 95
97 QString tickerText, time, fileName; 96 QString tickerText, time, fileName;
98 if ( playList->currentTab() != PlayListWidget::CurrentPlayList ) { 97 if ( playList->currentTab() != PlayListWidget::CurrentPlayList ) {
99 //if playing in file list.. play in a different way 98 //if playing in file list.. play in a different way
100 // random and looping settings enabled causes problems here, 99 // random and looping settings enabled causes problems here,
101 // since there is no selected file in the playlist, but a selected file in the file list, 100 // since there is no selected file in the playlist, but a selected file in the file list,
102 // so we remember and shutoff 101 // so we remember and shutoff
103 l = mediaPlayerState->isLooping(); 102 l = mediaPlayerState.isLooping();
104 if(l) { 103 if(l) {
105 mediaPlayerState->setLooping( false ); 104 mediaPlayerState.setLooping( false );
106 } 105 }
107 r = mediaPlayerState->isShuffled(); 106 r = mediaPlayerState.isShuffled();
108 mediaPlayerState->setShuffled( false ); 107 mediaPlayerState.setShuffled( false );
109 } 108 }
110 109
111 PlayListWidget::Entry playListEntry = playList->currentEntry(); 110 PlayListWidget::Entry playListEntry = playList->currentEntry();
112 fileName = playListEntry.name; 111 fileName = playListEntry.name;
113 xineControl->play( playListEntry.file ); 112 xineControl->play( playListEntry.file );
114 113
115 long seconds = mediaPlayerState->length(); 114 long seconds = mediaPlayerState.length();
116 time.sprintf("%li:%02i", seconds/60, (int)seconds%60 ); 115 time.sprintf("%li:%02i", seconds/60, (int)seconds%60 );
117 116
118 if( fileName.left(4) == "http" ) { 117 if( fileName.left(4) == "http" ) {
119 fileName = QFileInfo( fileName ).baseName(); 118 fileName = QFileInfo( fileName ).baseName();
120 if ( xineControl->getMetaInfo().isEmpty() ) { 119 if ( xineControl->getMetaInfo().isEmpty() ) {
121 tickerText = tr( " File: " ) + fileName; 120 tickerText = tr( " File: " ) + fileName;
122 } else { 121 } else {
123 tickerText = xineControl->getMetaInfo(); 122 tickerText = xineControl->getMetaInfo();
124 } 123 }
125 } else { 124 } else {
126 if ( xineControl->getMetaInfo().isEmpty() ) { 125 if ( xineControl->getMetaInfo().isEmpty() ) {
127 tickerText = tr( " File: " ) + fileName + tr( ", Length: " ) + time + " "; 126 tickerText = tr( " File: " ) + fileName + tr( ", Length: " ) + time + " ";
128 } else { 127 } else {
129 tickerText = xineControl->getMetaInfo() + " Length: " + time + " "; 128 tickerText = xineControl->getMetaInfo() + " Length: " + time + " ";
130 } 129 }
131 } 130 }
132 audioUI->setTickerText( tickerText ); 131 audioUI->setTickerText( tickerText );
133} 132}
134 133
135 134
136void MediaPlayer::prev() { 135void MediaPlayer::prev() {
137 if( playList->currentTab() == PlayListWidget::CurrentPlayList ) { //if using the playlist 136 if( playList->currentTab() == PlayListWidget::CurrentPlayList ) { //if using the playlist
138 if ( playList->prev() ) { 137 if ( playList->prev() ) {
139 play(); 138 play();
140 } else if ( mediaPlayerState->isLooping() ) { 139 } else if ( mediaPlayerState.isLooping() ) {
141 if ( playList->last() ) { 140 if ( playList->last() ) {
142 play(); 141 play();
143 } 142 }
144 } else { 143 } else {
145 mediaPlayerState->setList(); 144 mediaPlayerState.setList();
146 } 145 }
147 } 146 }
148} 147}
149 148
150 149
151void MediaPlayer::next() { 150void MediaPlayer::next() {
152 151
153 if(playList->currentTab() == PlayListWidget::CurrentPlayList) { //if using the playlist 152 if(playList->currentTab() == PlayListWidget::CurrentPlayList) { //if using the playlist
154 if ( playList->next() ) { 153 if ( playList->next() ) {
155 play(); 154 play();
156 } else if ( mediaPlayerState->isLooping() ) { 155 } else if ( mediaPlayerState.isLooping() ) {
157 if ( playList->first() ) { 156 if ( playList->first() ) {
158 play(); 157 play();
159 } 158 }
160 } else { 159 } else {
161 mediaPlayerState->setList(); 160 mediaPlayerState.setList();
162 } 161 }
163 } else { //if playing from file list, let's just stop 162 } else { //if playing from file list, let's just stop
164 qDebug("<<<<<<<<<<<<<<<<<stop for filelists"); 163 qDebug("<<<<<<<<<<<<<<<<<stop for filelists");
165 mediaPlayerState->setPlaying(false); 164 mediaPlayerState.setPlaying(false);
166 mediaPlayerState->setDisplayType( MediaPlayerState::MediaSelection ); 165 mediaPlayerState.setDisplayType( MediaPlayerState::MediaSelection );
167 if(l) mediaPlayerState->setLooping(l); 166 if(l) mediaPlayerState.setLooping(l);
168 if(r) mediaPlayerState->setShuffled(r); 167 if(r) mediaPlayerState.setShuffled(r);
169 } 168 }
170 qApp->processEvents(); 169 qApp->processEvents();
171} 170}
172 171
173 172
174void MediaPlayer::startDecreasingVolume() { 173void MediaPlayer::startDecreasingVolume() {
175 volumeDirection = -1; 174 volumeDirection = -1;
176 startTimer( 100 ); 175 startTimer( 100 );
177 volControl->decVol(2); 176 volControl->decVol(2);
178} 177}
179 178
180 179
181void MediaPlayer::startIncreasingVolume() { 180void MediaPlayer::startIncreasingVolume() {
182 volumeDirection = +1; 181 volumeDirection = +1;
183 startTimer( 100 ); 182 startTimer( 100 );
184 volControl->incVol(2); 183 volControl->incVol(2);
185} 184}
186 185
187 186
188bool drawnOnScreenDisplay = FALSE; 187bool drawnOnScreenDisplay = FALSE;
189unsigned int onScreenDisplayVolume = 0; 188unsigned int onScreenDisplayVolume = 0;
190const int yoff = 110; 189const int yoff = 110;
191 190
192void MediaPlayer::stopChangingVolume() { 191void MediaPlayer::stopChangingVolume() {
@@ -325,30 +324,30 @@ void MediaPlayer::blank( bool b ) {
325void MediaPlayer::keyReleaseEvent( QKeyEvent *e) { 324void MediaPlayer::keyReleaseEvent( QKeyEvent *e) {
326 switch ( e->key() ) { 325 switch ( e->key() ) {
327////////////////////////////// Zaurus keys 326////////////////////////////// Zaurus keys
328 case Key_Home: 327 case Key_Home:
329 break; 328 break;
330 case Key_F9: //activity 329 case Key_F9: //activity
331 break; 330 break;
332 case Key_F10: //contacts 331 case Key_F10: //contacts
333 break; 332 break;
334 case Key_F11: //menu 333 case Key_F11: //menu
335 break; 334 break;
336 case Key_F12: //home 335 case Key_F12: //home
337 qDebug("Blank here"); 336 qDebug("Blank here");
338// mediaPlayerState->toggleBlank(); 337// mediaPlayerState->toggleBlank();
339 break; 338 break;
340 case Key_F13: //mail 339 case Key_F13: //mail
341 qDebug("Blank here"); 340 qDebug("Blank here");
342 // mediaPlayerState->toggleBlank(); 341 // mediaPlayerState->toggleBlank();
343 break; 342 break;
344 } 343 }
345} 344}
346 345
347void MediaPlayer::cleanUp() {// this happens on closing 346void MediaPlayer::cleanUp() {// this happens on closing
348 Config cfg( "OpiePlayer" ); 347 Config cfg( "OpiePlayer" );
349 mediaPlayerState->writeConfig( cfg ); 348 mediaPlayerState.writeConfig( cfg );
350 playList->writeDefaultPlaylist( ); 349 playList->writeDefaultPlaylist( );
351 350
352// QPEApplication::grabKeyboard(); 351// QPEApplication::grabKeyboard();
353// QPEApplication::ungrabKeyboard(); 352// QPEApplication::ungrabKeyboard();
354} 353}
diff --git a/noncore/multimedia/opieplayer2/mediaplayer.h b/noncore/multimedia/opieplayer2/mediaplayer.h
index de3886e..6aeac7c 100644
--- a/noncore/multimedia/opieplayer2/mediaplayer.h
+++ b/noncore/multimedia/opieplayer2/mediaplayer.h
@@ -20,56 +20,58 @@
20    =_        +     =;=|` MERCHANTABILITY or FITNESS FOR A 20    =_        +     =;=|` MERCHANTABILITY or FITNESS FOR A
21  _.=:.       :    :=>`: PARTICULAR PURPOSE. See the GNU 21  _.=:.       :    :=>`: PARTICULAR PURPOSE. See the GNU
22..}^=.=       =       ; Library General Public License for more 22..}^=.=       =       ; Library General Public License for more
23++=   -.     .`     .: details. 23++=   -.     .`     .: details.
24 :     =  ...= . :.=- 24 :     =  ...= . :.=-
25 -.   .:....=;==+<; You should have received a copy of the GNU 25 -.   .:....=;==+<; You should have received a copy of the GNU
26  -_. . .   )=.  = Library General Public License along with 26  -_. . .   )=.  = Library General Public License along with
27    --        :-=` this library; see the file COPYING.LIB. 27    --        :-=` this library; see the file COPYING.LIB.
28 If not, write to the Free Software Foundation, 28 If not, write to the Free Software Foundation,
29 Inc., 59 Temple Place - Suite 330, 29 Inc., 59 Temple Place - Suite 330,
30 Boston, MA 02111-1307, USA. 30 Boston, MA 02111-1307, USA.
31 31
32*/ 32*/
33 33
34#ifndef MEDIA_PLAYER_H 34#ifndef MEDIA_PLAYER_H
35#define MEDIA_PLAYER_H 35#define MEDIA_PLAYER_H
36 36
37#include <qmainwindow.h> 37#include <qmainwindow.h>
38#include <qframe.h> 38#include <qframe.h>
39 39
40#include "xinecontrol.h" 40#include "xinecontrol.h"
41 41
42class DocLnk; 42class DocLnk;
43class VolumeControl; 43class VolumeControl;
44class MediaPlayerState;
44 45
45class MediaPlayer : public QObject { 46class MediaPlayer : public QObject {
46 Q_OBJECT 47 Q_OBJECT
47public: 48public:
48 MediaPlayer( QObject *parent, const char *name ); 49 MediaPlayer( MediaPlayerState &_mediaPlayerState, QObject *parent, const char *name );
49 ~MediaPlayer(); 50 ~MediaPlayer();
50private slots: 51private slots:
51 void setPlaying( bool ); 52 void setPlaying( bool );
52 void pauseCheck( bool ); 53 void pauseCheck( bool );
53 void play(); 54 void play();
54 void next(); 55 void next();
55 void prev(); 56 void prev();
56 void startIncreasingVolume(); 57 void startIncreasingVolume();
57 void startDecreasingVolume(); 58 void startDecreasingVolume();
58 void stopChangingVolume(); 59 void stopChangingVolume();
59 void cleanUp(); 60 void cleanUp();
60 void blank( bool ); 61 void blank( bool );
61 62
62protected: 63protected:
63 void timerEvent( QTimerEvent *e ); 64 void timerEvent( QTimerEvent *e );
64 void keyReleaseEvent( QKeyEvent *e); 65 void keyReleaseEvent( QKeyEvent *e);
65private: 66private:
66 bool isBlanked, l, r; 67 bool isBlanked, l, r;
67 int fd, fl; 68 int fd, fl;
68 int volumeDirection; 69 int volumeDirection;
69 XineControl *xineControl; 70 XineControl *xineControl;
70 VolumeControl *volControl; 71 VolumeControl *volControl;
72 MediaPlayerState &mediaPlayerState;
71}; 73};
72 74
73 75
74#endif // MEDIA_PLAYER_H 76#endif // MEDIA_PLAYER_H
75 77