mtpdataproviders/mtpplaybackcontroldp/mtpplaybackinterface/inc/mmtpplaybackinterface.h
branchRCL_3
changeset 19 0aa8cc770c8a
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mtpdataproviders/mtpplaybackcontroldp/mtpplaybackinterface/inc/mmtpplaybackinterface.h	Tue Aug 31 16:03:15 2010 +0300
@@ -0,0 +1,133 @@
+// Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+//
+
+/**
+ @file
+ @internalComponent
+*/
+
+#ifndef MMTPPLAYBACKINTERFACE_H
+#define MMTPPLAYBACKINTERFACE_H
+
+const TInt KPlaybackErrNone = 0;
+const TInt KPlaybackErrDeviceBusy = (-8000);
+const TInt KPlaybackErrDeviceUnavailable = (-8001);
+const TInt KPlaybackErrParamInvalid = (-8002);
+const TInt KPlaybackErrContextInvalid = (-8003);
+
+/** Playback status */
+enum TMTPPlaybackState
+    {
+    /** Playing */
+    EPlayStatePlaying,
+    /** Pause */
+    EPlayStatePaused,
+    /** Forward seeking */
+    EPlayStateForwardSeeking,
+    /** Backward seeking */
+    EPlayStateBackwardSeeking,
+    /** error state */
+    EPlayStateError
+    };
+
+/** Playback events */
+enum TMTPPlaybackEvent
+    {
+    EPlaybackEventNone,
+    /** playback volume update */
+    EPlaybackEventVolumeUpdate,
+    /** playback object update */
+    EPlaybackEventObjectUpdate,
+    /** playback object index update */
+    EPlaybackEventObjectIndexUpdate,
+    /** player state update */
+    EPlaybackEventStateUpdate,
+    /** Last Event */
+    EPlaybackEventEnd
+    };
+
+/** Playback command */
+enum TMTPPlaybackCommand
+    {
+    EPlaybackCmdNone,
+    EPlaybackCmdInitObject,
+    EPlaybackCmdInitIndex,
+    EPlaybackCmdPlay,
+    EPlaybackCmdPause,
+    EPlaybackCmdStop,
+    EPlaybackCmdSkip,
+    EPlaybackCmdSeekForward,
+    EPlaybackCmdSeekBackward,
+    EPlaybackCmdGetVolume,
+    EPlaybackCmdGetVolumeSet,
+    EPlaybackCmdSetVolume,
+    EPlaybackCmdGetPosition,
+    EPlaybackCmdSetPosition,
+    EPlaybackCmdGetDuration,
+    EPlaybackCmdGetState,
+    EPlaybackCmdGetObject,
+    EPlaybackCmdGetIndex,
+    EPlaybackCmdEnd
+    };
+
+class CMTPPlaybackCommand;
+class CMTPPlaybackEvent;
+
+class MMTPPlaybackObserver
+    {
+public: 
+    /**
+     * Called when playback object is updated or 
+     * playback object's position is updated 
+     * in the active player instance.
+     */
+    virtual void HandlePlaybackEventL(CMTPPlaybackEvent* aEvent, TInt aErr = KPlaybackErrNone) = 0;
+    };
+
+class MMTPPlaybackCallback
+    {
+public:
+    /**
+     * Called when playback command is completed
+     * 
+     * @param aErr Complete error
+     * @param aCmd Complete command
+     */
+    virtual void HandlePlaybackCommandCompleteL(CMTPPlaybackCommand* aCmd, TInt aErr = KPlaybackErrNone) = 0;
+    };
+
+class MMTPPlaybackControl
+    {
+public:
+    /** 
+    *  Create an Instance of MMTPPlaybackControl's implementation.
+    */
+    static MMTPPlaybackControl* NewL(MMTPPlaybackObserver& aObserver);
+    
+    /**
+    *  Frees resource, and destroy the object itself.
+    */
+    virtual void Close()=0;
+    
+    /** 
+    *  Issue player commands, with optional data.
+    *  @param aCmd the command
+    *  @param aCallback Call back function
+    */
+    virtual void CommandL(CMTPPlaybackCommand& aCmd, MMTPPlaybackCallback* aCallback = NULL) = 0;
+    };
+
+#endif // MMTPPLAYBACKINTERFACE_H
+// End of File