--- a/srsf/sicc/src/nsssispeechrecognitioncustomcommands.cpp Mon Jan 18 20:20:30 2010 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,1301 +0,0 @@
-/*
-* Copyright (c) 2004-2006 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 client interface for the
-* speaker independent custom commands.
-*
-*/
-
-
-// INCLUDE FILES
-#include "srsfbldvariant.hrh"
-#include "nsssispeechrecognitioncustomcommands.h"
-#include <nsssispeechrecognitiondatacommon.h>
-#include <badesca.h>
-#include "nsssispeechrecognitioncustomcommandcommon.h"
-#include "nsssicustomcommanddata.h"
-#include "rubydebug.h"
-
-
-// ============================ MEMBER FUNCTIONS ===============================
-
-// -----------------------------------------------------------------------------
-// RSISpeechRecognitionCustomCommands::RSISpeechRecognitionCustomCommands
-// C++ constructor.
-// -----------------------------------------------------------------------------
-
-EXPORT_C RSISpeechRecognitionCustomCommands::RSISpeechRecognitionCustomCommands(
- RMMFController& aController) :
- RMMFCustomCommandsBase(aController,
- KUidInterfaceSpeakerIndependent)
- {
-
- }
-
-// -----------------------------------------------------------------------------
-// RSISpeechRecognitionCustomCommands::AddRule
-// Sends a command to the controller to add a rule.
-// -----------------------------------------------------------------------------
-//
-EXPORT_C TInt RSISpeechRecognitionCustomCommands::AddRule(
- TSIGrammarID aGrammarID,
- TSILexiconID aLexiconID,
- TSIPronunciationID aPronunciationID,
- TSIRuleID& aRuleID)
- {
-
- TSrsAddRule srsAddRule(aGrammarID, aLexiconID, aPronunciationID, &aRuleID);
- TSrsAddRulePckg pckg(srsAddRule);
- return iController.CustomCommandSync(iDestinationPckg, ESrAddRule,
- pckg, KNullDesC8); // Async
-
- }
-
-// -----------------------------------------------------------------------------
-// RSISpeechRecognitionCustomCommands::Cancel
-// Sends a command to the controller to cancel the currect asynchronous
-// operation.
-// -----------------------------------------------------------------------------
-//
-EXPORT_C void RSISpeechRecognitionCustomCommands::Cancel()
- {
-
- iController.CustomCommandSync(iDestinationPckg, ESrCancel,
- KNullDesC8, KNullDesC8);
-
- }
-
-// -----------------------------------------------------------------------------
-// RSISpeechRecognitionCustomCommands::CommitChanges
-// Sends a command to the controller to commit the current changes.
-// -----------------------------------------------------------------------------
-//
-EXPORT_C TInt RSISpeechRecognitionCustomCommands::CommitChanges()
- {
-
- return iController.CustomCommandSync(iDestinationPckg, ESrCommitChanges,
- KNullDesC8, KNullDesC8); // Async
-
- }
-
-// -----------------------------------------------------------------------------
-// RSISpeechRecognitionCustomCommands::CreateGrammar
-// Sends a command to the controller to create a grammar.
-// -----------------------------------------------------------------------------
-//
-EXPORT_C TInt RSISpeechRecognitionCustomCommands::CreateGrammar(
- TSIGrammarID& aGrammarID)
- {
-
- TSrsGrammarIDPtrPckg srsGrammarIDPtrPckg = &aGrammarID;
- return iController.CustomCommandSync(iDestinationPckg, ESrCreateGrammar,
- srsGrammarIDPtrPckg, KNullDesC8);
-
- }
-
-// -----------------------------------------------------------------------------
-// RSISpeechRecognitionCustomCommands::CreateLexicon
-// Sends a command to the controller to create a lexicon.
-// -----------------------------------------------------------------------------
-//
-EXPORT_C TInt RSISpeechRecognitionCustomCommands::CreateLexicon(
- TSILexiconID& aLexiconID)
- {
-
- TSrsLexiconIDPtrPckg srsLexiconIDPtrPckg = &aLexiconID;
- return iController.CustomCommandSync(iDestinationPckg, ESrCreateLexicon,
- srsLexiconIDPtrPckg, KNullDesC8);
-
- }
-
-// -----------------------------------------------------------------------------
-// RSISpeechRecognitionCustomCommands::CreateModelBank
-// Sends a command to the controller to create a model bank.
-// -----------------------------------------------------------------------------
-//
-EXPORT_C TInt RSISpeechRecognitionCustomCommands::CreateModelBank(
- TSIModelBankID& aModelBankID)
- {
-
- TSrsModelBankIDPtrPckg modelBankIDPtrPckg = &aModelBankID;
- return iController.CustomCommandSync(iDestinationPckg, ESrCreateModelBank,
- modelBankIDPtrPckg, KNullDesC8);
-
- }
-
-// -----------------------------------------------------------------------------
-// RSISpeechRecognitionCustomCommands::EndRecSession
-// Sends a command to the controller to end the current recognition session and
-// free the allocated resources.
-// -----------------------------------------------------------------------------
-//
-EXPORT_C TInt RSISpeechRecognitionCustomCommands::EndRecSession()
- {
-
- TInt err = iController.CustomCommandSync(iDestinationPckg, ESrEndRecSession,
- KNullDesC8, KNullDesC8);
- return err;
-
- }
-
-// -----------------------------------------------------------------------------
-// RSISpeechRecognitionCustomCommands::GetAllClientGrammarIDs
-// Calls the controller plugin to get all client grammar IDs.
-// -----------------------------------------------------------------------------
-//
-EXPORT_C TInt RSISpeechRecognitionCustomCommands::GetAllClientGrammarIDs()
- {
-
- return iController.CustomCommandSync(iDestinationPckg,
- ESrGetAllClientGrammarIDs, KNullDesC8, KNullDesC8); // Async
-
- }
-
-// -----------------------------------------------------------------------------
-// RSISpeechRecognitionCustomCommands::GetAllClientLexiconIDs
-// Calls the controller plugin to get all client lexicon IDs.
-// -----------------------------------------------------------------------------
-//
-EXPORT_C TInt RSISpeechRecognitionCustomCommands::GetAllClientLexiconIDs()
- {
-
- return iController.CustomCommandSync(iDestinationPckg,
- ESrGetAllClientLexiconIDs, KNullDesC8, KNullDesC8); // Async
-
- }
-
-// -----------------------------------------------------------------------------
-// RSISpeechRecognitionCustomCommands::GetAllClientModelBankIDs
-// Calls the controller plugin to get all client model bank IDs.
-// -----------------------------------------------------------------------------
-//
-EXPORT_C TInt RSISpeechRecognitionCustomCommands::GetAllClientModelBankIDs()
- {
-
- return iController.CustomCommandSync(iDestinationPckg, ESrGetAllClientModelBankIDs,
- KNullDesC8, KNullDesC8); // Async
-
- }
-
-// -----------------------------------------------------------------------------
-// RSISpeechRecognitionCustomCommands::GetAllGrammarIDs
-// Calls the controller plugin to get all grammar IDs for all clients.
-// -----------------------------------------------------------------------------
-//
-EXPORT_C TInt RSISpeechRecognitionCustomCommands::GetAllGrammarIDs()
- {
-
- return iController.CustomCommandSync(iDestinationPckg, ESrGetAllGrammarIDs,
- KNullDesC8, KNullDesC8); // Async
-
- }
-
-// -----------------------------------------------------------------------------
-// RSISpeechRecognitionCustomCommands::GetAllLexiconIDs
-// Calls the controller plugin to get all lexicon IDs for all clients.
-// -----------------------------------------------------------------------------
-//
-EXPORT_C TInt RSISpeechRecognitionCustomCommands::GetAllLexiconIDs()
- {
-
- return iController.CustomCommandSync(iDestinationPckg, ESrGetAllLexiconIDs,
- KNullDesC8, KNullDesC8); // Async
-
- }
-
-// -----------------------------------------------------------------------------
-// RSISpeechRecognitionCustomCommands::GetAllModelBankIDs
-// Calls the controller plugin to get all model bank IDs.
-// -----------------------------------------------------------------------------
-//
-EXPORT_C TInt RSISpeechRecognitionCustomCommands::GetAllModelBankIDs()
- {
-
- return iController.CustomCommandSync(iDestinationPckg, ESrGetAllModelBankIDs,
- KNullDesC8, KNullDesC8); // Async
-
- }
-
-// -----------------------------------------------------------------------------
-// RSISpeechRecognitionCustomCommands::GetAllModelIDs
-// Sends a command to the controller to get all model IDs from a model bank.
-// -----------------------------------------------------------------------------
-//
-EXPORT_C TInt RSISpeechRecognitionCustomCommands::GetAllModelIDs(
- TSIModelBankID aModelBankID)
- {
-
- TSrsModelBankIDPckg modelBankIDPckg = aModelBankID;
-
- return iController.CustomCommandSync(iDestinationPckg, ESrGetAllModelIDs,
- modelBankIDPckg, KNullDesC8); // Async
-
- }
-
-// -----------------------------------------------------------------------------
-// RSISpeechRecognitionCustomCommands::GetAllPronunciationIDs
-// Sends a command to the controller to get all pronunciation IDs from a lexicon.
-// -----------------------------------------------------------------------------
-//
-EXPORT_C TInt RSISpeechRecognitionCustomCommands::GetAllPronunciationIDs(
- TSILexiconID aLexiconID)
- {
-
- TSrsLexiconIDPckg lexiconIDPckg = aLexiconID;
- return iController.CustomCommandSync(iDestinationPckg,
- ESrGetAllPronunciationIDs,
- lexiconIDPckg, KNullDesC8); // Async
-
- }
-
-// -----------------------------------------------------------------------------
-// RSISpeechRecognitionCustomCommands::GetAllRuleIDs
-// Sends a command to the controller to get all rule IDs from a grammar.
-// -----------------------------------------------------------------------------
-//
-EXPORT_C TInt RSISpeechRecognitionCustomCommands::GetAllRuleIDs(
- TSIGrammarID aGrammarID)
- {
-
- TSrsGrammarIDPckg grammarIDPckg = aGrammarID;
-
- return iController.CustomCommandSync(iDestinationPckg, ESrGetAllRuleIDs,
- grammarIDPckg, KNullDesC8); // Async
-
- }
-
-// -----------------------------------------------------------------------------
-// RSISpeechRecognitionCustomCommands::GetEngineProperties
-// Sends a command to the controller to get the engine properties.
-// -----------------------------------------------------------------------------
-//
-EXPORT_C TInt RSISpeechRecognitionCustomCommands::GetEngineProperties(
- const RArray<TInt>& aPropertyId,
- RArray<TInt>& aPropertyValue)
- {
-
- TRAPD(err, DoGetEnginePropertiesL(aPropertyId, aPropertyValue));
- return err;
-
- }
-
-// -----------------------------------------------------------------------------
-// RSISpeechRecognitionCustomCommands::GetModelCount
-// Sends a command to the controller to get the number of models in a model bank.
-// -----------------------------------------------------------------------------
-//
-EXPORT_C TInt RSISpeechRecognitionCustomCommands::GetModelCount(
- TSIModelBankID aModelBankID, TInt& aModelCount)
- {
-
- TSrsModelBankIDPckg modelBankPckg = aModelBankID;
- TSrsIntPtrPckg modelCountPtrPckg = &aModelCount;
-
- return iController.CustomCommandSync(iDestinationPckg, ESrGetModelCount,
- modelBankPckg, modelCountPtrPckg);
-
- }
-
-
-// -----------------------------------------------------------------------------
-// RSISpeechRecognitionCustomCommands::GetRuleValidity
-// Sends a command to the controller to determine if a rule is valid.
-// -----------------------------------------------------------------------------
-//
-EXPORT_C TInt RSISpeechRecognitionCustomCommands::GetRuleValidity(
- TSIGrammarID aGrammarID,
- TSIRuleID aRuleID, TBool& aValid)
- {
-
- TSrsRuleValidity srsRuleValidity(aGrammarID, aRuleID, &aValid);
- TSrsRuleValidityPckg srsRuleValidityPckg(srsRuleValidity);
-
- return iController.CustomCommandSync(iDestinationPckg, ESrGetRuleValidity,
- srsRuleValidityPckg, KNullDesC8);
-
- }
-
-// -----------------------------------------------------------------------------
-// RSISpeechRecognitionCustomCommands::LoadGrammar
-// Sends a command to the controller to load the specified grammar.
-// -----------------------------------------------------------------------------
-//
-EXPORT_C TInt RSISpeechRecognitionCustomCommands::LoadGrammar(
- TSIGrammarID aGrammarID)
- {
-
- TSrsGrammarIDPckg pckg = aGrammarID;
- return iController.CustomCommandSync(iDestinationPckg, ESrLoadGrammar,
- pckg, KNullDesC8); // Async
-
- }
-
-// -----------------------------------------------------------------------------
-// RSISpeechRecognitionCustomCommands::ActivateGrammar
-// Sends a command to the controller to activate a grammar
-// -----------------------------------------------------------------------------
-//
-EXPORT_C TInt RSISpeechRecognitionCustomCommands::ActivateGrammar(
- TSIGrammarID aGrammarID)
- {
- TSrsGrammarIDPckg pckg = aGrammarID;
- return iController.CustomCommandSync( iDestinationPckg, ESrActivateGrammar,
- pckg, KNullDesC8 ); // Async
-
- }
-
-// -----------------------------------------------------------------------------
-// RSISpeechRecognitionCustomCommands::DeactivateGrammar
-// Sends a command to the controller to deactivate a gramamr
-// -----------------------------------------------------------------------------
-//
-EXPORT_C TInt RSISpeechRecognitionCustomCommands::DeactivateGrammar(
- TSIGrammarID aGrammarID)
- {
- TSrsGrammarIDPckg pckg = aGrammarID;
- return iController.CustomCommandSync( iDestinationPckg, ESrDeactivateGrammar,
- pckg, KNullDesC8); // Async
-
- }
-
-// -----------------------------------------------------------------------------
-// RSISpeechRecognitionCustomCommands::LoadLexicon
-// Sends a command to the controller to load the specified lexican.
-// -----------------------------------------------------------------------------
-//
-EXPORT_C TInt RSISpeechRecognitionCustomCommands::LoadLexicon(
- TSILexiconID aLexiconID)
- {
-
- TSrsLexiconIDPckg pckg = aLexiconID;
- return iController.CustomCommandSync(iDestinationPckg, ESrLoadLexicon,
- pckg, KNullDesC8); // Async
-
- }
-
-// -----------------------------------------------------------------------------
-// RSISpeechRecognitionCustomCommands::LoadModels
-// Sends a command to the controller to load all models from a model bank.
-// -----------------------------------------------------------------------------
-//
-EXPORT_C TInt RSISpeechRecognitionCustomCommands::LoadModels(
- TSIModelBankID aModelBankID)
- {
-
- TSrsModelIDPckg pckg = aModelBankID;
- return iController.CustomCommandSync(iDestinationPckg, ESrLoadModels,
- pckg, KNullDesC8); // Async
-
- }
-
-// -----------------------------------------------------------------------------
-// RSISpeechRecognitionCustomCommands::Record
-// Sends a command to the controller to start recording an utterance for either
-// training or recognition
-// -----------------------------------------------------------------------------
-//
-EXPORT_C TInt RSISpeechRecognitionCustomCommands::Record(
- TTimeIntervalMicroSeconds32 aRecordTime)
- {
-
- TSrsTimeIntervalMicroSeconds32Pckg pckg = aRecordTime;
- return iController.CustomCommandSync(iDestinationPckg, ESrRecord,
- pckg, KNullDesC8); // Async
-
- }
-
-// -----------------------------------------------------------------------------
-// RSISpeechRecognitionCustomCommands::RemoveGrammar
-// Sends a command to the controller to remove a grammar.
-// -----------------------------------------------------------------------------
-//
-EXPORT_C TInt RSISpeechRecognitionCustomCommands::RemoveGrammar(
- TSIGrammarID aGrammarID)
- {
-
- TSrsGrammarIDPckg pckg = aGrammarID;
- return iController.CustomCommandSync(iDestinationPckg, ESrRemoveGrammar,
- pckg, KNullDesC8);
-
- }
-
-// -----------------------------------------------------------------------------
-// RSISpeechRecognitionCustomCommands::RemoveLexicon
-// Sends a command to the controller to remove a lexicon.
-// -----------------------------------------------------------------------------
-//
-EXPORT_C TInt RSISpeechRecognitionCustomCommands::RemoveLexicon(
- TSILexiconID aLexiconID)
- {
-
- TSrsLexiconIDPckg pckg = aLexiconID;
- return iController.CustomCommandSync(iDestinationPckg, ESrRemoveLexicon,
- pckg, KNullDesC8);
-
- }
-
-// -----------------------------------------------------------------------------
-// RSISpeechRecognitionCustomCommands::RemoveModelBank
-// Sends a command to the controller to remove a model bank and all associated
-// models.
-// -----------------------------------------------------------------------------
-//
-EXPORT_C TInt RSISpeechRecognitionCustomCommands::RemoveModelBank(
- TSIModelBankID aModelBankID)
- {
-
- TSrsModelBankIDPckg modelBankIDPckg = aModelBankID;
- return iController.CustomCommandSync(iDestinationPckg, ESrRemoveModelBank,
- modelBankIDPckg, KNullDesC8);
-
- }
-
-// -----------------------------------------------------------------------------
-// RSISpeechRecognitionCustomCommands::RemoveModel
-// Sends a command to the controller to remove a model from a model bank.
-// -----------------------------------------------------------------------------
-//
-EXPORT_C TInt RSISpeechRecognitionCustomCommands::RemoveModel(
- TSIModelBankID aModelBankID,
- TSIModelID aModelID)
- {
-
- TSrsModelBankIDPckg modelBankIDPckg = aModelBankID;
- TSrsModelIDPckg modelIDPckg = aModelID;
-
- return iController.CustomCommandSync(iDestinationPckg, ESrRemoveModel,
- modelBankIDPckg, modelIDPckg); // Async
-
- }
-
-// -----------------------------------------------------------------------------
-// RSISpeechRecognitionCustomCommands::RemovePronunciation
-// Sends a command to the controller to remove a pronunciation.
-// -----------------------------------------------------------------------------
-//
-EXPORT_C TInt RSISpeechRecognitionCustomCommands::RemovePronunciation(
- TSILexiconID aLexiconID,
- TSIPronunciationID aPronunciationID)
- {
-
- TSrsLexiconIDPckg lexiconIDPckg = aLexiconID;
- TSrsPronunciationIDPckg pronunciationIDPckg = aPronunciationID;
-
- return iController.CustomCommandSync(iDestinationPckg, ESrRemovePronunciation,
- lexiconIDPckg, pronunciationIDPckg); // Async
-
- }
-
-// -----------------------------------------------------------------------------
-// RSISpeechRecognitionCustomCommands::RemoveRule
-// Sends a command to the controller to remove a rule.
-// -----------------------------------------------------------------------------
-//
-EXPORT_C TInt RSISpeechRecognitionCustomCommands::RemoveRule(
- TSIGrammarID aGrammarID,
- TSIRuleID aRuleID)
- {
-
- TSrsGrammarIDPckg grammarIDPckg = aGrammarID;
- TSrsRuleIDPckg ruleIDPckg = aRuleID;
-
- return iController.CustomCommandSync(iDestinationPckg, ESrRemoveRule,
- grammarIDPckg, ruleIDPckg); // Async
-
- }
-
-// -----------------------------------------------------------------------------
-// RSISpeechRecognitionCustomCommands::RemoveRules
-// Sends a command to the controller to remove a rule.
-// -----------------------------------------------------------------------------
-//
-EXPORT_C TInt RSISpeechRecognitionCustomCommands::RemoveRules(
- TSIGrammarID aGrammarID,
- RArray<TSIRuleID>& aRuleIDs)
- {
- RUBY_DEBUG1( "RSISpeechRecognitionCustomCommands::RemoveRules GrammarID [%d]", aGrammarID );
-
- TSrsGrammarIDPckg grammarIDPckg = aGrammarID;
-
- CBufFlat* flatBuf = 0;
-
- /** @todo Implement externalize, that takes arrays of Uint32? */
- TRAPD( err, flatBuf
- = ExternalizeIntArrayL( reinterpret_cast<RArray<TInt>&> ( aRuleIDs ) ) );
-
- if ( err != KErrNone )
- {
- delete flatBuf;
- return err;
- }
- // SRS will signal, when the rule IDs are ready.
- TInt ret = iController.CustomCommandSync(iDestinationPckg, ESrRemoveRules,
- grammarIDPckg, flatBuf->Ptr(0) ); // Async
- delete flatBuf;
-
- return( ret );
- }
-
-// -----------------------------------------------------------------------------
-// RSISpeechRecognitionCustomCommands::SetClientUid
-// Sends a command to the controller to set the client UID.
-// -----------------------------------------------------------------------------
-//
-EXPORT_C TInt RSISpeechRecognitionCustomCommands::SetClientUid( TUid aClientUid )
-{
-
- TSrsUidPckg uidPckg = aClientUid;
- return iController.CustomCommandSync(iDestinationPckg,
- ESrSetClientUid, uidPckg, KNullDesC8);
-
-}
-
-
-// -----------------------------------------------------------------------------
-// RSISpeechRecognitionCustomCommands::StartRecSession
-// Sends a command to the controller to begin a recognition session.
-// -----------------------------------------------------------------------------
-//
-EXPORT_C TInt RSISpeechRecognitionCustomCommands::StartRecSession(
- TNSSRecognitionMode aMode)
- {
-
- TSrsRecognitionModePckg recognitionModePckg = aMode;
- TInt err = iController.CustomCommandSync(iDestinationPckg,
- ESrStartRecSession, recognitionModePckg, KNullDesC8);
-
- return err;
-
- }
-
-// -----------------------------------------------------------------------------
-// RSISpeechRecognitionCustomCommands::UnloadRule
-// Sends a command to the controller to add a rule.
-// -----------------------------------------------------------------------------
-//
-EXPORT_C TInt RSISpeechRecognitionCustomCommands::UnloadRule(
- TSIGrammarID aGrammarID,
- TSIRuleID aRuleID)
- {
-
- TSrsGrammarIDPckg grammarIDPckg = aGrammarID;
- TSrsRuleIDPckg ruleIDPtrPckg = aRuleID;
-
- return iController.CustomCommandSync(iDestinationPckg, ESrUnloadRule,
- grammarIDPckg, ruleIDPtrPckg);
-
- }
-
-// -----------------------------------------------------------------------------
-// RSISpeechRecognitionCustomCommands::LoadEngineParameters
-// Sends a command to the controller to load the parameters into
-// the engine.
-// -----------------------------------------------------------------------------
-//
-EXPORT_C TInt RSISpeechRecognitionCustomCommands::LoadEngineParameters(
- const RArray<TInt>& aParameterId,
- const RArray<TInt>& aParameterValue)
- {
-
- TRAPD(error, DoLoadEngineParametersL(aParameterId, aParameterValue));
- return error;
-
- }
-
-
-// -----------------------------------------------------------------------------
-// RSISpeechRecognitionCustomCommands::GetPronunciationIDArrayL
-// Sends a command to get the pronunciation ID array.
-// -----------------------------------------------------------------------------
-//
-EXPORT_C void RSISpeechRecognitionCustomCommands::GetPronunciationIDArrayL(
- RArray<TSIPronunciationID>& aPronunciationIDs)
- {
-
- TPckgBuf<TInt> pckgSize;
-
- User::LeaveIfError(iController.CustomCommandSync(iDestinationPckg,
- ESrGetPronunciationIDArraySize,
- KNullDesC8,
- KNullDesC8,
- pckgSize));
-
-
- HBufC8* buf = HBufC8::NewLC(pckgSize()*sizeof(TUint32));
- TPtr8 ptr = buf->Des();
-
- User::LeaveIfError(iController.CustomCommandSync(iDestinationPckg,
- ESrGetPronunciationIDArrayContents,
- KNullDesC8,
- KNullDesC8,
- ptr));
-
- RDesReadStream stream(ptr);
- CleanupClosePushL(stream);
-
- for (TInt i=0; i<pckgSize(); i++)
- {
- User::LeaveIfError(aPronunciationIDs.Append(stream.ReadUint32L()));
- }
-
- CleanupStack::PopAndDestroy(2);//stream, buf
-
- }
-
-// -----------------------------------------------------------------------------
-// RSISpeechRecognitionCustomCommands::GetRuleIDArrayL
-// Sends a command to get the rule ID array.
-// -----------------------------------------------------------------------------
-//
-EXPORT_C void RSISpeechRecognitionCustomCommands::GetRuleIDArrayL(
- RArray<TSIRuleID>& aRuleIDs)
- {
-
- TPckgBuf<TInt> pckgSize;
-
- User::LeaveIfError(iController.CustomCommandSync(iDestinationPckg,
- ESrGetRuleIDArraySize,
- KNullDesC8,
- KNullDesC8,
- pckgSize));
-
- HBufC8* buf = HBufC8::NewLC(pckgSize()*sizeof(TUint32));
- TPtr8 ptr = buf->Des();
-
- User::LeaveIfError(iController.CustomCommandSync(iDestinationPckg,
- ESrGetRuleIDArrayContents,
- KNullDesC8,
- KNullDesC8,
- ptr));
-
- RDesReadStream stream(ptr);
- CleanupClosePushL(stream);
-
- for (TInt i=0; i<pckgSize(); i++)
- {
- User::LeaveIfError(aRuleIDs.Append(stream.ReadUint32L()));
- }
-
- CleanupStack::PopAndDestroy(2);//stream, buf
-
- }
-
-// -----------------------------------------------------------------------------
-// RSISpeechRecognitionCustomCommands::GetModelIDArrayL
-// Sends a command to get the model ID array.
-// -----------------------------------------------------------------------------
-//
-EXPORT_C void RSISpeechRecognitionCustomCommands::GetModelIDArrayL(
- RArray<TSIModelID>& aModelIDs)
- {
-
- TPckgBuf<TInt> pckgSize;
-
- User::LeaveIfError(iController.CustomCommandSync(iDestinationPckg,
- ESrGetModelIDArraySize,
- KNullDesC8,
- KNullDesC8,
- pckgSize));
-
- HBufC8* buf = HBufC8::NewLC(pckgSize()*sizeof(TUint32));
- TPtr8 ptr = buf->Des();
-
- User::LeaveIfError(iController.CustomCommandSync(iDestinationPckg,
- ESrGetModelIDArrayContents,
- KNullDesC8,
- KNullDesC8,
- ptr));
-
- RDesReadStream stream(ptr);
- CleanupClosePushL(stream);
-
- for (TInt i=0; i<pckgSize(); i++)
- {
- User::LeaveIfError( aModelIDs.Append( (TSIModelID)stream.ReadUint32L() ) );
- }
-
- CleanupStack::PopAndDestroy( 2 );//stream, buf
-
- }
-
-// -----------------------------------------------------------------------------
-// RSISpeechRecognitionCustomCommands::GetGrammarIDArrayL
-// Sends a command to get the grammar ID array.
-// -----------------------------------------------------------------------------
-//
-EXPORT_C void RSISpeechRecognitionCustomCommands::GetGrammarIDArrayL(
- RArray<TSIGrammarID>& aGrammarIDs)
- {
-
- TPckgBuf<TInt> pckgSize;
-
- User::LeaveIfError(iController.CustomCommandSync(iDestinationPckg,
- ESrGetGrammarIDArraySize,
- KNullDesC8,
- KNullDesC8,
- pckgSize));
-
- HBufC8* buf = HBufC8::NewLC(pckgSize()*sizeof(TUint32));
- TPtr8 ptr = buf->Des();
-
- User::LeaveIfError(iController.CustomCommandSync(iDestinationPckg,
- ESrGetGrammarIDArrayContents,
- KNullDesC8,
- KNullDesC8,
- ptr));
-
- RDesReadStream stream(ptr);
- CleanupClosePushL(stream);
-
- for ( TInt i = 0; i < pckgSize(); i++ )
- {
- User::LeaveIfError( aGrammarIDs.Append( (TSIGrammarID)stream.ReadUint32L() ) );
- }
-
- CleanupStack::PopAndDestroy( 2 );//stream, buf
-
- }
-
-// -----------------------------------------------------------------------------
-// RSISpeechRecognitionCustomCommands::GetLexiconIDArrayL
-// Sends a command to get the lexicon ID array.
-// -----------------------------------------------------------------------------
-//
-EXPORT_C void RSISpeechRecognitionCustomCommands::GetLexiconIDArrayL(
- RArray<TSILexiconID>& aLexiconIDs)
- {
-
- TPckgBuf<TInt> pckgSize;
-
- User::LeaveIfError(iController.CustomCommandSync(iDestinationPckg,
- ESrGetLexiconIDArraySize,
- KNullDesC8,
- KNullDesC8,
- pckgSize));
-
- TInt size = pckgSize();
- HBufC8* buf = HBufC8::NewLC(size*sizeof(TUint32));
- TPtr8 ptr = buf->Des();
-
- User::LeaveIfError(iController.CustomCommandSync(iDestinationPckg,
- ESrGetLexiconIDArrayContents,
- KNullDesC8,
- KNullDesC8,
- ptr));
-
- RDesReadStream stream(ptr);
- CleanupClosePushL(stream);
-
- for ( TInt i = 0; i < pckgSize(); i++ )
- {
- User::LeaveIfError( aLexiconIDs.Append( (TSILexiconID)stream.ReadUint32L() ) );
- }
-
- CleanupStack::PopAndDestroy(2);//stream, buf
-
- }
-
-// -----------------------------------------------------------------------------
-// RSISpeechRecognitionCustomCommands::GetLexiconIDArrayL
-// Sends a command to get the lexicon ID array.
-// -----------------------------------------------------------------------------
-//
-EXPORT_C void RSISpeechRecognitionCustomCommands::GetModelBankIDArrayL(
- RArray<TSIModelBankID>& aModelBankIDs)
- {
-
- TPckgBuf<TInt> pckgSize;
-
- User::LeaveIfError(iController.CustomCommandSync(iDestinationPckg,
- ESrGetModelBankIDArraySize,
- KNullDesC8,
- KNullDesC8,
- pckgSize));
-
- HBufC8* buf = HBufC8::NewLC(pckgSize()*sizeof(TUint32));
- TPtr8 ptr = buf->Des();
-
- User::LeaveIfError(iController.CustomCommandSync(iDestinationPckg,
- ESrGetModelBankIDArrayContents,
- KNullDesC8,
- KNullDesC8,
- ptr));
-
- RDesReadStream stream(ptr);
- CleanupClosePushL(stream);
-
- for ( TInt i = 0; i < pckgSize(); i++ )
- {
- User::LeaveIfError( aModelBankIDs.Append( (TSIModelBankID)stream.ReadUint32L() ) );
- }
-
- CleanupStack::PopAndDestroy(2);//stream, buf
-
- }
-
-// -----------------------------------------------------------------------------
-// RSISpeechRecognitionCustomCommands::GetSIResultSetL
-// Sends a command to get the speaker independent recognition result set.
-// -----------------------------------------------------------------------------
-//
-EXPORT_C void RSISpeechRecognitionCustomCommands::GetSIResultSetL(
- CSIClientResultSet& aResultSet)
- {
-
- TPckgBuf<TInt> pckgSize;
-
- User::LeaveIfError(iController.CustomCommandSync(iDestinationPckg,
- ESrGetClientResultSetSizeSI,
- KNullDesC8,
- KNullDesC8,
- pckgSize));
-
- HBufC8* buf = HBufC8::NewLC( pckgSize() );
- TPtr8 ptr = buf->Des();
-
- User::LeaveIfError(iController.CustomCommandSync(iDestinationPckg,
- ESrGetClientResultSet,
- KNullDesC8,
- KNullDesC8,
- ptr));
-
- RDesReadStream stream(ptr);
- CleanupClosePushL(stream);
-
- aResultSet.InternalizeL(stream);
- CleanupStack::PopAndDestroy(2);//stream, buf
-
- }
-
-// -----------------------------------------------------------------------------
-// RSISpeechRecognitionCustomCommands::DoRecognizeL
-// Sends a command to get the recognition result set.
-// -----------------------------------------------------------------------------
-//
-void RSISpeechRecognitionCustomCommands::DoRecognizeL(CSDClientResultSet& /*aResultSet*/)
- {
- RUBY_DEBUG0( "RSISpeechRecognitionCustomCommands::DoRecognizeL is NOT supported" );
- User::Leave( KErrNotSupported );
- }
-
-// -----------------------------------------------------------------------------
-// RSISpeechRecognitionCustomCommands::DoRecognizeSIL
-// Sends a command to get the recognition result set.
-// -----------------------------------------------------------------------------
-//
-void RSISpeechRecognitionCustomCommands::DoRecognizeSIL(CSIClientResultSet& aResultSet)
- {
- CBufFlat* dataCopyBuffer = CBufFlat::NewL(KExpandSize);
- CleanupStack::PushL(dataCopyBuffer);
-
- RBufWriteStream stream;
- stream.Open(*dataCopyBuffer);
- CleanupClosePushL(stream);
-
- aResultSet.ExternalizeL(stream);
-
- User::LeaveIfError(iController.CustomCommandSync(iDestinationPckg,
- ESrRecognizeSI,
- dataCopyBuffer->Ptr(0),
- KNullDesC8));
-
- CleanupStack::PopAndDestroy(2); //stream,dataCopyBuffer
- }
-
-// -----------------------------------------------------------------------------
-// RSISpeechRecognitionCustomCommands::DoGetEnginePropertiesL
-// Sends a command to get the engine properties.
-// -----------------------------------------------------------------------------
-//
-void RSISpeechRecognitionCustomCommands::DoGetEnginePropertiesL(
- const RArray<TInt>& aPropertyId,
- RArray<TInt>& aPropertyValue)
- {
-
- CBufFlat* param1 = ExternalizeIntArrayL(aPropertyId);
- CleanupStack::PushL(param1);
-
- TInt aNumberResults = aPropertyId.Count(); // same number of values as properties
-
- HBufC8* buf = HBufC8::NewLC(aNumberResults *sizeof(TInt));
- TPtr8 ptr = buf->Des();
-
- User::LeaveIfError(iController.CustomCommandSync(iDestinationPckg,
- ESrGetEngineProperties,
- param1->Ptr(0),
- KNullDesC8,
- ptr));
-
-
- InternalizeIntArrayL(ptr,aNumberResults,aPropertyValue);
- CleanupStack::PopAndDestroy(2);//buf,param1
-
- }
-
-// -----------------------------------------------------------------------------
-// RSISpeechRecognitionCustomCommands::DoLoadEngineParametersL
-// Sends a command to load the engine parameters.
-// -----------------------------------------------------------------------------
-//
-void RSISpeechRecognitionCustomCommands::DoLoadEngineParametersL(
- const RArray<TInt>& aParameterId,
- const RArray<TInt>& aParameterValue)
- {
-
- CBufFlat* param1 = ExternalizeIntArrayL(aParameterId);
- CleanupStack::PushL(param1);
- CBufFlat* param2 = ExternalizeIntArrayL(aParameterValue);
- CleanupStack::PushL(param2);
- User::LeaveIfError(iController.CustomCommandSync(iDestinationPckg,
- ESrLoadEngineParameters,
- param1->Ptr(0),
- param2->Ptr(0)));
-
- CleanupStack::PopAndDestroy(2); //param2, param1
-
- }
-
-// -----------------------------------------------------------------------------
-// RSISpeechRecognitionCustomCommands::ExternalizeIntArrayL
-// Externalizes an interger array.
-// -----------------------------------------------------------------------------
-//
-CBufFlat* RSISpeechRecognitionCustomCommands::ExternalizeIntArrayL(
- const RArray<TInt>& aArray)
- {
-
- CBufFlat* dataCopyBuffer = CBufFlat::NewL(KExpandSize);
- CleanupStack::PushL(dataCopyBuffer);
- RBufWriteStream stream;
- stream.Open(*dataCopyBuffer);
- CleanupClosePushL(stream);
-
- stream.WriteInt32L(aArray.Count());
-
- for (TInt i=0;i<aArray.Count();i++)
- stream.WriteUint32L(aArray[i]);
-
- CleanupStack::PopAndDestroy(1); //stream
- CleanupStack::Pop(); //dataCopyBuffer;
- return dataCopyBuffer;
-
- }
-
-// -----------------------------------------------------------------------------
-// RSISpeechRecognitionCustomCommands::InternalizeIntArrayL
-// Internalizes an interger array.
-// -----------------------------------------------------------------------------
-//
-void RSISpeechRecognitionCustomCommands::InternalizeIntArrayL(
- TDes8& aDes,
- TInt aNumberElements,
- RArray<TInt>& aArray)
- {
-
- RDesReadStream stream(aDes);
- CleanupClosePushL(stream);
-
- for (TInt i=0; i<aNumberElements; i++)
- {
- User::LeaveIfError(aArray.Append(stream.ReadInt32L()));
- }
-
- CleanupStack::PopAndDestroy();//stream
-
- }
-
-/************************** New SI functions start here ***********************/
-
-// -----------------------------------------------------------------------------
-// Adapts speaker independent models according using a correct recognition result.
-// -----------------------------------------------------------------------------
-//
-EXPORT_C TInt RSISpeechRecognitionCustomCommands::Adapt(const CSIClientResultSet& aResultSet, TInt aCorrect)
- {
- CBufFlat* dataBuf = 0;
- RBufWriteStream dataStream;
- TInt ret = KErrNone;
- TBool forever = ETrue;
-
- TPckgBuf<TInt> correctPckg( aCorrect );
-
- while(forever)
- {
-// Poor man's exception handling: while and break
-#define BREAK( error ) if ( error != KErrNone ) { break; }
-
- // Allocate buffer for storing CSIClientResultSet
- TRAP ( ret, dataBuf = CBufFlat::NewL( KExpandSize ) );
- BREAK( ret );
-
- // Open a stream to the buffer
- dataStream.Open( *dataBuf );
-
- // Pack the data
- TRAP ( ret, aResultSet.ExternalizeL( dataStream ) );
- BREAK( ret );
-
- // Send through MMF
- ret = iController.CustomCommandSync(
- iDestinationPckg,
- ESrAdapt,
- dataBuf->Ptr( 0 ),
- correctPckg );
-
- break;
- }
-
- dataStream.Close();
- delete dataBuf;
-
- return ret;
- }
-
-// -----------------------------------------------------------------------------
-// Adds a pronunciation to the given lexicon.
-// -----------------------------------------------------------------------------
-//
-EXPORT_C TInt RSISpeechRecognitionCustomCommands::AddPronunciation(
- TSILexiconID aLexiconID,
- const TDesC& aTrainText,
- TLanguage aLanguage,
- TSIPronunciationID& aPronunciationID)
- {
- TSrsAddPronunciationSI srsAddPronunciation( aLexiconID, aTrainText.Length(),
- aLanguage, aPronunciationID );
- TSrsAddPronunciationSIPckg pckg( srsAddPronunciation );
-
- TInt trainTextSize( aTrainText.Size() );
- TUint8* trainTextPtr = (TUint8*)aTrainText.Ptr();
- TPtrC8 trainTextDes( trainTextPtr, trainTextSize );
-
- return iController.CustomCommandSync(iDestinationPckg, ESrAddPronunciationSI,
- pckg, trainTextDes );
- }
-
-// -----------------------------------------------------------------------------
-// Adds a rule variant to a rule in a grammar.
-// -----------------------------------------------------------------------------
-//
-EXPORT_C TInt RSISpeechRecognitionCustomCommands::AddRuleVariant(
- TSIGrammarID aGrammarID,
- TSILexiconID aLexiconID,
- const RArray<TSIPronunciationID>& aPronunciationIDs,
- TSIRuleID aRuleID,
- TSIRuleVariantID& aRuleVariantID )
- {
- TSrsAddRuleVariant srsAddRuleVariant( aGrammarID,
- aLexiconID,
- aPronunciationIDs.Count(),
- aRuleID,
- &aRuleVariantID );
- TSrsAddRuleVariantPckg pckg( srsAddRuleVariant );
-
- TUint8* pronunIdPtr = (TUint8*)&(aPronunciationIDs[0]);
- TPtrC8 pronunIdDes( pronunIdPtr,
- sizeof( TSIPronunciationID ) * aPronunciationIDs.Count()
- );
-
- return iController.CustomCommandSync(iDestinationPckg, ESrAddRuleVariant,
- pckg, pronunIdDes );
- }
-
-// -----------------------------------------------------------------------------
-// Trains a voice tag. Adds the text to the lexicon, and creates the required
-// rules and rule variants.
-// -----------------------------------------------------------------------------
-//
-EXPORT_C TInt RSISpeechRecognitionCustomCommands::AddVoiceTag(
- const MDesCArray& aTrainArray,
- const RArray<TLanguage>& aLanguageArray,
- TSILexiconID aLexiconID,
- TSIGrammarID aGrammarID,
- TSIRuleID& aRuleID)
- {
- TSrsAddVoiceTag srsAddVoiceTagData( aLexiconID, aGrammarID, &aRuleID, aLanguageArray );
- TSrsAddVoiceTagPckg pckg( srsAddVoiceTagData );
-
- CBufFlat* flatBuf = 0;
- TRAPD( err, flatBuf
- = SICustomCommandData::ExternalizeDesCArrayL( aTrainArray ) );
-
- if ( err != KErrNone )
- return( err );
-
- // SRS will signal, when the rule IDs are ready.
- TInt ret = iController.CustomCommandSync( iDestinationPckg, ESrAddVoiceTag,
- pckg, flatBuf->Ptr( 0 ) ); // Async
-
- delete flatBuf;
-
- return( ret );
- }
-
-// -----------------------------------------------------------------------------
-// Trains voice tags. If the training fails for some of the names (but not all),
-// it is signaled by setting the Rule ID to KInvalidRuleID.
-// -----------------------------------------------------------------------------
-//
-EXPORT_C TInt RSISpeechRecognitionCustomCommands::AddVoiceTags(
- const RPointerArray<MDesCArray>& aTrainArray,
- const RArray<TLanguage>& aLanguageArray,
- TSILexiconID aLexiconID,
- TSIGrammarID aGrammarID,
- RArray<TSIRuleID>& /*aRuleID*/)
- {
- TSrsAddVoiceTag srsAddVoiceTagData( aLexiconID, aGrammarID, NULL, aLanguageArray );
- TSrsAddVoiceTagPckg pckg( srsAddVoiceTagData );
-
- CBufFlat* flatBuf = 0;
- TRAPD( err, flatBuf
- = SICustomCommandData::ExternalizeDesCArrayArrayL( aTrainArray ) );
-
- if ( err != KErrNone )
- {
- delete flatBuf;
- return err;
- }
-
- // SRS will signal, when the rule IDs are ready.
- TInt ret = iController.CustomCommandSync( iDestinationPckg, ESrAddVoiceTags,
- pckg, flatBuf->Ptr( 0 ) ); // Async
- delete flatBuf;
-
- return( ret );
- }
-
-#ifdef __SINDE_TRAINING
-// -----------------------------------------------------------------------------
-// Trains a voice tag. Adds the text to the lexicon, and creates the required
-// rules and rule variants.
-// -----------------------------------------------------------------------------
-//
-EXPORT_C TInt RSISpeechRecognitionCustomCommands::AddVoiceTag( const MDesCArray& aTrainArray,
- const RArray<RLanguageArray>& aLanguageArray,
- TSILexiconID aLexiconID,
- TSIGrammarID aGrammarID,
- TSIRuleID& aRuleID )
- {
- TSrsAddSindeVoiceTag srsAddVoiceTagData( aLexiconID, aGrammarID, &aRuleID, aLanguageArray );
- TSrsAddSindeVoiceTagPckg pckg( srsAddVoiceTagData );
-
- CBufFlat* flatBuf( NULL );
- TRAPD( err, flatBuf = SICustomCommandData::ExternalizeDesCArrayL( aTrainArray ) );
-
- if ( err != KErrNone )
- {
- return err;
- }
-
- // SRS plugin will signal, when the rule IDs are ready.
- TInt ret = iController.CustomCommandSync( iDestinationPckg, ESrAddSindeVoiceTag,
- pckg, flatBuf->Ptr( 0 ) ); // Async
-
- delete flatBuf;
-
- return ret;
- }
-
-// -----------------------------------------------------------------------------
-// Trains voice tags. If the training fails for some of the names (but not all),
-// it is signaled by setting the Rule ID to KInvalidRuleID.
-// -----------------------------------------------------------------------------
-//
-EXPORT_C TInt RSISpeechRecognitionCustomCommands::AddVoiceTags( const RPointerArray<MDesCArray>& aTrainArray,
- const RArray<RLanguageArray>& aLanguageArray,
- TSILexiconID aLexiconID,
- TSIGrammarID aGrammarID,
- RArray<TSIRuleID>& /*aRuleID*/)
- {
- TSrsAddSindeVoiceTag srsAddVoiceTagData( aLexiconID, aGrammarID, NULL, aLanguageArray );
- TSrsAddSindeVoiceTagPckg pckg( srsAddVoiceTagData );
-
- CBufFlat* flatBuf( NULL );
- TRAPD( err, flatBuf = SICustomCommandData::ExternalizeDesCArrayArrayL( aTrainArray ) );
-
- if ( err != KErrNone )
- {
- delete flatBuf;
- return err;
- }
-
- // SRS plugin will signal, when the rule IDs are ready.
- TInt ret = iController.CustomCommandSync( iDestinationPckg, ESrAddSindeVoiceTags,
- pckg, flatBuf->Ptr( 0 ) ); // Async
- delete flatBuf;
-
- return ret;
- }
-
-// -----------------------------------------------------------------------------
-// Pre-starts sampling before Record() call
-// -----------------------------------------------------------------------------
-//
-EXPORT_C TInt RSISpeechRecognitionCustomCommands::PreStartSampling()
- {
- return iController.CustomCommandSync( iDestinationPckg, ESrPreStartSampling,
- KNullDesC8, KNullDesC8 ); // Async
- }
-
-#endif // SINDE_TRAINING
-
-// -----------------------------------------------------------------------------
-// Creates a new rule.
-// -----------------------------------------------------------------------------
-//
-EXPORT_C TInt RSISpeechRecognitionCustomCommands::CreateRule(TSIGrammarID aGrammarID, TSIRuleID& aRuleID)
- {
- TSrsAddRule srsCreateRule( aGrammarID, KInvalidLexiconID, KInvalidPronunciationID, &aRuleID );
- TSrsAddRulePckg pckg( srsCreateRule );
-
- return iController.CustomCommandSync(iDestinationPckg, ESrCreateRule,
- pckg, KNullDesC8 ); // Async
- }
-
-// -----------------------------------------------------------------------------
-// Starts recognition
-// -----------------------------------------------------------------------------
-//
-EXPORT_C TInt RSISpeechRecognitionCustomCommands::Recognize( CSIClientResultSet& aResultSet )
- {
- TRAPD( err, DoRecognizeSIL( aResultSet ) );
- return err;
- }
-
-// -----------------------------------------------------------------------------
-// Stops recognition. Unlike Cancel(), this function gives
-// the recognition result, if it can be guessed.
-// -----------------------------------------------------------------------------
-//
-EXPORT_C TInt RSISpeechRecognitionCustomCommands::EndRecord()
- {
- return iController.CustomCommandSync( iDestinationPckg, ESrEndRecord,
- KNullDesC8, KNullDesC8 ); // Async
- }
-
-// -----------------------------------------------------------------------------
-// Deactivates a grammar.
-// -----------------------------------------------------------------------------
-//
-EXPORT_C TInt RSISpeechRecognitionCustomCommands::UnloadGrammar( TSIGrammarID aGrammarID )
- {
- TSrsGrammarIDPckg pckg( aGrammarID );
-
- return iController.CustomCommandSync(iDestinationPckg, ESrUnloadGrammar,
- pckg, KNullDesC8 ); // Async
- }
-
-
-/************************** New SI functions stop here ************************/
-
-// End of file