author | harlekin <harlekin> | 2002-08-09 21:06:15 (UTC) |
---|---|---|
committer | harlekin <harlekin> | 2002-08-09 21:06:15 (UTC) |
commit | 62f9bc4e906784d201d758b9c0bba05a294a31be (patch) (side-by-side diff) | |
tree | dfdb5b202046fdd87879fa0f8ccf75eec7369363 /noncore | |
parent | 46eb53b1fd042d2591933a7d89a0e65b79140f16 (diff) | |
download | opie-62f9bc4e906784d201d758b9c0bba05a294a31be.zip opie-62f9bc4e906784d201d758b9c0bba05a294a31be.tar.gz opie-62f9bc4e906784d201d758b9c0bba05a294a31be.tar.bz2 |
fix runnaway seek on media change
-rw-r--r-- | noncore/multimedia/opieplayer2/audiowidget.cpp | 21 |
1 files changed, 11 insertions, 10 deletions
diff --git a/noncore/multimedia/opieplayer2/audiowidget.cpp b/noncore/multimedia/opieplayer2/audiowidget.cpp index 6b656ee..dc90a62 100644 --- a/noncore/multimedia/opieplayer2/audiowidget.cpp +++ b/noncore/multimedia/opieplayer2/audiowidget.cpp @@ -280,67 +280,68 @@ void AudioWidget::sliderPressed() { audioSliderBeingMoved = TRUE; } void AudioWidget::sliderReleased() { audioSliderBeingMoved = FALSE; if ( slider.width() == 0 ) return; long val = long((double)slider.value() * mediaPlayerState->length() / slider.width()); mediaPlayerState->setPosition( val ); } void AudioWidget::setPosition( long i ) { // qDebug("<<<<<<<<<<<<<<<<<<<<<<<<set position %d",i); updateSlider( i, mediaPlayerState->length() ); } void AudioWidget::setLength( long max ) { updateSlider( mediaPlayerState->position(), max ); } void AudioWidget::setView( char view ) { - slider.show(); // this isnt working for some reason -// if ( mediaPlayerState->streaming() ) { -// qDebug("<<<<<<<<<<<<<<file is STREAMING>>>>>>>>>>>>>>>>>>>"); -// if( !slider.isHidden()) slider.hide(); -// disconnect( mediaPlayerState, SIGNAL( positionChanged(long) ),this, SLOT( setPosition(long) ) ); -// disconnect( mediaPlayerState, SIGNAL( positionUpdated(long) ),this, SLOT( setPosition(long) ) ); -// } else { + if ( mediaPlayerState->streaming() ) { + qDebug("<<<<<<<<<<<<<<file is STREAMING>>>>>>>>>>>>>>>>>>>"); + if( !slider.isHidden()) { + slider.hide(); + } + disconnect( mediaPlayerState, SIGNAL( positionChanged(long) ),this, SLOT( setPosition(long) ) ); + disconnect( mediaPlayerState, SIGNAL( positionUpdated(long) ),this, SLOT( setPosition(long) ) ); + } else { // this stops the slider from being moved, thus // does not stop stream when it reaches the end - // slider.show(); + slider.show(); connect( mediaPlayerState, SIGNAL( positionChanged(long) ),this, SLOT( setPosition(long) ) ); connect( mediaPlayerState, SIGNAL( positionUpdated(long) ),this, SLOT( setPosition(long) ) ); -// } + } if ( view == 'a' ) { - startTimer( 150 ); + // startTimer( 150 ); showMaximized(); } else { killTimers(); hide(); } } static QString timeAsString( long length ) { int minutes = length / 60; int seconds = length % 60; return QString("%1:%2%3").arg( minutes ).arg( seconds / 10 ).arg( seconds % 10 ); } void AudioWidget::updateSlider( long i, long max ) { time.setText( timeAsString( i ) + " / " + timeAsString( max ) ); // qDebug( timeAsString( i ) + " / " + timeAsString( max ) ) ; if ( max == 0 ) { return; } // Will flicker too much if we don't do this // Scale to something reasonable |