os/mm/mmlibs/mmfw/tsrc/mmfunittest/Actrl/TestPlugins/AudioController/CustomMmfAudioController.h
author sl
Tue, 10 Jun 2014 14:32:02 +0200
changeset 1 260cb5ec6c19
permissions -rw-r--r--
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".
     7 //
     8 // Initial Contributors:
     9 // Nokia Corporation - initial contribution.
    10 //
    11 // Contributors:
    12 //
    13 // Description:
    14 //
    15 
    16 #ifndef __TEST_MMF_CUSTOM_MMF_AUDIO_CONTROLLER_H__
    17 #define __TEST_MMF_CUSTOM_MMF_AUDIO_CONTROLLER_H__
    18 
    19 #include "MmfAudioController.h"
    20 #include <mmf/server/mmfclip.h>
    21 
    22 
    23 class CCustomMMFMessageHolder : public CBase
    24 	{
    25 public:
    26 	static CCustomMMFMessageHolder* NewL(TMMFMessage& aMessage)
    27 		{return new CCustomMMFMessageHolder(aMessage);}
    28 	TMMFMessage iMessage;
    29 private:
    30 	CCustomMMFMessageHolder(TMMFMessage& aMessage): CBase(), iMessage(aMessage){}
    31 	};
    32 
    33 
    34 
    35 class CCustomMmfAudioController: public CMMFAudioController 
    36 	{
    37 public:
    38 	static CMMFController* NewL() ;
    39     virtual ~CCustomMmfAudioController();
    40 	virtual void PrimeL();
    41 	virtual void PlayL();
    42 	virtual void PauseL();
    43 	virtual void StopL();
    44 	virtual void PrimeL(TMMFMessage& aMessage);
    45 	virtual void PlayL(TMMFMessage& aMessage);
    46 	virtual void PauseL(TMMFMessage& aMessage);
    47 	
    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);
    57 
    58 private:
    59 	 TBool IsMemoryAllocCmd(TMMFMessage& aMessage );
    60 	 TInt  AllocMemoryTestL();
    61 	 CCustomMMFMessageHolder* iStoppingMessage;
    62 	 
    63 protected:
    64 	CCustomMmfAudioController();
    65 	virtual TBool IsUnderTest(){return iIsTest;}
    66 	TBool iIsTest;
    67 	};
    68 
    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
    72 	{
    73 public:
    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;
    80 protected:
    81 	CMemoryFailAudioController();
    82     //Source which is not owned by the controller
    83     CMMFClip* iClip;
    84     MDataSink* iSink;
    85     //Extracted from MDataSink passed by the MMF. Not owned by the controller
    86     CMMFDevSound* iMMFDevSound;
    87 	TMMFPrioritySettings    iPrioritySettings;
    88 	};
    89 
    90 //The controller is same as that of CMemoryFailAudioController. The only difference is NewL()
    91 //is overridden.
    92 class CMemoryPassAudioController : public CMemoryFailAudioController
    93 	{
    94 public:
    95 	static CMMFController* NewL() ;
    96 protected:
    97 	CMemoryPassAudioController();
    98 	};
    99 
   100 //Test Controller that panics the Controller thread during playing/recording
   101 //This verifies the fix for DEF127630
   102 class CPanicAudioController : public CMMFAudioController
   103 	{
   104 public:
   105 	static CMMFController* NewL();
   106 	~CPanicAudioController();
   107 	void AddDataSourceL(MDataSource& aSource);
   108 	void AddDataSinkL(MDataSink& aSink);
   109 	void PrimeL();
   110 	void PlayL();
   111 	TTimeIntervalMicroSeconds DurationL() const;
   112 	void SetPositionL(const TTimeIntervalMicroSeconds& aPosition);
   113 protected:
   114 	CPanicAudioController();
   115 	void ConstructL();
   116 	static TInt PanicTimerComplete(TAny* aParent);
   117 private:
   118 	CPeriodic* iPanicTimer;
   119 	};
   120 #endif