diff -r 000000000000 -r 71ca22bcf22a mmfenh/advancedaudiocontroller/tsrc/advancedaudiocontrollertestmodule/AudioStreamTestModule/inc/OutputStreamer.h --- /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 +#include +#include +#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 &aBuffers ); + void StartPlayback(TMdaPackage *aSettings); + RArray &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 iArrBufferErrors; + TBool iAlreadyClosed; + TBool iPlaybackStopped; + + RPointerArray iWriteBuffers; + +protected: + }; + +#endif // OUTPUT_STREAMER_H