mmfenh/advancedaudiocontroller/tsrc/advancedaudiocontrollertestmodule/AudioStreamTestModule/inc/OutputStreamer.h
changeset 0 71ca22bcf22a
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mmfenh/advancedaudiocontroller/tsrc/advancedaudiocontrollertestmodule/AudioStreamTestModule/inc/OutputStreamer.h	Tue Feb 02 01:08:46 2010 +0200
@@ -0,0 +1,93 @@
+/*
+* 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 OUTPUT_STREAMER_H
+#define OUTPUT_STREAMER_H
+
+//#include <StifTestInterface.h>
+#include <MdaAudioOutputStream.h>
+#include <StifLogger.h>
+#include "mda/common/audio.h"
+//#include "EventTarget.h"
+#include "StreamerBase.h"
+//#include "AudioDataSettingsParams.h"
+//#include "OutputPrinter.h"
+
+class COutputStreamer : public CStreamerBase , public MMdaAudioOutputStreamCallback	// , public MEventTarget
+	{
+private:
+	COutputStreamer(CStifLogger *aLogger);
+	void Exit(TInt aExitCode);
+	void ConstructL();
+	void ConstructL(TInt aPriority, TMdaPriorityPreference aPref);
+
+public:
+	// Standard two-phase construction
+	static COutputStreamer* NewL(CStifLogger *aLogger, TInt aId=0);
+	static COutputStreamer* NewLC(CStifLogger *aLogger, TInt aId=0);
+	static COutputStreamer* NewL(TInt aPriority, TMdaPriorityPreference aPref,
+	                             CStifLogger *aLogger, TInt aId=0);
+	static COutputStreamer* NewLC(TInt aPriority, TMdaPriorityPreference aPref,
+	                              CStifLogger *aLogger, TInt aId=0);
+
+	~COutputStreamer();
+
+    void SetAudioPropertiesL(TInt aSampleRate, TInt aChannels);
+	void SetVolume(TInt Volume);
+	TInt GetVolume();
+	TInt GetMaxVolume();
+
+	void SetPriority(TInt aPriority, TMdaPriorityPreference aPref);
+	TInt GetBalanceL();
+	void SetBalanceL(TInt aBalance);
+	void Stop();
+	TFourCC GetDataType();
+	void SetDataTypeL(TFourCC aAudioType);
+
+	void AdoptBuffers(RPointerArray<TDes8> &aBuffers );
+	void StartPlayback(TMdaPackage *aSettings);
+	RArray<TInt> &COutputStreamer::GetBufferErrors();
+	void SetIsClosedLoop(TBool=EFalse);
+	TInt DesToBuffers(TDes8 &aDes);
+
+	TInt ExecuteL(CParameters *aParams);
+
+	TInt AppendWriteBuffer(HBufC8 *aBuffer);
+	TInt LoadAudioFileL(const TFileName &aFileName);
+
+	// iherited from MMdaAudioOutputStreamCallback
+	void MaoscOpenComplete(TInt aError);
+	void MaoscBufferCopied(TInt aError, const TDesC8 &aBuffer);
+	void MaoscPlayComplete(TInt aError);
+
+public:
+	static const TInt KPlayerActionPlay;
+	static const TInt KPlayerActionStop;
+
+private:
+	CMdaAudioOutputStream *iMdaAudioOutputStream;
+	RArray<TInt> iArrBufferErrors;
+	TBool iAlreadyClosed;
+	TBool iPlaybackStopped;
+
+	RPointerArray<HBufC8> iWriteBuffers;
+
+protected:
+	};
+
+#endif      // OUTPUT_STREAMER_H