mtpdataproviders/mtpplaybackcontroldp/mtpplaybackinterface/inc/mmtpplaybackinterface.h
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/mtpdataproviders/mtpplaybackcontroldp/mtpplaybackinterface/inc/mmtpplaybackinterface.h Fri Jun 25 16:54:01 2010 +0800
@@ -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