sl@0: /*
sl@0: * Copyright (c) 2007 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: 
sl@0: 
sl@0: #include <ecom/implementationproxy.h>
sl@0: #include <ecom/ecom.h>
sl@0: #include <f32file.h>
sl@0: #include "speechencoderconfigtestdevice.h"
sl@0: #include "devsoundciutestdevices.hrh"
sl@0: 
sl@0: /*
sl@0: CMMFSpeechEncoderConfig implementation
sl@0: */
sl@0: CMMFSpeechEncoderConfig* CMMFSpeechEncoderConfig::NewL()
sl@0: 	{
sl@0: 	CMMFSpeechEncoderConfig* self = new(ELeave) CMMFSpeechEncoderConfig();
sl@0: 	return self;
sl@0: 	}
sl@0: 
sl@0: CMMFSpeechEncoderConfig::~CMMFSpeechEncoderConfig()
sl@0: 	{
sl@0: 	}
sl@0: 
sl@0: //Actual implementation of method SetBitrate
sl@0: TInt CMMFSpeechEncoderConfig::SetBitrate(TUint aBitrate)
sl@0: 	{
sl@0: 	iBitrate = aBitrate;
sl@0: 	return KErrNone;
sl@0: 	}
sl@0: 
sl@0: //Actual implementation of method GetBitrate
sl@0: TInt CMMFSpeechEncoderConfig::GetBitrate (TUint& aBitrate)
sl@0: 	{
sl@0: 	aBitrate = iBitrate;
sl@0: 	return KErrNone;
sl@0: 	}
sl@0: 
sl@0: //Actual implementation of method GetSupportedBitrates
sl@0: TInt CMMFSpeechEncoderConfig::GetSupportedBitrates(RArray<TUint>& aSupportedBitrates)
sl@0: 	{
sl@0: 	aSupportedBitrates.Append(12345);
sl@0: 	aSupportedBitrates.Append(23456);
sl@0: 	aSupportedBitrates.Append(34567);
sl@0: 	aSupportedBitrates.Append(45678);
sl@0: 	aSupportedBitrates.Append(56789);
sl@0: 	return KErrNone;
sl@0: 	}
sl@0: 
sl@0: //Actual implementation of method SetVadMode
sl@0: TInt CMMFSpeechEncoderConfig::SetVadMode(TBool aVadModeOn)
sl@0: 	{
sl@0: 	iVadModeOn = aVadModeOn;
sl@0: 	return KErrNone;
sl@0: 	}
sl@0: 
sl@0: //Actual implementation of method GetVadMode
sl@0: TInt CMMFSpeechEncoderConfig::GetVadMode(TBool& aVadModeOn)
sl@0: 	{
sl@0: 	aVadModeOn = iVadModeOn;
sl@0: 	return KErrNone;
sl@0: 	}
sl@0: 
sl@0: 
sl@0: /*
sl@0: CSpeechEncoderConfigTestDevice implementation
sl@0: */
sl@0: CMMFHwDevice* CSpeechEncoderConfigTestDevice::NewL()
sl@0: 	{
sl@0: 	CSpeechEncoderConfigTestDevice* self=new(ELeave) CSpeechEncoderConfigTestDevice();
sl@0: 	CleanupStack::PushL(self);
sl@0: 	self->ConstructL();
sl@0: 	CleanupStack::Pop(self);
sl@0: 	return self;
sl@0: 	}
sl@0: 
sl@0: CSpeechEncoderConfigTestDevice::~CSpeechEncoderConfigTestDevice()
sl@0: 	{
sl@0: 	delete iSpeechEncoderConfig;
sl@0: 	}
sl@0: 
sl@0: CSpeechEncoderConfigTestDevice::CSpeechEncoderConfigTestDevice()
sl@0: 	{
sl@0: 	}
sl@0: 
sl@0: void CSpeechEncoderConfigTestDevice::ConstructL()
sl@0: 	{
sl@0: 	}
sl@0: 
sl@0: TInt CSpeechEncoderConfigTestDevice::Start(TDeviceFunc /*aFuncCmd*/, TDeviceFlow /*aFlowCmd*/) 
sl@0: 	{
sl@0: 	return 0;
sl@0: 	}
sl@0: 
sl@0: TInt CSpeechEncoderConfigTestDevice::Stop()
sl@0: 	{
sl@0: 	return 0;
sl@0: 	}
sl@0: 
sl@0: TInt CSpeechEncoderConfigTestDevice::Pause()
sl@0: 	{
sl@0: 	return 0;
sl@0: 	}
sl@0: 
sl@0: TInt CSpeechEncoderConfigTestDevice::Init(THwDeviceInitParams& /*aDevInfo*/)
sl@0: 	{
sl@0: 	return 0;
sl@0: 	}
sl@0: 
sl@0: TAny* CSpeechEncoderConfigTestDevice::CustomInterface(TUid aInterfaceId)
sl@0: 	{
sl@0: 	// Just return something non-NULL to keep the
sl@0: 	// DevSound initialisation process happy
sl@0: 	TAny* ret = static_cast<TAny*>(this);
sl@0: 
sl@0: 	// Now for the CIs we want to test...
sl@0: 	if (aInterfaceId == KUidSpeechEncoderConfig)
sl@0: 		{
sl@0: 		if (!iSpeechEncoderConfig)
sl@0: 			{
sl@0: 			TRAPD(err, iSpeechEncoderConfig = CMMFSpeechEncoderConfig::NewL());
sl@0: 			if (err == KErrNone && iSpeechEncoderConfig)
sl@0: 				{
sl@0: 				MSpeechEncoderConfig* ptr = this;
sl@0: 				ret = static_cast<TAny*>(ptr);
sl@0: 				}
sl@0: 			else
sl@0: 				{
sl@0: 				ret = NULL;
sl@0: 				}
sl@0: 			}
sl@0: 		}
sl@0: 
sl@0: 	return ret;
sl@0: 	}
sl@0: 
sl@0: TInt CSpeechEncoderConfigTestDevice::ThisHwBufferFilled(CMMFBuffer& /*aFillBufferPtr*/)
sl@0: 	{
sl@0: 	return 0;
sl@0: 	}
sl@0: 
sl@0: TInt CSpeechEncoderConfigTestDevice::ThisHwBufferEmptied(CMMFBuffer& /*aEmptyBufferPtr*/)
sl@0: 	{
sl@0: 	return 0;
sl@0: 	}
sl@0: 
sl@0: TInt CSpeechEncoderConfigTestDevice::SetConfig(TTaskConfig& /*aConfig*/)
sl@0: 	{
sl@0: 	return 0;
sl@0: 	}
sl@0: 
sl@0: TInt CSpeechEncoderConfigTestDevice::StopAndDeleteCodec()
sl@0: 	{
sl@0: 	return 0;
sl@0: 	}
sl@0: 
sl@0: TInt CSpeechEncoderConfigTestDevice::DeleteCodec()
sl@0: 	{
sl@0: 	return 0;
sl@0: 	}
sl@0: 
sl@0: CMMFSwCodec& CSpeechEncoderConfigTestDevice::Codec()
sl@0: 	{
sl@0: 	return *iCodec;
sl@0: 	}
sl@0: 
sl@0: TInt CSpeechEncoderConfigTestDevice::SetBitrate(TUint aBitrate)
sl@0: 	{
sl@0: 	TInt result = KErrBadHandle;
sl@0: 
sl@0: 	if (iSpeechEncoderConfig)
sl@0: 		{
sl@0: 		result = iSpeechEncoderConfig->SetBitrate(aBitrate);
sl@0: 		}
sl@0: 
sl@0: 	return result;
sl@0: 	}
sl@0: 
sl@0: TInt CSpeechEncoderConfigTestDevice::GetBitrate(TUint& aBitrate)
sl@0: 	{
sl@0: 	TInt result = KErrBadHandle;
sl@0: 
sl@0: 	if (iSpeechEncoderConfig)
sl@0: 		{
sl@0: 		result = iSpeechEncoderConfig->GetBitrate(aBitrate);
sl@0: 		}
sl@0: 
sl@0: 	return result;
sl@0: 	}
sl@0: 
sl@0: TInt CSpeechEncoderConfigTestDevice::GetSupportedBitrates(RArray<TUint>& aSupportedBitrates)
sl@0: 	{
sl@0: 	TInt result = KErrBadHandle;
sl@0: 
sl@0: 	if (iSpeechEncoderConfig)
sl@0: 		{
sl@0: 		result = iSpeechEncoderConfig->GetSupportedBitrates(aSupportedBitrates);
sl@0: 		}
sl@0: 
sl@0: 	return result;
sl@0: 	}
sl@0: 
sl@0: TInt CSpeechEncoderConfigTestDevice::SetVadMode(TBool aVadModeOn)
sl@0: 	{
sl@0: 	TInt result = KErrBadHandle;
sl@0: 
sl@0: 	if (iSpeechEncoderConfig)
sl@0: 		{
sl@0: 		result = iSpeechEncoderConfig->SetVadMode(aVadModeOn);
sl@0: 		}
sl@0: 
sl@0: 	return result;
sl@0: 	}
sl@0: 
sl@0: TInt CSpeechEncoderConfigTestDevice::GetVadMode(TBool& aVadModeOn)
sl@0: 	{
sl@0: 	TInt result = KErrBadHandle;
sl@0: 
sl@0: 	if (iSpeechEncoderConfig)
sl@0: 		{
sl@0: 		result = iSpeechEncoderConfig->GetVadMode(aVadModeOn);
sl@0: 		}
sl@0: 
sl@0: 	return result;
sl@0: 	}