00001 /* 00002 * ============================================================================== 00003 * Name : DrmAudioSamplePlayer.h 00004 * Part of : ?Subsystem_name / ?Module_name 00005 * Interface : ?Interface_category, ?Interface_name 00006 * Description : ?Description 00007 * Version : ?Version 00008 * 00009 * Copyright © 2002-2004 Nokia. All rights reserved. 00010 * This material, including documentation and any related 00011 * computer programs, is protected by copyright controlled by 00012 * Nokia. All rights are reserved. Copying, including 00013 * reproducing, storing, adapting or translating, any 00014 * or all of this material requires the prior written consent of 00015 * Nokia. This material also contains confidential 00016 * information which may not be disclosed to others without the 00017 * prior written consent of Nokia. 00018 * ============================================================================== 00019 */ 00020 00021 00022 #ifndef DRMAUDIOSAMPLEPLAYER_H 00023 #define DRMAUDIOSAMPLEPLAYER_H 00024 00025 00026 00027 #include <e32base.h> 00028 #include <MdaAudioSamplePlayer.h> 00029 00030 // FORWARD DECLARATIONS 00031 class CMMFDrmAudioPlayerUtility; 00032 00033 // CLASS DECLARATION 00034 00043 class MDrmAudioPlayerCallback 00044 { 00045 public: 00063 virtual void MdapcInitComplete(TInt aError, const TTimeIntervalMicroSeconds& aDuration) = 0; 00064 00081 virtual void MdapcPlayComplete(TInt aError) = 0; 00082 }; 00083 00084 00085 00096 class CDrmPlayerUtility : public CBase 00097 { 00098 public: 00099 00103 IMPORT_C static CDrmPlayerUtility* NewL(MDrmAudioPlayerCallback& aCallback,TInt aPriority, 00104 TMdaPriorityPreference aPref); 00105 00109 IMPORT_C static CDrmPlayerUtility* NewFilePlayerL(const TDesC& aFileName,MDrmAudioPlayerCallback& aCallback, 00110 TInt aPriority, 00111 TMdaPriorityPreference aPref); 00112 00116 IMPORT_C static CDrmPlayerUtility* NewDesPlayerL(const TDesC8& aData, 00117 MDrmAudioPlayerCallback& aCallback, 00118 TInt aPriority, 00119 TMdaPriorityPreference aPref 00120 ); 00121 00125 IMPORT_C static CDrmPlayerUtility* NewDesPlayerReadOnlyL(const TDesC8& aData, 00126 MDrmAudioPlayerCallback& aCallback, 00127 TInt aPriority, 00128 TMdaPriorityPreference aPref 00129 ); 00130 00134 IMPORT_C ~CDrmPlayerUtility(); 00135 00141 IMPORT_C void Play(); 00142 00148 IMPORT_C void Stop(); 00149 00156 IMPORT_C TInt Pause(); 00157 00164 IMPORT_C void SetVolume(TInt aVolume 00165 ); 00166 00178 IMPORT_C void SetRepeats(TInt aRepeatNumberOfTimes, 00179 const TTimeIntervalMicroSeconds& aTrailingSilence 00180 ); 00181 00188 IMPORT_C void SetVolumeRamp(const TTimeIntervalMicroSeconds& aRampDuration); 00189 00190 00197 IMPORT_C const TTimeIntervalMicroSeconds& Duration(); 00198 00205 IMPORT_C TInt MaxVolume(); 00206 00213 IMPORT_C void OpenFileL(const TDesC& aFileName); 00214 00221 IMPORT_C void OpenFileL(const RFile& aFile); 00222 00229 IMPORT_C void OpenFileL(const TMMSource& aSource); 00230 00237 IMPORT_C void OpenDesL(const TDesC8& aDescriptor); 00238 00246 IMPORT_C void OpenUrlL(const TDesC& aUrl, TInt aIapId = KUseDefaultIap, const TDesC8& aMimeType=KNullDesC8); 00247 00253 IMPORT_C void Close(); 00254 00262 IMPORT_C TInt GetPosition(TTimeIntervalMicroSeconds& aPosition); 00263 00271 IMPORT_C void SetPosition(const TTimeIntervalMicroSeconds& aPosition); 00272 00284 IMPORT_C TInt SetPriority(TInt aPriority, TMdaPriorityPreference aPref); 00285 00293 IMPORT_C TInt GetVolume(TInt& aVolume); 00294 00302 IMPORT_C TInt GetNumberOfMetaDataEntries(TInt& aNumEntries); 00303 00311 IMPORT_C CMMFMetaDataEntry* GetMetaDataEntryL(TInt aMetaDataIndex); 00312 00328 IMPORT_C TInt SetPlayWindow(const TTimeIntervalMicroSeconds& aStart, 00329 const TTimeIntervalMicroSeconds& aEnd); 00330 00337 IMPORT_C TInt ClearPlayWindow(); 00338 00346 IMPORT_C TInt SetBalance(TInt aBalance = KMMFBalanceCenter); 00347 00355 IMPORT_C TInt GetBalance(TInt& aBalance); 00356 00364 IMPORT_C TInt GetBitRate(TUint& aBitRate); 00365 00372 IMPORT_C void RegisterForAudioLoadingNotification(MAudioLoadingObserver& aCallback); 00373 00380 IMPORT_C void GetAudioLoadingProgressL(TInt& aPercentageProgress); 00381 00388 IMPORT_C const CMMFControllerImplementationInformation& ControllerImplementationInformationL(); 00389 00410 IMPORT_C TInt CustomCommandSync(const TMMFMessageDestinationPckg& aDestination, TInt aFunction, const TDesC8& aDataTo1, const TDesC8& aDataTo2, TDes8& aDataFrom); 00411 00429 IMPORT_C TInt CustomCommandSync(const TMMFMessageDestinationPckg& aDestination, TInt aFunction, const TDesC8& aDataTo1, const TDesC8& aDataTo2); 00430 00455 IMPORT_C void CustomCommandAsync(const TMMFMessageDestinationPckg& aDestination, TInt aFunction, const TDesC8& aDataTo1, const TDesC8& aDataTo2, TDes8& aDataFrom, TRequestStatus& aStatus); 00456 00477 IMPORT_C void CustomCommandAsync(const TMMFMessageDestinationPckg& aDestination, TInt aFunction, const TDesC8& aDataTo1, const TDesC8& aDataTo2, TRequestStatus& aStatus); 00478 00479 protected: 00483 CMMFDrmAudioPlayerUtility* iProperties; 00484 00485 }; 00486 00487 #endif