--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/mmfenh/advancedaudiocontroller/tsrc/advancedaudiocontrollertestmodule/AudioPlaybackTestModule/inc/SimpleSoundPlayer.h Tue Feb 02 01:08:46 2010 +0200
@@ -0,0 +1,220 @@
+/*
+* Copyright (c) 2002 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: mmftsplay test component
+*
+*/
+
+#ifndef __SOUND_PLAYER_H
+#define __SOUND_PLAYER_H
+
+#include <MdaAudioSamplePlayer.h>
+#include <StifTestModule.h>
+#include "EventTarget.h"
+#include "Parameters.h"
+
+#include <e32std.h>
+#include <e32base.h>
+#include <StifLogger.h>
+#include <MdaAudioSamplePlayer.h>
+#include "FileNameParameters.h"
+#include "Des8Parameters.h"
+//#include "FileHandlerParameters.h"
+#include "UrlParameters.h"
+#include "ObjectCountDown.h"
+#include <audiooutput.h>
+
+const TInt KRunCaseOpen = 2;
+const TInt KSubCaseNone = 0;
+//Error
+const TInt KErrIncorrect = -1502; //-1101
+
+const TInt KRepeatTimes = 3;
+const TUid KUidInterfaceMMFController = {KMmfUidPluginInterfaceController};
+
+
+class CSimpleSoundPlayer: public CBase , public MEventTarget , public MMdaAudioPlayerCallback,
+public MAudioLoadingObserver, public MMMFAudioResourceNotificationCallback
+ {
+public:
+ static CSimpleSoundPlayer* NewUrlL(const TDesC &aDescriptor, TInt aIapId, const TDesC8 &aMime, CTestModuleIf &aConsole, CStifLogger &aLogger, TBool aImmediate=ETrue);
+ static CSimpleSoundPlayer* NewUrlLC(const TDesC &aDescriptor, TInt aIapId, const TDesC8 &aMime, CTestModuleIf &aConsole, CStifLogger &aLogger, TBool aImmediate=ETrue);
+
+ static CSimpleSoundPlayer* NewL(const TDesC8 &aDescriptor, CTestModuleIf &aConsole, CStifLogger &aLogger, TBool aImmediate=ETrue);
+ static CSimpleSoundPlayer* NewLC(const TDesC8 &aDescriptor, CTestModuleIf &aConsole, CStifLogger &aLogger, TBool aImmediate=ETrue);
+
+ static CSimpleSoundPlayer* NewL(const TFileName &aFile, CTestModuleIf &aConsole, CStifLogger &iLogger, TBool aImmediate=ETrue);
+ static CSimpleSoundPlayer* NewLC(const TFileName &aFile, CTestModuleIf &aConsole, CStifLogger &iLogger, TBool aImmediate=ETrue);
+
+ static CSimpleSoundPlayer* NewL(const RFile &aFile, CTestModuleIf &aConsole, CStifLogger &iLogger, TBool aImmediate=ETrue);
+ static CSimpleSoundPlayer* NewLC(const RFile &aFile, CTestModuleIf &aConsole, CStifLogger &iLogger, TBool aImmediate=ETrue);
+ ~CSimpleSoundPlayer();
+
+
+ static CSimpleSoundPlayer* NewL(CTestModuleIf &aConsole, CStifLogger &iLogger, TBool aUseSharedHeap = EFalse);
+ static CSimpleSoundPlayer* NewLC(CTestModuleIf &aConsole, CStifLogger &iLogger, TBool aUseSharedHeap);
+
+
+ // from MMdaAudioPlayerCallback
+ virtual void MapcInitComplete(TInt aError, const TTimeIntervalMicroSeconds& aDuration);
+ virtual void MapcPlayComplete(TInt aError);
+ virtual void DoCancel();
+
+ virtual void MaloLoadingStarted();
+ virtual void MaloLoadingComplete();
+
+ virtual void MarncResourceAvailable(TUid aNotificationEventId, const TDesC8 &aNotificationData);
+
+ void SetVolumeRamp(const TTimeIntervalMicroSeconds &aRampDuration);
+ void SetRepeats(TInt aRepeatNumberOfTimes, const TTimeIntervalMicroSeconds &aTrailingSilence);
+ void SetPosition(const TTimeIntervalMicroSeconds &aPosition);
+ TInt SetPlayWindow(const TTimeIntervalMicroSeconds &aStart, const TTimeIntervalMicroSeconds &aEnd);
+ TTimeIntervalMicroSeconds GetPlayDuration();
+ TTime GetPlayStartTime();
+ TTime GetPlayStopTime();
+ TInt GetBalance(TInt &aBalance);
+ TInt SetBalance(TInt aBalance);
+ TInt SetPriority(TInt aPriority, TMdaPriorityPreference aPref);
+ TInt SetThread_Priority();
+ TTimeIntervalMicroSeconds GetDuration();
+ TTimeIntervalMicroSeconds GetDuration_Para();
+ TInt ClearPlayWindow();
+ void GetConImpInfo();
+ void GetLoad_Percentage();
+ void GetBit_Rate();
+ void GetDRMCmd();
+ void CancelNotification();
+ void CtrImpInfo();
+ void Set_Priority();
+
+ TInt Play();
+ TInt OpenDesL(const TDesC8 &aSoundDes , const TBool &aImmediate=ETrue) ;
+ TInt GetPosition(TTimeIntervalMicroSeconds &aPosition);
+
+ void SetSupervisor(TObjectCountDown *aCounter) ;
+ void SetPlayCompleteTarget(MEventTarget *aTarget, CParameters *aParameters) ;
+
+ void SetVolume(TInt aNewVolume);
+ TInt GetVolume(TInt &aVolume);
+ TInt MaxVolume();
+
+ TInt GetNumberOfMetaDataEntries(TInt &aNumEntries);
+ CMMFMetaDataEntry *GetMetaDataEntryL(TInt aMetaDataIndex);
+
+ TInt OpenFile(const TFileName &aFile);
+ TInt OpenWithFileHandler(const RFile &aFile);
+ TInt OpenWithFileSource(const TMMSource &aSource);
+ TInt OpenWithDesc(const TDesC8 &aDescriptor);
+
+ void RegNotification();
+ void RegLoadNotification();
+
+ void SetRunCase(TInt aRunCase);
+ void SetSubCase(TInt aSubCase);
+
+
+ void AudioOutputCreationL();
+ void LoopPlayL();
+
+
+
+private:
+
+ TInt Open_UrlL(const TDesC &aUrl, TInt aIapId, const TDesC8 &aMime) ;
+
+ TInt OpenUrlL(const TDesC &aUrl, TInt aIapId, const TDesC8 &aMime) ;
+ TInt Pause();
+ TInt PauseResume();
+ TInt OpenL(const TFileName &aFileName , const TBool &aImmediate);
+ TInt OpenFileHandlerL(const TFileName &aFileName , const TBool &aImmediate);
+ TInt Stop(const TBool &aAlsoClose=ETrue);
+
+ CSimpleSoundPlayer(CTestModuleIf &aConsole, CStifLogger &iLogger, TBool aImmediate=ETrue);
+ void ConstructUrlL(const TDesC &aDescriptor, TInt aIapId, const TDesC8 &aMime);
+ void ConstructL(const TDesC8 &aDescriptor);
+ void ConstructL(const TFileName &aFile);
+ void ConstructL(const RFile &aFile);
+ void ConstructL(TBool aUseSharedHeap);
+
+
+ void Exit(TInt aExitCode);
+
+
+
+
+private:
+ MEventTarget *iEventTarget;
+ CParameters *iParameters;
+
+ TObjectCountDown *iSupervisor;
+ CMdaAudioPlayerUtility* iMdaPlayer;
+ CMdaAudioPlayerUtility* iMdaPlayer_1;
+ CMdaAudioPlayerUtility* iMdaPlayer_2;
+ CMdaAudioPlayerUtility* iMdaPlayer_3;
+ CTestModuleIf &iConsole;
+ TBool iImmediate;
+ CStifLogger &iLogger;
+ CAudioOutput* iAudioOutput;
+
+ TTime iLastPlayTime;
+ TTime iLastStopTime;
+
+
+public:
+ static const TInt KPlayerActionPlay;
+ static const TInt KPlayerActionPause;
+ static const TInt KPlayerActionPauseResume;
+ static const TInt KPlayerActionStopPlayFile;
+ static const TInt KPlayerActionReportPosition;
+ static const TInt KPlayerActionReportDuration;
+ static const TInt KPlayerActionReportDuration_Para;
+ static const TInt KPlayerActionStopPlayDes;
+ static const TInt KPlayerActionReportVolume;
+ static const TInt KPlayerActionStopPlayUrl;
+ static const TInt KPlayerActionStopPlayFileHandler;
+
+ TInt ExecuteL(CParameters *aParams) ;
+
+ enum TState
+ {
+ ENotReady,
+ EReady,
+ EPlaying,
+ EPaused
+ };
+ TInt iPlayerId;
+ TState iState;
+ TBool iSoundOpen;
+ /////TBool iAutoClose;
+ TInt iFinalError;
+ TTimeIntervalMicroSeconds iPosition;
+ TTimeIntervalMicroSeconds startPosition;
+ TTimeIntervalMicroSeconds endPosition;
+ TInt aBalance;
+ TBool playVolume;
+ TBool metaInfo;
+ TBool playWindow;
+ TBool clearWindow;
+ TBool setBalance;
+ TBool iDontPlayAudioClip; // Binh
+
+ TInt iRunCase;
+ TInt iSubCase;
+
+private:
+ TBool iIsLoopPlayEnabled;
+
+};
+
+#endif //__SOUND_PLAYER_H
+