src/3rdparty/phonon/mmf/abstractplayer.cpp
changeset 3 41300fa6a67c
parent 0 1918ee327afb
child 4 3b1da2848fc7
child 7 f7bc934e204c
equal deleted inserted replaced
2:56cd8111b7f7 3:41300fa6a67c
    90 void MMF::AbstractPlayer::setTransitionTime(qint32 time)
    90 void MMF::AbstractPlayer::setTransitionTime(qint32 time)
    91 {
    91 {
    92     m_transitionTime = time;
    92     m_transitionTime = time;
    93 }
    93 }
    94 
    94 
    95 
       
    96 //-----------------------------------------------------------------------------
       
    97 // VolumeObserver
       
    98 //-----------------------------------------------------------------------------
       
    99 
       
   100 void MMF::AbstractPlayer::volumeChanged(qreal volume)
    95 void MMF::AbstractPlayer::volumeChanged(qreal volume)
   101 {
    96 {
   102     m_volume = volume;
    97     m_volume = volume;
   103 }
    98 }
   104 
    99 
   116 void MMF::AbstractPlayer::videoOutputChanged()
   111 void MMF::AbstractPlayer::videoOutputChanged()
   117 {
   112 {
   118     // Default behaviour is empty - overridden by VideoPlayer
   113     // Default behaviour is empty - overridden by VideoPlayer
   119 }
   114 }
   120 
   115 
   121 void MMF::AbstractPlayer::setError(Phonon::ErrorType error)
   116 void MMF::AbstractPlayer::setError(Phonon::ErrorType error,
       
   117                                    const QString &errorMessage)
   122 {
   118 {
   123     TRACE_CONTEXT(AbstractPlayer::setError, EAudioInternal);
   119     TRACE_CONTEXT(AbstractPlayer::setError, EAudioInternal);
   124     TRACE_ENTRY("state %d error %d", m_state, error);
   120     TRACE_ENTRY("state %d error %d", m_state, error);
   125 
   121 
   126     m_error = error;
   122     m_error = error;
       
   123     m_errorString = errorMessage;
   127     changeState(ErrorState);
   124     changeState(ErrorState);
   128 
   125 
   129     TRACE_EXIT_0();
   126     TRACE_EXIT_0();
   130 }
   127 }
   131 
   128 
   132 Phonon::ErrorType MMF::AbstractPlayer::errorType() const
   129 Phonon::ErrorType MMF::AbstractPlayer::errorType() const
   133 {
   130 {
   134     const Phonon::ErrorType result = (ErrorState == m_state)
   131     const Phonon::ErrorType result = (ErrorState == m_state)
   135                                      ? errorType() : NoError;
   132                                      ? m_error : NoError;
   136     return result;
   133     return result;
   137 }
   134 }
   138 
   135 
   139 QString MMF::AbstractPlayer::errorString() const
   136 QString MMF::AbstractPlayer::errorString() const
   140 {
   137 {
   141     // TODO: put in proper error strings
   138     return m_errorString;
   142     QString result;
       
   143     return result;
       
   144 }
   139 }
   145 
   140 
   146 Phonon::State MMF::AbstractPlayer::phononState() const
   141 Phonon::State MMF::AbstractPlayer::phononState() const
   147 {
   142 {
   148     return phononState(m_state);
   143     return phononState(m_state);
   171 void MMF::AbstractPlayer::setState(PrivateState newState)
   166 void MMF::AbstractPlayer::setState(PrivateState newState)
   172 {
   167 {
   173     m_state = newState;
   168     m_state = newState;
   174 }
   169 }
   175 
   170 
       
   171 void MMF::AbstractPlayer::changeState(PrivateState newState)
       
   172 {
       
   173     TRACE_CONTEXT(AbstractPlayer::changeState, EAudioInternal);
       
   174     TRACE_ENTRY("state %d newState %d", privateState(), newState);
       
   175 
       
   176     // TODO: add some invariants to check that the transition is valid
       
   177 
       
   178     const Phonon::State oldPhononState = phononState(privateState());
       
   179 
       
   180     // We need to change the state before we emit stateChanged(), because
       
   181     // some user code, for instance the mediaplayer, switch on MediaObject's
       
   182     // state.
       
   183     setState(newState);
       
   184 
       
   185     const Phonon::State newPhononState = phononState(newState);
       
   186 
       
   187     if (oldPhononState != newPhononState) {
       
   188         TRACE("emit stateChanged(%d, %d)", newPhononState, oldPhononState);
       
   189         emit stateChanged(newPhononState, oldPhononState);
       
   190     }
       
   191 
       
   192     TRACE_EXIT_0();
       
   193 }
       
   194 
   176 QT_END_NAMESPACE
   195 QT_END_NAMESPACE
   177 
   196