diff options
Diffstat (limited to 'src/3rdparty/phonon/mmf/abstractmediaplayer.h')
-rw-r--r-- | src/3rdparty/phonon/mmf/abstractmediaplayer.h | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/src/3rdparty/phonon/mmf/abstractmediaplayer.h b/src/3rdparty/phonon/mmf/abstractmediaplayer.h index e795ecb..c3b4528 100644 --- a/src/3rdparty/phonon/mmf/abstractmediaplayer.h +++ b/src/3rdparty/phonon/mmf/abstractmediaplayer.h @@ -23,6 +23,9 @@ along with this library. If not, see <http://www.gnu.org/licenses/>. #include <QScopedPointer> #include <e32std.h> #include "abstractplayer.h" +#ifdef PHONON_MMF_PROGRESSIVE_DOWNLOAD +# include "download.h" +#endif class RFile; @@ -48,6 +51,7 @@ protected: public: virtual void open(); + virtual void close(); // MediaObjectInterface virtual void play(); @@ -55,6 +59,7 @@ public: virtual void stop(); virtual void seek(qint64 milliseconds); virtual bool isSeekable() const; + virtual qint64 currentTime() const; virtual void volumeChanged(qreal volume); protected: @@ -68,12 +73,15 @@ protected: virtual void doStop() = 0; virtual void doSeek(qint64 pos) = 0; virtual int setDeviceVolume(int mmfVolume) = 0; + virtual int openFile(const QString &fileName) = 0; virtual int openFile(RFile& file) = 0; virtual int openUrl(const QString& url) = 0; virtual int openDescriptor(const TDesC8 &des) = 0; virtual int bufferStatus() const = 0; + virtual void doClose() = 0; void updateMetaData(); + virtual qint64 getCurrentTime() const = 0; virtual int numberOfMetaDataEntries() const = 0; virtual QPair<QString, QString> metaDataEntry(int index) const = 0; @@ -86,6 +94,9 @@ protected: static qint64 toMilliSeconds(const TTimeIntervalMicroSeconds &); + bool isProgressiveDownload() const; + bool progressiveDownloadStalled() const; + private: void startPositionTimer(); void stopPositionTimer(); @@ -96,6 +107,7 @@ private: void emitMarksIfReached(qint64 position); void resetMarksIfRewound(); void startPlayback(); + void setProgressiveDownloadStalled(); enum Pending { NothingPending, @@ -108,6 +120,10 @@ private: private Q_SLOTS: void positionTick(); void bufferStatusTick(); +#ifdef PHONON_MMF_PROGRESSIVE_DOWNLOAD + void downloadLengthChanged(qint64); + void downloadStateChanged(Download::State); +#endif private: MediaObject *const m_parent; @@ -115,6 +131,7 @@ private: Pending m_pending; QScopedPointer<QTimer> m_positionTimer; + qint64 m_position; QScopedPointer<QTimer> m_bufferStatusTimer; PrivateState m_stateBeforeBuffering; @@ -127,6 +144,11 @@ private: // Used for playback of resource files TPtrC8 m_buffer; +#ifdef PHONON_MMF_PROGRESSIVE_DOWNLOAD + Download *m_download; + bool m_downloadStalled; +#endif + QMultiMap<QString, QString> m_metaData; }; |