src/3rdparty/phonon/mmf/abstractplayer.h
changeset 3 41300fa6a67c
parent 0 1918ee327afb
child 4 3b1da2848fc7
child 7 f7bc934e204c
--- a/src/3rdparty/phonon/mmf/abstractplayer.h	Tue Jan 26 12:42:25 2010 +0200
+++ b/src/3rdparty/phonon/mmf/abstractplayer.h	Tue Feb 02 00:43:10 2010 +0200
@@ -24,8 +24,6 @@
 
 #include <QObject>
 
-#include "volumeobserver.h"
-
 #include "videooutput.h"
 
 class RFile;
@@ -49,7 +47,6 @@
  *  -   Video, in which case the implementation is VideoPlayer
  */
 class AbstractPlayer : public QObject
-                     , public VolumeObserver
 {
     // Required although this class has no signals or slots
     // Without this, qobject_cast will fail
@@ -85,7 +82,6 @@
     virtual void setFileSource(const Phonon::MediaSource&, RFile&) = 0;
     virtual void setNextSource(const Phonon::MediaSource &) = 0;
 
-    // VolumeObserver
     virtual void volumeChanged(qreal volume);
 
     void setVideoOutput(VideoOutput* videoOutput);
@@ -93,16 +89,18 @@
     /**
      * Records error and changes state to ErrorState
      */
-    void setError(Phonon::ErrorType error);
+    void setError(Phonon::ErrorType error,
+                  const QString &errorMessage = QString());
 
     Phonon::State state() const;
+
 Q_SIGNALS:
     void totalTimeChanged(qint64 length);
     void finished();
     void tick(qint64 time);
     void stateChanged(Phonon::State oldState,
                       Phonon::State newState);
-
+    void metaDataChanged(const QMultiMap<QString, QString>& metaData);
 
 protected:
     /**
@@ -132,7 +130,10 @@
 
     PrivateState privateState() const;
 
-    virtual void changeState(PrivateState newState) = 0;
+    /**
+     * Changes state and emits stateChanged()
+     */
+    virtual void changeState(PrivateState newState);
 
     /**
      * Modifies m_state directly. Typically you want to call changeState(),
@@ -152,6 +153,7 @@
 private:
     PrivateState                m_state;
     Phonon::ErrorType           m_error;
+    QString                     m_errorString;
     qint32                      m_tickInterval;
     qint32                      m_transitionTime;
     qint32                      m_prefinishMark;