devsoundextensions/drmaudioplayer/DRMPlayUtility/src/drmaudioplayeradaptation.h
changeset 0 40261b775718
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/devsoundextensions/drmaudioplayer/DRMPlayUtility/src/drmaudioplayeradaptation.h	Tue Feb 02 01:56:55 2010 +0200
@@ -0,0 +1,148 @@
+/*
+* 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 audio player adapatation class
+*
+*/
+
+#ifndef __DRM_AUDIOPLAYER_ADAPTATION_H
+#define __DRM_AUDIOPLAYER_ADAPTATION_H
+
+#include <e32base.h>
+#include <e32cons.h>
+#include <f32file.h>
+
+#include <DrmAudioSamplePlayer.h>
+#include <mdaaudiosampleplayer.h>
+
+
+class CDrmAudioPlayerAdaptation :   public CBase,
+                                    public MMdaAudioPlayerCallback
+	{
+	public: // construct/destruct
+	    CDrmAudioPlayerAdaptation( MDrmAudioPlayerCallback& aCallback );
+
+	    static CDrmAudioPlayerAdaptation* NewL( MDrmAudioPlayerCallback& aCallback,
+    		                                      TInt aPriority,
+    		                                      TMdaPriorityPreference aPref );
+		~CDrmAudioPlayerAdaptation();
+
+		//Services provided:
+		static CDrmAudioPlayerAdaptation* NewFilePlayerL(const TDesC& aFileName,
+		                    MDrmAudioPlayerCallback& aCallback,
+		                    TInt aPriority,
+		                    TMdaPriorityPreference aPref);
+
+		static CDrmAudioPlayerAdaptation* NewDesPlayerL(const TDesC8& aData,
+                            MDrmAudioPlayerCallback& aCallback,
+                            TInt aPriority,
+                            TMdaPriorityPreference aPref);
+
+		static CDrmAudioPlayerAdaptation* NewDesPlayerReadOnlyL(const TDesC8& aData,
+                                                                MDrmAudioPlayerCallback& aCallback,
+                                                                TInt aPriority,
+                                                                TMdaPriorityPreference aPref);
+
+		void OpenFileL(const TDesC& aFileName);
+		void OpenFileL(const RFile& aFile);
+		void OpenFileL(const TMMSource& aSource);
+		void OpenDesL(const TDesC8& aDescriptor);
+		void OpenUrlL(const TDesC& aUrl, TInt aIapId, const TDesC8& aMimeType);
+		void Play();
+		void Stop();
+		void SetVolume(const TInt aVolume );
+		void SetRepeats(TInt aRepeatNumberOfTimes, const TTimeIntervalMicroSeconds& aTrailingSilence);
+		void SetVolumeRamp( const TTimeIntervalMicroSeconds& aRampDuration );
+		const TTimeIntervalMicroSeconds& Duration();
+		TInt MaxVolume();
+
+		// API Additions since version 7.0
+		TInt Pause();
+		void Close();
+		TInt GetPosition( TTimeIntervalMicroSeconds& aPosition );
+		void SetPosition( const TTimeIntervalMicroSeconds& aPosition );
+
+		TInt SetPriority( TInt aPriority, TMdaPriorityPreference aPref );
+		TInt GetVolume(TInt& aVolume);
+		TInt GetNumberOfMetaDataEntries(TInt& aNumEntries);
+		CMMFMetaDataEntry* GetMetaDataEntryL( TInt aMetaDataIndex );
+		TInt SetPlayWindow(   const TTimeIntervalMicroSeconds& aStart,
+                            const TTimeIntervalMicroSeconds& aEnd);
+		TInt ClearPlayWindow();
+		TInt SetBalance(const TInt aBalance);
+		TInt GetBalance(TInt& aBalance);
+		TInt GetBitRate(TUint& aBitRate);
+
+		void RegisterForAudioLoadingNotification(MAudioLoadingObserver& aCallback);
+		void GetAudioLoadingProgressL( TInt& aPercentageProgress );
+		const CMMFControllerImplementationInformation& ControllerImplementationInformationL();
+
+		TInt CustomCommandSync(const TMMFMessageDestinationPckg& aDestination,
+		                        TInt aFunction,
+		                        const TDesC8& aDataTo1,
+		                        const TDesC8& aDataTo2,
+		                        TDes8& aDataFrom);
+
+		TInt CustomCommandSync(const TMMFMessageDestinationPckg& aDestination,
+	                                TInt aFunction,
+	                                const TDesC8& aDataTo1,
+	                                const TDesC8& aDataTo2 );
+
+		void CustomCommandAsync(const TMMFMessageDestinationPckg& aDestination,
+		                                                   TInt aFunction,
+		                                                   const TDesC8& aDataTo1,
+		                                                   const TDesC8& aDataTo2,
+		                                                   TDes8& aDataFrom,
+		                                                   TRequestStatus& aStatus);
+
+		void CustomCommandAsync(const TMMFMessageDestinationPckg& aDestination,
+		                                                   TInt aFunction,
+		                                                   const TDesC8& aDataTo1,
+		                                                   const TDesC8& aDataTo2,
+		                                                   TRequestStatus& aStatus);
+
+	private:
+    		void ConstructL( TInt aPriority, TMdaPriorityPreference aPref );
+
+    		void ConstructNewFilePlayerL( const TDesC& aFileName,
+    		                              TInt aPriority,
+    		                              TMdaPriorityPreference aPref );
+
+    		void ConstructNewDesPlayerL( const TDesC8& aData,
+    		                             TInt aPriority,
+    		                             TMdaPriorityPreference aPref );
+
+    		void ConstructNewDesPlayerReadOnlyL( const TDesC8& aData,
+                                                TInt aPriority,
+                                                TMdaPriorityPreference aPref );
+
+
+    		//from MMdaAudioPlayerCallback
+    		void MapcInitComplete(TInt aError, const TTimeIntervalMicroSeconds& aDuration);
+    		void MapcPlayComplete(TInt aError);
+
+    		//Returns False if Destination CustomCommand needs to be blocked
+    		TBool IsValidCustomCommandDestination(TUid aDestinationUid, TDesC8& aParam);
+    		TBool CheckCustomInterfaceBuilderImplL(const TDesC8& aParam);
+
+
+	private:
+		CMdaAudioPlayerUtility* iMdaPlayUtil;
+
+		// NOT OWNED !
+		MDrmAudioPlayerCallback* iCallback;
+	};
+
+#endif //__DRM_AUDIOPLAYER_ADAPTATION_H
+
+// End of file