Diffstat (limited to 'core/multimedia/opieplayer/mediaplayer.cpp') (more/less context) (show whitespace changes)
-rw-r--r-- | core/multimedia/opieplayer/mediaplayer.cpp | 57 |
1 files changed, 55 insertions, 2 deletions
diff --git a/core/multimedia/opieplayer/mediaplayer.cpp b/core/multimedia/opieplayer/mediaplayer.cpp index b0963cf..4f3823a 100644 --- a/core/multimedia/opieplayer/mediaplayer.cpp +++ b/core/multimedia/opieplayer/mediaplayer.cpp @@ -108,3 +108,4 @@ void MediaPlayer::setPlaying( bool play ) { QMessageBox::critical( 0, tr( "File not found"), - tr( "The following file was not found: <i>" ) + currentFile->file() + "</i>" ); + tr( "The following file was not found: <i>" ) + + currentFile->file() + "</i>" ); mediaPlayerState->setPlaying( FALSE ); @@ -115,3 +116,4 @@ void MediaPlayer::setPlaying( bool play ) { QMessageBox::critical( 0, tr( "No decoder found"), - tr( "Sorry, no appropriate decoders found for this file: <i>" ) + currentFile->file() + "</i>" ); + tr( "Sorry, no appropriate decoders found for this file: <i>" ) + + currentFile->file() + "</i>" ); mediaPlayerState->setPlaying( FALSE ); @@ -178,4 +180,8 @@ void MediaPlayer::startIncreasingVolume() { AudioDevice::increaseVolume(); + } +bool drawnOnScreenDisplay = FALSE; +unsigned int onScreenDisplayVolume = 0; +const int yoff = 110; @@ -183,2 +189,9 @@ void MediaPlayer::stopChangingVolume() { killTimers(); + + // Get rid of the on-screen display stuff + drawnOnScreenDisplay = FALSE; + onScreenDisplayVolume = 0; + int w = audioUI->width(); + int h = audioUI->height(); + audioUI->repaint( (w - 200) / 2, h - yoff, 200 + 9, 70, FALSE ); } @@ -187,2 +200,3 @@ void MediaPlayer::stopChangingVolume() { void MediaPlayer::timerEvent( QTimerEvent * ) { +// qDebug("timer"); if ( volumeDirection == +1 ) @@ -191,2 +205,41 @@ void MediaPlayer::timerEvent( QTimerEvent * ) { AudioDevice::decreaseVolume(); + + // Display an on-screen display volume + unsigned int l, r, v; bool m; + AudioDevice::getVolume( l, r, m ); + v = ((l + r) * 11) / (2*0xFFFF); + + if ( drawnOnScreenDisplay && onScreenDisplayVolume == v ) { +// qDebug("returning %d, %d, %d, %d", v, l, r, m); + return; + } + + int w = audioUI->width(); + int h = audioUI->height(); + + if ( drawnOnScreenDisplay ) { + if ( onScreenDisplayVolume > v ) + audioUI->repaint( (w - 200) / 2 + v * 20 + 0, h - yoff + 40, + (onScreenDisplayVolume - v) * 20 + 9, 30, FALSE ); + } + + drawnOnScreenDisplay = TRUE; + onScreenDisplayVolume = v; + + QPainter p( audioUI ); + p.setPen( QColor( 0x10, 0xD0, 0x10 ) ); + p.setBrush( QColor( 0x10, 0xD0, 0x10 ) ); + + QFont f; + f.setPixelSize( 20 ); + f.setBold( TRUE ); + p.setFont( f ); + p.drawText( (w - 200) / 2, h - yoff + 20, tr("Volume") ); + + for ( unsigned int i = 0; i < 10; i++ ) { + if ( v > i ) + p.drawRect( (w - 200) / 2 + i * 20 + 0, h - yoff + 40, 9, 30 ); + else + p.drawRect( (w - 200) / 2 + i * 20 + 3, h - yoff + 50, 3, 10 ); + } } |