summaryrefslogtreecommitdiff
authorsimon <simon>2002-12-02 15:51:48 (UTC)
committer simon <simon>2002-12-02 15:51:48 (UTC)
commita0cfa5b76aac8de36304faef4bb2b14237c04c9a (patch) (unidiff)
tree0b427d07d918671065e6aed1682b108cda166ce7
parent9f770813346acbe7817b20c5fe0fea03827fc41a (diff)
downloadopie-a0cfa5b76aac8de36304faef4bb2b14237c04c9a.zip
opie-a0cfa5b76aac8de36304faef4bb2b14237c04c9a.tar.gz
opie-a0cfa5b76aac8de36304faef4bb2b14237c04c9a.tar.bz2
- simplified MediaPlayer::setPlaying, moving more switch() like code into
playlistwidget
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--noncore/multimedia/opieplayer2/mediaplayer.cpp31
-rw-r--r--noncore/multimedia/opieplayer2/mediaplayer.h1
-rw-r--r--noncore/multimedia/opieplayer2/playlistwidget.cpp12
-rw-r--r--noncore/multimedia/opieplayer2/playlistwidget.h15
4 files changed, 34 insertions, 25 deletions
diff --git a/noncore/multimedia/opieplayer2/mediaplayer.cpp b/noncore/multimedia/opieplayer2/mediaplayer.cpp
index 6a38adc..74ab2e3 100644
--- a/noncore/multimedia/opieplayer2/mediaplayer.cpp
+++ b/noncore/multimedia/opieplayer2/mediaplayer.cpp
@@ -1,260 +1,247 @@
1#include <qpe/qpeapplication.h> 1#include <qpe/qpeapplication.h>
2#include <qpe/qlibrary.h> 2#include <qpe/qlibrary.h>
3#include <qpe/resource.h> 3#include <qpe/resource.h>
4#include <qpe/config.h> 4#include <qpe/config.h>
5#include <qpe/qcopenvelope_qws.h> 5#include <qpe/qcopenvelope_qws.h>
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; 30extern MediaPlayerState *mediaPlayerState;
31 31
32 32
33#define FBIOBLANK 0x4611 33#define FBIOBLANK 0x4611
34 34
35MediaPlayer::MediaPlayer( QObject *parent, const char *name ) 35MediaPlayer::MediaPlayer( QObject *parent, const char *name )
36 : QObject( parent, name ), volumeDirection( 0 ), currentFile( NULL ) { 36 : QObject( parent, name ), volumeDirection( 0 ) {
37 37
38 fd=-1;fl=-1; 38 fd=-1;fl=-1;
39 playList->setCaption( tr( "OpiePlayer: Initializating" ) ); 39 playList->setCaption( tr( "OpiePlayer: Initializating" ) );
40 40
41 qApp->processEvents(); 41 qApp->processEvents();
42 // QPEApplication::grabKeyboard(); // EVIL 42 // QPEApplication::grabKeyboard(); // EVIL
43 connect( qApp,SIGNAL( aboutToQuit()),SLOT( cleanUp()) ); 43 connect( qApp,SIGNAL( aboutToQuit()),SLOT( cleanUp()) );
44 44
45 connect( mediaPlayerState, SIGNAL( playingToggled( bool ) ), this, SLOT( setPlaying( bool ) ) ); 45 connect( mediaPlayerState, SIGNAL( playingToggled( bool ) ), this, SLOT( setPlaying( bool ) ) );
46 46
47 connect( mediaPlayerState, SIGNAL( pausedToggled( bool ) ), this, SLOT( pauseCheck( bool ) ) ); 47 connect( mediaPlayerState, SIGNAL( pausedToggled( bool ) ), this, SLOT( pauseCheck( bool ) ) );
48 48
49 connect( mediaPlayerState, SIGNAL( next() ), this, SLOT( next() ) ); 49 connect( mediaPlayerState, SIGNAL( next() ), this, SLOT( next() ) );
50 connect( mediaPlayerState, SIGNAL( prev() ), this, SLOT( prev() ) ); 50 connect( mediaPlayerState, SIGNAL( prev() ), this, SLOT( prev() ) );
51 connect( mediaPlayerState, SIGNAL( blankToggled( bool ) ), this, SLOT ( blank( bool ) ) ); 51 connect( mediaPlayerState, SIGNAL( blankToggled( bool ) ), this, SLOT ( blank( bool ) ) );
52 52
53 connect( audioUI, SIGNAL( moreClicked() ), this, SLOT( startIncreasingVolume() ) ); 53 connect( audioUI, SIGNAL( moreClicked() ), this, SLOT( startIncreasingVolume() ) );
54 connect( audioUI, SIGNAL( lessClicked() ), this, SLOT( startDecreasingVolume() ) ); 54 connect( audioUI, SIGNAL( lessClicked() ), this, SLOT( startDecreasingVolume() ) );
55 connect( audioUI, SIGNAL( moreReleased() ), this, SLOT( stopChangingVolume() ) ); 55 connect( audioUI, SIGNAL( moreReleased() ), this, SLOT( stopChangingVolume() ) );
56 connect( audioUI, SIGNAL( lessReleased() ), this, SLOT( stopChangingVolume() ) ); 56 connect( audioUI, SIGNAL( lessReleased() ), this, SLOT( stopChangingVolume() ) );
57 57
58 connect( videoUI, SIGNAL( moreClicked() ), this, SLOT( startIncreasingVolume() ) ); 58 connect( videoUI, SIGNAL( moreClicked() ), this, SLOT( startIncreasingVolume() ) );
59 connect( videoUI, SIGNAL( lessClicked() ), this, SLOT( startDecreasingVolume() ) ); 59 connect( videoUI, SIGNAL( lessClicked() ), this, SLOT( startDecreasingVolume() ) );
60 connect( videoUI, SIGNAL( moreReleased() ), this, SLOT( stopChangingVolume() ) ); 60 connect( videoUI, SIGNAL( moreReleased() ), this, SLOT( stopChangingVolume() ) );
61 connect( videoUI, SIGNAL( lessReleased() ), this, SLOT( stopChangingVolume() ) ); 61 connect( videoUI, SIGNAL( lessReleased() ), this, SLOT( stopChangingVolume() ) );
62 62
63 volControl = new VolumeControl; 63 volControl = new VolumeControl;
64 xineControl = new XineControl(); 64 xineControl = new XineControl();
65 Config cfg( "OpiePlayer" ); 65 Config cfg( "OpiePlayer" );
66 cfg.setGroup("PlayList"); 66 cfg.setGroup("PlayList");
67 QString currentPlaylist = cfg.readEntry( "CurrentPlaylist", "default"); 67 QString currentPlaylist = cfg.readEntry( "CurrentPlaylist", "default");
68 playList->setCaption( tr( "OpiePlayer: " ) + QFileInfo(currentPlaylist).baseName() ); 68 playList->setCaption( tr( "OpiePlayer: " ) + QFileInfo(currentPlaylist).baseName() );
69} 69}
70 70
71MediaPlayer::~MediaPlayer() { 71MediaPlayer::~MediaPlayer() {
72 delete xineControl; 72 delete xineControl;
73 delete volControl; 73 delete volControl;
74} 74}
75 75
76void MediaPlayer::pauseCheck( bool b ) { 76void MediaPlayer::pauseCheck( bool b ) {
77 if ( b && !mediaPlayerState->isPlaying() ) { 77 if ( b && !mediaPlayerState->isPlaying() ) {
78 mediaPlayerState->setPaused( FALSE ); 78 mediaPlayerState->setPaused( FALSE );
79 } 79 }
80} 80}
81 81
82void MediaPlayer::play() { 82void MediaPlayer::play() {
83 mediaPlayerState->setPlaying( FALSE ); 83 mediaPlayerState->setPlaying( FALSE );
84 mediaPlayerState->setPlaying( TRUE ); 84 mediaPlayerState->setPlaying( TRUE );
85} 85}
86 86
87void MediaPlayer::setPlaying( bool play ) { 87void MediaPlayer::setPlaying( bool play ) {
88 if ( !play ) { 88 if ( !play ) {
89 return; 89 return;
90 } 90 }
91 91
92 if ( mediaPlayerState->isPaused() ) { 92 if ( mediaPlayerState->isPaused() ) {
93 mediaPlayerState->setPaused( FALSE ); 93 mediaPlayerState->setPaused( FALSE );
94 return; 94 return;
95 } 95 }
96 96
97 QString tickerText, time, fileName; 97 QString tickerText, time, fileName;
98 if( playList->currentTab() == PlayListWidget::CurrentPlayList ) { //check for filelist 98 if ( playList->currentTab() != PlayListWidget::CurrentPlayList ) {
99 const DocLnk *playListCurrent = playList->current();
100 if ( playListCurrent != NULL ) {
101 currentFile = playListCurrent;
102 }
103 xineControl->play( currentFile->file() );
104 fileName = currentFile->name();
105 long seconds = mediaPlayerState->length();//
106 time.sprintf("%li:%02i", seconds/60, (int)seconds%60 );
107 //qDebug(time);
108
109 } else {
110 //if playing in file list.. play in a different way 99 //if playing in file list.. play in a different way
111 // random and looping settings enabled causes problems here, 100 // random and looping settings enabled causes problems here,
112 // since there is no selected file in the playlist, but a selected file in the file list, 101 // since there is no selected file in the playlist, but a selected file in the file list,
113 // so we remember and shutoff 102 // so we remember and shutoff
114 l = mediaPlayerState->isLooping(); 103 l = mediaPlayerState->isLooping();
115 if(l) { 104 if(l) {
116 mediaPlayerState->setLooping( false ); 105 mediaPlayerState->setLooping( false );
117 } 106 }
118 r = mediaPlayerState->isShuffled(); 107 r = mediaPlayerState->isShuffled();
119 mediaPlayerState->setShuffled( false ); 108 mediaPlayerState->setShuffled( false );
109 }
120 110
121 fileName = playList->currentFileListPathName(); 111 PlayListWidget::Entry playListEntry = playList->currentEntry();
122 xineControl->play( fileName ); 112 fileName = playListEntry.name;
123 long seconds = mediaPlayerState->length(); 113 xineControl->play( playListEntry.file );
124 time.sprintf("%li:%02i", seconds/60, (int)seconds%60 );
125 //qDebug(time);
126 if( fileName.left(4) != "http" ) {
127 fileName = QFileInfo( fileName ).baseName();
128 }
129 114
130 } 115 long seconds = mediaPlayerState->length();
116 time.sprintf("%li:%02i", seconds/60, (int)seconds%60 );
131 117
132 if( fileName.left(4) == "http" ) { 118 if( fileName.left(4) == "http" ) {
119 fileName = QFileInfo( fileName ).baseName();
133 if ( xineControl->getMetaInfo().isEmpty() ) { 120 if ( xineControl->getMetaInfo().isEmpty() ) {
134 tickerText = tr( " File: " ) + fileName; 121 tickerText = tr( " File: " ) + fileName;
135 } else { 122 } else {
136 tickerText = xineControl->getMetaInfo(); 123 tickerText = xineControl->getMetaInfo();
137 } 124 }
138 } else { 125 } else {
139 if ( xineControl->getMetaInfo().isEmpty() ) { 126 if ( xineControl->getMetaInfo().isEmpty() ) {
140 tickerText = tr( " File: " ) + fileName + tr( ", Length: " ) + time + " "; 127 tickerText = tr( " File: " ) + fileName + tr( ", Length: " ) + time + " ";
141 } else { 128 } else {
142 tickerText = xineControl->getMetaInfo() + " Length: " + time + " "; 129 tickerText = xineControl->getMetaInfo() + " Length: " + time + " ";
143 } 130 }
144 } 131 }
145 audioUI->setTickerText( tickerText ); 132 audioUI->setTickerText( tickerText );
146} 133}
147 134
148 135
149void MediaPlayer::prev() { 136void MediaPlayer::prev() {
150 if( playList->currentTab() == PlayListWidget::CurrentPlayList ) { //if using the playlist 137 if( playList->currentTab() == PlayListWidget::CurrentPlayList ) { //if using the playlist
151 if ( playList->prev() ) { 138 if ( playList->prev() ) {
152 play(); 139 play();
153 } else if ( mediaPlayerState->isLooping() ) { 140 } else if ( mediaPlayerState->isLooping() ) {
154 if ( playList->last() ) { 141 if ( playList->last() ) {
155 play(); 142 play();
156 } 143 }
157 } else { 144 } else {
158 mediaPlayerState->setList(); 145 mediaPlayerState->setList();
159 } 146 }
160 } 147 }
161} 148}
162 149
163 150
164void MediaPlayer::next() { 151void MediaPlayer::next() {
165 152
166 if(playList->currentTab() == PlayListWidget::CurrentPlayList) { //if using the playlist 153 if(playList->currentTab() == PlayListWidget::CurrentPlayList) { //if using the playlist
167 if ( playList->next() ) { 154 if ( playList->next() ) {
168 play(); 155 play();
169 } else if ( mediaPlayerState->isLooping() ) { 156 } else if ( mediaPlayerState->isLooping() ) {
170 if ( playList->first() ) { 157 if ( playList->first() ) {
171 play(); 158 play();
172 } 159 }
173 } else { 160 } else {
174 mediaPlayerState->setList(); 161 mediaPlayerState->setList();
175 } 162 }
176 } else { //if playing from file list, let's just stop 163 } else { //if playing from file list, let's just stop
177 qDebug("<<<<<<<<<<<<<<<<<stop for filelists"); 164 qDebug("<<<<<<<<<<<<<<<<<stop for filelists");
178 mediaPlayerState->setPlaying(false); 165 mediaPlayerState->setPlaying(false);
179 mediaPlayerState->setView('l'); 166 mediaPlayerState->setView('l');
180 if(l) mediaPlayerState->setLooping(l); 167 if(l) mediaPlayerState->setLooping(l);
181 if(r) mediaPlayerState->setShuffled(r); 168 if(r) mediaPlayerState->setShuffled(r);
182 } 169 }
183 qApp->processEvents(); 170 qApp->processEvents();
184} 171}
185 172
186 173
187void MediaPlayer::startDecreasingVolume() { 174void MediaPlayer::startDecreasingVolume() {
188 volumeDirection = -1; 175 volumeDirection = -1;
189 startTimer( 100 ); 176 startTimer( 100 );
190 volControl->decVol(2); 177 volControl->decVol(2);
191} 178}
192 179
193 180
194void MediaPlayer::startIncreasingVolume() { 181void MediaPlayer::startIncreasingVolume() {
195 volumeDirection = +1; 182 volumeDirection = +1;
196 startTimer( 100 ); 183 startTimer( 100 );
197 volControl->incVol(2); 184 volControl->incVol(2);
198} 185}
199 186
200 187
201bool drawnOnScreenDisplay = FALSE; 188bool drawnOnScreenDisplay = FALSE;
202unsigned int onScreenDisplayVolume = 0; 189unsigned int onScreenDisplayVolume = 0;
203const int yoff = 110; 190const int yoff = 110;
204 191
205void MediaPlayer::stopChangingVolume() { 192void MediaPlayer::stopChangingVolume() {
206 killTimers(); 193 killTimers();
207 // Get rid of the on-screen display stuff 194 // Get rid of the on-screen display stuff
208 drawnOnScreenDisplay = FALSE; 195 drawnOnScreenDisplay = FALSE;
209 onScreenDisplayVolume = 0; 196 onScreenDisplayVolume = 0;
210 int w=0; 197 int w=0;
211 int h=0; 198 int h=0;
212 if( !xineControl->hasVideo() ) { 199 if( !xineControl->hasVideo() ) {
213 w = audioUI->width(); 200 w = audioUI->width();
214 h = audioUI->height(); 201 h = audioUI->height();
215 audioUI->repaint( ( w - 200 ) / 2, h - yoff, 200 + 9, 70, FALSE ); 202 audioUI->repaint( ( w - 200 ) / 2, h - yoff, 200 + 9, 70, FALSE );
216 } else { 203 } else {
217 w = videoUI->width(); 204 w = videoUI->width();
218 h = videoUI->height(); 205 h = videoUI->height();
219 videoUI->repaint( ( w - 200 ) / 2, h - yoff, 200 + 9, 70, FALSE ); 206 videoUI->repaint( ( w - 200 ) / 2, h - yoff, 200 + 9, 70, FALSE );
220 } 207 }
221} 208}
222 209
223 210
224void MediaPlayer::timerEvent( QTimerEvent * ) { 211void MediaPlayer::timerEvent( QTimerEvent * ) {
225 if ( volumeDirection == +1 ) { 212 if ( volumeDirection == +1 ) {
226 volControl->incVol( 2 ); 213 volControl->incVol( 2 );
227 } else if ( volumeDirection == -1 ) { 214 } else if ( volumeDirection == -1 ) {
228 volControl->decVol( 2 ); 215 volControl->decVol( 2 );
229 } 216 }
230 217
231 218
232 // TODO FIXME 219 // TODO FIXME
233 // huh?? 220 // huh??
234 unsigned int v= 0; 221 unsigned int v= 0;
235 v = volControl->volume(); 222 v = volControl->volume();
236 v = v / 10; 223 v = v / 10;
237 224
238 if ( drawnOnScreenDisplay && onScreenDisplayVolume == v ) { 225 if ( drawnOnScreenDisplay && onScreenDisplayVolume == v ) {
239 return; 226 return;
240 } 227 }
241 228
242 int w=0; int h=0; 229 int w=0; int h=0;
243 if( !xineControl->hasVideo() ) { 230 if( !xineControl->hasVideo() ) {
244 w = audioUI->width(); 231 w = audioUI->width();
245 h = audioUI->height(); 232 h = audioUI->height();
246 233
247 if ( drawnOnScreenDisplay ) { 234 if ( drawnOnScreenDisplay ) {
248 if ( onScreenDisplayVolume > v ) { 235 if ( onScreenDisplayVolume > v ) {
249 audioUI->repaint( ( w - 200 ) / 2 + v * 20 + 0, h - yoff + 40, ( onScreenDisplayVolume - v ) * 20 + 9, 30, FALSE ); 236 audioUI->repaint( ( w - 200 ) / 2 + v * 20 + 0, h - yoff + 40, ( onScreenDisplayVolume - v ) * 20 + 9, 30, FALSE );
250 } 237 }
251 } 238 }
252 drawnOnScreenDisplay = TRUE; 239 drawnOnScreenDisplay = TRUE;
253 onScreenDisplayVolume = v; 240 onScreenDisplayVolume = v;
254 QPainter p( audioUI ); 241 QPainter p( audioUI );
255 p.setPen( QColor( 0x10, 0xD0, 0x10 ) ); 242 p.setPen( QColor( 0x10, 0xD0, 0x10 ) );
256 p.setBrush( QColor( 0x10, 0xD0, 0x10 ) ); 243 p.setBrush( QColor( 0x10, 0xD0, 0x10 ) );
257 244
258 QFont f; 245 QFont f;
259 f.setPixelSize( 20 ); 246 f.setPixelSize( 20 );
260 f.setBold( TRUE ); 247 f.setBold( TRUE );
diff --git a/noncore/multimedia/opieplayer2/mediaplayer.h b/noncore/multimedia/opieplayer2/mediaplayer.h
index 002311a..1e34c88 100644
--- a/noncore/multimedia/opieplayer2/mediaplayer.h
+++ b/noncore/multimedia/opieplayer2/mediaplayer.h
@@ -1,78 +1,77 @@
1 /* 1 /*
2                This file is part of the Opie Project 2                This file is part of the Opie Project
3 3
4              Copyright (c) 2002 Max Reiss <harlekin@handhelds.org> 4              Copyright (c) 2002 Max Reiss <harlekin@handhelds.org>
5 Copyright (c) 2002 LJP <> 5 Copyright (c) 2002 LJP <>
6 Copyright (c) 2002 Holger Freyther <zecke@handhelds.org> 6 Copyright (c) 2002 Holger Freyther <zecke@handhelds.org>
7 =. 7 =.
8 .=l. 8 .=l.
9           .>+-= 9           .>+-=
10 _;:,     .>    :=|. This program is free software; you can 10 _;:,     .>    :=|. This program is free software; you can
11.> <`_,   >  .   <= redistribute it and/or modify it under 11.> <`_,   >  .   <= redistribute it and/or modify it under
12:`=1 )Y*s>-.--   : the terms of the GNU General Public 12:`=1 )Y*s>-.--   : the terms of the GNU General Public
13.="- .-=="i,     .._ License as published by the Free Software 13.="- .-=="i,     .._ License as published by the Free Software
14 - .   .-<_>     .<> Foundation; either version 2 of the License, 14 - .   .-<_>     .<> Foundation; either version 2 of the License,
15     ._= =}       : or (at your option) any later version. 15     ._= =}       : or (at your option) any later version.
16    .%`+i>       _;_. 16    .%`+i>       _;_.
17    .i_,=:_.      -<s. This program is distributed in the hope that 17    .i_,=:_.      -<s. This program is distributed in the hope that
18     +  .  -:.       = it will be useful, but WITHOUT ANY WARRANTY; 18     +  .  -:.       = it will be useful, but WITHOUT ANY WARRANTY;
19    : ..    .:,     . . . without even the implied warranty of 19    : ..    .:,     . . . without even the implied warranty of
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#include <qpe/qlibrary.h> 39#include <qpe/qlibrary.h>
40#include <qpe/mediaplayerplugininterface.h> 40#include <qpe/mediaplayerplugininterface.h>
41 41
42#include "xinecontrol.h" 42#include "xinecontrol.h"
43 43
44class DocLnk; 44class DocLnk;
45class VolumeControl; 45class VolumeControl;
46 46
47class MediaPlayer : public QObject { 47class MediaPlayer : public QObject {
48 Q_OBJECT 48 Q_OBJECT
49public: 49public:
50 MediaPlayer( QObject *parent, const char *name ); 50 MediaPlayer( QObject *parent, const char *name );
51 ~MediaPlayer(); 51 ~MediaPlayer();
52private slots: 52private slots:
53 void setPlaying( bool ); 53 void setPlaying( bool );
54 void pauseCheck( bool ); 54 void pauseCheck( bool );
55 void play(); 55 void play();
56 void next(); 56 void next();
57 void prev(); 57 void prev();
58 void startIncreasingVolume(); 58 void startIncreasingVolume();
59 void startDecreasingVolume(); 59 void startDecreasingVolume();
60 void stopChangingVolume(); 60 void stopChangingVolume();
61 void cleanUp(); 61 void cleanUp();
62 void blank( bool ); 62 void blank( bool );
63 63
64protected: 64protected:
65 void timerEvent( QTimerEvent *e ); 65 void timerEvent( QTimerEvent *e );
66 void keyReleaseEvent( QKeyEvent *e); 66 void keyReleaseEvent( QKeyEvent *e);
67private: 67private:
68 bool isBlanked, l, r; 68 bool isBlanked, l, r;
69 int fd, fl; 69 int fd, fl;
70 int volumeDirection; 70 int volumeDirection;
71 const DocLnk *currentFile;
72 XineControl *xineControl; 71 XineControl *xineControl;
73 VolumeControl *volControl; 72 VolumeControl *volControl;
74}; 73};
75 74
76 75
77#endif // MEDIA_PLAYER_H 76#endif // MEDIA_PLAYER_H
78 77
diff --git a/noncore/multimedia/opieplayer2/playlistwidget.cpp b/noncore/multimedia/opieplayer2/playlistwidget.cpp
index fd256b7..ce73252 100644
--- a/noncore/multimedia/opieplayer2/playlistwidget.cpp
+++ b/noncore/multimedia/opieplayer2/playlistwidget.cpp
@@ -299,257 +299,257 @@ void PlayListWidget::addAllToList() {
299 // lst->append( audioIt.current() ); 299 // lst->append( audioIt.current() );
300 // } 300 // }
301 301
302 302
303// if(!audioScan) 303// if(!audioScan)
304// scanForAudio(); 304// scanForAudio();
305// if(!videoScan) 305// if(!videoScan)
306// scanForVideo(); 306// scanForVideo();
307 307
308// DocLnkSet filesAll; 308// DocLnkSet filesAll;
309// Global::findDocuments(&filesAll, "video/*;"+audioMimes); 309// Global::findDocuments(&filesAll, "video/*;"+audioMimes);
310// QListIterator<DocLnk> Adit( filesAll.children() ); 310// QListIterator<DocLnk> Adit( filesAll.children() );
311// for ( ; Adit.current(); ++Adit ) { 311// for ( ; Adit.current(); ++Adit ) {
312// if( QFileInfo( Adit.current()->file() ).exists() ) { 312// if( QFileInfo( Adit.current()->file() ).exists() ) {
313// d->selectedFiles->addToSelection( **Adit ); 313// d->selectedFiles->addToSelection( **Adit );
314// } 314// }
315// } 315// }
316 316
317 // qDebug("elapsed time %d", t.elapsed() ); 317 // qDebug("elapsed time %d", t.elapsed() );
318 318
319 tabWidget->setCurrentPage(0); 319 tabWidget->setCurrentPage(0);
320 320
321 writeCurrentM3u(); 321 writeCurrentM3u();
322 d->selectedFiles->first(); 322 d->selectedFiles->first();
323} 323}
324 324
325 325
326void PlayListWidget::addAllMusicToList() { 326void PlayListWidget::addAllMusicToList() {
327 327
328 if(!audioScan) { 328 if(!audioScan) {
329 if(audioView->childCount() < 1) 329 if(audioView->childCount() < 1)
330 populateAudioView(); 330 populateAudioView();
331 } 331 }
332 332
333 QListViewItemIterator audioIt( audioView ); 333 QListViewItemIterator audioIt( audioView );
334 DocLnk lnk; 334 DocLnk lnk;
335 QString filename; 335 QString filename;
336 // iterate through all items of the listview 336 // iterate through all items of the listview
337 for ( ; audioIt.current(); ++audioIt ) { 337 for ( ; audioIt.current(); ++audioIt ) {
338 filename = audioIt.current()->text(3); 338 filename = audioIt.current()->text(3);
339 lnk.setName( QFileInfo(filename).baseName() ); //sets name 339 lnk.setName( QFileInfo(filename).baseName() ); //sets name
340 lnk.setFile( filename ); //sets file name 340 lnk.setFile( filename ); //sets file name
341 d->selectedFiles->addToSelection( lnk); 341 d->selectedFiles->addToSelection( lnk);
342 } 342 }
343 343
344 /* if(!audioScan) 344 /* if(!audioScan)
345 scanForAudio(); 345 scanForAudio();
346 QListIterator<DocLnk> dit( files.children() ); 346 QListIterator<DocLnk> dit( files.children() );
347 for ( ; dit.current(); ++dit ) { 347 for ( ; dit.current(); ++dit ) {
348 if( QFileInfo(dit.current()->file() ).exists() ) { 348 if( QFileInfo(dit.current()->file() ).exists() ) {
349 d->selectedFiles->addToSelection( **dit ); 349 d->selectedFiles->addToSelection( **dit );
350 } 350 }
351 } 351 }
352 */ 352 */
353 tabWidget->setCurrentPage(0); 353 tabWidget->setCurrentPage(0);
354 writeCurrentM3u(); 354 writeCurrentM3u();
355 d->selectedFiles->first(); 355 d->selectedFiles->first();
356} 356}
357 357
358 358
359void PlayListWidget::addAllVideoToList() { 359void PlayListWidget::addAllVideoToList() {
360 360
361 if(!videoScan) { 361 if(!videoScan) {
362 if(videoView->childCount() < 1) 362 if(videoView->childCount() < 1)
363 populateVideoView(); 363 populateVideoView();
364 } 364 }
365 365
366 QListViewItemIterator videoIt( videoView ); 366 QListViewItemIterator videoIt( videoView );
367 DocLnk lnk; 367 DocLnk lnk;
368 QString filename; 368 QString filename;
369 for ( ; videoIt.current(); ++videoIt ) { 369 for ( ; videoIt.current(); ++videoIt ) {
370 filename = videoIt.current()->text(3); 370 filename = videoIt.current()->text(3);
371 lnk.setName( QFileInfo(filename).baseName() ); //sets name 371 lnk.setName( QFileInfo(filename).baseName() ); //sets name
372 lnk.setFile( filename ); //sets file name 372 lnk.setFile( filename ); //sets file name
373 d->selectedFiles->addToSelection( lnk); 373 d->selectedFiles->addToSelection( lnk);
374 } 374 }
375 375
376 376
377 /* if(!videoScan) 377 /* if(!videoScan)
378 scanForVideo(); 378 scanForVideo();
379 QListIterator<DocLnk> dit( vFiles.children() ); 379 QListIterator<DocLnk> dit( vFiles.children() );
380 for ( ; dit.current(); ++dit ) { 380 for ( ; dit.current(); ++dit ) {
381 if( QFileInfo( dit.current()->file() ).exists() ) { 381 if( QFileInfo( dit.current()->file() ).exists() ) {
382 d->selectedFiles->addToSelection( **dit ); 382 d->selectedFiles->addToSelection( **dit );
383 } 383 }
384 } 384 }
385*/ 385*/
386 tabWidget->setCurrentPage(0); 386 tabWidget->setCurrentPage(0);
387 writeCurrentM3u(); 387 writeCurrentM3u();
388 d->selectedFiles->first(); 388 d->selectedFiles->first();
389} 389}
390 390
391 391
392void PlayListWidget::setDocument( const QString& fileref ) { 392void PlayListWidget::setDocument( const QString& fileref ) {
393 // qDebug( "<<<<<<<<set document>>>>>>>>>> "+fileref ); 393 // qDebug( "<<<<<<<<set document>>>>>>>>>> "+fileref );
394 fromSetDocument = TRUE; 394 fromSetDocument = TRUE;
395 if ( fileref.isNull() ) { 395 if ( fileref.isNull() ) {
396 QMessageBox::warning( this, tr( "Invalid File" ), 396 QMessageBox::warning( this, tr( "Invalid File" ),
397 tr( "There was a problem in getting the file." ) ); 397 tr( "There was a problem in getting the file." ) );
398 return; 398 return;
399 } 399 }
400 400
401 clearList(); 401 clearList();
402 if( fileref.find( "m3u", 0, TRUE) != -1 ) { //is m3u 402 if( fileref.find( "m3u", 0, TRUE) != -1 ) { //is m3u
403 readm3u( fileref ); 403 readm3u( fileref );
404 } else if( DocLnk( fileref).file().find( "m3u", 0, TRUE) != -1 ) { 404 } else if( DocLnk( fileref).file().find( "m3u", 0, TRUE) != -1 ) {
405 readm3u( DocLnk( fileref).file() ); 405 readm3u( DocLnk( fileref).file() );
406 } else if( fileref.find( "pls", 0, TRUE) != -1 ) { //is pls 406 } else if( fileref.find( "pls", 0, TRUE) != -1 ) { //is pls
407 readPls( fileref ); 407 readPls( fileref );
408 } else if( DocLnk( fileref).file().find( "pls", 0, TRUE) != -1 ) { 408 } else if( DocLnk( fileref).file().find( "pls", 0, TRUE) != -1 ) {
409 readPls( DocLnk( fileref).file() ); 409 readPls( DocLnk( fileref).file() );
410 } else { 410 } else {
411 clearList(); 411 clearList();
412 addToSelection( DocLnk( fileref ) ); 412 addToSelection( DocLnk( fileref ) );
413 writeCurrentM3u(); 413 writeCurrentM3u();
414 414
415 d->setDocumentUsed = TRUE; 415 d->setDocumentUsed = TRUE;
416 mediaPlayerState->setPlaying( FALSE ); 416 mediaPlayerState->setPlaying( FALSE );
417 mediaPlayerState->setPlaying( TRUE ); 417 mediaPlayerState->setPlaying( TRUE );
418 } 418 }
419} 419}
420 420
421 421
422void PlayListWidget::useSelectedDocument() { 422void PlayListWidget::useSelectedDocument() {
423 d->setDocumentUsed = FALSE; 423 d->setDocumentUsed = FALSE;
424} 424}
425 425
426 426
427const DocLnk *PlayListWidget::current() { // this is fugly 427const DocLnk *PlayListWidget::current() const { // this is fugly
428 assert( currentTab() == CurrentPlayList ); 428 assert( currentTab() == CurrentPlayList );
429 429
430// qDebug("playlist"); 430// qDebug("playlist");
431 if ( mediaPlayerState->isUsingPlaylist() ) { 431 if ( mediaPlayerState->isUsingPlaylist() ) {
432 return d->selectedFiles->current(); 432 return d->selectedFiles->current();
433 } else if ( d->setDocumentUsed && d->current ) { 433 } else if ( d->setDocumentUsed && d->current ) {
434 return d->current; 434 return d->current;
435 } else { 435 } else {
436 return &(d->files->selectedDocument()); 436 return &(d->files->selectedDocument());
437 } 437 }
438} 438}
439 439
440 440
441bool PlayListWidget::prev() { 441bool PlayListWidget::prev() {
442 if ( mediaPlayerState->isUsingPlaylist() ) { 442 if ( mediaPlayerState->isUsingPlaylist() ) {
443 if ( mediaPlayerState->isShuffled() ) { 443 if ( mediaPlayerState->isShuffled() ) {
444 const DocLnk *cur = current(); 444 const DocLnk *cur = current();
445 int j = 1 + (int)(97.0 * rand() / (RAND_MAX + 1.0)); 445 int j = 1 + (int)(97.0 * rand() / (RAND_MAX + 1.0));
446 for ( int i = 0; i < j; i++ ) { 446 for ( int i = 0; i < j; i++ ) {
447 if ( !d->selectedFiles->next() ) 447 if ( !d->selectedFiles->next() )
448 d->selectedFiles->first(); 448 d->selectedFiles->first();
449 } 449 }
450 if ( cur == current() ) 450 if ( cur == current() )
451 if ( !d->selectedFiles->next() ) { 451 if ( !d->selectedFiles->next() ) {
452 d->selectedFiles->first(); 452 d->selectedFiles->first();
453 } 453 }
454 return TRUE; 454 return TRUE;
455 } else { 455 } else {
456 if ( !d->selectedFiles->prev() ) { 456 if ( !d->selectedFiles->prev() ) {
457 if ( mediaPlayerState->isLooping() ) { 457 if ( mediaPlayerState->isLooping() ) {
458 return d->selectedFiles->last(); 458 return d->selectedFiles->last();
459 } else { 459 } else {
460 return FALSE; 460 return FALSE;
461 } 461 }
462 } 462 }
463 return TRUE; 463 return TRUE;
464 } 464 }
465 } else { 465 } else {
466 return mediaPlayerState->isLooping(); 466 return mediaPlayerState->isLooping();
467 } 467 }
468} 468}
469 469
470 470
471bool PlayListWidget::next() { 471bool PlayListWidget::next() {
472//qDebug("<<<<<<<<<<<<next()"); 472//qDebug("<<<<<<<<<<<<next()");
473 if ( mediaPlayerState->isUsingPlaylist() ) { 473 if ( mediaPlayerState->isUsingPlaylist() ) {
474 if ( mediaPlayerState->isShuffled() ) { 474 if ( mediaPlayerState->isShuffled() ) {
475 return prev(); 475 return prev();
476 } else { 476 } else {
477 if ( !d->selectedFiles->next() ) { 477 if ( !d->selectedFiles->next() ) {
478 if ( mediaPlayerState->isLooping() ) { 478 if ( mediaPlayerState->isLooping() ) {
479 return d->selectedFiles->first(); 479 return d->selectedFiles->first();
480 } else { 480 } else {
481 return FALSE; 481 return FALSE;
482 } 482 }
483 } 483 }
484 return TRUE; 484 return TRUE;
485 } 485 }
486 } else { 486 } else {
487 return mediaPlayerState->isLooping(); 487 return mediaPlayerState->isLooping();
488 } 488 }
489} 489}
490 490
491 491
492bool PlayListWidget::first() { 492bool PlayListWidget::first() {
493 if ( mediaPlayerState->isUsingPlaylist() ) 493 if ( mediaPlayerState->isUsingPlaylist() )
494 return d->selectedFiles->first(); 494 return d->selectedFiles->first();
495 else 495 else
496 return mediaPlayerState->isLooping(); 496 return mediaPlayerState->isLooping();
497} 497}
498 498
499 499
500bool PlayListWidget::last() { 500bool PlayListWidget::last() {
501 if ( mediaPlayerState->isUsingPlaylist() ) 501 if ( mediaPlayerState->isUsingPlaylist() )
502 return d->selectedFiles->last(); 502 return d->selectedFiles->last();
503 else 503 else
504 return mediaPlayerState->isLooping(); 504 return mediaPlayerState->isLooping();
505} 505}
506 506
507 507
508 void PlayListWidget::saveList() { 508 void PlayListWidget::saveList() {
509 writem3u(); 509 writem3u();
510 } 510 }
511 511
512 512
513void PlayListWidget::loadList( const DocLnk & lnk) { 513void PlayListWidget::loadList( const DocLnk & lnk) {
514 QString name = lnk.name(); 514 QString name = lnk.name();
515 // qDebug("<<<<<<<<<<<<<<<<<<<<<<<<currentList is "+name); 515 // qDebug("<<<<<<<<<<<<<<<<<<<<<<<<currentList is "+name);
516 516
517 if( name.length()>0) { 517 if( name.length()>0) {
518 setCaption("OpiePlayer: "+name); 518 setCaption("OpiePlayer: "+name);
519// qDebug("<<<<<<<<<<<<load list "+ lnk.file()); 519// qDebug("<<<<<<<<<<<<load list "+ lnk.file());
520 clearList(); 520 clearList();
521 readm3u(lnk.file()); 521 readm3u(lnk.file());
522 tabWidget->setCurrentPage(0); 522 tabWidget->setCurrentPage(0);
523 } 523 }
524} 524}
525 525
526 526
527void PlayListWidget::setPlaylist( bool shown ) { 527void PlayListWidget::setPlaylist( bool shown ) {
528 if ( shown ) { 528 if ( shown ) {
529 d->playListFrame->show(); 529 d->playListFrame->show();
530 } else { 530 } else {
531 d->playListFrame->hide(); 531 d->playListFrame->hide();
532 } 532 }
533} 533}
534 534
535 535
536void PlayListWidget::addSelected() { 536void PlayListWidget::addSelected() {
537 assert( inFileListMode() ); 537 assert( inFileListMode() );
538 538
539 QListView *fileListView = currentFileListView(); 539 QListView *fileListView = currentFileListView();
540 QListViewItemIterator it( fileListView ); 540 QListViewItemIterator it( fileListView );
541 for ( ; it.current(); ++it ) 541 for ( ; it.current(); ++it )
542 if ( it.current()->isSelected() ) { 542 if ( it.current()->isSelected() ) {
543 QString filename = it.current()->text(3); 543 QString filename = it.current()->text(3);
544 544
545 DocLnk lnk; 545 DocLnk lnk;
546 lnk.setName( QFileInfo( filename ).baseName() ); //sets name 546 lnk.setName( QFileInfo( filename ).baseName() ); //sets name
547 lnk.setFile( filename ); //sets file name 547 lnk.setFile( filename ); //sets file name
548 548
549 d->selectedFiles->addToSelection( lnk ); 549 d->selectedFiles->addToSelection( lnk );
550 } 550 }
551 551
552 fileListView->clearSelection(); 552 fileListView->clearSelection();
553 553
554 tabWidget->setCurrentPage( 0 ); 554 tabWidget->setCurrentPage( 0 );
555 writeCurrentM3u(); 555 writeCurrentM3u();
@@ -1016,131 +1016,141 @@ void PlayListWidget::writem3u() {
1016 } 1016 }
1017 } 1017 }
1018} 1018}
1019 1019
1020void PlayListWidget::keyReleaseEvent( QKeyEvent *e ) { 1020void PlayListWidget::keyReleaseEvent( QKeyEvent *e ) {
1021 switch ( e->key() ) { 1021 switch ( e->key() ) {
1022 ////////////////////////////// Zaurus keys 1022 ////////////////////////////// Zaurus keys
1023 case Key_F9: //activity 1023 case Key_F9: //activity
1024 // if(audioUI->isHidden()) 1024 // if(audioUI->isHidden())
1025 // audioUI->showMaximized(); 1025 // audioUI->showMaximized();
1026 break; 1026 break;
1027 case Key_F10: //contacts 1027 case Key_F10: //contacts
1028 // if( videoUI->isHidden()) 1028 // if( videoUI->isHidden())
1029 // videoUI->showMaximized(); 1029 // videoUI->showMaximized();
1030 break; 1030 break;
1031 case Key_F11: //menu 1031 case Key_F11: //menu
1032 break; 1032 break;
1033 case Key_F12: //home 1033 case Key_F12: //home
1034 // doBlank(); 1034 // doBlank();
1035 break; 1035 break;
1036 case Key_F13: //mail 1036 case Key_F13: //mail
1037 // doUnblank(); 1037 // doUnblank();
1038 break; 1038 break;
1039 case Key_Q: //add to playlist 1039 case Key_Q: //add to playlist
1040 addSelected(); 1040 addSelected();
1041 break; 1041 break;
1042 case Key_R: //remove from playlist 1042 case Key_R: //remove from playlist
1043 removeSelected(); 1043 removeSelected();
1044 break; 1044 break;
1045 // case Key_P: //play 1045 // case Key_P: //play
1046 // qDebug("Play"); 1046 // qDebug("Play");
1047 // playSelected(); 1047 // playSelected();
1048 // break; 1048 // break;
1049 case Key_Space: 1049 case Key_Space:
1050 // playSelected(); puh 1050 // playSelected(); puh
1051 break; 1051 break;
1052 case Key_1: 1052 case Key_1:
1053 tabWidget->setCurrentPage( 0 ); 1053 tabWidget->setCurrentPage( 0 );
1054 break; 1054 break;
1055 case Key_2: 1055 case Key_2:
1056 tabWidget->setCurrentPage( 1 ); 1056 tabWidget->setCurrentPage( 1 );
1057 break; 1057 break;
1058 case Key_3: 1058 case Key_3:
1059 tabWidget->setCurrentPage( 2 ); 1059 tabWidget->setCurrentPage( 2 );
1060 break; 1060 break;
1061 case Key_4: 1061 case Key_4:
1062 tabWidget->setCurrentPage( 3 ); 1062 tabWidget->setCurrentPage( 3 );
1063 break; 1063 break;
1064 case Key_Down: 1064 case Key_Down:
1065 if ( !d->selectedFiles->next() ) 1065 if ( !d->selectedFiles->next() )
1066 d->selectedFiles->first(); 1066 d->selectedFiles->first();
1067 break; 1067 break;
1068 case Key_Up: 1068 case Key_Up:
1069 if ( !d->selectedFiles->prev() ) 1069 if ( !d->selectedFiles->prev() )
1070 // d->selectedFiles->last(); 1070 // d->selectedFiles->last();
1071 break; 1071 break;
1072 } 1072 }
1073} 1073}
1074 1074
1075void PlayListWidget::pmViewActivated(int index) { 1075void PlayListWidget::pmViewActivated(int index) {
1076// qDebug("%d", index); 1076// qDebug("%d", index);
1077 switch(index) { 1077 switch(index) {
1078 case -16: 1078 case -16:
1079 { 1079 {
1080 mediaPlayerState->toggleFullscreen(); 1080 mediaPlayerState->toggleFullscreen();
1081 bool b=mediaPlayerState->isFullscreen(); 1081 bool b=mediaPlayerState->isFullscreen();
1082 pmView->setItemChecked( index, b); 1082 pmView->setItemChecked( index, b);
1083 Config cfg( "OpiePlayer" ); 1083 Config cfg( "OpiePlayer" );
1084 cfg.writeEntry( "FullScreen", b ); 1084 cfg.writeEntry( "FullScreen", b );
1085 } 1085 }
1086 break; 1086 break;
1087 }; 1087 };
1088} 1088}
1089 1089
1090void PlayListWidget::populateSkinsMenu() { 1090void PlayListWidget::populateSkinsMenu() {
1091 int item = 0; 1091 int item = 0;
1092 defaultSkinIndex = 0; 1092 defaultSkinIndex = 0;
1093 QString skinName; 1093 QString skinName;
1094 Config cfg( "OpiePlayer" ); 1094 Config cfg( "OpiePlayer" );
1095 cfg.setGroup("Options" ); 1095 cfg.setGroup("Options" );
1096 QString skin = cfg.readEntry( "Skin", "default" ); 1096 QString skin = cfg.readEntry( "Skin", "default" );
1097 1097
1098 QDir skinsDir( QPEApplication::qpeDir() + "/pics/opieplayer2/skins" ); 1098 QDir skinsDir( QPEApplication::qpeDir() + "/pics/opieplayer2/skins" );
1099 skinsDir.setFilter( QDir::Dirs ); 1099 skinsDir.setFilter( QDir::Dirs );
1100 skinsDir.setSorting(QDir::Name ); 1100 skinsDir.setSorting(QDir::Name );
1101 const QFileInfoList *skinslist = skinsDir.entryInfoList(); 1101 const QFileInfoList *skinslist = skinsDir.entryInfoList();
1102 QFileInfoListIterator it( *skinslist ); 1102 QFileInfoListIterator it( *skinslist );
1103 QFileInfo *fi; 1103 QFileInfo *fi;
1104 while ( ( fi = it.current() ) ) { 1104 while ( ( fi = it.current() ) ) {
1105 skinName = fi->fileName(); 1105 skinName = fi->fileName();
1106// qDebug( fi->fileName() ); 1106// qDebug( fi->fileName() );
1107 if( skinName != "." && skinName != ".." && skinName !="CVS" ) { 1107 if( skinName != "." && skinName != ".." && skinName !="CVS" ) {
1108 item = skinsMenu->insertItem( fi->fileName() ) ; 1108 item = skinsMenu->insertItem( fi->fileName() ) ;
1109 } 1109 }
1110 if( skinName == "default" ) { 1110 if( skinName == "default" ) {
1111 defaultSkinIndex = item; 1111 defaultSkinIndex = item;
1112 } 1112 }
1113 if( skinName == skin ) { 1113 if( skinName == skin ) {
1114 skinsMenu->setItemChecked( item, TRUE ); 1114 skinsMenu->setItemChecked( item, TRUE );
1115 } 1115 }
1116 ++it; 1116 ++it;
1117 } 1117 }
1118} 1118}
1119 1119
1120void PlayListWidget::skinsMenuActivated( int item ) { 1120void PlayListWidget::skinsMenuActivated( int item ) {
1121 for(unsigned int i = defaultSkinIndex; i > defaultSkinIndex - skinsMenu->count(); i-- ) { 1121 for(unsigned int i = defaultSkinIndex; i > defaultSkinIndex - skinsMenu->count(); i-- ) {
1122 skinsMenu->setItemChecked( i, FALSE ); 1122 skinsMenu->setItemChecked( i, FALSE );
1123 } 1123 }
1124 skinsMenu->setItemChecked( item, TRUE ); 1124 skinsMenu->setItemChecked( item, TRUE );
1125 1125
1126 Config cfg( "OpiePlayer" ); 1126 Config cfg( "OpiePlayer" );
1127 cfg.setGroup("Options"); 1127 cfg.setGroup("Options");
1128 cfg.writeEntry("Skin", skinsMenu->text( item ) ); 1128 cfg.writeEntry("Skin", skinsMenu->text( item ) );
1129 QMessageBox::warning( this, tr( "OpiePlayer" ), 1129 QMessageBox::warning( this, tr( "OpiePlayer" ),
1130 tr( "You must <b>restart</b> Opieplayer<br>to see your changes." ) ); 1130 tr( "You must <b>restart</b> Opieplayer<br>to see your changes." ) );
1131} 1131}
1132 1132
1133PlayListWidget::TabType PlayListWidget::currentTab() const 1133PlayListWidget::TabType PlayListWidget::currentTab() const
1134{ 1134{
1135 static const TabType indexToTabType[ TabTypeCount ] = 1135 static const TabType indexToTabType[ TabTypeCount ] =
1136 { CurrentPlayList, AudioFiles, VideoFiles, PlayLists }; 1136 { CurrentPlayList, AudioFiles, VideoFiles, PlayLists };
1137 1137
1138 int index = tabWidget->currentPageIndex(); 1138 int index = tabWidget->currentPageIndex();
1139 assert( index < TabTypeCount && index >= 0 ); 1139 assert( index < TabTypeCount && index >= 0 );
1140 1140
1141 return indexToTabType[ index ]; 1141 return indexToTabType[ index ];
1142} 1142}
1143 1143
1144PlayListWidget::Entry PlayListWidget::currentEntry() const
1145{
1146 if ( currentTab() == CurrentPlayList ) {
1147 const DocLnk *lnk = current();
1148 return Entry( lnk->name(), lnk->file() );
1149 }
1150
1151 return Entry( currentFileListPathName() );
1152}
1153
1144QString PlayListWidget::currentFileListPathName() const { 1154QString PlayListWidget::currentFileListPathName() const {
1145 return currentFileListView()->currentItem()->text( 3 ); 1155 return currentFileListView()->currentItem()->text( 3 );
1146} 1156}
diff --git a/noncore/multimedia/opieplayer2/playlistwidget.h b/noncore/multimedia/opieplayer2/playlistwidget.h
index 2e2ff89..511a192 100644
--- a/noncore/multimedia/opieplayer2/playlistwidget.h
+++ b/noncore/multimedia/opieplayer2/playlistwidget.h
@@ -1,128 +1,141 @@
1/* 1/*
2                This file is part of the Opie Project 2                This file is part of the Opie Project
3 3
4              Copyright (c) 2002 Max Reiss <harlekin@handhelds.org> 4              Copyright (c) 2002 Max Reiss <harlekin@handhelds.org>
5 Copyright (c) 2002 L. Potter <ljp@llornkcor.com> 5 Copyright (c) 2002 L. Potter <ljp@llornkcor.com>
6 Copyright (c) 2002 Holger Freyther <zecke@handhelds.org> 6 Copyright (c) 2002 Holger Freyther <zecke@handhelds.org>
7 =. 7 =.
8 .=l. 8 .=l.
9           .>+-= 9           .>+-=
10 _;:,     .>    :=|. This program is free software; you can 10 _;:,     .>    :=|. This program is free software; you can
11.> <`_,   >  .   <= redistribute it and/or modify it under 11.> <`_,   >  .   <= redistribute it and/or modify it under
12:`=1 )Y*s>-.--   : the terms of the GNU General Public 12:`=1 )Y*s>-.--   : the terms of the GNU General Public
13.="- .-=="i,     .._ License as published by the Free Software 13.="- .-=="i,     .._ License as published by the Free Software
14 - .   .-<_>     .<> Foundation; either version 2 of the License, 14 - .   .-<_>     .<> Foundation; either version 2 of the License,
15     ._= =}       : or (at your option) any later version. 15     ._= =}       : or (at your option) any later version.
16    .%`+i>       _;_. 16    .%`+i>       _;_.
17    .i_,=:_.      -<s. This program is distributed in the hope that 17    .i_,=:_.      -<s. This program is distributed in the hope that
18     +  .  -:.       = it will be useful, but WITHOUT ANY WARRANTY; 18     +  .  -:.       = it will be useful, but WITHOUT ANY WARRANTY;
19    : ..    .:,     . . . without even the implied warranty of 19    : ..    .:,     . . . without even the implied warranty of
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..}^=.=       =       ; General Public License for more 22..}^=.=       =       ; 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  -_. . .   )=.  = General Public License along with 26  -_. . .   )=.  = 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 PLAY_LIST_WIDGET_H 34#ifndef PLAY_LIST_WIDGET_H
35#define PLAY_LIST_WIDGET_H 35#define PLAY_LIST_WIDGET_H
36 36
37#include <qmainwindow.h> 37#include <qmainwindow.h>
38#include <qpe/applnk.h> 38#include <qpe/applnk.h>
39#include <qtabwidget.h> 39#include <qtabwidget.h>
40#include <qpe/fileselector.h> 40#include <qpe/fileselector.h>
41#include <qpushbutton.h> 41#include <qpushbutton.h>
42#include <qpopupmenu.h> 42#include <qpopupmenu.h>
43 43
44#include "playlistwidgetgui.h" 44#include "playlistwidgetgui.h"
45 45
46 46
47//class PlayListWidgetPrivate; 47//class PlayListWidgetPrivate;
48class Config; 48class Config;
49class QListViewItem; 49class QListViewItem;
50class QListView; 50class QListView;
51class QPoint; 51class QPoint;
52class QAction; 52class QAction;
53class QLabel; 53class QLabel;
54 54
55class PlayListWidget : public PlayListWidgetGui { 55class PlayListWidget : public PlayListWidgetGui {
56 Q_OBJECT 56 Q_OBJECT
57public: 57public:
58 enum TabType { CurrentPlayList, AudioFiles, VideoFiles, PlayLists }; 58 enum TabType { CurrentPlayList, AudioFiles, VideoFiles, PlayLists };
59 enum { TabTypeCount = 4 }; 59 enum { TabTypeCount = 4 };
60 60
61 struct Entry
62 {
63 Entry( const QString &_name, const QString &_fileName )
64 : name( _name ), file( _fileName ) {}
65 Entry( const QString &_fileName )
66 : name( _fileName ), file( _fileName ) {}
67
68 QString name;
69 QString file;
70 };
71
61 PlayListWidget( QWidget* parent=0, const char* name=0, WFlags fl=0 ); 72 PlayListWidget( QWidget* parent=0, const char* name=0, WFlags fl=0 );
62 ~PlayListWidget(); 73 ~PlayListWidget();
63 DocLnkSet files; 74 DocLnkSet files;
64 DocLnkSet vFiles; 75 DocLnkSet vFiles;
65 bool fromSetDocument; 76 bool fromSetDocument;
66 bool insanityBool; 77 bool insanityBool;
67 QString setDocFileRef, currentPlayList; 78 QString setDocFileRef, currentPlayList;
68 // retrieve the current playlist entry (media file link) 79 // retrieve the current playlist entry (media file link)
69 const DocLnk *current(); 80 const DocLnk *current() const;
70 void useSelectedDocument(); 81 void useSelectedDocument();
71 int selected; 82 int selected;
72 TabType currentTab() const; 83 TabType currentTab() const;
73 84
85 Entry currentEntry() const;
86
74public slots: 87public slots:
75 bool first(); 88 bool first();
76 bool last(); 89 bool last();
77 bool next(); 90 bool next();
78 bool prev(); 91 bool prev();
79 void writeDefaultPlaylist( ); 92 void writeDefaultPlaylist( );
80 QString currentFileListPathName() const; 93 QString currentFileListPathName() const;
81protected: 94protected:
82 void keyReleaseEvent( QKeyEvent *e); 95 void keyReleaseEvent( QKeyEvent *e);
83 96
84private: 97private:
85 int defaultSkinIndex; 98 int defaultSkinIndex;
86 bool audioScan, videoScan, audioPopulated, videoPopulated; 99 bool audioScan, videoScan, audioPopulated, videoPopulated;
87 void readm3u(const QString &); 100 void readm3u(const QString &);
88 void readPls(const QString &); 101 void readPls(const QString &);
89 void initializeStates(); 102 void initializeStates();
90 void populateAudioView(); 103 void populateAudioView();
91 void populateVideoView(); 104 void populateVideoView();
92 105
93 QListView *currentFileListView() const; 106 QListView *currentFileListView() const;
94 107
95 bool inFileListMode() const; 108 bool inFileListMode() const;
96 109
97private slots: 110private slots:
98 void populateSkinsMenu(); 111 void populateSkinsMenu();
99 void skinsMenuActivated(int); 112 void skinsMenuActivated(int);
100 void pmViewActivated(int); 113 void pmViewActivated(int);
101 void writem3u(); 114 void writem3u();
102 void writeCurrentM3u(); 115 void writeCurrentM3u();
103 void scanForAudio(); 116 void scanForAudio();
104 void scanForVideo(); 117 void scanForVideo();
105 void openFile(); 118 void openFile();
106 void setDocument( const QString& fileref ); 119 void setDocument( const QString& fileref );
107 void addToSelection( const DocLnk& ); // Add a media file to the playlist 120 void addToSelection( const DocLnk& ); // Add a media file to the playlist
108 void addToSelection( QListViewItem* ); // Add a media file to the playlist 121 void addToSelection( QListViewItem* ); // Add a media file to the playlist
109 void setPlaylist( bool ); // Show/Hide the playlist 122 void setPlaylist( bool ); // Show/Hide the playlist
110 void clearList(); 123 void clearList();
111 void addAllToList(); 124 void addAllToList();
112 void addAllMusicToList(); 125 void addAllMusicToList();
113 void addAllVideoToList(); 126 void addAllVideoToList();
114 void saveList(); // Save the playlist 127 void saveList(); // Save the playlist
115 void loadList( const DocLnk &); // Load a playlist 128 void loadList( const DocLnk &); // Load a playlist
116 void playIt( QListViewItem *); 129 void playIt( QListViewItem *);
117 void btnPlay(bool); 130 void btnPlay(bool);
118 void deletePlaylist(); 131 void deletePlaylist();
119 void addSelected(); 132 void addSelected();
120 void removeSelected(); 133 void removeSelected();
121 void tabChanged(QWidget*); 134 void tabChanged(QWidget*);
122 void viewPressed( int, QListViewItem *, const QPoint&, int); 135 void viewPressed( int, QListViewItem *, const QPoint&, int);
123 void playlistViewPressed( int, QListViewItem *, const QPoint&, int); 136 void playlistViewPressed( int, QListViewItem *, const QPoint&, int);
124 void playSelected(); 137 void playSelected();
125}; 138};
126 139
127#endif // PLAY_LIST_WIDGET_H 140#endif // PLAY_LIST_WIDGET_H
128 141