devsoundextensions/mmfcustominterfaces/SpeechEncoderConfig/SpeechEncoderConfigMsgHdlr/src/SpeechEncoderConfigMsgHdlr.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
/*
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
     2
* Copyright (c) 2002-2004 Nokia Corporation and/or its subsidiary(-ies). 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
     3
* All rights reserved.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
     4
* This component and the accompanying materials are made available
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
     5
* under the terms of "Eclipse Public License v1.0"
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
     6
* which accompanies this distribution, and is available
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
     7
* at the URL "http://www.eclipse.org/legal/epl-v10.html".
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
     8
*
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
     9
* Initial Contributors:
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    10
* Nokia Corporation - initial contribution.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    11
*
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    12
* Contributors:
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    13
*
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    14
* Description:   Message handler for speech encoder configuration interface
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    15
*
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    16
*/
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    17
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    18
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    19
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    20
// INCLUDE FILES
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    21
#include    "SpeechEncoderConfigMsgHdlr.h"
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    22
#include    "SpeechEncoderConfigMsgs.h"
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    23
#include    <SpeechEncoderConfig.h>
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    24
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    25
// EXTERNAL DATA STRUCTURES
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    26
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    27
// EXTERNAL FUNCTION PROTOTYPES  
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    28
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    29
// CONSTANTS
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    30
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    31
// MACROS
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    32
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    33
// LOCAL CONSTANTS AND MACROS
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    34
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    35
// MODULE DATA STRUCTURES
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    36
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    37
// LOCAL FUNCTION PROTOTYPES
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    38
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    39
// FORWARD DECLARATIONS
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    40
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    41
// ============================= LOCAL FUNCTIONS ===============================
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    42
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    43
// ============================ MEMBER FUNCTIONS ===============================
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    44
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    45
// -----------------------------------------------------------------------------
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    46
// CSpeechEncoderConfigMsgHdlr::CSpeechEncoderConfigMsgHdlr
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    47
// C++ default constructor can NOT contain any code, that
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    48
// might leave.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    49
// -----------------------------------------------------------------------------
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    50
//
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    51
CSpeechEncoderConfigMsgHdlr::CSpeechEncoderConfigMsgHdlr(
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    52
                                 CSpeechEncoderConfig* aSpeechEncoderConfigCI) :
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    53
	CMMFObject(KUidSpeechEncoderConfig)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    54
    {
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    55
    iSpeechEncoderConfigCI = aSpeechEncoderConfigCI;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    56
    }
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    57
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    58
// -----------------------------------------------------------------------------
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    59
// CSpeechEncoderConfigMsgHdlr::ConstructL
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    60
// Symbian 2nd phase constructor can leave.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    61
// -----------------------------------------------------------------------------
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    62
//
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    63
void CSpeechEncoderConfigMsgHdlr::ConstructL()
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    64
    {
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    65
    }
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    66
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    67
// -----------------------------------------------------------------------------
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    68
// CSpeechEncoderConfigMsgHdlr::NewL
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    69
// Two-phased constructor.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    70
// -----------------------------------------------------------------------------
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    71
//
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    72
EXPORT_C CSpeechEncoderConfigMsgHdlr* CSpeechEncoderConfigMsgHdlr::NewL(
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    73
                                                  TAny*  aSpeechEncoderConfigCI)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    74
    {
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    75
    CSpeechEncoderConfig* speechEncoderConfigCI = 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    76
                                  (CSpeechEncoderConfig*)aSpeechEncoderConfigCI;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    77
    CSpeechEncoderConfigMsgHdlr* self = 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    78
                new (ELeave) CSpeechEncoderConfigMsgHdlr(speechEncoderConfigCI);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    79
    CleanupStack::PushL( self );
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    80
    self->ConstructL();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    81
    CleanupStack::Pop( self );
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    82
    return self;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    83
    }
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    84
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    85
// Destructor
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    86
EXPORT_C CSpeechEncoderConfigMsgHdlr::~CSpeechEncoderConfigMsgHdlr()
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    87
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    88
	iSupportedBitrates.Close();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    89
	delete iDataCopyBuffer;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    90
	delete iSpeechEncoderConfigCI;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    91
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    92
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    93
// ---------------------------------------------------------
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    94
// CSpeechEncoderConfigMsgHdlr::HandleRequest
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    95
// Handles the messages from the proxy.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    96
// Calls a subfunction which determines which custom interface to call.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    97
// A subfunction is used to contain multiple leaving functions for a single
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    98
// trap.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    99
// (other items were commented in a header).
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   100
// ---------------------------------------------------------
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   101
//
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   102
EXPORT_C void CSpeechEncoderConfigMsgHdlr::HandleRequest(TMMFMessage& aMessage)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   103
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   104
    // debug panic
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   105
	ASSERT(aMessage.Destination().InterfaceId() == KUidSpeechEncoderConfig);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   106
	TRAPD(error,DoHandleRequestL(aMessage));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   107
	if(error)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   108
		{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   109
		aMessage.Complete(error);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   110
		}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   111
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   112
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   113
// ---------------------------------------------------------
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   114
// CSpeechEncoderConfigMsgHdlr::DoHandleRequestL
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   115
// Determines which custom interface to call.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   116
// (other items were commented in a header).
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   117
// ---------------------------------------------------------
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   118
//
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   119
void CSpeechEncoderConfigMsgHdlr::DoHandleRequestL(TMMFMessage& aMessage)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   120
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   121
	switch(aMessage.Function())
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   122
		{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   123
		case ESecmGetNumOfSupportedBitrates:
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   124
			{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   125
			DoGetNumOfSupportedBitratesL(aMessage);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   126
			break;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   127
			}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   128
		case ESecmGetSupportedBitrates:
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   129
			{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   130
			DoGetSupportedBitratesL(aMessage);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   131
			break;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   132
			}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   133
		case ESecmSetBitrate:
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   134
			{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   135
			DoSetBitrateL(aMessage);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   136
			break;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   137
			}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   138
		case ESecmGetBitrate:
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   139
			{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   140
			DoGetBitrateL(aMessage);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   141
			break;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   142
			}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   143
		case ESecmSetVadMode:
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   144
			{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   145
			DoSetVadModeL(aMessage);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   146
			break;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   147
			}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   148
		case ESecmGetVadMode:
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   149
			{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   150
			DoGetVadModeL(aMessage);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   151
			break;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   152
			}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   153
		default:
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   154
			{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   155
			aMessage.Complete(KErrNotSupported);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   156
			}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   157
		}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   158
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   159
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   160
// ---------------------------------------------------------
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   161
// CSpeechEncoderConfigMsgHdlr::DoGetNumOfSupportedBitratesL
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   162
// Handles the message from the proxy and calls the custom interface.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   163
// The custom interface returns the data requested and this function
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   164
// writes it back to the proxy. It also creates a buffer and fills
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   165
// it with the bitrate data to be returned in the subsequent call
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   166
// of DoGetSupportedBitratesL().
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   167
// (other items were commented in a header).
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   168
// ---------------------------------------------------------
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   169
//
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   170
void CSpeechEncoderConfigMsgHdlr::DoGetNumOfSupportedBitratesL(
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   171
                                                       TMMFMessage& aMessage)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   172
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   173
	iSupportedBitrates.Reset();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   174
	TInt status = iSpeechEncoderConfigCI->GetSupportedBitrates(
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   175
	                                                     iSupportedBitrates);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   176
	CreateBufFromUintArrayL(iSupportedBitrates);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   177
	if (status == KErrNone)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   178
    	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   179
	    TPckgBuf<TUint> pckg;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   180
    	pckg() = iSupportedBitrates.Count();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   181
	    aMessage.WriteDataToClientL(pckg);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   182
	    }
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   183
    aMessage.Complete(status);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   184
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   185
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   186
// ---------------------------------------------------------
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   187
// CSpeechEncoderConfigMsgHdlr::CreateBufFromUintArrayL
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   188
// Utility function used to create a buffer a fill it with data from the array
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   189
// passed in.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   190
// (other items were commented in a header).
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   191
// ---------------------------------------------------------
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   192
//
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   193
void CSpeechEncoderConfigMsgHdlr::CreateBufFromUintArrayL(RArray<TUint>& aArray)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   194
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   195
	delete iDataCopyBuffer;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   196
	iDataCopyBuffer = NULL;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   197
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   198
	iDataCopyBuffer = CBufFlat::NewL(8);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   199
	RBufWriteStream stream;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   200
	stream.Open(*iDataCopyBuffer);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   201
	CleanupClosePushL(stream);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   202
	for (TInt i=0;i<aArray.Count();i++)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   203
		stream.WriteUint32L(aArray[i]);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   204
	CleanupStack::PopAndDestroy(&stream);//stream
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   205
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   206
	
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   207
// ---------------------------------------------------------
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   208
// CSpeechEncoderConfigMsgHdlr::DoGetSupportedBitratesL
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   209
// Handles the message from the proxy and calls the custom interface.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   210
// The custom interface returns the data requested and this function
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   211
// writes it back to the proxy.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   212
// (other items were commented in a header).
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   213
// ---------------------------------------------------------
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   214
//
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   215
void CSpeechEncoderConfigMsgHdlr::DoGetSupportedBitratesL(TMMFMessage& aMessage)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   216
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   217
	if (!iDataCopyBuffer)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   218
		User::Leave(KErrNotReady);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   219
	aMessage.WriteDataToClientL(iDataCopyBuffer->Ptr(0));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   220
    aMessage.Complete(KErrNone);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   221
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   222
	
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   223
// ---------------------------------------------------------
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   224
// CSpeechEncoderConfigMsgHdlr::DoSetBitrateL
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   225
// Handles the message from the proxy and calls the custom interface method.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   226
// The data passed from the proxy is read from the message and passed to
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   227
// the custom interface.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   228
// (other items were commented in a header).
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   229
// ---------------------------------------------------------
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   230
//
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   231
void CSpeechEncoderConfigMsgHdlr::DoSetBitrateL(TMMFMessage& aMessage)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   232
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   233
	TPckgBuf<TUint> pckg;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   234
	aMessage.ReadData1FromClientL(pckg);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   235
	TInt status = iSpeechEncoderConfigCI->SetBitrate(pckg());
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   236
    aMessage.Complete(status);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   237
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   238
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   239
// ---------------------------------------------------------
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   240
// CSpeechEncoderConfigMsgHdlr::DoGetBitrateL
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   241
// Handles the message from the proxy and calls the custom interface.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   242
// The custom interface returns the data requested and this function
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   243
// writes it back to the proxy.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   244
// (other items were commented in a header).
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   245
// ---------------------------------------------------------
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   246
//
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   247
void CSpeechEncoderConfigMsgHdlr::DoGetBitrateL(TMMFMessage& aMessage)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   248
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   249
	TUint bitrate;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   250
	TInt status = iSpeechEncoderConfigCI->GetBitrate(bitrate);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   251
	if (status == KErrNone)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   252
    	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   253
    	TPckgBuf<TUint> pckg;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   254
    	pckg() = bitrate;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   255
	    aMessage.WriteDataToClientL(pckg);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   256
    	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   257
    aMessage.Complete(status);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   258
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   259
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   260
// ---------------------------------------------------------
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   261
// CSpeechEncoderConfigMsgHdlr::DoSetVadModeL
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   262
// Handles the message from the proxy and calls the custom interface method.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   263
// The data passed from the proxy is read from the message and passed to
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   264
// the custom interface.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   265
// (other items were commented in a header).
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   266
// ---------------------------------------------------------
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   267
//
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   268
void CSpeechEncoderConfigMsgHdlr::DoSetVadModeL(TMMFMessage& aMessage)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   269
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   270
	TPckgBuf<TBool> pckg;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   271
	aMessage.ReadData1FromClientL(pckg);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   272
	TInt status = iSpeechEncoderConfigCI->SetVadMode(pckg());
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   273
    aMessage.Complete(status);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   274
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   275
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   276
// ---------------------------------------------------------
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   277
// CSpeechEncoderConfigMsgHdlr::DoGetVadModeL
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   278
// Handles the message from the proxy and calls the custom interface.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   279
// The custom interface returns the data requested and this function
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   280
// writes it back to the proxy.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   281
// (other items were commented in a header).
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   282
// ---------------------------------------------------------
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   283
//
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   284
void CSpeechEncoderConfigMsgHdlr::DoGetVadModeL(TMMFMessage& aMessage)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   285
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   286
	TBool vadMode;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   287
	TInt status = iSpeechEncoderConfigCI->GetVadMode(vadMode);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   288
	if (status == KErrNone)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   289
    	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   290
    	TPckgBuf<TBool> pckg;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   291
	    pckg() = vadMode;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   292
    	aMessage.WriteDataToClientL(pckg);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   293
    	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   294
    aMessage.Complete(status);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   295
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   296
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   297
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   298
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   299
// End of File