author | llornkcor <llornkcor> | 2002-04-21 03:26:09 (UTC) |
---|---|---|
committer | llornkcor <llornkcor> | 2002-04-21 03:26:09 (UTC) |
commit | 6818807a46b80774de328b4c3001d4bc9d788666 (patch) (unidiff) | |
tree | 1bede7ebbb324058b664330abf481f7afb25eb73 /core/multimedia | |
parent | 1c459273c0e9e387fd5fe2e2c05bef4db5bce115 (diff) | |
download | opie-6818807a46b80774de328b4c3001d4bc9d788666.zip opie-6818807a46b80774de328b4c3001d4bc9d788666.tar.gz opie-6818807a46b80774de328b4c3001d4bc9d788666.tar.bz2 |
fixed when playing stream, slider moved and stopped stream when it reached the end
-rw-r--r-- | core/multimedia/opieplayer/audiowidget.cpp | 7 | ||||
-rw-r--r-- | core/multimedia/opieplayer/audiowidget.h | 20 | ||||
-rw-r--r-- | core/multimedia/opieplayer/loopcontrol.cpp | 18 | ||||
-rw-r--r-- | core/multimedia/opieplayer/mediaplayerstate.h | 2 | ||||
-rw-r--r-- | core/multimedia/opieplayer/playlistwidget.cpp | 1 |
5 files changed, 28 insertions, 20 deletions
diff --git a/core/multimedia/opieplayer/audiowidget.cpp b/core/multimedia/opieplayer/audiowidget.cpp index 3212001..20345b7 100644 --- a/core/multimedia/opieplayer/audiowidget.cpp +++ b/core/multimedia/opieplayer/audiowidget.cpp | |||
@@ -87,15 +87,18 @@ AudioWidget::AudioWidget(QWidget* parent, const char* name, WFlags f) : | |||
87 | connect( slider, SIGNAL( sliderPressed() ), this, SLOT( sliderPressed() ) ); | 87 | connect( slider, SIGNAL( sliderPressed() ), this, SLOT( sliderPressed() ) ); |
88 | connect( slider, SIGNAL( sliderReleased() ), this, SLOT( sliderReleased() ) ); | 88 | connect( slider, SIGNAL( sliderReleased() ), this, SLOT( sliderReleased() ) ); |
89 | 89 | ||
90 | connect( mediaPlayerState, SIGNAL( lengthChanged(long) ), this, SLOT( setLength(long) ) ); | 90 | connect( mediaPlayerState, SIGNAL( lengthChanged(long) ), this, SLOT( setLength(long) ) ); |
91 | connect( mediaPlayerState, SIGNAL( positionChanged(long) ),this, SLOT( setPosition(long) ) ); | ||
92 | connect( mediaPlayerState, SIGNAL( positionUpdated(long) ),this, SLOT( setPosition(long) ) ); | ||
93 | connect( mediaPlayerState, SIGNAL( viewChanged(char) ), this, SLOT( setView(char) ) ); | 91 | connect( mediaPlayerState, SIGNAL( viewChanged(char) ), this, SLOT( setView(char) ) ); |
94 | connect( mediaPlayerState, SIGNAL( loopingToggled(bool) ), this, SLOT( setLooping(bool) ) ); | 92 | connect( mediaPlayerState, SIGNAL( loopingToggled(bool) ), this, SLOT( setLooping(bool) ) ); |
95 | connect( mediaPlayerState, SIGNAL( pausedToggled(bool) ), this, SLOT( setPaused(bool) ) ); | 93 | connect( mediaPlayerState, SIGNAL( pausedToggled(bool) ), this, SLOT( setPaused(bool) ) ); |
96 | connect( mediaPlayerState, SIGNAL( playingToggled(bool) ), this, SLOT( setPlaying(bool) ) ); | 94 | connect( mediaPlayerState, SIGNAL( playingToggled(bool) ), this, SLOT( setPlaying(bool) ) ); |
97 | 95 | ||
96 | if( !mediaPlayerState->isStreaming) { // this stops the slider from being moved, thus | ||
97 | // does not stop stream when it reaches the end | ||
98 | connect( mediaPlayerState, SIGNAL( positionChanged(long) ),this, SLOT( setPosition(long) ) ); | ||
99 | connect( mediaPlayerState, SIGNAL( positionUpdated(long) ),this, SLOT( setPosition(long) ) ); | ||
100 | } | ||
98 | // Intialise state | 101 | // Intialise state |
99 | setLength( mediaPlayerState->length() ); | 102 | setLength( mediaPlayerState->length() ); |
100 | setPosition( mediaPlayerState->position() ); | 103 | setPosition( mediaPlayerState->position() ); |
101 | setLooping( mediaPlayerState->fullscreen() ); | 104 | setLooping( mediaPlayerState->fullscreen() ); |
diff --git a/core/multimedia/opieplayer/audiowidget.h b/core/multimedia/opieplayer/audiowidget.h index d1d72b6..4ffd167 100644 --- a/core/multimedia/opieplayer/audiowidget.h +++ b/core/multimedia/opieplayer/audiowidget.h | |||
@@ -52,20 +52,20 @@ enum AudioButtons { | |||
52 | class Ticker : public QFrame { | 52 | class Ticker : public QFrame { |
53 | Q_OBJECT | 53 | Q_OBJECT |
54 | public: | 54 | public: |
55 | Ticker( QWidget* parent=0 ) : QFrame( parent ) { | 55 | Ticker( QWidget* parent=0 ) : QFrame( parent ) { |
56 | setFrameStyle( WinPanel | Sunken ); | 56 | setFrameStyle( WinPanel | Sunken ); |
57 | setText( "No Song" ); | 57 | setText( "No Song" ); |
58 | } | 58 | } |
59 | ~Ticker() { } | 59 | ~Ticker() { } |
60 | void setText( const QString& text ) { | 60 | void setText( const QString& text ) { |
61 | pos = 0; // reset it everytime the text is changed | 61 | pos = 0; // reset it everytime the text is changed |
62 | scrollText = text; | 62 | scrollText = text; |
63 | pixelLen = fontMetrics().width( scrollText ); | 63 | pixelLen = fontMetrics().width( scrollText ); |
64 | killTimers(); | 64 | killTimers(); |
65 | if ( pixelLen > width() ) | 65 | if ( pixelLen > width() ) |
66 | startTimer( 50 ); | 66 | startTimer( 50 ); |
67 | update(); | 67 | update(); |
68 | } | 68 | } |
69 | protected: | 69 | protected: |
70 | void timerEvent( QTimerEvent * ) { | 70 | void timerEvent( QTimerEvent * ) { |
71 | pos = ( pos + 1 > pixelLen ) ? 0 : pos + 1; | 71 | pos = ( pos + 1 > pixelLen ) ? 0 : pos + 1; |
@@ -101,9 +101,9 @@ class AudioWidget : public QWidget { | |||
101 | public: | 101 | public: |
102 | AudioWidget( QWidget* parent=0, const char* name=0, WFlags f=0 ); | 102 | AudioWidget( QWidget* parent=0, const char* name=0, WFlags f=0 ); |
103 | ~AudioWidget(); | 103 | ~AudioWidget(); |
104 | void setTickerText( const QString &text ) { songInfo->setText( text ); } | 104 | void setTickerText( const QString &text ) { songInfo->setText( text ); } |
105 | 105 | bool isStreaming; | |
106 | public slots: | 106 | public slots: |
107 | void updateSlider( long, long ); | 107 | void updateSlider( long, long ); |
108 | void sliderPressed( ); | 108 | void sliderPressed( ); |
109 | void sliderReleased( ); | 109 | void sliderReleased( ); |
diff --git a/core/multimedia/opieplayer/loopcontrol.cpp b/core/multimedia/opieplayer/loopcontrol.cpp index b9f96de..45c2d3e 100644 --- a/core/multimedia/opieplayer/loopcontrol.cpp +++ b/core/multimedia/opieplayer/loopcontrol.cpp | |||
@@ -235,16 +235,17 @@ void LoopControl::startAudio() { | |||
235 | bool readOk=mediaPlayerState->curDecoder()->audioReadSamples( (short*)audioBuffer, channels, 1024, samplesRead, stream ); | 235 | bool readOk=mediaPlayerState->curDecoder()->audioReadSamples( (short*)audioBuffer, channels, 1024, samplesRead, stream ); |
236 | long sampleWeShouldBeAt = long( playtime.elapsed() ) * freq / 1000; | 236 | long sampleWeShouldBeAt = long( playtime.elapsed() ) * freq / 1000; |
237 | long sampleWaitTime = currentSample - sampleWeShouldBeAt; | 237 | long sampleWaitTime = currentSample - sampleWeShouldBeAt; |
238 | 238 | ||
239 | // if ( ( sampleWaitTime > 2000 ) && ( sampleWaitTime < 20000 ) ) { | 239 | // this causes drop outs not sure why its even here |
240 | // usleep( (long)((double)sampleWaitTime * 1000000.0 / freq) ); | 240 | // if ( ( sampleWaitTime > 2000 ) && ( sampleWaitTime < 20000 ) ) { |
241 | // usleep( (long)((double)sampleWaitTime * 1000000.0 / freq) ); | ||
242 | // } | ||
243 | // else if ( sampleWaitTime <= -5000 ) { | ||
244 | // qDebug("need to catch up by: %li (%i,%li)", -sampleWaitTime, currentSample, sampleWeShouldBeAt ); | ||
245 | // //mediaPlayerState->curDecoder()->audioSetSample( sampleWeShouldBeAt, stream ); | ||
246 | // currentSample = sampleWeShouldBeAt; | ||
241 | // } | 247 | // } |
242 | // else if ( sampleWaitTime <= -5000 ) { | ||
243 | // qDebug("need to catch up by: %li (%i,%li)", -sampleWaitTime, currentSample, sampleWeShouldBeAt ); | ||
244 | // //mediaPlayerState->curDecoder()->audioSetSample( sampleWeShouldBeAt, stream ); | ||
245 | // currentSample = sampleWeShouldBeAt; | ||
246 | // } | ||
247 | 248 | ||
248 | audioDevice->write( audioBuffer, samplesRead * 2 * channels ); | 249 | audioDevice->write( audioBuffer, samplesRead * 2 * channels ); |
249 | audioSampleCounter = currentSample + samplesRead - 1; | 250 | audioSampleCounter = currentSample + samplesRead - 1; |
250 | 251 | ||
@@ -431,8 +432,11 @@ bool LoopControl::init( const QString& filename ) { | |||
431 | 432 | ||
432 | current_frame = 0; | 433 | current_frame = 0; |
433 | prev_frame = -1; | 434 | prev_frame = -1; |
434 | 435 | ||
436 | if( fileName.left(7) == "http://") | ||
437 | mediaPlayerState->isStreaming = TRUE; | ||
438 | |||
435 | connect( mediaPlayerState, SIGNAL( positionChanged( long ) ), this, SLOT( setPosition( long ) ) ); | 439 | connect( mediaPlayerState, SIGNAL( positionChanged( long ) ), this, SLOT( setPosition( long ) ) ); |
436 | connect( mediaPlayerState, SIGNAL( pausedToggled( bool ) ), this, SLOT( setPaused( bool ) ) ); | 440 | connect( mediaPlayerState, SIGNAL( pausedToggled( bool ) ), this, SLOT( setPaused( bool ) ) ); |
437 | 441 | ||
438 | audioMutex->unlock(); | 442 | audioMutex->unlock(); |
diff --git a/core/multimedia/opieplayer/mediaplayerstate.h b/core/multimedia/opieplayer/mediaplayerstate.h index ad273f1..06c5556 100644 --- a/core/multimedia/opieplayer/mediaplayerstate.h +++ b/core/multimedia/opieplayer/mediaplayerstate.h | |||
@@ -33,9 +33,9 @@ Q_OBJECT | |||
33 | public: | 33 | public: |
34 | MediaPlayerState( QObject *parent, const char *name ); | 34 | MediaPlayerState( QObject *parent, const char *name ); |
35 | ~MediaPlayerState(); | 35 | ~MediaPlayerState(); |
36 | 36 | ||
37 | 37 | bool isStreaming; | |
38 | bool fullscreen() { return isFullscreen; } | 38 | bool fullscreen() { return isFullscreen; } |
39 | bool scaled() { return isScaled; } | 39 | bool scaled() { return isScaled; } |
40 | bool looping() { return isLooping; } | 40 | bool looping() { return isLooping; } |
41 | bool shuffled() { return isShuffled; } | 41 | bool shuffled() { return isShuffled; } |
diff --git a/core/multimedia/opieplayer/playlistwidget.cpp b/core/multimedia/opieplayer/playlistwidget.cpp index 250645c..ff156f8 100644 --- a/core/multimedia/opieplayer/playlistwidget.cpp +++ b/core/multimedia/opieplayer/playlistwidget.cpp | |||
@@ -992,8 +992,9 @@ void PlayListWidget::openFile() { | |||
992 | // if( fileDlg2->result() == 1 ) { | 992 | // if( fileDlg2->result() == 1 ) { |
993 | // name = fileDlg2->LineEdit1->text(); | 993 | // name = fileDlg2->LineEdit1->text(); |
994 | // } | 994 | // } |
995 | //http://205.188.234.129:8030 | 995 | //http://205.188.234.129:8030 |
996 | // http://66.28.68.70:8000 | ||
996 | qDebug(filename); | 997 | qDebug(filename); |
997 | DocLnk lnk; | 998 | DocLnk lnk; |
998 | // if(filename.left(7) == "http://") | 999 | // if(filename.left(7) == "http://") |
999 | // name= filename.right(filename.length()-filename.find("http://")-7); | 1000 | // name= filename.right(filename.length()-filename.find("http://")-7); |