sl@0: // Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies). sl@0: // All rights reserved. sl@0: // This component and the accompanying materials are made available sl@0: // under the terms of "Eclipse Public License v1.0" sl@0: // which accompanies this distribution, and is available sl@0: // at the URL "http://www.eclipse.org/legal/epl-v10.html". sl@0: // sl@0: // Initial Contributors: sl@0: // Nokia Corporation - initial contribution. sl@0: // sl@0: // Contributors: sl@0: // sl@0: // Description: sl@0: // sl@0: sl@0: #ifndef __MMFBTSWCODECWRAPPERINTERFACE_H__ sl@0: #define __MMFBTSWCODECWRAPPERINTERFACE_H__ sl@0: sl@0: #include sl@0: sl@0: class CMMFSwCodecDataPath; //forward reference sl@0: sl@0: class CRoutingSoundPlayDevice; sl@0: class CRoutingSoundRecordDevice; sl@0: sl@0: /** sl@0: @publishedPartner sl@0: @prototype sl@0: sl@0: Custom interface class for play functionality created by the sl@0: CMMFSwCodecWrapper::CustomInterface() method. It provides sl@0: access to miscellaneous functionality such as volume settings. sl@0: Ports of the sw codec wrapper may do this differently eg. via EAP. sl@0: Note Users should not use RMdaDevSound::TCurrentSoundFormatBuf to send sl@0: across the sample rate and channels because 1) it would mean sl@0: MmfBtSwCodecWrapper.h would have to include mdasound.h 2) sl@0: the buffer size and encoding members are not required and 3) 3rd party ports sl@0: may not use RMdaDevSound. sl@0: sl@0: Note also that this interface is just a simple interface to get sl@0: and set values. No checking is perfomed on the values sent (hence the sl@0: Set methods do not return an error code). sl@0: */ sl@0: class MPlayCustomInterface sl@0: { sl@0: public: sl@0: virtual void SetVolume(TUint aVolume) = 0; sl@0: virtual TUint Volume() = 0; sl@0: virtual TUint BytesPlayed() = 0; sl@0: virtual void SetVolumeRamp(const TTimeIntervalMicroSeconds& aRampDuration) = 0; sl@0: virtual TTimeIntervalMicroSeconds& VolumeRamp() = 0; sl@0: virtual TTaskConfig Caps() = 0; sl@0: }; sl@0: sl@0: sl@0: /** sl@0: @publishedPartner sl@0: @prototype sl@0: sl@0: Custom interface class for record functionality created by the sl@0: CMMFSwCodecWrapper::CustomInterface() method. It provides sl@0: access to miscelaneous functionality such as volume settings. sl@0: Ports of the sw codec wrapper may do this differently eg. via EAP. sl@0: Note: Users shoule not use RMdaDevSound::TCurrentSoundFormatBuf so send sl@0: across the sample rate and channels because 1) it would mean sl@0: MmfBtSwCodecWrapper.h would have to include mdasound.h 2) sl@0: the buffer size and encoding members are not required and 3) 3rd party ports sl@0: may not use RMdaDevSound. sl@0: sl@0: Note also that this interface is just a simple interface to get sl@0: and set values. No checking is perfomed on the values sent (hence the sl@0: Set methods do not return an error code). sl@0: */ sl@0: class MRecordCustomInterface sl@0: { sl@0: public: sl@0: virtual void SetGain(TUint aGain) = 0; sl@0: virtual TUint Gain() = 0; sl@0: virtual TUint BytesRecorded() = 0; sl@0: }; sl@0: sl@0: #endif //__MMFBTSWCODECWRAPPERINTERFACE_H__ sl@0: