devsound/sounddevbt/src/swcodecwrapper/mmfBtswcodecwrapperCustomInterfaces.h
changeset 0 40261b775718
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/devsound/sounddevbt/src/swcodecwrapper/mmfBtswcodecwrapperCustomInterfaces.h	Tue Feb 02 01:56:55 2010 +0200
@@ -0,0 +1,84 @@
+// 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:
+//
+
+#ifndef __MMFBTSWCODECWRAPPERCUSTOMINTERFACES_H__
+#define __MMFBTSWCODECWRAPPERCUSTOMINTERFACES_H__
+
+
+/**
+ * Implementation of custom interface class for play functionality created by the 
+ * CMMFSwCodecWrapper::CustomInterface() method.  It provides 
+ * access to miscellaneous functionality such as volume settings
+ * Ports of sw codec wrapper may do this differently eg via EAP
+ * note don't use RMdaDevSound::TCurrentSoundFormatBuf so send
+ * across the sample rate and channels because 1)it would mean
+ * MmfBtSwCodecWrapper.h would have to include mdasound.h and 2)
+ * the buffer size and encoding members are not required 3)3rd party ports
+ * may not use RMdaDevSound
+ * Note also that this interface is just a simple interface to get
+ * and set values.  No checking is perfomed on the values sent (hence the
+ * Set methods do not return an error code.)
+ * @prototype
+ */
+class TPlayCustomInterface : public MPlayCustomInterface
+	{
+public:
+	TPlayCustomInterface() : iVolume(0),iBytesPlayed(0),iDevice(NULL),iRampDuration(0) {}
+	void SetVolume(TUint aVolume);
+	TUint Volume() {return iVolume;};
+	TUint BytesPlayed();
+	void SetVolumeRamp(const TTimeIntervalMicroSeconds& aRampDuration) {iRampDuration = aRampDuration;};
+	TTimeIntervalMicroSeconds& VolumeRamp() {return iRampDuration;};
+	TTaskConfig Caps();
+	void SetDevice(CRoutingSoundPlayDevice* iDevice);//not for use outside codec wrapper
+private:
+	TUint iVolume;
+	TUint iBytesPlayed;
+	CRoutingSoundPlayDevice* iDevice;
+	TTimeIntervalMicroSeconds iRampDuration;
+	};
+
+/**
+ * Implementation of custom interface class for record functionality created by the 
+ * CMMFSwCodecWrapper::CustomInterface() method.  It provides 
+ * access to miscelaneous functionality such as volume settings
+ * Ports of sw codec wrapper may do this differently eg via EAP
+ * note don't use RMdaDevSound::TCurrentSoundFormatBuf so send
+ * across the sample rate and channels because 1)it would mean
+ * MmfBtSwCodecWrapper.h would have to include mdasound.h and 2)
+ * the buffer size and encoding members are not required 3)3rd party ports
+ * may not use RMdaDevSound
+ * Note also that this interface is just a simple interface to get
+ * and set values.  No checking is perfomed on the values sent. (hence the
+ * Set methods do not return an error code.)
+ * @prototype
+ */
+class TRecordCustomInterface : public MRecordCustomInterface
+	{
+public:
+	TRecordCustomInterface() : iGain(0), iBytesRecorded(0), iDataPath(NULL) {}
+	void SetGain(TUint aGain) {iGain = aGain;};
+	void SetDataPath(CMMFSwCodecRecordDataPath* aDataPath){iDataPath = aDataPath;};
+	TUint Gain() {return iGain;};
+	TUint BytesRecorded(); 
+private:
+	TUint iGain;
+	TUint iBytesRecorded;
+	CMMFSwCodecRecordDataPath* iDataPath;
+	};
+
+
+#endif
+