mmdevicefw/speechrecogsupport/ASR/src/SpeechRecognitionCustomCommandParser.cpp
author hgs
Thu, 07 Oct 2010 22:34:12 +0100
changeset 0 b8ed18f6c07b
permissions -rw-r--r--
2010wk40
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
0
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
     1
// Copyright (c) 2003-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
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    17
#include <mmf/common/speechrecognitioncustomcommandparser.h>
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    18
#include "SpeechRecognitionCustomCommandCommon.h"
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    19
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    20
const TInt KExpandSize = 10;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    21
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    22
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    23
EXPORT_C CSpeechRecognitionCustomCommandParser* CSpeechRecognitionCustomCommandParser::NewL(
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    24
							MSpeechRecognitionCustomCommandImplementor& aImplementor)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    25
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    26
	CSpeechRecognitionCustomCommandParser* self = new (ELeave) CSpeechRecognitionCustomCommandParser(aImplementor);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    27
	return self;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    28
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    29
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    30
EXPORT_C CSpeechRecognitionCustomCommandParser::~CSpeechRecognitionCustomCommandParser()
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    31
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    32
	iPronunciationIDs.Close();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    33
	iRuleIDs.Close();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    34
	iModelIDs.Close();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    35
	iModelBankIDs.Close();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    36
	iGrammarIDs.Close();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    37
	iLexiconIDs.Close();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    38
	delete iResultSet;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    39
	delete iResultCopyBuffer;	
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    40
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    41
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    42
void CSpeechRecognitionCustomCommandParser::HandleRequest(TMMFMessage& aMessage)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    43
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    44
	TInt err;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    45
	if (aMessage.Destination().InterfaceId() == KUidInterfaceSpeechRecognition)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    46
		{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    47
		TRAP(err, DoHandleRequestL(aMessage));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    48
		aMessage.Complete(err);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    49
		}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    50
	else
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    51
		aMessage.Complete(KErrNotSupported);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    52
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    53
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    54
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    55
CSpeechRecognitionCustomCommandParser::CSpeechRecognitionCustomCommandParser(MSpeechRecognitionCustomCommandImplementor& aImplementor)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    56
	: CMMFCustomCommandParserBase(KUidInterfaceSpeechRecognition), iImplementor(aImplementor)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    57
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    58
	
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    59
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    60
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    61
void CSpeechRecognitionCustomCommandParser::DoHandleRequestL(TMMFMessage& aMessage)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    62
	{	
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    63
	TPckgBuf<TInt> pckgSize;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    64
	
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    65
	switch (aMessage.Function())
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    66
		{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    67
		case ESrAddPronunciation:
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    68
			DoAddPronunciationL(aMessage);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    69
			break;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    70
		case ESrAddRule:
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    71
			DoAddRuleL(aMessage);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    72
			break;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    73
		case ESrCancel:
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    74
			DoCancel();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    75
			break;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    76
		case ESrCommitChanges:
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    77
			DoCommitChangesL();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    78
			break;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    79
		case ESrCreateGrammar:
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    80
			DoCreateGrammarL(aMessage);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    81
			break;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    82
		case ESrCreateLexicon:
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    83
			DoCreateLexiconL(aMessage);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    84
			break;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    85
		case ESrCreateModelBank:
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    86
			DoCreateModelBankL(aMessage);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    87
			break;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    88
		case ESrEndRecSession:
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    89
			DoEndRecSessionL();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    90
			break;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    91
		case ESrGetAllModelIDs:
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    92
			DoGetAllModelIDsL(aMessage);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    93
			break;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    94
		case ESrGetAllPronunciationIDs:
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    95
			DoGetAllPronunciationIDsL(aMessage);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    96
			break;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    97
		case ESrGetAllRuleIDs:
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    98
			DoGetAllRuleIDsL(aMessage);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    99
			break;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   100
		case ESrGetAllModelBankIDs:
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   101
			DoGetAllModelBankIDsL();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   102
			break;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   103
		case ESrGetAllLexiconIDs:
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   104
			DoGetAllLexiconIDsL();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   105
			break;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   106
		case ESrGetAllGrammarIDs:
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   107
			DoGetAllGrammarIDsL();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   108
			break;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   109
		case ESrGetAllClientModelBankIDs:
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   110
			DoGetAllClientModelBankIDsL();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   111
			break;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   112
		case ESrGetAllClientLexiconIDs:
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   113
			DoGetAllClientLexiconIDsL();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   114
			break;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   115
		case ESrGetAllClientGrammarIDs:
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   116
			DoGetAllClientGrammarIDsL();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   117
			break;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   118
		case ESrGetAvailableStorage:
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   119
			DoGetAvailableStorageL(aMessage);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   120
			break;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   121
		case ESrGetEngineProperties:
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   122
			DoGetEnginePropertiesL(aMessage);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   123
			break;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   124
		case ESrGetModelCount:
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   125
			DoGetModelCountL(aMessage);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   126
			break;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   127
		case ESrGetRuleValidity:
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   128
			DoGetRuleValidityL(aMessage);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   129
			break;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   130
		case ESrUtteranceDuration:
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   131
			DoGetUtteranceDurationL(aMessage);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   132
			break;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   133
		case ESrLoadGrammar:
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   134
			DoLoadGrammarL(aMessage);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   135
			break;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   136
		case ESrLoadLexicon:
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   137
			DoLoadLexiconL(aMessage);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   138
			break;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   139
		case ESrLoadModels:
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   140
			DoLoadModelsL(aMessage);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   141
			break;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   142
		case ESrPlayUtterance:
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   143
			DoPlayUtteranceL(aMessage);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   144
			break;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   145
		case ESrRecognize:
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   146
			DoRecognizeL(aMessage);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   147
			break;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   148
		case ESrRecord:
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   149
			DoRecordL(aMessage);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   150
			break;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   151
		case ESrRemoveGrammar:
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   152
			DoRemoveGrammarL(aMessage);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   153
			break;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   154
		case ESrRemoveLexicon:
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   155
			DoRemoveLexiconL(aMessage);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   156
			break;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   157
		case ESrRemoveModelBank:
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   158
			DoRemoveModelBankL(aMessage);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   159
			break;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   160
		case ESrRemoveModel:
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   161
			DoRemoveModelL(aMessage);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   162
			break;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   163
		case ESrRemovePronunciation:
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   164
			DoRemovePronunciationL(aMessage);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   165
			break;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   166
		case ESrRemoveRule:
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   167
			DoRemoveRuleL(aMessage);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   168
			break;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   169
		case ESrStartRecSession:
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   170
			DoStartRecSessionL(aMessage);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   171
			break;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   172
		case ESrTrain:
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   173
			DoTrainL(aMessage);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   174
			break;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   175
		case ESrUnloadRule:
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   176
			DoUnloadRuleL(aMessage);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   177
			break;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   178
		case ESrLoadEngineParameters:
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   179
			DoLoadEngineParametersL(aMessage);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   180
			break;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   181
		case ESrGetPronunciationIDArraySize:
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   182
			pckgSize() = iPronunciationIDs.Count();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   183
			aMessage.WriteDataToClientL(pckgSize);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   184
			break;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   185
		case ESrGetPronunciationIDArrayContents:
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   186
			DoCopyPronunciationIDArrayL(aMessage);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   187
			break;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   188
		case ESrGetRuleIDArraySize:
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   189
			pckgSize() = iRuleIDs.Count();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   190
			aMessage.WriteDataToClientL(pckgSize);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   191
			break;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   192
		case ESrGetRuleIDArrayContents:
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   193
			DoCopyRuleIDArrayL(aMessage);			
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   194
			break;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   195
		case ESrGetModelIDArraySize:
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   196
			pckgSize() = iModelIDs.Count();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   197
			aMessage.WriteDataToClientL(pckgSize);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   198
			break;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   199
		case ESrGetModelIDArrayContents:
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   200
			DoCopyModelIDArrayL(aMessage);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   201
			break;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   202
		case ESrGetLexiconIDArraySize:
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   203
			pckgSize() = iLexiconIDs.Count();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   204
			aMessage.WriteDataToClientL(pckgSize);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   205
			break;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   206
		case ESrGetLexiconIDArrayContents:
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   207
			DoCopyLexiconIDArrayL(aMessage);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   208
			break;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   209
		case ESrGetGrammarIDArraySize:
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   210
			pckgSize() = iGrammarIDs.Count();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   211
			aMessage.WriteDataToClientL(pckgSize);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   212
			break;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   213
		case ESrGetGrammarIDArrayContents:
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   214
			DoCopyGrammarIDArrayL(aMessage);			
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   215
			break;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   216
		case ESrGetModelBankIDArraySize:
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   217
			pckgSize() = iModelBankIDs.Count();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   218
			aMessage.WriteDataToClientL(pckgSize);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   219
			break;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   220
		case ESrGetModelBankIDArrayContents:
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   221
			DoCopyModelBankIDArrayL(aMessage);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   222
			break;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   223
		case ESrGetClientResultSetSize:
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   224
			DoExternalizeResultSetL();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   225
			pckgSize() = iResultCopyBuffer->Size();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   226
			aMessage.WriteDataToClientL(pckgSize);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   227
			break;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   228
		case ESrGetClientResultSet:
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   229
			DoCopyResultSetL(aMessage);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   230
			break;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   231
		case ESrSetClientUid:
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   232
			DoSetClientUidL(aMessage);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   233
			break;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   234
		default:
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   235
			User::Leave(KErrNotSupported);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   236
			break;
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
void CSpeechRecognitionCustomCommandParser::DoAddPronunciationL(TMMFMessage& aMessage)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   241
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   242
	TSrsAddPronunciationPckg pckg;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   243
	aMessage.ReadData1FromClientL(pckg);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   244
	iImplementor.MSrAddPronunciationL(pckg().iLexiconID, pckg().iModelBankID, pckg().iModelID, *pckg().iPronunciationID);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   245
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   246
	
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   247
void CSpeechRecognitionCustomCommandParser::DoAddRuleL(TMMFMessage& aMessage)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   248
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   249
	TSrsAddRulePckg pckg;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   250
	aMessage.ReadData1FromClientL(pckg);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   251
	iImplementor.MSrAddRuleL(pckg().iGrammarID, pckg().iLexiconID, pckg().iPronunciationID, *pckg().iRuleID);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   252
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   253
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   254
void CSpeechRecognitionCustomCommandParser::DoCancel()
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   255
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   256
	iImplementor.MSrCancel();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   257
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   258
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   259
void CSpeechRecognitionCustomCommandParser::DoCommitChangesL()
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   260
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   261
	iImplementor.MSrCommitChangesL();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   262
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   263
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   264
void CSpeechRecognitionCustomCommandParser::DoCreateGrammarL(TMMFMessage& aMessage)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   265
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   266
	TSrsGrammarIDPtrPckg pckg;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   267
	aMessage.ReadData1FromClientL(pckg);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   268
	iImplementor.MSrCreateGrammarL(*pckg());
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   269
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   270
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   271
void CSpeechRecognitionCustomCommandParser::DoCreateLexiconL(TMMFMessage& aMessage)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   272
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   273
	TSrsLexiconIDPtrPckg pckg;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   274
	aMessage.ReadData1FromClientL(pckg);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   275
	iImplementor.MSrCreateLexiconL(*pckg());
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   276
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   277
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   278
void CSpeechRecognitionCustomCommandParser::DoCreateModelBankL(TMMFMessage& aMessage)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   279
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   280
	TSrsModelBankIDPtrPckg pckg;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   281
	aMessage.ReadData1FromClientL(pckg);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   282
	iImplementor.MSrCreateModelBankL(*pckg());
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   283
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   284
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   285
void CSpeechRecognitionCustomCommandParser::DoEndRecSessionL()
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   286
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   287
	iImplementor.MSrEndRecSessionL();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   288
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   289
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   290
void CSpeechRecognitionCustomCommandParser::DoGetAllModelIDsL(TMMFMessage& aMessage)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   291
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   292
	TSrsModelBankIDPckg pckgModelBank;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   293
	iModelIDs.Reset();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   294
	aMessage.ReadData1FromClientL(pckgModelBank);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   295
	iImplementor.MSrGetAllModelIDsL(pckgModelBank(), iModelIDs);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   296
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   297
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   298
void CSpeechRecognitionCustomCommandParser::DoGetAllPronunciationIDsL(TMMFMessage& aMessage)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   299
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   300
	TSrsLexiconIDPckg pckgLexicon;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   301
	iPronunciationIDs.Reset();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   302
	aMessage.ReadData1FromClientL(pckgLexicon);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   303
	iImplementor.MSrGetAllPronunciationIDsL(pckgLexicon(), iPronunciationIDs);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   304
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   305
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   306
void CSpeechRecognitionCustomCommandParser::DoGetAllRuleIDsL(TMMFMessage& aMessage)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   307
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   308
	TSrsGrammarIDPckg pckgGrammar;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   309
	iRuleIDs.Reset();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   310
	aMessage.ReadData1FromClientL(pckgGrammar);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   311
	iImplementor.MSrGetAllRuleIDsL(pckgGrammar(), iRuleIDs);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   312
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   313
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   314
void CSpeechRecognitionCustomCommandParser::DoGetAllModelBankIDsL()
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   315
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   316
	iModelBankIDs.Reset();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   317
	iImplementor.MSrGetAllModelBankIDsL(iModelBankIDs);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   318
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   319
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   320
void CSpeechRecognitionCustomCommandParser::DoGetAllLexiconIDsL()
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   321
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   322
	iLexiconIDs.Reset();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   323
	iImplementor.MSrGetAllLexiconIDsL(iLexiconIDs);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   324
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   325
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   326
void CSpeechRecognitionCustomCommandParser::DoGetAllGrammarIDsL()
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   327
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   328
	iGrammarIDs.Reset();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   329
	iImplementor.MSrGetAllGrammarIDsL(iGrammarIDs);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   330
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   331
	
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   332
	
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   333
void CSpeechRecognitionCustomCommandParser::DoGetAllClientModelBankIDsL()
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   334
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   335
	iModelBankIDs.Reset();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   336
	iImplementor.MSrGetAllClientModelBankIDsL(iModelBankIDs);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   337
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   338
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   339
void CSpeechRecognitionCustomCommandParser::DoGetAllClientLexiconIDsL()
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   340
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   341
	iLexiconIDs.Reset();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   342
	iImplementor.MSrGetAllClientLexiconIDsL(iLexiconIDs);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   343
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   344
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   345
void CSpeechRecognitionCustomCommandParser::DoGetAllClientGrammarIDsL()
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   346
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   347
	iGrammarIDs.Reset();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   348
	iImplementor.MSrGetAllClientGrammarIDsL(iGrammarIDs);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   349
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   350
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   351
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   352
void CSpeechRecognitionCustomCommandParser::DoGetAvailableStorageL(TMMFMessage& aMessage)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   353
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   354
	TSrsIntPtrPckg pckg;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   355
	aMessage.ReadData1FromClientL(pckg);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   356
	iImplementor.MSrGetAvailableStorageL(*pckg());
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   357
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   358
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   359
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   360
void CSpeechRecognitionCustomCommandParser::DoGetModelCountL(TMMFMessage& aMessage)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   361
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   362
	TSrsModelBankIDPckg pckgModelBank;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   363
	TSrsIntPtrPckg pckgResult;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   364
	aMessage.ReadData1FromClientL(pckgModelBank);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   365
	aMessage.ReadData2FromClientL(pckgResult);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   366
	iImplementor.MSrGetModelCountL(pckgModelBank(),*pckgResult());
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   367
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   368
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   369
void CSpeechRecognitionCustomCommandParser::DoGetRuleValidityL(TMMFMessage& aMessage)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   370
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   371
	TSrsRuleValidityPckg pckg;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   372
	aMessage.ReadData1FromClientL(pckg);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   373
	iImplementor.MSrGetRuleValidityL(pckg().iGrammarID, pckg().iRuleID, *pckg().iRuleValid);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   374
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   375
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   376
void CSpeechRecognitionCustomCommandParser::DoGetUtteranceDurationL(TMMFMessage& aMessage)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   377
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   378
	TSrsGetUtteranceDurationPckg pckg;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   379
	aMessage.ReadData1FromClientL(pckg);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   380
	iImplementor.MSrGetUtteranceDurationL(pckg().iModelBankID, pckg().iModelID, *pckg().iDuration);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   381
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   382
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   383
void CSpeechRecognitionCustomCommandParser::DoLoadGrammarL(TMMFMessage& aMessage)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   384
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   385
	TSrsGrammarIDPckg pckg;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   386
	aMessage.ReadData1FromClientL(pckg);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   387
	iImplementor.MSrLoadGrammarL(pckg());
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   388
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   389
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   390
void CSpeechRecognitionCustomCommandParser::DoLoadLexiconL(TMMFMessage& aMessage)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   391
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   392
	TSrsLexiconIDPckg pckg;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   393
	aMessage.ReadData1FromClientL(pckg);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   394
	iImplementor.MSrLoadLexiconL(pckg());
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   395
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   396
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   397
void CSpeechRecognitionCustomCommandParser::DoLoadModelsL(TMMFMessage& aMessage)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   398
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   399
	TSrsModelBankIDPckg pckg;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   400
	aMessage.ReadData1FromClientL(pckg);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   401
	iImplementor.MSrLoadModelsL(pckg());
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   402
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   403
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   404
void CSpeechRecognitionCustomCommandParser::DoPlayUtteranceL(TMMFMessage& aMessage)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   405
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   406
	TSrsPlayUtterancePckg pckg;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   407
	aMessage.ReadData1FromClientL(pckg);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   408
	iImplementor.MSrPlayUtteranceL(pckg().iModelBankID, pckg().iModelID);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   409
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   410
	
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   411
void CSpeechRecognitionCustomCommandParser::DoSetClientUidL(TMMFMessage& aMessage)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   412
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   413
	TSrsUidPckg pckg;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   414
	aMessage.ReadData1FromClientL(pckg);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   415
	iImplementor.MSrSetClientUid(pckg());
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   416
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   417
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   418
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   419
void CSpeechRecognitionCustomCommandParser::DoRecognizeL(TMMFMessage& aMessage)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   420
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   421
	if (iResultSet)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   422
		User::Leave(KErrInUse);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   423
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   424
	TInt size;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   425
	size = User::LeaveIfError(aMessage.SizeOfData1FromClient());
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   426
	HBufC8* dataBuffer = HBufC8::NewLC(size);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   427
	TPtr8 buf = dataBuffer->Des();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   428
	aMessage.ReadData1FromClientL(buf);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   429
	RDesReadStream stream(buf);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   430
	CleanupClosePushL(stream);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   431
	iResultSet = CSDClientResultSet::NewL();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   432
	TInt err = KErrNone;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   433
	TRAP(err, iResultSet->InternalizeL(stream));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   434
	if (err == KErrNone)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   435
		{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   436
		TRAP(err, iImplementor.MSrRecognizeL(*iResultSet));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   437
		}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   438
	if (err!=KErrNone)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   439
		{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   440
		delete iResultSet;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   441
		iResultSet = NULL;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   442
		User::Leave(err);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   443
		}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   444
	CleanupStack::PopAndDestroy(2, dataBuffer);//dataBuffer, stream
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   445
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   446
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   447
void CSpeechRecognitionCustomCommandParser::DoRecordL(TMMFMessage& aMessage)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   448
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   449
	TSrsTimeIntervalMicroSeconds32Pckg pckg;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   450
	aMessage.ReadData1FromClientL(pckg);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   451
	iImplementor.MSrRecordL(pckg());
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   452
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   453
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   454
void CSpeechRecognitionCustomCommandParser::DoRemoveGrammarL(TMMFMessage& aMessage)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   455
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   456
	TSrsGrammarIDPckg pckg;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   457
	aMessage.ReadData1FromClientL(pckg);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   458
	iImplementor.MSrRemoveGrammarL(pckg());
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   459
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   460
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   461
void CSpeechRecognitionCustomCommandParser::DoRemoveLexiconL(TMMFMessage& aMessage)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   462
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   463
	TSrsLexiconIDPckg pckg;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   464
	aMessage.ReadData1FromClientL(pckg);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   465
	iImplementor.MSrRemoveLexiconL(pckg());
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   466
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   467
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   468
void CSpeechRecognitionCustomCommandParser::DoRemoveModelBankL(TMMFMessage& aMessage)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   469
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   470
	TSrsModelBankIDPckg pckg;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   471
	aMessage.ReadData1FromClientL(pckg);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   472
	iImplementor.MSrRemoveModelBankL(pckg());
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   473
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   474
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   475
void CSpeechRecognitionCustomCommandParser::DoRemoveModelL(TMMFMessage& aMessage)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   476
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   477
	TSrsModelBankIDPckg pckgModelBankID;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   478
	TSrsModelIDPckg pckgModelID;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   479
	aMessage.ReadData1FromClientL(pckgModelBankID);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   480
	aMessage.ReadData2FromClientL(pckgModelID);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   481
	iImplementor.MSrRemoveModelL(pckgModelBankID(), pckgModelID());
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   482
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   483
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   484
void CSpeechRecognitionCustomCommandParser::DoRemovePronunciationL(TMMFMessage& aMessage)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   485
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   486
	TSrsLexiconIDPckg pckgLexicon;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   487
	TSrsPronunciationIDPckg pckgPronunciation;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   488
	aMessage.ReadData1FromClientL(pckgLexicon);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   489
	aMessage.ReadData2FromClientL(pckgPronunciation);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   490
	iImplementor.MSrRemovePronunciationL(pckgLexicon(), pckgPronunciation());
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   491
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   492
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   493
void CSpeechRecognitionCustomCommandParser::DoRemoveRuleL(TMMFMessage& aMessage)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   494
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   495
	TSrsGrammarIDPckg pckgGrammar;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   496
	TSrsRuleIDPckg pckgRule;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   497
	aMessage.ReadData1FromClientL(pckgGrammar);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   498
	aMessage.ReadData2FromClientL(pckgRule);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   499
	iImplementor.MSrRemoveRuleL(pckgGrammar(), pckgRule());
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   500
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   501
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   502
void CSpeechRecognitionCustomCommandParser::DoStartRecSessionL(TMMFMessage& aMessage)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   503
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   504
	TSrsRecognitionModePckg pckg;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   505
	aMessage.ReadData1FromClientL(pckg);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   506
	iImplementor.MSrStartRecSessionL(pckg());
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   507
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   508
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   509
void CSpeechRecognitionCustomCommandParser::DoTrainL(TMMFMessage& aMessage)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   510
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   511
	TSrsModelBankIDPckg pckgModelBankID;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   512
	TSrsModelIDPtrPckg pckgModelIDPtr;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   513
	aMessage.ReadData1FromClientL(pckgModelBankID);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   514
	aMessage.ReadData2FromClientL(pckgModelIDPtr);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   515
	iImplementor.MSrTrainL(pckgModelBankID(),*pckgModelIDPtr());
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   516
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   517
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   518
void CSpeechRecognitionCustomCommandParser::DoUnloadRuleL(TMMFMessage& aMessage)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   519
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   520
	TSrsGrammarIDPckg pckgGrammar;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   521
	TSrsRuleIDPckg pckgRule;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   522
	aMessage.ReadData1FromClientL(pckgGrammar);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   523
	aMessage.ReadData2FromClientL(pckgRule);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   524
	iImplementor.MSrUnloadRuleL(pckgGrammar(), pckgRule());
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   525
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   526
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   527
void CSpeechRecognitionCustomCommandParser::DoLoadEngineParametersL(TMMFMessage& aMessage)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   528
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   529
	RArray<TInt> parameters;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   530
	RArray<TInt> values;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   531
	CleanupClosePushL(parameters);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   532
	CleanupClosePushL(values);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   533
	DoExtractIntArrayFromData1L(aMessage, parameters);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   534
	DoExtractIntArrayFromData2L(aMessage, values);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   535
	iImplementor.MSrLoadEngineParametersL(parameters,values);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   536
	CleanupStack::PopAndDestroy(2, &parameters); // parameters, values
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   537
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   538
	
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   539
void CSpeechRecognitionCustomCommandParser::DoGetEnginePropertiesL(TMMFMessage& aMessage)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   540
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   541
	RArray<TInt> propertyIDs;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   542
	RArray<TInt> propertyValues;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   543
	CleanupClosePushL(propertyIDs);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   544
	CleanupClosePushL(propertyValues);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   545
	DoExtractIntArrayFromData1L(aMessage, propertyIDs);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   546
	
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   547
	iImplementor.MSrGetEnginePropertiesL(propertyIDs,propertyValues);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   548
	// the custom command is aware of the size of the result, so it can copy the data back directly
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   549
	DoCopyIntArrayL(aMessage, propertyValues);	
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   550
	CleanupStack::PopAndDestroy(2, &propertyIDs); // property IDs, property values
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   551
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   552
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   553
	
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   554
void CSpeechRecognitionCustomCommandParser::DoCopyPronunciationIDArrayL(TMMFMessage& aMessage)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   555
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   556
	CBufFlat* dataBuffer = CBufFlat::NewL(KExpandSize);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   557
	CleanupStack::PushL(dataBuffer);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   558
	RBufWriteStream stream;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   559
	stream.Open(*dataBuffer);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   560
	CleanupClosePushL(stream);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   561
	for (TInt i=0;i<iPronunciationIDs.Count();i++)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   562
		stream.WriteUint32L(iPronunciationIDs[i]);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   563
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   564
	aMessage.WriteDataToClientL(dataBuffer->Ptr(0));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   565
	
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   566
	iPronunciationIDs.Close();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   567
	CleanupStack::PopAndDestroy(2, dataBuffer); //dataBuffer, stream
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   568
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   569
void CSpeechRecognitionCustomCommandParser::DoCopyModelIDArrayL(TMMFMessage& aMessage)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   570
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   571
	CBufFlat* dataBuffer = CBufFlat::NewL(KExpandSize);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   572
	CleanupStack::PushL(dataBuffer);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   573
	RBufWriteStream stream;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   574
	stream.Open(*dataBuffer);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   575
	CleanupClosePushL(stream);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   576
	for (TInt i=0;i<iModelIDs.Count();i++)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   577
		stream.WriteUint32L(iModelIDs[i]);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   578
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   579
	aMessage.WriteDataToClientL(dataBuffer->Ptr(0));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   580
	
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   581
	iModelIDs.Close();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   582
	CleanupStack::PopAndDestroy(2, dataBuffer); //dataBuffer, stream
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   583
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   584
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   585
void CSpeechRecognitionCustomCommandParser::DoCopyRuleIDArrayL(TMMFMessage& aMessage)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   586
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   587
	CBufFlat* dataBuffer = CBufFlat::NewL(KExpandSize);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   588
	CleanupStack::PushL(dataBuffer);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   589
	RBufWriteStream stream;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   590
	stream.Open(*dataBuffer);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   591
	CleanupClosePushL(stream);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   592
	for (TInt i=0;i<iRuleIDs.Count();i++)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   593
		stream.WriteUint32L(iRuleIDs[i]);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   594
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   595
	aMessage.WriteDataToClientL(dataBuffer->Ptr(0));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   596
	
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   597
	iRuleIDs.Close();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   598
	CleanupStack::PopAndDestroy(2, dataBuffer); //dataBuffer, stream
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   599
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   600
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   601
//------------------------------------------------------------------------------------------------------------------
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   602
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   603
void CSpeechRecognitionCustomCommandParser::DoCopyLexiconIDArrayL(TMMFMessage& aMessage)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   604
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   605
	CBufFlat* dataBuffer = CBufFlat::NewL(KExpandSize);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   606
	CleanupStack::PushL(dataBuffer);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   607
	RBufWriteStream stream;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   608
	stream.Open(*dataBuffer);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   609
	CleanupClosePushL(stream);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   610
	for (TInt i=0;i<iLexiconIDs.Count();i++)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   611
		stream.WriteUint32L(iLexiconIDs[i]);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   612
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   613
	aMessage.WriteDataToClientL(dataBuffer->Ptr(0));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   614
	
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   615
	iLexiconIDs.Close();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   616
	CleanupStack::PopAndDestroy(2, dataBuffer); //dataBuffer, stream
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   617
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   618
void CSpeechRecognitionCustomCommandParser::DoCopyModelBankIDArrayL(TMMFMessage& aMessage)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   619
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   620
	CBufFlat* dataBuffer = CBufFlat::NewL(KExpandSize);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   621
	CleanupStack::PushL(dataBuffer);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   622
	RBufWriteStream stream;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   623
	stream.Open(*dataBuffer);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   624
	CleanupClosePushL(stream);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   625
	for (TInt i=0;i<iModelBankIDs.Count();i++)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   626
		stream.WriteUint32L(iModelBankIDs[i]);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   627
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   628
	aMessage.WriteDataToClientL(dataBuffer->Ptr(0));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   629
	
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   630
	iModelBankIDs.Close();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   631
	CleanupStack::PopAndDestroy(2, dataBuffer); //dataBuffer, stream
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   632
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   633
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   634
void CSpeechRecognitionCustomCommandParser::DoCopyGrammarIDArrayL(TMMFMessage& aMessage)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   635
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   636
	CBufFlat* dataBuffer = CBufFlat::NewL(KExpandSize);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   637
	CleanupStack::PushL(dataBuffer);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   638
	RBufWriteStream stream;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   639
	stream.Open(*dataBuffer);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   640
	CleanupClosePushL(stream);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   641
	for (TInt i=0;i<iGrammarIDs.Count();i++)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   642
		stream.WriteUint32L(iGrammarIDs[i]);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   643
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   644
	aMessage.WriteDataToClientL(dataBuffer->Ptr(0));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   645
	
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   646
	iGrammarIDs.Close();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   647
	CleanupStack::PopAndDestroy(2, dataBuffer); //dataBuffer, stream
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   648
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   649
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   650
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   651
//--------------------------------------------------------------------------------------------------------------------
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   652
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   653
	
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   654
void CSpeechRecognitionCustomCommandParser::DoCopyIntArrayL(TMMFMessage& aMessage, const RArray<TInt>& aArray)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   655
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   656
	CBufFlat* dataBuffer = CBufFlat::NewL(KExpandSize);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   657
	CleanupStack::PushL(dataBuffer);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   658
	RBufWriteStream stream;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   659
	stream.Open(*dataBuffer);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   660
	CleanupClosePushL(stream);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   661
	for (TInt i=0;i<aArray.Count();i++)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   662
		stream.WriteUint32L(aArray[i]);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   663
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   664
	aMessage.WriteDataToClientL(dataBuffer->Ptr(0));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   665
	CleanupStack::PopAndDestroy(2, dataBuffer); //dataBuffer, stream
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   666
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   667
	
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   668
void CSpeechRecognitionCustomCommandParser::DoExtractIntArrayFromData1L(TMMFMessage& aMessage, RArray<TInt>& aArray)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   669
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   670
	TInt size = User::LeaveIfError(aMessage.SizeOfData1FromClient());
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   671
	HBufC8* buf = HBufC8::NewL(size);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   672
	CleanupStack::PushL(buf);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   673
	TPtr8 ptr = buf->Des();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   674
	aMessage.ReadData1FromClientL(ptr);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   675
	DoExtractIntArrayL(ptr,aArray);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   676
	CleanupStack::PopAndDestroy(buf);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   677
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   678
	
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   679
void CSpeechRecognitionCustomCommandParser::DoExtractIntArrayFromData2L(TMMFMessage& aMessage, RArray<TInt>& aArray)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   680
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   681
	TInt size = User::LeaveIfError(aMessage.SizeOfData2FromClient());
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   682
	HBufC8* buf = HBufC8::NewL(size);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   683
	CleanupStack::PushL(buf);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   684
	TPtr8 ptr = buf->Des();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   685
	aMessage.ReadData2FromClientL(ptr);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   686
	DoExtractIntArrayL(ptr,aArray);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   687
	CleanupStack::PopAndDestroy(buf);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   688
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   689
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   690
	
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   691
void CSpeechRecognitionCustomCommandParser::DoExtractIntArrayL(TDes8& aDescriptor, RArray<TInt>& aArray)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   692
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   693
	RDesReadStream stream(aDescriptor);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   694
	CleanupClosePushL(stream);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   695
	
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   696
	TInt numberElements;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   697
	numberElements = stream.ReadInt32L();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   698
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   699
	for (TInt i=0; i<numberElements; i++)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   700
		{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   701
		User::LeaveIfError(aArray.Append(stream.ReadInt32L()));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   702
		}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   703
	CleanupStack::PopAndDestroy(&stream); //stream
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   704
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   705
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   706
	
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   707
void CSpeechRecognitionCustomCommandParser::DoExternalizeResultSetL()
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   708
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   709
	ASSERT(iResultSet);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   710
	iResultCopyBuffer = CBufFlat::NewL(KExpandSize);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   711
	RBufWriteStream stream;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   712
	stream.Open(*iResultCopyBuffer);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   713
	CleanupClosePushL(stream);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   714
	iResultSet->ExternalizeL(stream);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   715
	delete iResultSet;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   716
	iResultSet = NULL;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   717
	CleanupStack::PopAndDestroy(&stream); //stream
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   718
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   719
void CSpeechRecognitionCustomCommandParser::DoCopyResultSetL(TMMFMessage& aMessage)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   720
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   721
	aMessage.WriteDataToClientL(iResultCopyBuffer->Ptr(0));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   722
	delete iResultCopyBuffer;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   723
	iResultCopyBuffer = NULL;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   724
	}