summaryrefslogtreecommitdiff
Unidiff
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--noncore/multimedia/opieplayer2/audiowidget.cpp23
-rw-r--r--noncore/multimedia/opieplayer2/mediaplayer.cpp22
2 files changed, 35 insertions, 10 deletions
diff --git a/noncore/multimedia/opieplayer2/audiowidget.cpp b/noncore/multimedia/opieplayer2/audiowidget.cpp
index 300a5c8..303834a 100644
--- a/noncore/multimedia/opieplayer2/audiowidget.cpp
+++ b/noncore/multimedia/opieplayer2/audiowidget.cpp
@@ -77,49 +77,49 @@ MediaButton audioButtons[] = {
77 { FALSE, FALSE, FALSE }, // playlist 77 { FALSE, FALSE, FALSE }, // playlist
78 { FALSE, FALSE, FALSE }, // forward 78 { FALSE, FALSE, FALSE }, // forward
79 { FALSE, FALSE, FALSE } // back 79 { FALSE, FALSE, FALSE } // back
80}; 80};
81 81
82const char *skin_mask_file_names[11] = { 82const char *skin_mask_file_names[11] = {
83 "play", "stop", "pause", "next", "prev", "up", 83 "play", "stop", "pause", "next", "prev", "up",
84 "down", "loop", "playlist", "forward", "back" 84 "down", "loop", "playlist", "forward", "back"
85}; 85};
86 86
87 87
88static void changeTextColor( QWidget *w ) { 88static void changeTextColor( QWidget *w ) {
89 QPalette p = w->palette(); 89 QPalette p = w->palette();
90 p.setBrush( QColorGroup::Background, QColor( 167, 212, 167 ) ); 90 p.setBrush( QColorGroup::Background, QColor( 167, 212, 167 ) );
91 p.setBrush( QColorGroup::Base, QColor( 167, 212, 167 ) ); 91 p.setBrush( QColorGroup::Base, QColor( 167, 212, 167 ) );
92 w->setPalette( p ); 92 w->setPalette( p );
93} 93}
94 94
95static const int numButtons = (sizeof(audioButtons)/sizeof(MediaButton)); 95static const int numButtons = (sizeof(audioButtons)/sizeof(MediaButton));
96 96
97 97
98AudioWidget::AudioWidget(QWidget* parent, const char* name, WFlags f) : 98AudioWidget::AudioWidget(QWidget* parent, const char* name, WFlags f) :
99 QWidget( parent, name, f ), songInfo( this ), slider( Qt::Horizontal, this ), time( this ) { 99 QWidget( parent, name, f ), songInfo( this ), slider( Qt::Horizontal, this ), time( this ) {
100 setCaption( tr("OpiePlayer") ); 100 setCaption( tr("OpiePlayer") );
101 101
102 Config cfg("OpiePlayer"); 102 Config cfg("OpiePlayer");
103 cfg.setGroup("AudioWidget"); 103 cfg.setGroup("AudioWidget");
104 skin = cfg.readEntry("Skin","default"); 104 skin = cfg.readEntry("Skin","default");
105 //skin = "scaleTest"; 105 //skin = "scaleTest";
106// color of background, frame, degree of transparency 106// color of background, frame, degree of transparency
107 107
108 QString skinPath = "opieplayer/skins/" + skin; 108 QString skinPath = "opieplayer/skins/" + skin;
109 pixBg = new QPixmap( Resource::loadPixmap( QString("%1/background").arg(skinPath) ) ); 109 pixBg = new QPixmap( Resource::loadPixmap( QString("%1/background").arg(skinPath) ) );
110 imgUp = new QImage( Resource::loadImage( QString("%1/skin_up").arg(skinPath) ) ); 110 imgUp = new QImage( Resource::loadImage( QString("%1/skin_up").arg(skinPath) ) );
111 imgDn = new QImage( Resource::loadImage( QString("%1/skin_down").arg(skinPath) ) ); 111 imgDn = new QImage( Resource::loadImage( QString("%1/skin_down").arg(skinPath) ) );
112 112
113 imgButtonMask = new QImage( imgUp->width(), imgUp->height(), 8, 255 ); 113 imgButtonMask = new QImage( imgUp->width(), imgUp->height(), 8, 255 );
114 imgButtonMask->fill( 0 ); 114 imgButtonMask->fill( 0 );
115 115
116 for ( int i = 0; i < 11; i++ ) { 116 for ( int i = 0; i < 11; i++ ) {
117 QString filename = QString(getenv("OPIEDIR")) + "/pics/" + skinPath + "/skin_mask_" + skin_mask_file_names[i] + ".png"; 117 QString filename = QString(getenv("OPIEDIR")) + "/pics/" + skinPath + "/skin_mask_" + skin_mask_file_names[i] + ".png";
118 masks[i] = new QBitmap( filename ); 118 masks[i] = new QBitmap( filename );
119 119
120 if ( !masks[i]->isNull() ) { 120 if ( !masks[i]->isNull() ) {
121 QImage imgMask = masks[i]->convertToImage(); 121 QImage imgMask = masks[i]->convertToImage();
122 uchar **dest = imgButtonMask->jumpTable(); 122 uchar **dest = imgButtonMask->jumpTable();
123 for ( int y = 0; y < imgUp->height(); y++ ) { 123 for ( int y = 0; y < imgUp->height(); y++ ) {
124 uchar *line = dest[y]; 124 uchar *line = dest[y];
125 for ( int x = 0; x < imgUp->width(); x++ ) 125 for ( int x = 0; x < imgUp->width(); x++ )
@@ -230,90 +230,97 @@ void AudioWidget::resizeEvent( QResizeEvent * ) {
230 } 230 }
231 } 231 }
232 232
233 delete pixUp; 233 delete pixUp;
234 delete pixDn; 234 delete pixDn;
235} 235}
236 236
237static bool audioSliderBeingMoved = FALSE; 237static bool audioSliderBeingMoved = FALSE;
238 238
239 239
240void AudioWidget::sliderPressed() { 240void AudioWidget::sliderPressed() {
241 audioSliderBeingMoved = TRUE; 241 audioSliderBeingMoved = TRUE;
242} 242}
243 243
244 244
245void AudioWidget::sliderReleased() { 245void AudioWidget::sliderReleased() {
246 audioSliderBeingMoved = FALSE; 246 audioSliderBeingMoved = FALSE;
247 if ( slider.width() == 0 ) 247 if ( slider.width() == 0 )
248 return; 248 return;
249 long val = long((double)slider.value() * mediaPlayerState->length() / slider.width()); 249 long val = long((double)slider.value() * mediaPlayerState->length() / slider.width());
250 mediaPlayerState->setPosition( val ); 250 mediaPlayerState->setPosition( val );
251} 251}
252 252
253void AudioWidget::setPosition( long i ) { 253void AudioWidget::setPosition( long i ) {
254 // qDebug("set position %d",i); 254 qDebug("<<<<<<<<<<<<<<<<<<<<<<<<set position %d",i);
255 updateSlider( i, mediaPlayerState->length() ); 255 updateSlider( i, mediaPlayerState->length() );
256} 256}
257 257
258 258
259void AudioWidget::setLength( long max ) { 259void AudioWidget::setLength( long max ) {
260 updateSlider( mediaPlayerState->position(), max ); 260 updateSlider( mediaPlayerState->position(), max );
261} 261}
262 262
263 263
264void AudioWidget::setView( char view ) { 264void AudioWidget::setView( char view ) {
265 if (mediaPlayerState->streaming() ) { 265 slider.show();
266 if( !slider.isHidden()) slider.hide(); 266
267 disconnect( mediaPlayerState, SIGNAL( positionChanged(long) ),this, SLOT( setPosition(long) ) ); 267// this isnt working for some reason
268 disconnect( mediaPlayerState, SIGNAL( positionUpdated(long) ),this, SLOT( setPosition(long) ) ); 268
269 } else { 269// if ( mediaPlayerState->streaming() ) {
270// qDebug("<<<<<<<<<<<<<<file is STREAMING>>>>>>>>>>>>>>>>>>>");
271// if( !slider.isHidden()) slider.hide();
272// disconnect( mediaPlayerState, SIGNAL( positionChanged(long) ),this, SLOT( setPosition(long) ) );
273// disconnect( mediaPlayerState, SIGNAL( positionUpdated(long) ),this, SLOT( setPosition(long) ) );
274// } else {
270 // this stops the slider from being moved, thus 275 // this stops the slider from being moved, thus
271 // does not stop stream when it reaches the end 276 // does not stop stream when it reaches the end
272 slider.show(); 277 slider.show();
273 connect( mediaPlayerState, SIGNAL( positionChanged(long) ),this, SLOT( setPosition(long) ) ); 278 connect( mediaPlayerState, SIGNAL( positionChanged(long) ),this, SLOT( setPosition(long) ) );
274 connect( mediaPlayerState, SIGNAL( positionUpdated(long) ),this, SLOT( setPosition(long) ) ); 279 connect( mediaPlayerState, SIGNAL( positionUpdated(long) ),this, SLOT( setPosition(long) ) );
275 } 280// }
276 281
277 if ( view == 'a' ) { 282 if ( view == 'a' ) {
278 startTimer( 150 ); 283 startTimer( 150 );
279 showMaximized(); 284 showMaximized();
280 } else { 285 } else {
281 killTimers(); 286 killTimers();
282 hide(); 287 hide();
283 } 288 }
284} 289}
285 290
286 291
287static QString timeAsString( long length ) { 292static QString timeAsString( long length ) {
288 length /= 44100; 293 length /= 44100;
289 int minutes = length / 60; 294 int minutes = length / 60;
290 int seconds = length % 60; 295 int seconds = length % 60;
291 return QString("%1:%2%3").arg( minutes ).arg( seconds / 10 ).arg( seconds % 10 ); 296 return QString("%1:%2%3").arg( minutes ).arg( seconds / 10 ).arg( seconds % 10 );
292} 297}
293 298
294void AudioWidget::updateSlider( long i, long max ) { 299void AudioWidget::updateSlider( long i, long max ) {
300
295 time.setText( timeAsString( i ) + " / " + timeAsString( max ) ); 301 time.setText( timeAsString( i ) + " / " + timeAsString( max ) );
302
296 if ( max == 0 ) { 303 if ( max == 0 ) {
297 return; 304 return;
298 } 305 }
299 // Will flicker too much if we don't do this 306 // Will flicker too much if we don't do this
300 // Scale to something reasonable 307 // Scale to something reasonable
301 int width = slider.width(); 308 int width = slider.width();
302 int val = int((double)i * width / max); 309 int val = int((double)i * width / max);
303 if ( !audioSliderBeingMoved ) { 310 if ( !audioSliderBeingMoved ) {
304 if ( slider.value() != val ) { 311 if ( slider.value() != val ) {
305 slider.setValue( val ); 312 slider.setValue( val );
306 } 313 }
307 314
308 if ( slider.maxValue() != width ) { 315 if ( slider.maxValue() != width ) {
309 slider.setMaxValue( width ); 316 slider.setMaxValue( width );
310 } 317 }
311 } 318 }
312} 319}
313 320
314 321
315void AudioWidget::setToggleButton( int i, bool down ) { 322void AudioWidget::setToggleButton( int i, bool down ) {
316 if ( down != audioButtons[i].isDown ) { 323 if ( down != audioButtons[i].isDown ) {
317 toggleButton( i ); 324 toggleButton( i );
318 } 325 }
319} 326}
diff --git a/noncore/multimedia/opieplayer2/mediaplayer.cpp b/noncore/multimedia/opieplayer2/mediaplayer.cpp
index 13cc4ed..5411a64 100644
--- a/noncore/multimedia/opieplayer2/mediaplayer.cpp
+++ b/noncore/multimedia/opieplayer2/mediaplayer.cpp
@@ -50,52 +50,70 @@ void MediaPlayer::pauseCheck( bool b ) {
50 mediaPlayerState->setPaused( FALSE ); 50 mediaPlayerState->setPaused( FALSE );
51 } 51 }
52} 52}
53 53
54void MediaPlayer::play() { 54void MediaPlayer::play() {
55 mediaPlayerState->setPlaying( FALSE ); 55 mediaPlayerState->setPlaying( FALSE );
56 mediaPlayerState->setPlaying( TRUE ); 56 mediaPlayerState->setPlaying( TRUE );
57} 57}
58 58
59void MediaPlayer::setPlaying( bool play ) { 59void MediaPlayer::setPlaying( bool play ) {
60 if ( !play ) { 60 if ( !play ) {
61 mediaPlayerState->setPaused( FALSE ); 61 mediaPlayerState->setPaused( FALSE );
62 return; 62 return;
63 } 63 }
64 64
65 if ( mediaPlayerState->paused() ) { 65 if ( mediaPlayerState->paused() ) {
66 mediaPlayerState->setPaused( FALSE ); 66 mediaPlayerState->setPaused( FALSE );
67 return; 67 return;
68 } 68 }
69 69
70 const DocLnk *playListCurrent = playList->current(); 70 const DocLnk *playListCurrent = playList->current();
71 if ( playListCurrent != NULL ) { 71 if ( playListCurrent != NULL ) {
72 currentFile = playListCurrent; 72 currentFile = playListCurrent;
73 } 73 }
74
75 xineControl->play( currentFile->file() );
74 76
75 audioUI->setTickerText( currentFile->file( ) ); 77 xineControl->length();
78 long seconds = mediaPlayerState->length();//
79 QString time; time.sprintf("%li:%02i", seconds/60, (int)seconds%60 );
80 qDebug(time);
76 81
77 xineControl->play( currentFile->file() ); 82 QString tickerText;
83 if( currentFile->file().left(4) == "http" )
84 tickerText= tr( " File: " ) + currentFile->name();
85 else
86 tickerText = tr( " File: " ) + currentFile->name() + tr(", Length: ") + time;
87
88// QString fileInfo = mediaPlayerState->curDecoder()->fileInfo();
89
90// if ( !fileInfo.isEmpty() )
91// tickerText += ", " + fileInfo;
92// audioUI->setTickerText( tickerText + "." );
93
94 audioUI->setTickerText( currentFile->file( ) );
95
78} 96}
79 97
80 98
81void MediaPlayer::prev() { 99void MediaPlayer::prev() {
82 if ( playList->prev() ) { 100 if ( playList->prev() ) {
83 play(); 101 play();
84 } else if ( mediaPlayerState->looping() ) { 102 } else if ( mediaPlayerState->looping() ) {
85 if ( playList->last() ) { 103 if ( playList->last() ) {
86 play(); 104 play();
87 } 105 }
88 } else { 106 } else {
89 mediaPlayerState->setList(); 107 mediaPlayerState->setList();
90 } 108 }
91} 109}
92 110
93 111
94void MediaPlayer::next() { 112void MediaPlayer::next() {
95 if ( playList->next() ) { 113 if ( playList->next() ) {
96 play(); 114 play();
97 } else if ( mediaPlayerState->looping() ) { 115 } else if ( mediaPlayerState->looping() ) {
98 if ( playList->first() ) { 116 if ( playList->first() ) {
99 play(); 117 play();
100 } 118 }
101 } else { 119 } else {