diff -r 453dfc402455 -r 0aa8cc770c8a mtpdataproviders/mtpplaybackcontroldp/mtpplaybackinterface/inc/mmtpplaybackinterface.h --- /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