diff -r b13cd05eeb2f -r 57b735022c18 srsf/sicc/src/nsssispeechrecognitioncustomcommandparser.cpp --- a/srsf/sicc/src/nsssispeechrecognitioncustomcommandparser.cpp Mon Jan 18 20:20:30 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,1823 +0,0 @@ -/* -* Copyright (c) 2004-2007 Nokia Corporation and/or its subsidiary(-ies). -* All rights reserved. -* This component and the accompanying materials are made available -* under the terms of "Eclipse Public License v1.0" -* which accompanies this distribution, and is available -* at the URL "http://www.eclipse.org/legal/epl-v10.html". -* -* Initial Contributors: -* Nokia Corporation - initial contribution. -* -* Contributors: -* -* Description: This is the implementation of the server side for the -* speaker independent controller. -* -*/ - - -// INCLUDE FILES -#include "srsfbldvariant.hrh" -#include -#include -#include -#include "nsssispeechrecognitioncustomcommandcommon.h" -#include "nsssicustomcommanddata.h" -#include "rubydebug.h" - -// ============================ MEMBER FUNCTIONS =============================== - -// ----------------------------------------------------------------------------- -// CSISpeechRecognitionCustomCommandParser::CSISpeechRecognitionCustomCommandParser -// C++ constructor. -// ----------------------------------------------------------------------------- -// -CSISpeechRecognitionCustomCommandParser::CSISpeechRecognitionCustomCommandParser( - MSISpeechRecognitionCustomCommandImplementor& aImplementor) : - CMMFCustomCommandParserBase(KUidInterfaceSpeakerIndependent), - iImplementor(aImplementor), - iAdaptationSet( 0 ) - { - } - -// ----------------------------------------------------------------------------- -// CSISpeechRecognitionCustomCommandParser::NewL -// Two-phased constructor. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -EXPORT_C CSISpeechRecognitionCustomCommandParser* - CSISpeechRecognitionCustomCommandParser::NewL( - MSISpeechRecognitionCustomCommandImplementor& aImplementor) - { - return new(ELeave) CSISpeechRecognitionCustomCommandParser(aImplementor); - - } - -// ----------------------------------------------------------------------------- -// CSISpeechRecognitionCustomCommandParser::~CSISpeechRecognitionCustomCommandParser -// Destructor for CSISpeechRecognitionCustomCommandParser class -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -EXPORT_C CSISpeechRecognitionCustomCommandParser:: - ~CSISpeechRecognitionCustomCommandParser() - { - - iPronunciationIDs.Close(); - iRuleIDs.Close(); - iModelIDs.Close(); - iGrammarIDs.Close(); - iLexiconIDs.Close(); - iModelBankIDs.Close(); - iLanguageArray.Close(); - for ( TInt i = 0; i < iLanguageArrayArray.Count(); i++ ) - { - iLanguageArrayArray[i].Close(); - } - iLanguageArrayArray.Close(); - - delete iResultCopyBuffer; - //delete iResultSet; - delete iSIResultSet; - delete iWordArray; - delete iAdaptationSet; - } - -// ----------------------------------------------------------------------------- -// CSISpeechRecognitionCustomCommandParser::HandleRequest -// Handles the client side request. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CSISpeechRecognitionCustomCommandParser::HandleRequest( - TMMFMessage& aMessage) - { - ASSERT(aMessage.Destination().InterfaceId() == - KUidInterfaceSpeakerIndependent); - TRAPD(error, DoHandleRequestL(aMessage)); - if(error) - aMessage.Complete(error); - - } - -// ----------------------------------------------------------------------------- -// CSISpeechRecognitionCustomCommandParser::DoHandleRequestL -// Decodes aMessage and calls the correct function. This function is trapped by -// HandleRequest() and the leave code, if any, sent to the client. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CSISpeechRecognitionCustomCommandParser::DoHandleRequestL( - TMMFMessage& aMessage) - { - TPckgBuf pckgSize; - - // call required function to do the requested operation - switch( aMessage.Function() ) - { - case ESrAddPronunciation: - DoAddPronunciationL(aMessage); - break; - - case ESrAddRule: - DoAddRuleL(aMessage); - break; - - case ESrCancel: - DoCancel(); - break; - - case ESrCommitChanges: - DoCommitChangesL(); - break; - - case ESrCreateGrammar: - DoCreateGrammarL(aMessage); - break; - - case ESrCreateLexicon: - DoCreateLexiconL(aMessage); - break; - - case ESrCreateModelBank: - DoCreateModelBankL(aMessage); - break; - - case ESrEndRecSession: - DoEndRecSessionL(); - break; - - case ESrGetAllClientGrammarIDs: - DoGetAllClientGrammarIDsL(); - break; - - case ESrGetAllClientLexiconIDs: - DoGetAllClientLexiconIDsL(); - break; - - case ESrGetAllClientModelBankIDs: - DoGetAllClientModelBankIDsL(); - break; - - case ESrGetAllGrammarIDs: - DoGetAllGrammarIDsL(); - break; - - case ESrGetAllLexiconIDs: - DoGetAllLexiconIDsL(); - break; - - case ESrGetAllModelBankIDs: - DoGetAllModelBankIDsL(); - break; - - case ESrGetAllModelIDs: - DoGetAllModelIDsL(aMessage); - break; - - case ESrGetAllPronunciationIDs: - DoGetAllPronunciationIDsL(aMessage); - break; - - case ESrGetAllRuleIDs: - DoGetAllRuleIDsL(aMessage); - break; - - case ESrGetAvailableStorage: - DoGetAvailableStorageL(aMessage); - break; - - case ESrGetEngineProperties: - DoGetEnginePropertiesL(aMessage); - break; - - case ESrGetModelCount: - DoGetModelCountL(aMessage); - break; - - case ESrGetRuleValidity: - DoGetRuleValidityL(aMessage); - break; - - case ESrUtteranceDuration: - DoGetUtteranceDurationL(aMessage); - break; - - case ESrLoadGrammar: - DoLoadGrammarL(aMessage); - break; - - case ESrActivateGrammar: - DoActivateGrammarL(aMessage); - break; - - case ESrDeactivateGrammar: - DoDeactivateGrammarL(aMessage); - break; - - case ESrLoadLexicon: - DoLoadLexiconL(aMessage); - break; - - case ESrLoadModels: - DoLoadModelsL(aMessage); - break; - - case ESrPlayUtterance: - DoPlayUtteranceL(aMessage); - break; - - case ESrRecognize: - DoRecognizeL(aMessage); - break; - - case ESrRecord: - DoRecordL(aMessage); - break; - - case ESrRemoveGrammar: - DoRemoveGrammarL(aMessage); - break; - - case ESrRemoveLexicon: - DoRemoveLexiconL(aMessage); - break; - - case ESrRemoveModelBank: - DoRemoveModelBankL(aMessage); - break; - - case ESrRemoveModel: - DoRemoveModelL(aMessage); - break; - - case ESrRemovePronunciation: - DoRemovePronunciationL(aMessage); - break; - - case ESrRemoveRule: - DoRemoveRuleL(aMessage); - break; - - case ESrRemoveRules: - RUBY_DEBUG0( "CSISpeechRecognitionCustomCommandParser::DoHandleRequestL. case ESrRemoveRules" ); - DoRemoveRulesL( aMessage ); - break; - - case ESrSetClientUid: - DoSetClientUidL(aMessage); - break; - - case ESrStartRecSession: - DoStartRecSessionL(aMessage); - break; - - case ESrTrain: - DoTrainL(aMessage); - break; - - case ESrUnloadRule: - DoUnloadRuleL(aMessage); - break; - - case ESrLoadEngineParameters: - DoLoadEngineParametersL(aMessage); - break; - - case ESrGetPronunciationIDArraySize: - pckgSize() = iPronunciationIDs.Count(); - aMessage.WriteDataToClientL(pckgSize); - break; - - case ESrGetPronunciationIDArrayContents: - DoCopyPronunciationIDArrayL(aMessage); - break; - - case ESrGetRuleIDArraySize: - pckgSize() = iRuleIDs.Count(); - aMessage.WriteDataToClientL(pckgSize); - break; - - case ESrGetRuleIDArrayContents: - DoCopyRuleIDArrayL(aMessage); - break; - - case ESrGetModelIDArraySize: - pckgSize() = iModelIDs.Count(); - aMessage.WriteDataToClientL(pckgSize); - break; - - case ESrGetModelIDArrayContents: - DoCopyModelIDArrayL(aMessage); - break; - - case ESrGetGrammarIDArraySize: - pckgSize() = iGrammarIDs.Count(); - aMessage.WriteDataToClientL(pckgSize); - break; - - case ESrGetGrammarIDArrayContents: - DoCopyGrammarIDArrayL(aMessage); - break; - - case ESrGetLexiconIDArraySize: - pckgSize() = iLexiconIDs.Count(); - aMessage.WriteDataToClientL(pckgSize); - break; - - case ESrGetLexiconIDArrayContents: - DoCopyLexiconIDArrayL(aMessage); - break; - - case ESrGetModelBankIDArraySize: - pckgSize() = iModelBankIDs.Count(); - aMessage.WriteDataToClientL(pckgSize); - break; - - case ESrGetModelBankIDArrayContents: - DoCopyModelBankIDArrayL(aMessage); - break; - - case ESrGetClientResultSetSize: - DoExternalizeResultSetL(); - pckgSize() = iResultCopyBuffer->Size(); - aMessage.WriteDataToClientL(pckgSize); - break; - - case ESrGetClientResultSetSizeSI: - DoExternalizeSIResultSetL(); - pckgSize() = iResultCopyBuffer->Size(); - aMessage.WriteDataToClientL(pckgSize); - break; - - case ESrGetClientResultSet: - DoCopyResultSetL(aMessage); - break; - - // SI main requests - case ESrAdapt: - DoAdaptL( aMessage ); - break; - - case ESrAddPronunciationSI: - DoAddPronunciationSIL( aMessage ); - break; - - case ESrAddRuleVariant: - DoAddRuleVariantL( aMessage ); - break; - - case ESrAddVoiceTag: - DoAddVoiceTagL( aMessage ); - break; - - case ESrAddVoiceTags: - DoAddVoiceTagsL( aMessage ); - break; - - case ESrCreateRule: - DoCreateRuleL( aMessage ); - break; - - case ESrEndRecord: - DoEndRecordL( aMessage ); - break; - - case ESrRecognizeSI: - DoRecognizeSIL( aMessage ); - break; - - case ESrUnloadGrammar: - DoUnloadGrammarL( aMessage ); - break; - - case ESrAddSindeVoiceTag: - DoAddSindeVoiceTagL( aMessage ); - break; - - case ESrAddSindeVoiceTags: - DoAddSindeVoiceTagsL( aMessage ); - break; - - case ESrPreStartSampling: - DoPreStartSamplingL( aMessage ); - break; - - default: - RUBY_DEBUG1( "CSISpeechRecognitionCustomCommandParser::DoHandleRequestL. Unknown function [%d]. Leaving", aMessage.Function() ); - User::Leave(KErrNotSupported); - - } // end of switch - - - aMessage.Complete(KErrNone); - - } - - -// ----------------------------------------------------------------------------- -// CSISpeechRecognitionCustomCommandParser::DoAddPronunciationL -// Calls the controller plugin to add a pronunciation. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -void CSISpeechRecognitionCustomCommandParser::DoAddPronunciationL( - TMMFMessage& /*aMessage*/) - { - RUBY_DEBUG0( "CSISpeechRecognitionCustomCommandParser::DoAddPronunciationL is NOT supported" ); - User::Leave( KErrNotSupported ); - } - -// ----------------------------------------------------------------------------- -// CSISpeechRecognitionCustomCommandParser::DoAddRuleL -// Calls the controller plugin to add a rule. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CSISpeechRecognitionCustomCommandParser::DoAddRuleL( - TMMFMessage& aMessage) - { - - // Async - TSrsAddRulePckg pckg; - aMessage.ReadData1FromClientL(pckg); - TSrsAddRule srsAddRule = pckg(); - - iImplementor.MSrAddRuleL( srsAddRule.iGrammarID, srsAddRule.iLexiconID, - srsAddRule.iPronunciationID, *srsAddRule.iRuleID ); - - } - -// ----------------------------------------------------------------------------- -// CSISpeechRecognitionCustomCommandParser::DoCancel -// Calls the controller plugin to cancel the currect asynchronous operation. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CSISpeechRecognitionCustomCommandParser::DoCancel() - { - - iImplementor.MSrCancel(); - - } - -// ----------------------------------------------------------------------------- -// CSISpeechRecognitionCustomCommandParser::DoCommitChanges -// Saves the current trained model into a permanent storage. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CSISpeechRecognitionCustomCommandParser::DoCommitChangesL() - { - - iImplementor.MSrCommitChangesL(); - - } - -// ----------------------------------------------------------------------------- -// CSISpeechRecognitionCustomCommandParser::DoCreateGrammarL -// Calls the controller plugin to create a grammar. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CSISpeechRecognitionCustomCommandParser::DoCreateGrammarL( - TMMFMessage& aMessage) - { - - TSrsGrammarIDPtrPckg srsGrammarIDPtrPckg; - aMessage.ReadData1FromClientL(srsGrammarIDPtrPckg); - TSIGrammarID* grammarID = srsGrammarIDPtrPckg(); - iImplementor.MSrCreateGrammarL(*grammarID) ; - - } - -// ----------------------------------------------------------------------------- -// CSISpeechRecognitionCustomCommandParser::DoCreateLexiconL -// Calls the controller plugin to create a lexicon. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CSISpeechRecognitionCustomCommandParser::DoCreateLexiconL( - TMMFMessage& aMessage) - { - - TSrsLexiconIDPtrPckg srsLexiconIDPtrPckg; - aMessage.ReadData1FromClientL(srsLexiconIDPtrPckg); - TSILexiconID* lexiconID = srsLexiconIDPtrPckg(); - iImplementor.MSrCreateLexiconL(*lexiconID) ; - - } - -// ----------------------------------------------------------------------------- -// CSISpeechRecognitionCustomCommandParser::DoCreateModelBankL -// Calls the controller plugin to create a model bank. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CSISpeechRecognitionCustomCommandParser::DoCreateModelBankL( - TMMFMessage& aMessage) - { - - TSrsModelBankIDPtrPckg modelBankIDPtrPckg; - aMessage.ReadData1FromClientL(modelBankIDPtrPckg); - TSIModelBankID* modelBankID = modelBankIDPtrPckg(); - iImplementor.MSrCreateModelBankL(*modelBankID); - - } - -// ----------------------------------------------------------------------------- -// CSISpeechRecognitionCustomCommandParser::DoEndRecSessionL -// Calls the controller plugin to end the current recognition session and free -// the allocated resources. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CSISpeechRecognitionCustomCommandParser::DoEndRecSessionL() - { - - iImplementor.MSrEndRecSessionL(); - - } - -// ----------------------------------------------------------------------------- -// CSISpeechRecognitionCustomCommandParser::DoGetAllClientGrammarIDsL -// Calls the controller plugin to get all client grammar IDs. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CSISpeechRecognitionCustomCommandParser::DoGetAllClientGrammarIDsL() - { - - // Async - iGrammarIDs.Reset(); - iImplementor.MSrGetAllClientGrammarIDsL(iGrammarIDs); - - } - -// ----------------------------------------------------------------------------- -// CSISpeechRecognitionCustomCommandParser::DoGetAllClientLexiconIDsL -// Calls the controller plugin to get all client lexicon IDs. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CSISpeechRecognitionCustomCommandParser::DoGetAllClientLexiconIDsL() - { - - // Async - iLexiconIDs.Reset(); - iImplementor.MSrGetAllClientLexiconIDsL(iLexiconIDs); - - } - -// ----------------------------------------------------------------------------- -// CSISpeechRecognitionCustomCommandParser::DoGetAllClientModelBankIDsL -// Calls the controller plugin to get all client model bank IDs. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CSISpeechRecognitionCustomCommandParser::DoGetAllClientModelBankIDsL() - { - - // Async - iModelBankIDs.Reset(); - iImplementor.MSrGetAllClientModelBankIDsL(iModelBankIDs); - - } - -// ----------------------------------------------------------------------------- -// CSISpeechRecognitionCustomCommandParser::DoGetAllGrammarIDsL -// Calls the controller plugin to get all grammar IDs for all clients. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CSISpeechRecognitionCustomCommandParser::DoGetAllGrammarIDsL() - { - - // Async - iGrammarIDs.Reset(); - iImplementor.MSrGetAllGrammarIDsL(iGrammarIDs); - - } - -// ----------------------------------------------------------------------------- -// CSISpeechRecognitionCustomCommandParser::DoGetAllLexiconIDsL -// Calls the controller plugin to get all lexicon IDs for all clients. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CSISpeechRecognitionCustomCommandParser::DoGetAllLexiconIDsL() - { - - // Async - iLexiconIDs.Reset(); - iImplementor.MSrGetAllLexiconIDsL(iLexiconIDs); - - } - -// ----------------------------------------------------------------------------- -// CSISpeechRecognitionCustomCommandParser::DoGetAllModelBankIDsL -// Calls the controller plugin to get all model bank IDs. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CSISpeechRecognitionCustomCommandParser::DoGetAllModelBankIDsL() - { - - // Async - iModelBankIDs.Reset(); - iImplementor.MSrGetAllModelBankIDsL(iModelBankIDs); - - } - -// ----------------------------------------------------------------------------- -// CSISpeechRecognitionCustomCommandParser::DoGetAllModelIDsL -// Calls the controller plugin to get all model IDs from a model bank. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CSISpeechRecognitionCustomCommandParser::DoGetAllModelIDsL( - TMMFMessage& /*aMessage*/) - { - RUBY_DEBUG0( "CSISpeechRecognitionCustomCommandParser::DoGetAllModelIDsL is NOT supported" ); - User::Leave( KErrNotSupported ); - } - -// ----------------------------------------------------------------------------- -// CSISpeechRecognitionCustomCommandParser::DoGetAllPronunciationIDsL -// Calls the controller plugin to get all pronunciation IDs from a lexicon. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CSISpeechRecognitionCustomCommandParser::DoGetAllPronunciationIDsL( - TMMFMessage& aMessage) - { - - // Async - TSrsLexiconIDPckg lexiconIDPckg; - iPronunciationIDs.Reset(); - aMessage.ReadData1FromClientL(lexiconIDPckg); - - iImplementor.MSrGetAllPronunciationIDsL(lexiconIDPckg(), iPronunciationIDs); - - } - -// ----------------------------------------------------------------------------- -// CSISpeechRecognitionCustomCommandParser::DoGetAllRuleIDsL -// Calls the controller plugin to get all rule IDs from a grammar. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CSISpeechRecognitionCustomCommandParser::DoGetAllRuleIDsL( - TMMFMessage& aMessage) - { - - // Async - TSrsGrammarIDPckg grammarIDPckg; - iRuleIDs.Reset(); - aMessage.ReadData1FromClientL(grammarIDPckg); - - iImplementor.MSrGetAllRuleIDsL(grammarIDPckg(), iRuleIDs); - - } - -// ----------------------------------------------------------------------------- -// CSISpeechRecognitionCustomCommandParser::DoGetAvailableStorageL -// Calls the controller plugin to get the available storage for training new -// models. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CSISpeechRecognitionCustomCommandParser::DoGetAvailableStorageL( - TMMFMessage& /*aMessage*/) - { - RUBY_DEBUG0( "CSISpeechRecognitionCustomCommandParser::DoGetAvailableStorageL is NOT supported" ); - User::Leave( KErrNotSupported ); - } - -// ----------------------------------------------------------------------------- -// CSISpeechRecognitionCustomCommandParser::DoGetEnginePropertiesL -// Calls the controller plugin to get the engine properties. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CSISpeechRecognitionCustomCommandParser::DoGetEnginePropertiesL( - TMMFMessage& aMessage) - { - - RArray propertyIDs; - RArray propertyValues; - CleanupClosePushL(propertyIDs); - CleanupClosePushL(propertyValues); - DoExtractIntArrayFromData1L(aMessage, propertyIDs); - iImplementor.MSrGetEnginePropertiesL(propertyIDs,propertyValues); - // the custom command is aware of the size of the result, so it can copy the data back directly - DoCopyIntArrayL(aMessage, propertyValues); - CleanupStack::PopAndDestroy(2); //propertyIDs, propertyValues - - } - -// ----------------------------------------------------------------------------- -// CSISpeechRecognitionCustomCommandParser::DoGetModelCountL -// Calls the controller plugin to get the number of models in a model bank. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CSISpeechRecognitionCustomCommandParser::DoGetModelCountL( - TMMFMessage& /*aMessage*/) - { - RUBY_DEBUG0( "CSISpeechRecognitionCustomCommandParser::DoGetModelCountL is NOT supported" ); - User::Leave( KErrNotSupported ); - } - - -// ----------------------------------------------------------------------------- -// CSISpeechRecognitionCustomCommandParser::DoGetRuleValidityL -// Calls the controller plugin to determine if a rule is valid. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CSISpeechRecognitionCustomCommandParser::DoGetRuleValidityL( - TMMFMessage& aMessage) - { - - TSrsRuleValidityPckg srsRuleValidityPckg; - aMessage.ReadData1FromClientL(srsRuleValidityPckg); - TSrsRuleValidity srsRuleValidity = srsRuleValidityPckg(); - iImplementor.MSrGetRuleValidityL( srsRuleValidity.iGrammarID, - srsRuleValidity.iRuleID, *srsRuleValidity.iRuleValid ); - - } - -// ----------------------------------------------------------------------------- -// CSISpeechRecognitionCustomCommandParser::DoGetUtteranceDurationL -// Calls the controller plugin to get the utterance duration. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CSISpeechRecognitionCustomCommandParser::DoGetUtteranceDurationL( - TMMFMessage& /*aMessage*/) - { - RUBY_DEBUG0( "CSISpeechRecognitionCustomCommandParser::DoGetUtteranceDurationL is NOT supported" ); - User::Leave( KErrNotSupported ); - } - -// ----------------------------------------------------------------------------- -// CSISpeechRecognitionCustomCommandParser::DoLoadGrammarL -// Calls the controller plugin to load the specified grammar. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CSISpeechRecognitionCustomCommandParser::DoLoadGrammarL( - TMMFMessage& aMessage) - { - - TSrsGrammarIDPckg grammarIDPckg; - aMessage.ReadData1FromClientL(grammarIDPckg); - TSIGrammarID grammarID = grammarIDPckg(); - iImplementor.MSrLoadGrammarL( grammarID ); - - } - -// ----------------------------------------------------------------------------- -// CSISpeechRecognitionCustomCommandParser::DoActivateGrammarL -// Calls the controller plugin to activate the specified grammar. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CSISpeechRecognitionCustomCommandParser::DoActivateGrammarL( - TMMFMessage& aMessage) - { - - TSrsGrammarIDPckg grammarIDPckg; - aMessage.ReadData1FromClientL(grammarIDPckg); - TSIGrammarID grammarID = grammarIDPckg(); - iImplementor.MSrActivateGrammarL( grammarID ); - - } - -// ----------------------------------------------------------------------------- -// CSISpeechRecognitionCustomCommandParser::DoDeactivateGrammarL -// Calls the controller plugin to deactivate the specified grammar. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CSISpeechRecognitionCustomCommandParser::DoDeactivateGrammarL( - TMMFMessage& aMessage) - { - - TSrsGrammarIDPckg grammarIDPckg; - aMessage.ReadData1FromClientL(grammarIDPckg); - TSIGrammarID grammarID = grammarIDPckg(); - iImplementor.MSrDeactivateGrammarL( grammarID ); - - } - -// ----------------------------------------------------------------------------- -// CSISpeechRecognitionCustomCommandParser::DoLoadLexiconL -// Calls the controller plugin to load the specified lexican. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CSISpeechRecognitionCustomCommandParser::DoLoadLexiconL( - TMMFMessage& aMessage) - { - - TSrsLexiconIDPckg lexiconIDPckg; - aMessage.ReadData1FromClientL(lexiconIDPckg); - TSILexiconID lexiconID = lexiconIDPckg(); - iImplementor.MSrLoadLexiconL(lexiconID); - - } - -// ----------------------------------------------------------------------------- -// CSISpeechRecognitionCustomCommandParser::DoLoadModelsL -// Calls the controller plugin to load all models from a model bank. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CSISpeechRecognitionCustomCommandParser::DoLoadModelsL( - TMMFMessage& aMessage) - { - - TSrsModelBankIDPckg modelBankIDPckg; - aMessage.ReadData1FromClientL(modelBankIDPckg); - TSIModelBankID modelBankID = modelBankIDPckg(); - iImplementor.MSrLoadModelsL(modelBankID); - - } - -// ----------------------------------------------------------------------------- -// CSISpeechRecognitionCustomCommandParser::DoPlayUtteranceL -// Calls the controller plugin to play a previously recorded utterance. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CSISpeechRecognitionCustomCommandParser::DoPlayUtteranceL( - TMMFMessage& /*aMessage*/) - { - RUBY_DEBUG0( "CSISpeechRecognitionCustomCommandParser::DoPlayUtteranceL is NOT supported" ); - User::Leave( KErrNotSupported ); - } - -// ----------------------------------------------------------------------------- -// CSISpeechRecognitionCustomCommandParser::DoRecognizeL -// Calls the controller plugin to recognize an utterance. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CSISpeechRecognitionCustomCommandParser::DoRecognizeL( - TMMFMessage& /*aMessage*/) - { - RUBY_DEBUG0( "CSISpeechRecognitionCustomCommandParser::DoRecognizeL is NOT supported" ); - User::Leave( KErrNotSupported ); - } - -// ----------------------------------------------------------------------------- -// CSISpeechRecognitionCustomCommandParser::DoRecordL -// Calls the controller plugin to start recording an utterance for either -// training or recognition -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CSISpeechRecognitionCustomCommandParser::DoRecordL( - TMMFMessage& aMessage) - { - - TSrsTimeIntervalMicroSeconds32Pckg pckg; - aMessage.ReadData1FromClientL(pckg); - TTimeIntervalMicroSeconds32 recordDuration = pckg(); - iImplementor.MSrRecordL(recordDuration); - - } - -// ----------------------------------------------------------------------------- -// CSISpeechRecognitionCustomCommandParser::DoPreStartSamplingL -// Calls the controller plugin. -// ----------------------------------------------------------------------------- -// -void CSISpeechRecognitionCustomCommandParser::DoPreStartSamplingL( - TMMFMessage& /*aMessage*/ ) - { - iImplementor.MSrPreStartSamplingL(); - } - -// ----------------------------------------------------------------------------- -// CSISpeechRecognitionCustomCommandParser::DoRemoveGrammarL -// Calls the controller plugin to remove a grammar. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CSISpeechRecognitionCustomCommandParser::DoRemoveGrammarL( - TMMFMessage& aMessage) - { - - TSrsGrammarIDPckg pckg; - aMessage.ReadData1FromClientL(pckg); - TSIGrammarID grammarID = pckg(); - iImplementor.MSrRemoveGrammarL(grammarID); - - } - -// ----------------------------------------------------------------------------- -// CSISpeechRecognitionCustomCommandParser::DoRemoveLexiconL -// Calls the controller plugin to remove a lexicon. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CSISpeechRecognitionCustomCommandParser::DoRemoveLexiconL( - TMMFMessage& aMessage) - { - - TSrsLexiconIDPckg pckg; - aMessage.ReadData1FromClientL(pckg); - TSILexiconID lexiconID = pckg(); - iImplementor.MSrRemoveLexiconL(lexiconID); - - } - -// ----------------------------------------------------------------------------- -// CSISpeechRecognitionCustomCommandParser::DoRemoveModelBankL -// Calls the controller plugin to remove a model bank and all associated models. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CSISpeechRecognitionCustomCommandParser::DoRemoveModelBankL( - TMMFMessage& aMessage) - { - - TSrsModelBankIDPckg pckg; - aMessage.ReadData1FromClientL(pckg); - TSIModelBankID modelBankID = pckg(); - iImplementor.MSrRemoveModelBankL(modelBankID); - - } - -// ----------------------------------------------------------------------------- -// CSISpeechRecognitionCustomCommandParser::DoRemoveModelL -// Calls the controller plugin to remove a model from a model bank. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CSISpeechRecognitionCustomCommandParser::DoRemoveModelL( - TMMFMessage& aMessage) - { - - TSrsModelBankIDPckg modelBankIDPckg; - aMessage.ReadData1FromClientL(modelBankIDPckg); - TSIModelBankID modelBankID = modelBankIDPckg(); - TSrsModelIDPckg modelIDPckg; - aMessage.ReadData2FromClientL(modelIDPckg); - TSIModelBankID modelID = modelIDPckg(); - iImplementor.MSrRemoveModelL(modelBankID, modelID); - - } - -// ----------------------------------------------------------------------------- -// CSISpeechRecognitionCustomCommandParser::DoRemovePronunciationL -// Calls the controller plugin to remove a pronunciation. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CSISpeechRecognitionCustomCommandParser::DoRemovePronunciationL( - TMMFMessage& aMessage) - { - - TSrsLexiconIDPckg lexiconIDPckg; - aMessage.ReadData1FromClientL(lexiconIDPckg); - TSILexiconID lexiconID = lexiconIDPckg(); - TSrsPronunciationIDPckg pronunciationIDPckg; - aMessage.ReadData2FromClientL(pronunciationIDPckg); - TSIPronunciationID pronunciationID = pronunciationIDPckg(); - iImplementor.MSrRemovePronunciationL( lexiconID, pronunciationID ); - - } - -// ----------------------------------------------------------------------------- -// CSISpeechRecognitionCustomCommandParser::DoRemoveRuleL -// Calls the controller plugin to remove a rule. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CSISpeechRecognitionCustomCommandParser::DoRemoveRuleL( - TMMFMessage& aMessage) - { - - TSrsGrammarIDPckg grammarIDPckg; - aMessage.ReadData1FromClientL(grammarIDPckg); - TSIGrammarID grammarID = grammarIDPckg(); - TSrsRuleIDPckg ruleIDPckg; - aMessage.ReadData2FromClientL(ruleIDPckg); - TSIRuleID ruleID = ruleIDPckg(); - iImplementor.MSrRemoveRuleL( grammarID, ruleID ); - - } - -// ----------------------------------------------------------------------------- -// CSISpeechRecognitionCustomCommandParser::DoSetClientUid -// Sets the client's UID for data ownership identification. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CSISpeechRecognitionCustomCommandParser::DoSetClientUidL(TMMFMessage& aMessage) -{ - RUBY_DEBUG_BLOCK( "CSISpeechRecognitionCustomCommandParser::DoSetClientUidL" ); - - TSrsUidPckg pckg; - aMessage.ReadData1FromClientL(pckg); - TUid uid = pckg(); - iImplementor.MSrSetClientUid(uid); - -} - -// ----------------------------------------------------------------------------- -// CSISpeechRecognitionCustomCommandParser::DoStartRecSessionL -// Calls the controller plugin to begin a recognition session. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CSISpeechRecognitionCustomCommandParser::DoStartRecSessionL( - TMMFMessage& aMessage) - { - - TSrsRecognitionModePckg pckg; - aMessage.ReadData1FromClientL(pckg); - TNSSRecognitionMode mode = pckg(); - iImplementor.MSrStartRecSessionL( mode ); - - } - -// ----------------------------------------------------------------------------- -// CSISpeechRecognitionCustomCommandParser::DoTrainL -// Calls the controller plugin to begin a recognition session. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CSISpeechRecognitionCustomCommandParser::DoTrainL( - TMMFMessage& /*aMessage*/) - { - RUBY_DEBUG0( "CSISpeechRecognitionCustomCommandParser::DoTrainL is NOT supported" ); - User::Leave( KErrNotSupported ); - } - -// ----------------------------------------------------------------------------- -// CSISpeechRecognitionCustomCommandParser::DoUnloadRuleL -// Calls the controller plugin to add a rule. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CSISpeechRecognitionCustomCommandParser::DoUnloadRuleL( - TMMFMessage& aMessage) - { - - TSrsGrammarIDPckg grammarIDPckg; - aMessage.ReadData1FromClientL(grammarIDPckg); - TSIGrammarID grammarID = grammarIDPckg(); - TSrsRuleIDPckg ruleIDPtrPckg; - aMessage.ReadData2FromClientL(ruleIDPtrPckg); - TSIRuleID ruleID = ruleIDPtrPckg(); - - iImplementor.MSrUnloadRuleL( grammarID, ruleID ); - - } - -// ----------------------------------------------------------------------------- -// CSISpeechRecognitionCustomCommandParser::DoLoadEngineParametersL -// Calls the controller plugin to upload the parameters into the engine. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -void CSISpeechRecognitionCustomCommandParser::DoLoadEngineParametersL( - TMMFMessage& aMessage) - { - - RArray parameters; - RArray values; - CleanupClosePushL(parameters); - CleanupClosePushL(values); - DoExtractIntArrayFromData1L(aMessage, parameters); - DoExtractIntArrayFromData2L(aMessage, values); - iImplementor.MSrLoadEngineParametersL(parameters,values); - CleanupStack::PopAndDestroy(2); // parameters, values - - } - -// ==================== SI Extensions ========================================== - -// ----------------------------------------------------------------------------- -// CSISpeechRecognitionCustomCommandParser::DoAdaptL -// Adapts the acoustic models to a user's voice. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -void CSISpeechRecognitionCustomCommandParser::DoAdaptL( - TMMFMessage& aMessage) - { - HBufC8* resultSetBuf = SICustomCommandData::ReadMessageDataLC( aMessage, 1 ); - - TPckgBuf correctPckg; - aMessage.ReadData2FromClientL( correctPckg ); - - RDesReadStream resultSetStream; - CleanupClosePushL( resultSetStream ); - resultSetStream.Open( *resultSetBuf ); - - if ( iAdaptationSet ) - { - delete iAdaptationSet; - iAdaptationSet = 0; - } - - iAdaptationSet = CSIClientResultSet::NewL(); - iAdaptationSet->InternalizeL( resultSetStream ); - - iImplementor.MSrAdaptL( *iAdaptationSet, correctPckg() ); - - CleanupStack::PopAndDestroy( &resultSetStream ); - CleanupStack::PopAndDestroy( resultSetBuf ); - } - -// ----------------------------------------------------------------------------- -// CSISpeechRecognitionCustomCommandParser::DoAddPronunciationSIL -// Adds a speaker independent pronunciation -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -void CSISpeechRecognitionCustomCommandParser::DoAddPronunciationSIL( - TMMFMessage& aMessage) - { - TSrsAddPronunciationSIPckg pckg; - TSrsAddPronunciationSI* addPronunData; - - aMessage.ReadData1FromClientL( pckg ); - addPronunData = &pckg(); - - // Read the phrase to be trained. - HBufC8* textData = SICustomCommandData::ReadMessageDataLC( aMessage, 2 ); - - // The phrase is in 8-bit descriptor, altough its structure is 16-bit Unicode. - // We make a 16-bit TPtr, which points to the same memory area. - TUint16* trainTextAddress = (TUint16*)textData->Ptr(); - TInt trainTextLength = addPronunData->iTextLength; - - // Check against buffer overrun before making the descriptor. - TInt trainTextSize = 2 * trainTextLength; - if ( trainTextSize > textData->Size() ) - { - User::Leave( KErrCorrupt ); - } - - // Make the descriptor. - TPtrC16 trainText( trainTextAddress, trainTextLength ); - - iImplementor.MSrAddPronunciationL( - addPronunData->iLexiconID, - trainText, - addPronunData->iLanguage, - *addPronunData->iPronunciationIDPtr ); - - CleanupStack::PopAndDestroy( textData ); - } - -// ----------------------------------------------------------------------------- -// CSISpeechRecognitionCustomCommandParser::DoAddRuleVariantL -// Adds a rule variant -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// - -void CSISpeechRecognitionCustomCommandParser::DoAddRuleVariantL( - TMMFMessage& aMessage) - { - TSrsAddRuleVariantPckg pckg; - TSrsAddRuleVariant* data; - - aMessage.ReadData1FromClientL( pckg ); - data = &pckg(); - - // Read the second parameter slot of aMessage. - HBufC8* pronunChunk = SICustomCommandData::ReadMessageDataLC( aMessage, 2 ); - // Stack: pronunChunk - - RArray pronunArray; - CleanupClosePushL( pronunArray ); // Stack: pronunChunk, pronunArray - - SICustomCommandData::InternalizePronunArrayL( - *pronunChunk, - data->iPronunIDCount, - pronunArray ); - - iImplementor.MSrAddRuleVariantL( - data->iGrammarID, - data->iLexiconID, - pronunArray, - data->iRuleID, - *data->iRuleVariantID - ); - - CleanupStack::PopAndDestroy( &pronunArray ); - CleanupStack::PopAndDestroy( pronunChunk ); - } - -// ----------------------------------------------------------------------------- -// CSISpeechRecognitionCustomCommandParser::DoAddVoiceTag -// Adds a voice tag -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -void CSISpeechRecognitionCustomCommandParser::DoAddVoiceTagL( - TMMFMessage& aMessage) - { - if ( iWordArray != 0 ) - { - delete iWordArray; - iWordArray = 0; - } - - TSrsAddVoiceTagPckg pckg; - TSrsAddVoiceTag *params = &pckg(); - - aMessage.ReadData1FromClient( pckg ); - - HBufC8* phraseBuf = SICustomCommandData::ReadMessageDataLC( aMessage, 2 ); - // Stack: phraseBuf - - // !!!! Is it able to call ~MDesCArray, as MDesCArray is not derived from CBase? - iWordArray = SICustomCommandData::InternalizeDesCArrayL( *phraseBuf ); - - iLanguageArray.Reset(); - params->ListLanguagesL( iLanguageArray ); - - iImplementor.MSrAddVoiceTagL( - *iWordArray, - iLanguageArray, - params->iLexiconID, - params->iGrammarID, - *params->iRuleID ); - - CleanupStack::PopAndDestroy( phraseBuf ); - } - -// ----------------------------------------------------------------------------- -// CSISpeechRecognitionCustomCommandParser::DoAddVoiceTags -// Adds several voice tags -// ----------------------------------------------------------------------------- -void CSISpeechRecognitionCustomCommandParser::DoAddVoiceTagsL( - TMMFMessage& aMessage) - { - RPointerArray* phraseArray = 0; - // The 2 parameter slots contain: - // 1. Headers: Various identifiers - // 2. Phrases: Recognition phrases in an array. - - // Header storage - TSrsAddVoiceTagPckg pckg; - TSrsAddVoiceTag *params = &pckg(); - - // Phrase storage - - aMessage.ReadData1FromClient( pckg ); - HBufC8* phraseBuf = SICustomCommandData::ReadMessageDataLC( aMessage, 2 ); - // Stack: phraseBuf - - phraseArray = SICustomCommandData::InternalizeDesCArrayArrayL( *phraseBuf ); - CleanupStack::PushL( phraseArray ); - - iLanguageArray.Reset(); - params->ListLanguagesL( iLanguageArray ); - - CleanupStack::Pop( phraseArray ); - - iImplementor.MSrAddVoiceTagsL( - phraseArray, - iLanguageArray, - params->iLexiconID, - params->iGrammarID, - iRuleIDs - ); - - CleanupStack::PopAndDestroy( phraseBuf ); - } - -#ifdef __SINDE_TRAINING -// ----------------------------------------------------------------------------- -// CSISpeechRecognitionCustomCommandParser::DoAddSindeVoiceTagL -// -// ----------------------------------------------------------------------------- -void CSISpeechRecognitionCustomCommandParser::DoAddSindeVoiceTagL( TMMFMessage& aMessage ) - { - if ( iWordArray != NULL ) - { - delete iWordArray; - iWordArray = NULL; - } - - TSrsAddSindeVoiceTagPckg pckg; - TSrsAddSindeVoiceTag *params = &pckg(); - - aMessage.ReadData1FromClient( pckg ); - - HBufC8* phraseBuf = SICustomCommandData::ReadMessageDataLC( aMessage, 2 ); - // Stack: phraseBuf - - iWordArray = SICustomCommandData::InternalizeDesCArrayL( *phraseBuf ); - - for ( TInt i = 0; i < iLanguageArrayArray.Count(); i++ ) - { - iLanguageArrayArray[i].Close(); - } - iLanguageArrayArray.Reset(); - params->ListLanguagesL( iLanguageArrayArray ); - - iImplementor.MSrAddSindeVoiceTagL( *iWordArray, - iLanguageArrayArray, - params->iLexiconID, - params->iGrammarID, - *params->iRuleID ); - - CleanupStack::PopAndDestroy( phraseBuf ); - } - -// ----------------------------------------------------------------------------- -// CSISpeechRecognitionCustomCommandParser::DoAddSindeVoiceTagsL -// -// ----------------------------------------------------------------------------- -void CSISpeechRecognitionCustomCommandParser::DoAddSindeVoiceTagsL( TMMFMessage& aMessage ) - { - RPointerArray* phraseArray = 0; - // The 2 parameter slots contain: - // 1. Headers: Various identifiers - // 2. Phrases: Recognition phrases in an array. - - // Header storage - TSrsAddSindeVoiceTagPckg pckg; - TSrsAddSindeVoiceTag *params = &pckg(); - - // Phrase storage - - aMessage.ReadData1FromClient( pckg ); - HBufC8* phraseBuf = SICustomCommandData::ReadMessageDataLC( aMessage, 2 ); - // Stack: phraseBuf - - phraseArray = SICustomCommandData::InternalizeDesCArrayArrayL( *phraseBuf ); - CleanupStack::PushL( phraseArray ); - - for ( TInt i = 0; i < iLanguageArrayArray.Count(); i++ ) - { - iLanguageArrayArray[i].Close(); - } - iLanguageArrayArray.Reset(); - params->ListLanguagesL( iLanguageArrayArray ); - - - iImplementor.MSrAddSindeVoiceTagsL( phraseArray, iLanguageArrayArray, - params->iLexiconID, params->iGrammarID, - iRuleIDs ); - - CleanupStack::Pop( phraseArray ); - CleanupStack::PopAndDestroy( phraseBuf ); - } - -#else // __SINDE_TRAINING -// ----------------------------------------------------------------------------- -// CSISpeechRecognitionCustomCommandParser::DoAddSindeVoiceTagL -// -// ----------------------------------------------------------------------------- -void CSISpeechRecognitionCustomCommandParser::DoAddSindeVoiceTagL( TMMFMessage& /*aMessage*/ ) - { - User::Leave( KErrNotSupported ); - } - -// ----------------------------------------------------------------------------- -// CSISpeechRecognitionCustomCommandParser::DoAddSindeVoiceTagsL -// -// ----------------------------------------------------------------------------- -void CSISpeechRecognitionCustomCommandParser::DoAddSindeVoiceTagsL( TMMFMessage& /*aMessage*/ ) - { - User::Leave( KErrNotSupported ); - } -#endif // __SINDE_TRAINING - -// ----------------------------------------------------------------------------- -// CSISpeechRecognitionCustomCommandParser::DoCreateRule -// Creates an empty rule -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -void CSISpeechRecognitionCustomCommandParser::DoCreateRuleL( - TMMFMessage& aMessage) - { - TSrsAddRulePckg pckg; - TSrsAddRule* params = &(pckg()); - - aMessage.ReadData1FromClientL(pckg); - - iImplementor.MSrCreateRuleL( params->iGrammarID, *params->iRuleID ); - } - -// ----------------------------------------------------------------------------- -// CSISpeechRecognitionCustomCommandParser::DoEndRecord -// Stops recognition -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -void CSISpeechRecognitionCustomCommandParser::DoEndRecordL( - TMMFMessage& /*aMessage*/) - { - iImplementor.MSrEndRecordL(); - } - -// ----------------------------------------------------------------------------- -// CSISpeechRecognitionCustomCommandParser::DoRecognizeSI -// Starts a speaker independent recognition -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -void CSISpeechRecognitionCustomCommandParser::DoRecognizeSIL( - TMMFMessage& aMessage) - { - // remove any previous result set, if any - if (iSIResultSet != NULL) - { - delete iSIResultSet; - iSIResultSet = NULL; - } - - // Read data chunk of CSIClientResultSet - HBufC8* dataBuffer = SICustomCommandData::ReadMessageDataLC( aMessage, 1 ); - - // Set up stream - RDesReadStream stream( *dataBuffer ); - CleanupClosePushL(stream); - - // Convert chunk to proper type - iSIResultSet = CSIClientResultSet::NewL(); - iSIResultSet->InternalizeL(stream); - - // Recognize - iImplementor.MSrRecognizeL(*iSIResultSet); - - CleanupStack::PopAndDestroy(&stream);//stream - CleanupStack::PopAndDestroy(dataBuffer);//databuffer - } - -// ----------------------------------------------------------------------------- -// CSISpeechRecognitionCustomCommandParser::DoUnloadGrammar -// Deactivates a grammar from the current recognition vocabulary -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -void CSISpeechRecognitionCustomCommandParser::DoUnloadGrammarL( - TMMFMessage& aMessage) - { - TSrsGrammarIDPckg pckg; - aMessage.ReadData1FromClientL(pckg); - TSIGrammarID grammarID = pckg(); - - iImplementor.MSrUnloadGrammarL(grammarID); - } - -// ==================== SI Extensions end ====================================== - - -// ----------------------------------------------------------------------------- -// CSISpeechRecognitionCustomCommandParser::DoCopyPronunciationIDArrayL -// Copy the pronunciation IDs to the client. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -void CSISpeechRecognitionCustomCommandParser::DoCopyPronunciationIDArrayL( - TMMFMessage& aMessage) - { - - CBufFlat* dataCopyBuffer = CBufFlat::NewL(KExpandSize); - CleanupStack::PushL(dataCopyBuffer); - RBufWriteStream stream; - stream.Open(*dataCopyBuffer); - CleanupClosePushL(stream); - for (TInt i=0;iPtr(0)); - - CleanupStack::PopAndDestroy(2); //stream,dataCopyBuffer - - } - -// ----------------------------------------------------------------------------- -// CSISpeechRecognitionCustomCommandParser::DoCopyModelIDArrayL -// Copy the model IDs to the client. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -void CSISpeechRecognitionCustomCommandParser::DoCopyModelIDArrayL( - TMMFMessage& aMessage) - { - - CBufFlat* dataCopyBuffer = CBufFlat::NewL(KExpandSize); - CleanupStack::PushL(dataCopyBuffer); - RBufWriteStream stream; - stream.Open(*dataCopyBuffer); - CleanupClosePushL(stream); - for (TInt i=0;iPtr(0)); - -// iModelIDs.Close(); - CleanupStack::PopAndDestroy(2); //stream,dataCopyBuffer - - } - -// ----------------------------------------------------------------------------- -// CSISpeechRecognitionCustomCommandParser::DoCopyRuleIDArrayL -// Copy the rule IDs to the client. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -void CSISpeechRecognitionCustomCommandParser::DoCopyRuleIDArrayL( - TMMFMessage& aMessage) - { - - CBufFlat* dataCopyBuffer = CBufFlat::NewL(KExpandSize); - CleanupStack::PushL(dataCopyBuffer); - RBufWriteStream stream; - stream.Open(*dataCopyBuffer); - CleanupClosePushL(stream); - for (TInt i=0;iPtr(0)); - - CleanupStack::PopAndDestroy(2); //stream,dataCopyBuffer - - } - -// ----------------------------------------------------------------------------- -// CSISpeechRecognitionCustomCommandParser::DoRemoveRules -// Remove rules by their IDS -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -void CSISpeechRecognitionCustomCommandParser::DoRemoveRulesL( TMMFMessage& aMessage ) - { - RUBY_DEBUG_BLOCK( "CSISpeechRecognitionCustomCommandParser::DoRemoveRulesL" ); - - TSrsGrammarIDPckg grammarIDPckg; - aMessage.ReadData1FromClientL(grammarIDPckg); - TSIGrammarID grammarID = grammarIDPckg(); - RArray ruleIDs; - CleanupClosePushL( ruleIDs ); -// TMMFMessage& aMessage, -// RArray& aArray) - DoExtractIntArrayFromData2L(aMessage, ruleIDs); - - - iRuleIDs.Reset(); - for( TInt i = 0; i < ruleIDs.Count(); i++) - { - iRuleIDs.Append(ruleIDs[i]); - } - - //iImplementor.MSrRemoveRulesL( grammarID, reinterpret_cast&> ( forwardedRuleIDs ) ); - iImplementor.MSrRemoveRulesL( grammarID, iRuleIDs ); - - CleanupStack::PopAndDestroy(); // ruleIDs - } - - -// ----------------------------------------------------------------------------- -// CSISpeechRecognitionCustomCommandParser::DoCopyGrammarIDArrayL -// Copy the grammar IDs to the client. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -void CSISpeechRecognitionCustomCommandParser::DoCopyGrammarIDArrayL( - TMMFMessage& aMessage) - { - - CBufFlat* dataCopyBuffer = CBufFlat::NewL(KExpandSize); - CleanupStack::PushL(dataCopyBuffer); - RBufWriteStream stream; - stream.Open(*dataCopyBuffer); - CleanupClosePushL(stream); - for (TInt i=0;iPtr(0)); - - CleanupStack::PopAndDestroy(2); //stream,dataCopyBuffer - - } - -// ----------------------------------------------------------------------------- -// CSISpeechRecognitionCustomCommandParser::DoCopyLexiconIDArrayL -// Copy the lexicon IDs to the client. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -void CSISpeechRecognitionCustomCommandParser::DoCopyLexiconIDArrayL( - TMMFMessage& aMessage) - { - - CBufFlat* dataCopyBuffer = CBufFlat::NewL(KExpandSize); - CleanupStack::PushL(dataCopyBuffer); - RBufWriteStream stream; - stream.Open(*dataCopyBuffer); - CleanupClosePushL(stream); - for (TInt i=0;iPtr(0)); - - CleanupStack::PopAndDestroy(2); //stream,dataCopyBuffer - - } - -// ----------------------------------------------------------------------------- -// CSISpeechRecognitionCustomCommandParser::DoCopyModelBankIDArrayL -// Copy the model bank IDs to the client. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -void CSISpeechRecognitionCustomCommandParser::DoCopyModelBankIDArrayL( - TMMFMessage& aMessage) - { - - CBufFlat* dataCopyBuffer = CBufFlat::NewL(KExpandSize); - CleanupStack::PushL(dataCopyBuffer); - RBufWriteStream stream; - stream.Open(*dataCopyBuffer); - CleanupClosePushL(stream); - for (TInt i=0;iPtr(0)); - - CleanupStack::PopAndDestroy(2); //stream,dataCopyBuffer - - } - -// ----------------------------------------------------------------------------- -// CSISpeechRecognitionCustomCommandParser::DoExternalizeResultSetL -// Externalize the client result set. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -void CSISpeechRecognitionCustomCommandParser::DoExternalizeResultSetL() - { - RUBY_DEBUG0( "CSISpeechRecognitionCustomCommandParser::DoExternalizeResultSetL is NOT supported" ); - User::Leave( KErrNotSupported ); - } - -// ----------------------------------------------------------------------------- -// CSISpeechRecognitionCustomCommandParser::DoCopyResultSetL -// Copy the recognition result set to the client. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -void CSISpeechRecognitionCustomCommandParser::DoCopyResultSetL( - TMMFMessage& aMessage) - { - - // make sure we have a copy buffer available. - if ( iResultCopyBuffer == NULL ) - { - User::Leave(KErrNotReady); - } - - aMessage.WriteDataToClientL(iResultCopyBuffer->Ptr(0)); - delete iResultCopyBuffer; - iResultCopyBuffer = NULL; - - } - -// ----------------------------------------------------------------------------- -// CSISpeechRecognitionCustomCommandParser::DoExternalizeSIResultSetL -// Externalize the client result set. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -void CSISpeechRecognitionCustomCommandParser::DoExternalizeSIResultSetL() - { - - // make sure we have a result set available. - if ( iSIResultSet == NULL ) - { - User::Leave(KErrNotReady); - } - - // allocate the result copy buffer if needed. - if (iResultCopyBuffer == NULL ) - { - iResultCopyBuffer = CBufFlat::NewL(KExpandSize); - } - else - { - iResultCopyBuffer->Reset(); // use existing buffer, clear previous results - } - - RBufWriteStream stream; - stream.Open(*iResultCopyBuffer); - CleanupClosePushL(stream); - iSIResultSet->ExternalizeL(stream); - delete iSIResultSet; // the controller side version is no longer needed - iSIResultSet = NULL; - CleanupStack::PopAndDestroy(1); //stream - - } - -// ----------------------------------------------------------------------------- -// CSISpeechRecognitionCustomCommandParser::DoExtractIntArrayFromData1L -// Extract an integer array from client data 1. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -void CSISpeechRecognitionCustomCommandParser::DoExtractIntArrayFromData1L( - TMMFMessage& aMessage, - RArray& aArray) - { - TInt size = aMessage.SizeOfData1FromClient(); - HBufC8* buf = HBufC8::NewL(size); - CleanupStack::PushL(buf); - TPtr8 ptr = buf->Des(); - aMessage.ReadData1FromClientL(ptr); - DoExtractIntArrayL(ptr,aArray); - CleanupStack::PopAndDestroy(buf); - } - -// ----------------------------------------------------------------------------- -// CSISpeechRecognitionCustomCommandParser::DoExtractIntArrayFromData2L -// Extract an integer array from client data 2. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -void CSISpeechRecognitionCustomCommandParser::DoExtractIntArrayFromData2L( - TMMFMessage& aMessage, - RArray& aArray) - { - - TInt size = aMessage.SizeOfData2FromClient(); - HBufC8* buf = HBufC8::NewL(size); - CleanupStack::PushL(buf); - TPtr8 ptr = buf->Des(); - aMessage.ReadData2FromClientL(ptr); - DoExtractIntArrayL(ptr,aArray); - CleanupStack::PopAndDestroy(buf); - - } - -// ----------------------------------------------------------------------------- -// CSISpeechRecognitionCustomCommandParser::DoExtractIntArrayL -// Extract an integer array from a descriptor into an RArray. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -void CSISpeechRecognitionCustomCommandParser::DoExtractIntArrayL( - TDes8& aDescriptor, - RArray& aArray) - { - - RDesReadStream stream(aDescriptor); - CleanupClosePushL(stream); - - TInt numberElements; - numberElements = stream.ReadInt32L(); - - TInt i( 0 ); - for ( i = 0; i& aArray) - { - - CBufFlat* dataCopyBuffer = CBufFlat::NewL(KExpandSize); - CleanupStack::PushL(dataCopyBuffer); - RBufWriteStream stream; - stream.Open(*dataCopyBuffer); - CleanupClosePushL(stream); - - for (TInt i=0;iPtr(0)); - CleanupStack::PopAndDestroy(2); //stream,dataCopyBuffer - - } - - -// End of file