summaryrefslogtreecommitdiff
authorllornkcor <llornkcor>2002-11-10 16:03:09 (UTC)
committer llornkcor <llornkcor>2002-11-10 16:03:09 (UTC)
commitcb4821802897bbf6e06be3b2608656e05db68b96 (patch) (unidiff)
tree672351f10dfb9a6bd13f753d876c975a39b74270
parentee6938139a5f8f24da901ab5a41930a98af00d44 (diff)
downloadopie-cb4821802897bbf6e06be3b2608656e05db68b96.zip
opie-cb4821802897bbf6e06be3b2608656e05db68b96.tar.gz
opie-cb4821802897bbf6e06be3b2608656e05db68b96.tar.bz2
display loaded playlist in caption at start
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--noncore/multimedia/opieplayer2/mediaplayer.cpp5
1 files changed, 4 insertions, 1 deletions
diff --git a/noncore/multimedia/opieplayer2/mediaplayer.cpp b/noncore/multimedia/opieplayer2/mediaplayer.cpp
index 8b0f501..1f19b30 100644
--- a/noncore/multimedia/opieplayer2/mediaplayer.cpp
+++ b/noncore/multimedia/opieplayer2/mediaplayer.cpp
@@ -1,257 +1,260 @@
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 ), currentFile( NULL ) {
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 playList->setCaption(tr("OpiePlayer")); 65 Config cfg( "OpiePlayer" );
66 cfg.setGroup("PlayList");
67 QString currentPlaylist = cfg.readEntry( "CurrentPlaylist", "default");
68 playList->setCaption( tr( "OpiePlayer: " ) + QFileInfo(currentPlaylist).baseName() );
66} 69}
67 70
68MediaPlayer::~MediaPlayer() { 71MediaPlayer::~MediaPlayer() {
69 delete xineControl; 72 delete xineControl;
70 delete volControl; 73 delete volControl;
71} 74}
72 75
73void MediaPlayer::pauseCheck( bool b ) { 76void MediaPlayer::pauseCheck( bool b ) {
74 if ( b && !mediaPlayerState->playing() ) { 77 if ( b && !mediaPlayerState->playing() ) {
75 mediaPlayerState->setPaused( FALSE ); 78 mediaPlayerState->setPaused( FALSE );
76 } 79 }
77} 80}
78 81
79void MediaPlayer::play() { 82void MediaPlayer::play() {
80 mediaPlayerState->setPlaying( FALSE ); 83 mediaPlayerState->setPlaying( FALSE );
81 mediaPlayerState->setPlaying( TRUE ); 84 mediaPlayerState->setPlaying( TRUE );
82} 85}
83 86
84void MediaPlayer::setPlaying( bool play ) { 87void MediaPlayer::setPlaying( bool play ) {
85 if ( !play ) { 88 if ( !play ) {
86 return; 89 return;
87 } 90 }
88 91
89 if ( mediaPlayerState->paused() ) { 92 if ( mediaPlayerState->paused() ) {
90 mediaPlayerState->setPaused( FALSE ); 93 mediaPlayerState->setPaused( FALSE );
91 return; 94 return;
92 } 95 }
93 96
94 QString tickerText, time, fileName; 97 QString tickerText, time, fileName;
95 if( playList->whichList() == 0 ) { //check for filelist 98 if( playList->whichList() == 0 ) { //check for filelist
96 const DocLnk *playListCurrent = playList->current(); 99 const DocLnk *playListCurrent = playList->current();
97 if ( playListCurrent != NULL ) { 100 if ( playListCurrent != NULL ) {
98 currentFile = playListCurrent; 101 currentFile = playListCurrent;
99 } 102 }
100 xineControl->play( currentFile->file() ); 103 xineControl->play( currentFile->file() );
101 fileName = currentFile->name(); 104 fileName = currentFile->name();
102 long seconds = mediaPlayerState->length();// 105 long seconds = mediaPlayerState->length();//
103 time.sprintf("%li:%02i", seconds/60, (int)seconds%60 ); 106 time.sprintf("%li:%02i", seconds/60, (int)seconds%60 );
104 //qDebug(time); 107 //qDebug(time);
105 108
106 } else { 109 } else {
107 //if playing in file list.. play in a different way 110 //if playing in file list.. play in a different way
108 // random and looping settings enabled causes problems here, 111 // random and looping settings enabled causes problems here,
109 // since there is no selected file in the playlist, but a selected file in the file list, 112 // since there is no selected file in the playlist, but a selected file in the file list,
110 // so we remember and shutoff 113 // so we remember and shutoff
111 l = mediaPlayerState->looping(); 114 l = mediaPlayerState->looping();
112 if(l) { 115 if(l) {
113 mediaPlayerState->setLooping( false ); 116 mediaPlayerState->setLooping( false );
114 } 117 }
115 r = mediaPlayerState->shuffled(); 118 r = mediaPlayerState->shuffled();
116 mediaPlayerState->setShuffled( false ); 119 mediaPlayerState->setShuffled( false );
117 120
118 fileName = playList->currentFileListPathName(); 121 fileName = playList->currentFileListPathName();
119 xineControl->play( fileName ); 122 xineControl->play( fileName );
120 long seconds = mediaPlayerState->length(); 123 long seconds = mediaPlayerState->length();
121 time.sprintf("%li:%02i", seconds/60, (int)seconds%60 ); 124 time.sprintf("%li:%02i", seconds/60, (int)seconds%60 );
122 //qDebug(time); 125 //qDebug(time);
123 if( fileName.left(4) != "http" ) { 126 if( fileName.left(4) != "http" ) {
124 fileName = QFileInfo( fileName ).baseName(); 127 fileName = QFileInfo( fileName ).baseName();
125 } 128 }
126 129
127 } 130 }
128 131
129 if( fileName.left(4) == "http" ) { 132 if( fileName.left(4) == "http" ) {
130 if ( xineControl->getMetaInfo().isEmpty() ) { 133 if ( xineControl->getMetaInfo().isEmpty() ) {
131 tickerText = tr( " File: " ) + fileName; 134 tickerText = tr( " File: " ) + fileName;
132 } else { 135 } else {
133 tickerText = xineControl->getMetaInfo(); 136 tickerText = xineControl->getMetaInfo();
134 } 137 }
135 } else { 138 } else {
136 if ( xineControl->getMetaInfo().isEmpty() ) { 139 if ( xineControl->getMetaInfo().isEmpty() ) {
137 tickerText = tr( " File: " ) + fileName + tr( ", Length: " ) + time + " "; 140 tickerText = tr( " File: " ) + fileName + tr( ", Length: " ) + time + " ";
138 } else { 141 } else {
139 tickerText = xineControl->getMetaInfo() + " Length: " + time + " "; 142 tickerText = xineControl->getMetaInfo() + " Length: " + time + " ";
140 } 143 }
141 } 144 }
142 audioUI->setTickerText( tickerText ); 145 audioUI->setTickerText( tickerText );
143} 146}
144 147
145 148
146void MediaPlayer::prev() { 149void MediaPlayer::prev() {
147 if( playList->whichList() == 0 ) { //if using the playlist 150 if( playList->whichList() == 0 ) { //if using the playlist
148 if ( playList->prev() ) { 151 if ( playList->prev() ) {
149 play(); 152 play();
150 } else if ( mediaPlayerState->looping() ) { 153 } else if ( mediaPlayerState->looping() ) {
151 if ( playList->last() ) { 154 if ( playList->last() ) {
152 play(); 155 play();
153 } 156 }
154 } else { 157 } else {
155 mediaPlayerState->setList(); 158 mediaPlayerState->setList();
156 } 159 }
157 } 160 }
158} 161}
159 162
160 163
161void MediaPlayer::next() { 164void MediaPlayer::next() {
162 165
163 if(playList->whichList() == 0) { //if using the playlist 166 if(playList->whichList() == 0) { //if using the playlist
164 if ( playList->next() ) { 167 if ( playList->next() ) {
165 play(); 168 play();
166 } else if ( mediaPlayerState->looping() ) { 169 } else if ( mediaPlayerState->looping() ) {
167 if ( playList->first() ) { 170 if ( playList->first() ) {
168 play(); 171 play();
169 } 172 }
170 } else { 173 } else {
171 mediaPlayerState->setList(); 174 mediaPlayerState->setList();
172 } 175 }
173 } else { //if playing from file list, let's just stop 176 } else { //if playing from file list, let's just stop
174 qDebug("<<<<<<<<<<<<<<<<<stop for filelists"); 177 qDebug("<<<<<<<<<<<<<<<<<stop for filelists");
175 mediaPlayerState->setPlaying(false); 178 mediaPlayerState->setPlaying(false);
176 mediaPlayerState->setView('l'); 179 mediaPlayerState->setView('l');
177 if(l) mediaPlayerState->setLooping(l); 180 if(l) mediaPlayerState->setLooping(l);
178 if(r) mediaPlayerState->setShuffled(r); 181 if(r) mediaPlayerState->setShuffled(r);
179 } 182 }
180 qApp->processEvents(); 183 qApp->processEvents();
181} 184}
182 185
183 186
184void MediaPlayer::startDecreasingVolume() { 187void MediaPlayer::startDecreasingVolume() {
185 volumeDirection = -1; 188 volumeDirection = -1;
186 startTimer( 100 ); 189 startTimer( 100 );
187 volControl->decVol(2); 190 volControl->decVol(2);
188} 191}
189 192
190 193
191void MediaPlayer::startIncreasingVolume() { 194void MediaPlayer::startIncreasingVolume() {
192 volumeDirection = +1; 195 volumeDirection = +1;
193 startTimer( 100 ); 196 startTimer( 100 );
194 volControl->incVol(2); 197 volControl->incVol(2);
195} 198}
196 199
197 200
198bool drawnOnScreenDisplay = FALSE; 201bool drawnOnScreenDisplay = FALSE;
199unsigned int onScreenDisplayVolume = 0; 202unsigned int onScreenDisplayVolume = 0;
200const int yoff = 110; 203const int yoff = 110;
201 204
202void MediaPlayer::stopChangingVolume() { 205void MediaPlayer::stopChangingVolume() {
203 killTimers(); 206 killTimers();
204 // Get rid of the on-screen display stuff 207 // Get rid of the on-screen display stuff
205 drawnOnScreenDisplay = FALSE; 208 drawnOnScreenDisplay = FALSE;
206 onScreenDisplayVolume = 0; 209 onScreenDisplayVolume = 0;
207 int w=0; 210 int w=0;
208 int h=0; 211 int h=0;
209 if( !xineControl->hasVideo() ) { 212 if( !xineControl->hasVideo() ) {
210 w = audioUI->width(); 213 w = audioUI->width();
211 h = audioUI->height(); 214 h = audioUI->height();
212 audioUI->repaint( ( w - 200 ) / 2, h - yoff, 200 + 9, 70, FALSE ); 215 audioUI->repaint( ( w - 200 ) / 2, h - yoff, 200 + 9, 70, FALSE );
213 } else { 216 } else {
214 w = videoUI->width(); 217 w = videoUI->width();
215 h = videoUI->height(); 218 h = videoUI->height();
216 videoUI->repaint( ( w - 200 ) / 2, h - yoff, 200 + 9, 70, FALSE ); 219 videoUI->repaint( ( w - 200 ) / 2, h - yoff, 200 + 9, 70, FALSE );
217 } 220 }
218} 221}
219 222
220 223
221void MediaPlayer::timerEvent( QTimerEvent * ) { 224void MediaPlayer::timerEvent( QTimerEvent * ) {
222 if ( volumeDirection == +1 ) { 225 if ( volumeDirection == +1 ) {
223 volControl->incVol( 2 ); 226 volControl->incVol( 2 );
224 } else if ( volumeDirection == -1 ) { 227 } else if ( volumeDirection == -1 ) {
225 volControl->decVol( 2 ); 228 volControl->decVol( 2 );
226 } 229 }
227 230
228 231
229 // TODO FIXME 232 // TODO FIXME
230 // huh?? 233 // huh??
231 unsigned int v= 0; 234 unsigned int v= 0;
232 v = volControl->volume(); 235 v = volControl->volume();
233 v = v / 10; 236 v = v / 10;
234 237
235 if ( drawnOnScreenDisplay && onScreenDisplayVolume == v ) { 238 if ( drawnOnScreenDisplay && onScreenDisplayVolume == v ) {
236 return; 239 return;
237 } 240 }
238 241
239 int w=0; int h=0; 242 int w=0; int h=0;
240 if( !xineControl->hasVideo() ) { 243 if( !xineControl->hasVideo() ) {
241 w = audioUI->width(); 244 w = audioUI->width();
242 h = audioUI->height(); 245 h = audioUI->height();
243 246
244 if ( drawnOnScreenDisplay ) { 247 if ( drawnOnScreenDisplay ) {
245 if ( onScreenDisplayVolume > v ) { 248 if ( onScreenDisplayVolume > v ) {
246 audioUI->repaint( ( w - 200 ) / 2 + v * 20 + 0, h - yoff + 40, ( onScreenDisplayVolume - v ) * 20 + 9, 30, FALSE ); 249 audioUI->repaint( ( w - 200 ) / 2 + v * 20 + 0, h - yoff + 40, ( onScreenDisplayVolume - v ) * 20 + 9, 30, FALSE );
247 } 250 }
248 } 251 }
249 drawnOnScreenDisplay = TRUE; 252 drawnOnScreenDisplay = TRUE;
250 onScreenDisplayVolume = v; 253 onScreenDisplayVolume = v;
251 QPainter p( audioUI ); 254 QPainter p( audioUI );
252 p.setPen( QColor( 0x10, 0xD0, 0x10 ) ); 255 p.setPen( QColor( 0x10, 0xD0, 0x10 ) );
253 p.setBrush( QColor( 0x10, 0xD0, 0x10 ) ); 256 p.setBrush( QColor( 0x10, 0xD0, 0x10 ) );
254 257
255 QFont f; 258 QFont f;
256 f.setPixelSize( 20 ); 259 f.setPixelSize( 20 );
257 f.setBold( TRUE ); 260 f.setBold( TRUE );