devsound/devsoundpluginsupport/src/CustomInterfaces/CMMFDevSoundCIFileBlockLength.cpp
changeset 29 eb1e5d7cc688
parent 26 c36d67f77f75
child 30 9707f1c07383
--- a/devsound/devsoundpluginsupport/src/CustomInterfaces/CMMFDevSoundCIFileBlockLength.cpp	Thu Jun 24 10:37:45 2010 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,294 +0,0 @@
-// Copyright (c) 2006-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:
-//
-
-#include "cmmfdevsoundcifileblocklengthimpluid.hrh"
-
-#include <ecom/implementationproxy.h>
-#include <ecom/implementationproxy.h>
-#include <ecom/ecom.h>
-#include <s32mem.h>
-
-#include "cmmfdevsoundcifileblocklength.h"
-
-// __________________________________________________________________________
-// Implementation
-
-// MUX //
-
-TInt CMMFDevSoundCIFileBlockLengthMux::OpenInterface(TUid /*aInterfaceId*/)
-	{
-	// attempt to open the interface link with the
-	// remote slave device
-	iRemoteHandle = -1;
-	TUid slaveId = {KMmfUidCIFileBlockLengthDeMux};
-		
-	TInt handle = iUtility->OpenSlave(slaveId, KNullDesC8);
-	if (handle >= 0)
-		{
-		iRemoteHandle = handle;
-		}
-		
-	return iRemoteHandle;
-	}
-
-void CMMFDevSoundCIFileBlockLengthMux::Release()
-	{
-	// close the slave device if it exists
-	if (iRemoteHandle != -1)
-		{
-		// we assume the slave is closed correctly
-		iUtility->CloseSlave(iRemoteHandle);
-		}
-	
-	TUid key = iKey;
-	delete this;
-	
-	// tell ECom to destroy us
-	REComSession::DestroyedImplementation(key);
-	}
-	
-void CMMFDevSoundCIFileBlockLengthMux::PassDestructorKey(TUid aDestructorKey)
-	{
-	// store the destructor key
-	iKey = aDestructorKey;
-	}
-
-void CMMFDevSoundCIFileBlockLengthMux::CompleteConstructL(MMMFDevSoundCustomInterfaceMuxUtility* aCustomUtility)
-	{
-	// store a pointer to the utility
-	iUtility = aCustomUtility;
-	}
-	
-MMMFDevSoundCustomInterfaceMuxPlugin* CMMFDevSoundCIFileBlockLengthMux::NewL()
-	{
-	CMMFDevSoundCIFileBlockLengthMux* self = new (ELeave) CMMFDevSoundCIFileBlockLengthMux;
-	return self;
-	}
-	
-TAny* CMMFDevSoundCIFileBlockLengthMux::CustomInterface(TUid /*aInterfaceId*/)
-	{
-	MMMFDevSoundCustomInterfaceFileBlockLength* interface = this;
-	return interface;
-	}
-	
-CMMFDevSoundCIFileBlockLengthMux::CMMFDevSoundCIFileBlockLengthMux() :
-	iRemoteHandle(-1)
-	{	
-	}
-
-CMMFDevSoundCIFileBlockLengthMux::~CMMFDevSoundCIFileBlockLengthMux()
-	{	
-	}
-
-// from MMMFDevSoundCustomInterfaceFileBlockLength
-
-void CMMFDevSoundCIFileBlockLengthMux::SetFileBlockLength(TUint aBlockAlign)
-	{
-	if (iRemoteHandle == -1)
-		{
-		return;
-		}
-	
-	// send the BlockAlign in the sync command
-	TPckgBuf<TUint> blockAlignBuffer(aBlockAlign);
-	
-	iUtility->SendSlaveSyncCommand(iRemoteHandle, EMMFDevSoundCIBlockLengthSetFileBlockLength, blockAlignBuffer);
-	}
-
-// DEMUX //	
-	
-
-TInt CMMFDevSoundCIFileBlockLengthDeMux::OpenInterface(TUid /*aInterfaceId*/)
-	{
-	return KErrNone;
-	}
-	
-void CMMFDevSoundCIFileBlockLengthDeMux::Release()
-	{
-	TUid key = iKey;
-	
-	delete this;
-	
-	// tell ECom to destroy us
-	REComSession::DestroyedImplementation(key);
-	}
-	
-void CMMFDevSoundCIFileBlockLengthDeMux::PassDestructorKey(TUid aDestructorKey)
-	{
-	// store the destructor key
-	iKey = aDestructorKey;
-	}
-	
-void CMMFDevSoundCIFileBlockLengthDeMux::SetInterfaceTarget(MMMFDevSoundCustomInterfaceTarget* aTarget)
-	{
-	iTarget = aTarget;
-	}
-	
-void CMMFDevSoundCIFileBlockLengthDeMux::CompleteConstructL(MMMFDevSoundCustomInterfaceDeMuxUtility* aCustomUtility)
-	{
-	// store a pointer to the utility
-	iUtility = aCustomUtility;
-	}
-
-void CMMFDevSoundCIFileBlockLengthDeMux::RefreshL()
-	{
-	// refetch the fileblocklength custom interface if we already have a target
-	if (iTarget)
-		{
-		MMMFDevSoundCustomInterfaceFileBlockLength* ptr = NULL;
-		ptr = static_cast<MMMFDevSoundCustomInterfaceFileBlockLength*>(iTarget->CustomInterface(KUidCustomInterfaceDevSoundFileBlockLength));
-	
-		if (!ptr)
-			{
-			iFileBlockLengthInterface = NULL;
-			User::Leave(KErrNotSupported);
-			}
-		else
-			{
-			iFileBlockLengthInterface = ptr;
-			}	
-		}
-	}
-
-
-MMMFDevSoundCustomInterfaceDeMuxPlugin* CMMFDevSoundCIFileBlockLengthDeMux::NewL()
-	{
-	CMMFDevSoundCIFileBlockLengthDeMux* self = new (ELeave) CMMFDevSoundCIFileBlockLengthDeMux;
-	return self;
-	}
-	
-CMMFDevSoundCIFileBlockLengthDeMux::CMMFDevSoundCIFileBlockLengthDeMux()
-	{
-	}
-
-CMMFDevSoundCIFileBlockLengthDeMux::~CMMFDevSoundCIFileBlockLengthDeMux()
-	{
-	}
-
-
-TInt CMMFDevSoundCIFileBlockLengthDeMux::DoOpenSlaveL(TUid /*aInterface*/, const TDesC8& /*aPackageBuf*/)
-	{
-	// fetch the fileblocklength custom interface
-	MMMFDevSoundCustomInterfaceFileBlockLength* ptr = NULL;
-	ptr = static_cast <MMMFDevSoundCustomInterfaceFileBlockLength*> (iTarget->CustomInterface(KUidCustomInterfaceDevSoundFileBlockLength));
-	
-	if (!ptr)
-		{
-		iFileBlockLengthInterface = NULL;
-		User::Leave(KErrNotSupported);
-		}
-	else
-		{
-		iFileBlockLengthInterface = ptr;
-		}
-	return KErrNone;
-	}
-	
-void CMMFDevSoundCIFileBlockLengthDeMux::DoCloseSlaveL(TInt /*aHandle*/)
-	{
-	// nothing to do
-	}
-
-// original RMessage is supplied so that remote demux plugin can extract necessary details
-// using DeMux utility
-TInt CMMFDevSoundCIFileBlockLengthDeMux::DoSendSlaveSyncCommandL(const RMmfIpcMessage& aMessage)
-	{
-	TMMFDevSoundCIMessageData data;
-	
-	// decode message
-	iUtility->GetSyncMessageDataL(aMessage, data);
-	TInt retVal = -1;
-	
-	switch (data.iCommand)
-		{
-		case EMMFDevSoundCIBlockLengthSetFileBlockLength:
-			{
-			// we know that offset 2 contains a TInt
-			TPckgBuf<TUint> blockAlignBuffer;
-			iUtility->ReadFromInputDesL(aMessage, &blockAlignBuffer);
-			
-			DoSetFileBlockLengthL(blockAlignBuffer());
-			retVal = KErrNone;
-			break;
-			}
-	
-		default:
-			{
-			User::Leave(KErrNotSupported);
-			}
-		}
-		
-	return retVal;
-	}
-	
-TInt CMMFDevSoundCIFileBlockLengthDeMux::DoSendSlaveSyncCommandResultL(const RMmfIpcMessage& /*aMessage*/)
-	{
-	return KErrNotSupported;
-	}
-	
-void CMMFDevSoundCIFileBlockLengthDeMux::DoSendSlaveAsyncCommandL(const RMmfIpcMessage& /*aMessage*/)
-	{
-	// not used in this interface
-	}
-	
-void CMMFDevSoundCIFileBlockLengthDeMux::DoSendSlaveAsyncCommandResultL(const RMmfIpcMessage& /*aMessage*/)
-	{
-	// not used in this interface
-	}
-
-void CMMFDevSoundCIFileBlockLengthDeMux::DoSetFileBlockLengthL(TUint aBlockAlign)
-	{
-	if (!iFileBlockLengthInterface)
-		{
-		User::Leave(KErrNotReady);
-		}
-			
-	// set the block length		
-	iFileBlockLengthInterface->SetFileBlockLength(aBlockAlign);
-	}
-
-
-
-//
-// ImplementationTable
-//
-
-const TImplementationProxy ImplementationTable[] = 
-	{
-	IMPLEMENTATION_PROXY_ENTRY(KMmfUidCIFileBlockLengthMux,	CMMFDevSoundCIFileBlockLengthMux::NewL),
-	IMPLEMENTATION_PROXY_ENTRY(KMmfUidCIFileBlockLengthDeMux, CMMFDevSoundCIFileBlockLengthDeMux::NewL),
-	};
-
-
-//
-// ImplementationGroupProxy
-//
-//
-
-EXPORT_C const TImplementationProxy* ImplementationGroupProxy(TInt& aTableCount)
-	{
-	aTableCount = sizeof(ImplementationTable) / sizeof(TImplementationProxy);
-
-	return ImplementationTable;
-	}
-
-#ifndef EKA2
-/** DLL Entry point */
-GLDEF_C TInt E32Dll(TDllReason /*aReason*/)
-	{
-	return(KErrNone);
-	}
-#endif
-