-rw-r--r-- | noncore/multimedia/opieplayer2/mediaplayerstate.cpp | 39 | ||||
-rw-r--r-- | noncore/multimedia/opieplayer2/mediaplayerstate.h | 6 |
2 files changed, 29 insertions, 16 deletions
diff --git a/noncore/multimedia/opieplayer2/mediaplayerstate.cpp b/noncore/multimedia/opieplayer2/mediaplayerstate.cpp index 6806adc..901b43f 100644 --- a/noncore/multimedia/opieplayer2/mediaplayerstate.cpp +++ b/noncore/multimedia/opieplayer2/mediaplayerstate.cpp @@ -67,40 +67,44 @@ void MediaPlayerState::readConfig( Config& cfg ) { looping = cfg.readBoolEntry( "Looping" ); shuffled = cfg.readBoolEntry( "Shuffle" ); videoGamma = cfg.readNumEntry( "VideoGamma" ); playing = FALSE; streaming = FALSE; paused = FALSE; curPosition = 0; curLength = 0; - curView = 'l'; + m_displayType = MediaSelection; } void MediaPlayerState::writeConfig( Config& cfg ) const { cfg.setGroup( "Options" ); cfg.writeEntry( "FullScreen", fullscreen ); cfg.writeEntry( "Scaling", scaled ); cfg.writeEntry( "Looping", looping ); cfg.writeEntry( "Shuffle", shuffled ); cfg.writeEntry( "VideoGamma", videoGamma ); } -MediaPlayerState::DisplayType MediaPlayerState::displayType() const +char MediaPlayerState::view() const { - char v = view(); - switch ( v ) { - case 'a': return MediaPlayerState::Audio; - case 'v': return MediaPlayerState::Video; - case 'l': return MediaPlayerState::MediaSelection; + switch ( m_displayType ) { + case Audio: return 'a'; + case Video: return 'v'; + case MediaSelection: return 'l'; default: assert( false ); } // never reached - return MediaPlayerState::MediaSelection; + return 42; +} + +MediaPlayerState::DisplayType MediaPlayerState::displayType() const +{ + return m_displayType; } // slots void MediaPlayerState::setIsStreaming( bool b ) { streaming = b; } void MediaPlayerState::setIsSeekable( bool b ) { @@ -206,22 +210,31 @@ void MediaPlayerState::setLength( long l ) { if ( curLength == l ) { return; } curLength = l; emit lengthChanged(l); } void MediaPlayerState::setView( char v ) { - if ( curView == v ) { - return; + switch ( v ) { + case 'a': setDisplayType( Audio ); return; + case 'v': setDisplayType( Video ); return; + case 'l': setDisplayType( MediaSelection ); return; + default: assert( false ); } - curView = v; - emit viewChanged(v); - emit displayTypeChanged( displayType() ); +} + +void MediaPlayerState::setDisplayType( DisplayType displayType ) +{ + if ( m_displayType == displayType ) + return; + + m_displayType = displayType; + emit displayTypeChanged( m_displayType ); } void MediaPlayerState::setPrev(){ emit prev(); } void MediaPlayerState::setNext() { emit next(); diff --git a/noncore/multimedia/opieplayer2/mediaplayerstate.h b/noncore/multimedia/opieplayer2/mediaplayerstate.h index ca531c5..b18780b 100644 --- a/noncore/multimedia/opieplayer2/mediaplayerstate.h +++ b/noncore/multimedia/opieplayer2/mediaplayerstate.h @@ -58,33 +58,34 @@ public: bool isScaled() const { return scaled; } bool isLooping() const { return looping; } bool isShuffled() const { return shuffled; } bool isPaused() const { return paused; } bool isPlaying() const { return playing; } bool isStopped() const { return stopped; } long position() const { return curPosition; } long length() const { return curLength; } - char view() const { return curView; } + char view() const; DisplayType displayType() const; public slots: void setIsStreaming( bool b ); void setIsSeekable( bool b ); void setFullscreen( bool b ); void setScaled( bool b ); void setLooping( bool b ); void setShuffled( bool b ); void setPaused( bool b ); void setPlaying( bool b ); void setStopped( bool b ); void setPosition( long p ); void updatePosition( long p ); void setLength( long l ); void setView( char v ); + void setDisplayType( MediaPlayerState::DisplayType displayType ); void setBlanked( bool b ); void setVideoGamma( int v ); void setPrev(); void setNext(); void setList(); void setVideo(); void setAudio(); @@ -105,17 +106,16 @@ signals: void loopingToggled( bool ); void shuffledToggled( bool ); void pausedToggled( bool ); void playingToggled( bool ); void stopToggled( bool ); void positionChanged( long ); // When the slider is moved void positionUpdated( long ); // When the media file progresses void lengthChanged( long ); - void viewChanged( char ); void displayTypeChanged( MediaPlayerState::DisplayType type ); void isSeekableToggled( bool ); void blankToggled( bool ); void videoGammaChanged( int ); void prev(); void next(); private: @@ -127,17 +127,17 @@ private: bool looping : 1; bool shuffled : 1; bool usePlaylist : 1; bool paused : 1; bool playing : 1; bool stopped : 1; long curPosition; long curLength; - char curView; + DisplayType m_displayType; int videoGamma; void readConfig( Config& cfg ); }; #endif // MEDIA_PLAYER_STATE_H |