mmfenh/advancedaudiocontroller/tsrc/advancedaudiocontrollertestmodule/AudioStreamTestModule/inc/InputStreamer.h
changeset 0 71ca22bcf22a
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mmfenh/advancedaudiocontroller/tsrc/advancedaudiocontrollertestmodule/AudioStreamTestModule/inc/InputStreamer.h	Tue Feb 02 01:08:46 2010 +0200
@@ -0,0 +1,97 @@
+/*
+* Copyright (c) 2007 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:  Audio stream test component
+*
+*/
+
+
+#ifndef INPUT_STREAMER_H
+#define INPUT_STREAMER_H
+
+//#include <StifTestInterface.h>
+#include <MdaAudioInputStream.h>
+#include <StifLogger.h>
+#include "mda/common/audio.h"
+#include "EventTarget.h"
+#include "StreamerBase.h"
+
+class CInputStreamer : public CStreamerBase , public MMdaAudioInputStreamCallback
+	{
+	private:
+		CInputStreamer(CStifLogger *aLogger);
+		void ConstructL();
+		void ConstructL(TInt aPriority, TMdaPriorityPreference aPref);
+
+	public:
+		// Standard two-phase construction
+		static CInputStreamer* NewL(CStifLogger *aLogger, TInt aId=0);
+		static CInputStreamer* NewLC(CStifLogger *aLogger, TInt aId=0);
+
+		static CInputStreamer* NewL(TInt aPriority, TMdaPriorityPreference aPref,
+		                            CStifLogger *aLogger, TInt aId=0);
+		static CInputStreamer* NewLC(TInt aPriority, TMdaPriorityPreference aPref,
+		                             CStifLogger *aLogger, TInt aId=0);
+
+		~CInputStreamer();
+
+        void SetAudioPropertiesL(TInt aSampleRate, TInt aChannels);
+		void SetPriority(TInt aPriority, TMdaPriorityPreference aPref);
+		TInt GetBalanceL();
+		void SetBalanceL(TInt aBalance);
+		void SetGain(const TInt aNewGain);
+		TInt GetMaxGain();
+		TInt GetGain();
+		void SetDataTypeL(TFourCC aDataType);
+		TFourCC GetDataType();
+		void GetSupportedBitRatesL(RArray<TInt>& aSupportedBitRates);
+		TInt BitRateL();
+		void SetBitRateL(TInt aBitRate);
+
+		void Stop();
+
+		RPointerArray<TDes8> &GetBuffers();
+		void StartRecording();
+
+		TInt ExecuteL(CParameters *aParams);
+		void Exit(TInt aExitCode);
+		void SetSettings(TMdaPackage *aSettings);
+		//void SetExitAfterOpen(TBool aFlag);
+
+		// iherited from MMdaAudioInputStreamCallback
+		void MaiscOpenComplete(TInt aError);
+		void MaiscBufferCopied(TInt aError, const TDesC8& aBuffer);
+		void MaiscRecordComplete(TInt aError);
+
+	public:
+		static const TInt KRecorderActionStop;
+		static const TInt KSchedulerStop;
+	private:
+		CMdaAudioInputStream *iMdaAudioInputStream;
+		TBool iAlreadyClosed;
+		TBool iRecording;
+		//TBool iExitAfterOpen;
+		enum TState
+			{
+			EClosed,
+			EFirstOpenSuccessful,
+			EOpen,
+			EPlaying,
+			ERecording,
+			EStopped
+			};
+		TState iState;
+		TMdaPackage *iSettings;
+	};
+
+#endif	//INPUT_STREAMER_H