os/mm/mmlibs/mmfw/tsrc/mmfunittest/Actrl/TestPlugins/AudioController/CustomMmfAudioController.h
Update contrib.
1 // Copyright (c) 2002-2009 Nokia Corporation and/or its subsidiary(-ies).
2 // All rights reserved.
3 // This component and the accompanying materials are made available
4 // under the terms of "Eclipse Public License v1.0"
5 // which accompanies this distribution, and is available
6 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
8 // Initial Contributors:
9 // Nokia Corporation - initial contribution.
16 #ifndef __TEST_MMF_CUSTOM_MMF_AUDIO_CONTROLLER_H__
17 #define __TEST_MMF_CUSTOM_MMF_AUDIO_CONTROLLER_H__
19 #include "MmfAudioController.h"
20 #include <mmf/server/mmfclip.h>
23 class CCustomMMFMessageHolder : public CBase
26 static CCustomMMFMessageHolder* NewL(TMMFMessage& aMessage)
27 {return new CCustomMMFMessageHolder(aMessage);}
30 CCustomMMFMessageHolder(TMMFMessage& aMessage): CBase(), iMessage(aMessage){}
35 class CCustomMmfAudioController: public CMMFAudioController
38 static CMMFController* NewL() ;
39 virtual ~CCustomMmfAudioController();
40 virtual void PrimeL();
42 virtual void PauseL();
44 virtual void PrimeL(TMMFMessage& aMessage);
45 virtual void PlayL(TMMFMessage& aMessage);
46 virtual void PauseL(TMMFMessage& aMessage);
48 virtual void ResetL();
49 virtual void RemoveDataSourceL(MDataSource& aDataSource);
50 virtual void RemoveDataSinkL(MDataSink& aDataSink);
51 virtual void MapdSetVolumeL(TInt aVolume);
52 virtual void MapdGetMaxVolumeL(TInt& aMaxVolume);
53 virtual void MapdGetVolumeL(TInt& aVolume);
54 virtual void CustomCommand(TMMFMessage& aMessage);
55 virtual void MarcSetMaxFileSizeL(TInt aFileSize);
56 virtual void MarcGetRecordTimeAvailableL(TTimeIntervalMicroSeconds& aTime);
59 TBool IsMemoryAllocCmd(TMMFMessage& aMessage );
60 TInt AllocMemoryTestL();
61 CCustomMMFMessageHolder* iStoppingMessage;
64 CCustomMmfAudioController();
65 virtual TBool IsUnderTest(){return iIsTest;}
69 //The controller is meant for testing. Other than the overridden functions, other functions
70 //inherited from CMMFAudioController should not be used.
71 class CMemoryFailAudioController : public CMMFAudioController
74 static CMMFController* NewL() ;
75 ~CMemoryFailAudioController();
76 virtual void AddDataSourceL(MDataSource& aSource);
77 virtual void AddDataSinkL(MDataSink& aSink);
78 virtual void SetPrioritySettings(const TMMFPrioritySettings& aSettings);
79 virtual TTimeIntervalMicroSeconds DurationL() const;
81 CMemoryFailAudioController();
82 //Source which is not owned by the controller
85 //Extracted from MDataSink passed by the MMF. Not owned by the controller
86 CMMFDevSound* iMMFDevSound;
87 TMMFPrioritySettings iPrioritySettings;
90 //The controller is same as that of CMemoryFailAudioController. The only difference is NewL()
92 class CMemoryPassAudioController : public CMemoryFailAudioController
95 static CMMFController* NewL() ;
97 CMemoryPassAudioController();
100 //Test Controller that panics the Controller thread during playing/recording
101 //This verifies the fix for DEF127630
102 class CPanicAudioController : public CMMFAudioController
105 static CMMFController* NewL();
106 ~CPanicAudioController();
107 void AddDataSourceL(MDataSource& aSource);
108 void AddDataSinkL(MDataSink& aSink);
111 TTimeIntervalMicroSeconds DurationL() const;
112 void SetPositionL(const TTimeIntervalMicroSeconds& aPosition);
114 CPanicAudioController();
116 static TInt PanicTimerComplete(TAny* aParent);
118 CPeriodic* iPanicTimer;