videocollection/tsrc/simplevideoplayback/inc/svpbengine.h
changeset 52 e3cecb93e76a
child 58 d2b028fd1f7d
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/videocollection/tsrc/simplevideoplayback/inc/svpbengine.h	Wed Aug 18 09:50:14 2010 +0300
@@ -0,0 +1,65 @@
+#ifndef SVPBENGINE_H
+#define SVPBENGINE_H
+
+#include <qobject>
+#include <mpxplaybackobserver.h>
+#include "svpbsurfacecontainer.h"
+
+class MMPXPlaybackUtility;
+
+enum SvpbEngineState
+{
+    Disconnected = 0,
+    Connected, // == Stopped
+    Initializing,
+    MediaRequested,
+    PlayRequested,
+    Playing,
+    PauseRequested,
+    Paused,
+    StopRequested
+};
+
+class SvpbEngine : public QObject,
+    public MMPXPlaybackObserver,
+    public MMPXPlaybackCallback
+{
+    Q_OBJECT
+
+public:
+    SvpbEngine(QObject *parent=0);
+    virtual ~SvpbEngine();
+
+    void connectMPX();
+    void disconnectMPX();
+
+    void setSurfaceContainer(SvpbSurfaceContainer *surfaceContainer);
+
+signals:
+    void finished();
+
+public slots:
+    void togglePause();
+    void stop();
+
+private: // From MMPXPlaybackObserver
+    void HandlePlaybackMessage(CMPXMessage* aMessage, TInt aErr);
+
+private: // from MMPXPlaybackCallback
+    void HandlePropertyL(TMPXPlaybackProperty aProperty, TInt aValue, TInt aError);
+    void HandleSubPlayerNamesL(TUid aPlayer, const MDesCArray* aSubPlayers,
+                               TBool aComplete, TInt aError);
+    void HandleMediaL(const CMPXMedia& aProperties, TInt aError);
+
+private:
+    void mpxPbStateChanged(TMPXPlaybackState type, int err);
+    void requestMedia();
+
+private: // data
+    SvpbSurfaceContainer *mSurfaceContainer;
+    SvpbEngineState mState;
+    MMPXPlaybackUtility *mPlaybackUtility;
+    TMPXPlaybackState mMpxPbState;
+};
+
+#endif // SVPBENGINE_H