devsound/a3fdevsound/src/mmfdevsoundserver/MmfDevSoundCIDeMuxUtility.cpp
author hgs
Tue, 02 Nov 2010 12:28:51 +0000
changeset 6 fe9d1bf55678
parent 0 b8ed18f6c07b
permissions -rw-r--r--
2010wk46_02
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
0
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
     1
// Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies).
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
     2
// All rights reserved.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
     3
// This component and the accompanying materials are made available
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
     4
// under the terms of "Eclipse Public License v1.0"
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
     5
// which accompanies this distribution, and is available
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
     6
// at the URL "http://www.eclipse.org/legal/epl-v10.html".
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
     7
//
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
     8
// Initial Contributors:
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
     9
// Nokia Corporation - initial contribution.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    10
//
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    11
// Contributors:
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    12
//
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    13
// Description:
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    14
//
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    15
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    16
#include "MmfDevSoundCIDeMuxUtility.h"
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    17
#include "MmfDevSoundCIMuxUtility.h" // included for command definitions
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    18
#include <mmf/plugin/mmfdevsoundcustominterface.hrh>
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    19
#include <ecom/ecom.h>
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    20
#include <mm/mmpluginutils.h>
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    21
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    22
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    23
CMMFDevSoundCIDeMuxUtility* CMMFDevSoundCIDeMuxUtility::NewL(MMMFDevSoundCustomInterfaceDeMuxInterface* aInterface)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    24
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    25
	CMMFDevSoundCIDeMuxUtility* self = new (ELeave) CMMFDevSoundCIDeMuxUtility(aInterface);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    26
	CleanupStack::PushL(self);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    27
	self->ConstructL();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    28
	CleanupStack::Pop(self);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    29
	return self;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    30
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    31
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    32
void CMMFDevSoundCIDeMuxUtility::ConstructL()
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    33
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    34
	// nothing to do in this plugin
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    35
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    36
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    37
CMMFDevSoundCIDeMuxUtility::~CMMFDevSoundCIDeMuxUtility()
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    38
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    39
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    40
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    41
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    42
const TInt KDeMuxTempBufferSize = 20;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    43
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    44
// create a custom interface Mux implementation
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    45
MMMFDevSoundCustomInterfaceDeMuxPlugin* CMMFDevSoundCIDeMuxUtility::CreateCustomInterfaceDeMuxL(TUid aInterfaceId)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    46
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    47
	// The Uid of the plugin will be the match string
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    48
	TInt uidAsInteger = aInterfaceId.iUid;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    49
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    50
	TBuf8<KDeMuxTempBufferSize> tempBuffer;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    51
	tempBuffer.Num(uidAsInteger, EHex); // has value
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    52
	TUid interfaceUid = {KUidDevSoundCustomInterfaceDeMux};
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    53
	
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    54
	TUid destructorKey;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    55
	MMMFDevSoundCustomInterfaceDeMuxPlugin* self = 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    56
		static_cast<MMMFDevSoundCustomInterfaceDeMuxPlugin*>
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    57
		(MmPluginUtils::CreateImplementationL(interfaceUid, destructorKey, tempBuffer, KRomOnlyResolverUid));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    58
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    59
	// pass the destructor key so class can destroy itself
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    60
	self->PassDestructorKey(destructorKey);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    61
	CleanupReleasePushL(*self);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    62
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    63
	// attempt to construct the plugin
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    64
	self->CompleteConstructL(this);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    65
	CleanupStack::Pop();	// self
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    66
	
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    67
	return self;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    68
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    69
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    70
	
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    71
// this will leave if the command is not a supported custom interface command
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    72
// the integer being returned is not an error code per-se it is the return code
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    73
// from the message being handled and so it makes sense here to have the function
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    74
// returning an integer but also able to leave if there is a problem
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    75
TInt CMMFDevSoundCIDeMuxUtility::ProcessCustomInterfaceCommandL(const RMmfIpcMessage& aMessage)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    76
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    77
	TPckgBuf<TA3FCustomInterfaceCommand> commandBuf;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    78
	MmfMessageUtil::ReadL(aMessage, 1, commandBuf);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    79
	CMMFDevSoundCIMuxUtility::TMMFDevSoundCustomCommand commandType = commandBuf().iType;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    80
	TInt handle = commandBuf().iHandle;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    81
	TInt retVal = KErrNotFound;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    82
	
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    83
	switch (commandType)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    84
		{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    85
		case CMMFDevSoundCIMuxUtility::EMMFDevSoundCustomCommandCIOpenSlave:
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    86
			{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    87
			// get a local copy of descriptor
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    88
			RBuf8 tempBuf;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    89
			tempBuf.CleanupClosePushL();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    90
			TInt len = InputDesLength(aMessage);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    91
			if (len < 0)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    92
				{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    93
				User::Leave(KErrBadDescriptor);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    94
				}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    95
			else
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    96
				{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    97
				tempBuf.CreateL(len);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    98
				}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    99
			ReadFromInputDesL(aMessage, &tempBuf);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   100
			
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   101
			TUid interfaceUid(KNullUid);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   102
			interfaceUid.iUid = handle;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   103
			TPckgBuf<TUid> idBuffer(interfaceUid);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   104
			
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   105
			retVal = iInterface->DoOpenSlaveL(idBuffer(), tempBuf);		
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   106
			CleanupStack::PopAndDestroy(&tempBuf);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   107
			break;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   108
			}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   109
		case CMMFDevSoundCIMuxUtility::EMMFDevSoundCustomCommandCICloseSlave:
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   110
			{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   111
			TPckgBuf<TInt> handleBuffer(handle);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   112
			iInterface->DoCloseSlaveL(handleBuffer());
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   113
			retVal = KErrNone; // no return from CloseSlave
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   114
			break;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   115
			}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   116
		case CMMFDevSoundCIMuxUtility::EMMFDevSoundCustomCommandCISendSlaveSyncCommand:
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   117
			{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   118
			retVal = iInterface->DoSendSlaveSyncCommandL(aMessage);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   119
			break;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   120
			}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   121
		case CMMFDevSoundCIMuxUtility::EMMFDevSoundCustomCommandCISendSlaveSyncCommandResult:
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   122
			{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   123
			retVal = iInterface->DoSendSlaveSyncCommandResultL(aMessage);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   124
			break;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   125
			}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   126
		case CMMFDevSoundCIMuxUtility::EMMFDevSoundCustomCommandCISendSlaveAsyncCommand:
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   127
			{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   128
			iInterface->DoSendSlaveAsyncCommandL(aMessage);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   129
			retVal = KErrNone; // no return from async
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   130
			break;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   131
			}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   132
		case CMMFDevSoundCIMuxUtility::EMMFDevSoundCustomCommandCISendSlaveAsyncCommandResult:
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   133
			{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   134
			iInterface->DoSendSlaveAsyncCommandResultL(aMessage);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   135
			retVal = KErrNone;	// no return from async
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   136
			break;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   137
			}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   138
		default:
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   139
			User::Leave(retVal);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   140
		}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   141
		
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   142
	return retVal;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   143
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   144
	
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   145
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   146
// at the moment these two functions are the same but this may change on different platforms
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   147
// so separate sync and async message data functions have been defined
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   148
void CMMFDevSoundCIDeMuxUtility::GetSyncMessageDataL(const RMmfIpcMessage& aMessage, TMMFDevSoundCIMessageData& aData)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   149
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   150
	// data is stored as destination, custom command info, inbuf, outbuf
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   151
	TPckgBuf<TA3FCustomInterfaceCommand> comBuffer;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   152
	aMessage.ReadL(1, comBuffer);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   153
	
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   154
	// get command and handle
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   155
	aData.iCommand = comBuffer().iCommand;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   156
	aData.iHandle = comBuffer().iHandle;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   157
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   158
	
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   159
void CMMFDevSoundCIDeMuxUtility::GetAsyncMessageDataL(const RMmfIpcMessage& aMessage, TMMFDevSoundCIMessageData& aData)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   160
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   161
	// data is stored as destination, custom command info, inbuf, outbuf,status 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   162
	TPckgBuf<TA3FCustomInterfaceCommand> comBuffer;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   163
	aMessage.ReadL(1, comBuffer);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   164
	
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   165
	// get command and handle
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   166
	aData.iCommand = comBuffer().iCommand;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   167
	aData.iHandle = comBuffer().iHandle;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   168
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   169
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   170
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   171
TInt CMMFDevSoundCIDeMuxUtility::InputDesLength(const RMmfIpcMessage& aMessage)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   172
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   173
	// input descriptor is at offset 2
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   174
	TInt len = aMessage.GetDesLength(2);	
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   175
	return len;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   176
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   177
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   178
void CMMFDevSoundCIDeMuxUtility::ReadFromInputDesL(const RMmfIpcMessage& aMessage, TDes8* aBufToFill)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   179
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   180
	// check if the descriptor is large enough
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   181
	TInt len = InputDesLength(aMessage);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   182
	if (len > aBufToFill->MaxLength())
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   183
		{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   184
		User::Leave(KErrArgument);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   185
		}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   186
	
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   187
	// input descriptor is at offset 2
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   188
	aMessage.ReadL(2, *aBufToFill);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   189
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   190
	
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   191
void CMMFDevSoundCIDeMuxUtility::WriteToOutputDesL(const RMmfIpcMessage& aMessage, TDesC8& aBufToWrite)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   192
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   193
	// output descriptor is at offset 3
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   194
	aMessage.WriteL(3, aBufToWrite);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   195
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   196
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   197
	
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   198
void CMMFDevSoundCIDeMuxUtility::CompleteMessage(const RMmfIpcMessage& aMessage, TInt aError)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   199
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   200
	aMessage.Complete(aError);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   201
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   202
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   203
CMMFDevSoundCIDeMuxUtility::CMMFDevSoundCIDeMuxUtility(MMMFDevSoundCustomInterfaceDeMuxInterface* aInterface)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   204
: iInterface(aInterface)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   205
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   206
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   207