diff -r 000000000000 -r bde4ae8d615e os/mm/devsoundextensions/drmaudioplayer/DRMPlayServer/inc/DRMPlaySession.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/os/mm/devsoundextensions/drmaudioplayer/DRMPlayServer/inc/DRMPlaySession.h Fri Jun 15 03:10:57 2012 +0200 @@ -0,0 +1,149 @@ +/* +* Copyright (c) 2005-2006 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: DRM Play Session +* +*/ + + +#ifndef __CDRMPLAYSESSION_H +#define __CDRMPLAYSESSION_H + + +#include +#include +#include +#include "DRMPlayServer.h" +#include "DRMCustomCommandAsyncAO.h" +#include +#include +#include + + +class CDRMCustomCommandAsyncAO; +class CDRMPlayServer; +#ifdef RD_TSP_CLIENT_MAPPER +class CTspClientMapper; +#endif // #ifdef RD_TSP_CLIENT_MAPPER + +class CDRMPlayServerSession : public CSession2, + public MMdaAudioPlayerCallback, + public MAudioLoadingObserver + { + friend class CDRMPlayServer; +public: + // construct/destruct + CDRMPlayServerSession(CDRMPlayServer* aServer); + static CDRMPlayServerSession* NewL(CDRMPlayServer* aServer, const RMessage2& aMessage ); + ~CDRMPlayServerSession(); + //service request + virtual void ServiceL(const RMessage2 &aMessage); + TInt DispatchMessageL(const RMessage2 &aMessage); + + //services available + void NewFilePlayerL(const RMessage2 aMessage); + void NewDesPlayerL(const RMessage2 aMessage); + void NewDesPlayerReadOnlyL(const RMessage2 aMessage); + void NewPlayerL(const RMessage2 aMessage); + void OpenFileL(const RMessage2 &aMessage); + void OpenFileByHandleL(const RMessage2 &aMessage); + void OpenFileBySourceL(const RMessage2 &aMessage); + void OpenDesL(const RMessage2 &aMessage); + void OpenUrlL(const RMessage2 &aMessage); + void Play(); + void Stop(); + void SetVolume(const RMessage2 &aMessage); + void SetRepeats(const RMessage2 &aMessage); + void SetVolumeRamp(const RMessage2 &aMessage); + void Duration(const RMessage2&aMessage); + TInt MaxVolume(); + + // API Additions since version 7.0 + TInt Pause(); + void Close(); + TInt GetPosition(const RMessage2 &aMessage); + void SetPosition(const RMessage2 &aMessage); + + TInt SetPriority(const RMessage2 &aMessage); + TInt GetVolume(const RMessage2 &aMessage); + TInt GetNumberOfMetaDataEntries(const RMessage2 &aMessage); + void GetMetaDataEntryL(const RMessage2 &aMessage); + TInt SetPlayWindow(const RMessage2 &aMessage); + TInt ClearPlayWindow(); + TInt SetBalance(const RMessage2 &aMessage); + TInt GetBalance(const RMessage2 &aMessage); + TInt GetBitRate(const RMessage2 &aMessage); + + void RegisterForAudioLoadingNotification(const RMessage2 &aMessage); + void GetAudioLoadingProgressL(const RMessage2 &aMessage); + void ControllerImplementationInformationL(const RMessage2 &aMessage); + + void CustomCommandSyncL(const RMessage2 &aMessage); + void CustomCommandAsyncStep1L(const RMessage2 &aMessage); + void CustomCommandAsyncStep2L(const RMessage2 &aMessage); + + void SetPriorityPreference(const RMessage2 &aMessage); + void AsyncCustomCommandCompleted( CDRMCustomCommandAsyncAO* aObject ); + + + +protected: + // panic the client + void PanicClient(const RMessage2 &aMessage, TInt aPanic) const; + +private: + void ConstructL( const RMessage2& aMessage ); + + //MMdaAudioPlayerCallback + void MapcInitComplete(TInt aError, const TTimeIntervalMicroSeconds& aDuration); + void MapcPlayComplete(TInt aError); + + //MAudioLoadingObserver + void MaloLoadingStarted(); + void MaloLoadingComplete(); + + //Returns False if Destination CustomCommand needs to be blocked + TBool IsValidCustomCommandDestination(TUid aDestinationUid, TDesC8& aParam); + TBool CheckCustomInterfaceBuilderImplL(TDesC8& aParam); + +private: + enum{EIdle,EPlaying,EStopped}; + + CDRMPlayServer *iServer; + CMdaAudioPlayerUtility* iPlayUtil; + RMessage2 iMessage; + RMessage2* iMessage2; + CBufFlat* iMetaDataBuffer; + //CAsyncCallback* iAsyncCallback; + TErrorDurationStructPckgBuf iErrDurPckg; + TAsyncCallbackStatePckgBuf iCallbackState; + TInt iAsyncComplete; + TInt iCount; + TInt iState; + TInt iPriority; + TMdaPriorityPreference iPref; + TBool iFileHandleUsed; + RFile iFileHandle; +#ifdef RD_TSP_CLIENT_MAPPER + // Handle to TSP Client Mapper for Rem Con Framework + CTspClientMapper* iTSPClientMapper; + // Process id of client to DRM Session + TProcessId iClientProcessId; +#endif // RD_TSP_CLIENT_MAPPER + RPointerArray iActiveAsyncCustomCommands; + CDRMCustomCommandAsyncAO* iCDRMCustomCommandAsyncAO2Phase; + }; + +#endif + +// End of file