summaryrefslogtreecommitdiffstats
path: root/src/3rdparty/phonon/mmf/abstractmediaplayer.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/3rdparty/phonon/mmf/abstractmediaplayer.h')
-rw-r--r--src/3rdparty/phonon/mmf/abstractmediaplayer.h17
1 files changed, 17 insertions, 0 deletions
diff --git a/src/3rdparty/phonon/mmf/abstractmediaplayer.h b/src/3rdparty/phonon/mmf/abstractmediaplayer.h
index e795ecb..99fc101 100644
--- a/src/3rdparty/phonon/mmf/abstractmediaplayer.h
+++ b/src/3rdparty/phonon/mmf/abstractmediaplayer.h
@@ -23,6 +23,7 @@ along with this library. If not, see <http://www.gnu.org/licenses/>.
#include <QScopedPointer>
#include <e32std.h>
#include "abstractplayer.h"
+#include "download.h"
class RFile;
@@ -48,6 +49,7 @@ protected:
public:
virtual void open();
+ virtual void close();
// MediaObjectInterface
virtual void play();
@@ -55,6 +57,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 +71,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 +92,9 @@ protected:
static qint64 toMilliSeconds(const TTimeIntervalMicroSeconds &);
+ bool isProgressiveDownload() const;
+ bool progressiveDownloadStalled() const;
+
private:
void startPositionTimer();
void stopPositionTimer();
@@ -96,6 +105,7 @@ private:
void emitMarksIfReached(qint64 position);
void resetMarksIfRewound();
void startPlayback();
+ void setProgressiveDownloadStalled();
enum Pending {
NothingPending,
@@ -108,6 +118,8 @@ private:
private Q_SLOTS:
void positionTick();
void bufferStatusTick();
+ void downloadLengthChanged(qint64);
+ void downloadStateChanged(Download::State);
private:
MediaObject *const m_parent;
@@ -115,6 +127,7 @@ private:
Pending m_pending;
QScopedPointer<QTimer> m_positionTimer;
+ qint64 m_position;
QScopedPointer<QTimer> m_bufferStatusTimer;
PrivateState m_stateBeforeBuffering;
@@ -127,6 +140,10 @@ private:
// Used for playback of resource files
TPtrC8 m_buffer;
+ // Used for progressive download
+ Download *m_download;
+ bool m_downloadStalled;
+
QMultiMap<QString, QString> m_metaData;
};