diff -r 000000000000 -r cec860690d41 haitest/bspsvs/suite/bsp/sound/inc/t_mdadevsounddata.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/haitest/bspsvs/suite/bsp/sound/inc/t_mdadevsounddata.h Tue Feb 02 01:39:10 2010 +0200 @@ -0,0 +1,190 @@ +/* +* Copyright (c) 2005-2009 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: +* +*/ + +/** +@test +@internalComponent + +This contains CT_MdaDevSoundData +*/ + +#if (!defined __T_MDADEVSOUND_DATA_H__) +#define __T_MDADEVSOUND_DATA_H__ + +// User Includes +#include "DataWrapperBase.h" +#include "sound_util.h" +#include "t_soundactivecallback.h" + +// EPOC includes +#include +#include + +/** + * Class to wrap RMdaDevSound APIs. + * + */ +class CT_MdaDevSoundData: public CDataWrapperBase + { +public: + /** + * Two phase constructor + * + * @leave system wide error + */ + static CT_MdaDevSoundData* NewL(RMdaDevSound* aServerStore); + /** + * Public destructor + */ + ~CT_MdaDevSoundData(); + + /** + * Process a command read from the ini file + * + * @param aCommand requiring command to be processed + * @param aSection the section in the ini file requiring the command to be processed + * @param aAsyncErrorIndex the index of asynchronous command error code belongs to. + * + * @leave system wide error + * + * @return ETrue if the command is processed + */ + virtual TBool DoCommandL(const TTEFFunction& aCommand, const TTEFSectionName& aSection, const TInt aAsyncErrorIndex); + + /** + * Return a pointer to the object that the data wraps + * + * @return pointer to the object that the data wraps + */ + virtual TAny* GetObject(); + virtual void SetObjectL(TAny* aAny); + virtual void DisownObjectL(); + + inline virtual TCleanupOperation CleanupOperation(); + + /** + * Query to see if there are any outstanding requests + * + * @return ETrue if there are any outstanding requests + */ + + void RunL(CActive* aActive, TInt aIndex); + void DoCancel(CActive* aActive, TInt aIndex); + +protected: + /** + * Protected constructor. First phase construction + */ + CT_MdaDevSoundData(RMdaDevSound* aServerStore); + /** + * Second phase construction + */ + void ConstructL(); + +private: + static void CleanupOperation( TAny* aAny ); + + /** + * General commands + */ + void DoCmdNewL(); + void DoCmdOpen(const TDesC& aSection); + void DoCmdClose(); + void DoCmdDestructor(); + void DoCmdIsMdaSound(); + void DoCmdVersionRequired(const TDesC& aSection); + + /** + * Playback commands + */ + void DoCmdPlayVolume(const TDesC& aSection); + void DoCmdSetPlayVolume(const TDesC& aSection); + void DoCmdPlayDataL(const TDesC& aSection, const TInt aAsyncErrorIndex); + void DoCmdCancelPlayData(); + void DoCmdFlushPlayBuffer(); + void DoCmdNotifyPlayErrorL(const TInt aAsyncErrorIndex); + void DoCmdCancelNotifyPlayError(); + void DoCmdBytesPlayed(const TDesC& aSection); + void DoCmdResetBytesPlayed(); + void DoCmdPausePlayBuffer(); + void DoCmdResumePlaying(); + + /** + * Recording commands + */ + void DoCmdRecordDataL(const TDesC& aSection, const TInt aAsyncErrorIndex); + void DoCmdCancelRecordData(); + void DoCmdFlushRecordBuffer(); + void DoCmdRecordLevel(const TDesC& aSection); + void DoCmdSetRecordLevel(const TDesC& aSection); + void DoCmdNotifyRecordErrorL(const TInt aAsyncErrorIndex); + void DoCmdCancelNotifyRecordError(); + + /** + * Format commands + */ + void DoCmdPlayFormatsSupportedL(const TDesC& aSection); + void DoCmdGetPlayFormatL(const TDesC& aSection); + void DoCmdSetPlayFormatL(const TDesC& aSection); + void DoCmdRecordFormatsSupportedL(const TDesC& aSection); + void DoCmdGetRecordFormatL(const TDesC& aSection); + void DoCmdSetRecordFormatL(const TDesC& aSection); + + /** + * Utility commands + */ + void DoCmdUtilityLoadDrivers(const TDesC& aSection); + void DoCmdUtilityFreeDrivers(const TDesC& aSection); + void DoCmdUtilityDeleteFileL(const TDesC& aSection); + + /** + * Helper commands + */ + void DoCleanup(); + + +private: + /** RMdaDevSound class instance that is tested */ + RMdaDevSound* iMdaDevSound; + + /** Reference to RMdaDevSound object stored on server side */ + RMdaDevSound* iServerStore; + + /** The request status for playback errors */ + RPointerArray iNotifyPlayError; + + /** The request status for recording errors */ + RPointerArray iNotifyRecordError; + + /** The request status for sound playback */ + RPointerArray iPlay; + + /** The request status for sound recording */ + RPointerArray iRecord; + }; + +#define GET_MANDATORY_STRING_PARAMETER(aParamName, aSection, aResult) GetCommandStringParameter(aParamName, aSection, aResult, (TText8*)__FILE__, __LINE__, ETrue) +#define GET_MANDATORY_INT_PARAMETER(aParamName, aSection, aResult) GetCommandIntParameter(aParamName, aSection, aResult,(TText8*) __FILE__, __LINE__, ETrue) +#define GET_MANDATORY_INT64_PARAMETER(aParamName, aSection, aResult) GetCommandInt64Parameter(aParamName, aSection, aResult,(TText8*) __FILE__, __LINE__, ETrue) +#define GET_MANDATORY_BOOL_PARAMETER(aParamName, aSection, aResult) GetCommandBoolParameter(aParamName, aSection, aResult, (TText8*)__FILE__, __LINE__, ETrue) + +#define GET_OPTIONAL_STRING_PARAMETER(aParamName, aSection, aResult) GetCommandStringParameter(aParamName, aSection, aResult, (TText8*) __FILE__, __LINE__, EFalse) +#define GET_OPTIONAL_INT_PARAMETER(aParamName, aSection, aResult) GetCommandIntParameter(aParamName, aSection, aResult,(TText8*) __FILE__, __LINE__, EFalse) +#define GET_OPTIONAL_INT64_PARAMETER(aParamName, aSection, aResult) GetCommandInt64Parameter(aParamName, aSection, aResult,(TText8*) __FILE__, __LINE__, EFalse) +#define GET_OPTIONAL_BOOL_PARAMETER(aParamName, aSection, aResult) GetCommandBoolParameter(aParamName, aSection, aResult,(TText8*) __FILE__, __LINE__, EFalse) + +#endif /* __T_MDADEVSOUND_DATA_H__ */