--- a/srsf/sicc/src/nsssispeechrecognitioncustomcommandcommon.h Mon Jan 18 20:20:30 2010 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,687 +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 common header file for the speaker independent
-* controller. It is used by both the client & server side.
-*
-*/
-
-
-#ifndef NSSSISPEECHRECOGNITIONCUSTOMCOMMANDCOMMON_H
-#define NSSSISPEECHRECOGNITIONCUSTOMCOMMANDCOMMON_H
-
-// INCLUDE FILES
-#include <nsssispeechrecognitiondataclient.h>
-#include <nsssispeechrecognitiondatacommon.h>
-
-// CONSTANTS
-// (8CA6 = UID for dependent recognition)
-const TUid KUidInterfaceSpeakerIndependent = {0x101F8CA7};
-
-const TInt KExpandSize = 5;
-
-// Initial assumption for buffer size. If the text is larger,
-// the buffer is expanded.
-const TInt KDefaultPhraseLen = 50;
-// Hard upper limit on number of languages.
-const TInt KMaxLanguages = 10;
-// Hard upper limit on number of "segments" in the voice tag text
-const TInt KMaxPartitionsInText = 5;
-
-// FORWARD DECLARATIONS
-class TSrsRecognize;
-class TSrsAddPronunciation;
-class TSrsAddRule;
-class TSrsRuleValidity;
-class TSrsGetUtteranceDuration;
-class TSrsGetUtteranceDuration;
-class TSrsPlayUtterance;
-class TSrsAddVoiceTag;
-class TSrsAddSindeVoiceTag;
-class TSrsAddRuleVariant;
-class TSrsAddPronunciationSI;
-
-// DATA TYPES
-
-// These are the custom commands messages used to communicate with
-// the server.
-enum TSrCustomCommandMessages
-{
- ESrActivateGrammar,
- ESrAddPronunciation,
- ESrAddRule,
- ESrCancel,
- ESrCommitTrain,
- ESrCreateGrammar,
- ESrCreateLexicon,
- ESrCreateModelBank,
- ESrDeactivateGrammar,
- ESrEndRecSession,
- ESrGetAllModelIDs,
- ESrGetAllPronunciationIDs,
- ESrGetAllRuleIDs,
- ESrGetAvailableStorage,
- ESrGetEngineProperties,
- ESrGetModelCount,
- ESrGetRuleValidity,
- ESrUtteranceDuration,
- ESrLoadGrammar,
- ESrLoadLexicon,
- ESrLoadModels,
- ESrPlayUtterance,
- ESrRecognize,
- ESrRecord,
- ESrRemoveGrammar,
- ESrRemoveLexicon,
- ESrRemoveModelBank,
- ESrRemoveModel,
- ESrRemovePronunciation,
- ESrRemoveRule,
- ESrStartRecSession,
- ESrTrain,
- ESrUnloadRule,
- ESrLoadEngineParameters,
- ESrGetPronunciationIDArraySize,
- ESrGetPronunciationIDArrayContents,
- ESrGetRuleIDArraySize,
- ESrGetRuleIDArrayContents,
- ESrGetModelIDArraySize,
- ESrGetModelIDArrayContents,
- ESrGetClientResultSetSize,
- ESrGetClientResultSet,
- ESrSetClientUid,
- ESrCommitChanges,
- ESrGetAllClientGrammarIDs,
- ESrGetAllClientLexiconIDs,
- ESrGetAllClientModelBankIDs,
- ESrGetAllGrammarIDs,
- ESrGetAllLexiconIDs,
- ESrGetAllModelBankIDs,
- ESrGetGrammarIDArraySize,
- ESrGetGrammarIDArrayContents,
- ESrGetLexiconIDArraySize,
- ESrGetLexiconIDArrayContents,
- ESrGetModelBankIDArraySize,
- ESrGetModelBankIDArrayContents
-// SI extensions
- ,
- ESrAdapt,
- ESrAddPronunciationSI,
- ESrAddRuleVariant,
- ESrAddVoiceTag,
- ESrAddVoiceTags,
- ESrCreateRule,
- ESrEndRecord,
- ESrRecognizeSI,
- ESrUnloadGrammar,
- ESrGetClientResultSetSizeSI,
- ESrRemoveRules,
- ESrAddSindeVoiceTag,
- ESrAddSindeVoiceTags,
- ESrPreStartSampling
-};
-
-typedef TPckgBuf<TSrsRecognize> TSrsRecognizePckg;
-typedef TPckgBuf<TSrsAddPronunciation> TSrsAddPronunciationPckg;
-typedef TPckgBuf<TSrsAddRule> TSrsAddRulePckg;
-typedef TPckgBuf<TSrsRuleValidity> TSrsRuleValidityPckg;
-typedef TPckgBuf<TSrsGetUtteranceDuration> TSrsGetUtteranceDurationPckg;
-typedef TPckgBuf<TSrsPlayUtterance> TSrsPlayUtterancePckg;
-
-typedef TPckgBuf<TInt*> TSrsIntPtrPckg;
-typedef TPckgBuf<TNSSRecognitionMode> TSrsRecognitionModePckg;
-typedef TPckgBuf<TTimeIntervalMicroSeconds32> TSrsTimeIntervalMicroSeconds32Pckg;
-typedef TPckgBuf<TUid> TSrsUidPckg;
-
-typedef TPckgBuf<TSIGrammarID > TSrsGrammarIDPckg;
-typedef TPckgBuf<TSIGrammarID*> TSrsGrammarIDPtrPckg;
-typedef TPckgBuf<TSILexiconID> TSrsLexiconIDPckg;
-typedef TPckgBuf<TSILexiconID*> TSrsLexiconIDPtrPckg;
-typedef TPckgBuf<TSIModelID> TSrsModelIDPckg;
-typedef TPckgBuf<TSIModelID*> TSrsModelIDPtrPckg;
-typedef TPckgBuf<TSIModelBankID> TSrsModelBankIDPckg;
-typedef TPckgBuf<TSIModelBankID*> TSrsModelBankIDPtrPckg;
-typedef TPckgBuf<TSIPronunciationID> TSrsPronunciationIDPckg;
-typedef TPckgBuf<TSIRuleID> TSrsRuleIDPckg;
-typedef TPckgBuf<TSIRuleID*> TSrsRuleIDPtrPckg;
-
-typedef TPckgBuf<TSrsAddVoiceTag> TSrsAddVoiceTagPckg;
-typedef TPckgBuf<TSrsAddSindeVoiceTag> TSrsAddSindeVoiceTagPckg;
-typedef TPckgBuf<TSrsAddRuleVariant> TSrsAddRuleVariantPckg;
-typedef TPckgBuf<TSrsAddPronunciationSI> TSrsAddPronunciationSIPckg;
-
-// CLASS DECLARATION
-
-/**
-* This is the TSrsRecognize class declaration.
-*
-* @lib SpeechRecognitionCustomCommands.lib
-* @since 2.0
-*/
-#if(0)
-class TSrsRecognize
-{
-public:
-
- /**
- * C++ constructor for this class.
- * @since 2.0
- * @param -
- * @return -
- */
- TSrsRecognize() {}
-
- /**
- * C++ constructor for this class.
- * @since 2.0
- * @param aClientResultSet Pointer to client result set object.
- * @return -
- */
- TSrsRecognize(CSDClientResultSet* aClientResultSet) :
- iClientResultSet(aClientResultSet){}
-
- // member variable pointer to result set
- CSDClientResultSet* iClientResultSet;
-
-};
-#endif
-/**
-* This is the TSrsAddPronunciationSI class declaration.
-*
-* @lib SpeechRecognitionCustomCommands.lib
-* @since 2.0
-*/
-class TSrsAddPronunciation
-{
-public:
-
- /**
- * C++ constructor for this class.
- * @since 2.0
- * @param -
- * @return -
- */
- TSrsAddPronunciation() {}
-
- /**
- * C++ constructor for this class.
- * @since 2.0
- * @param aLexiconID lexicon ID
- * @param aModelBankID model bank ID
- * @param aModelID model ID
- * @param aPronunciationID pronunciation ID
- * @return -
- */
- TSrsAddPronunciation(TSILexiconID aLexiconID, TSIModelBankID aModelBankID,
- TSIModelID aModelID, TSIPronunciationID* aPronunciationID) :
- iLexiconID(aLexiconID), iModelBankID(aModelBankID),
- iModelID(aModelID), iPronunciationID(aPronunciationID)
- {}
-
- // lexicon ID member variable
- TSILexiconID iLexiconID;
- // model bank ID member variable
- TSIModelBankID iModelBankID;
- // model ID member variable
- TSIModelID iModelID;
- // pronunciation ID pointer member variable
- TSIPronunciationID* iPronunciationID;
-};
-
-
-/**
-* This is the TSrsAddRule class declaration.
-*
-* @lib SpeechRecognitionCustomCommands.lib
-* @since 2.0
-*/
-class TSrsAddRule
-{
-public:
- /**
- * C++ constructor for this class.
- * @since 2.0
- * @param -
- * @return -
- */
- TSrsAddRule() {}
-
- /**
- * C++ constructor for this class.
- * @since 2.0
- * @param aGrammarID grammar ID
- * @param aLexiconID lexicon ID
- * @param aPronunciationID pronunciation ID
- * @param aRuleID rule ID
- * @return -
- */
- TSrsAddRule(TSIGrammarID aGrammarID, TSILexiconID aLexiconID,
- TSIPronunciationID aPronunciationID, TSIRuleID* aRuleID) :
- iGrammarID(aGrammarID), iLexiconID(aLexiconID),
- iPronunciationID(aPronunciationID), iRuleID(aRuleID) {}
-
- // grammar ID member variable
- TSIGrammarID iGrammarID;
- // lexicon ID member variable
- TSILexiconID iLexiconID;
- // pronunciation ID member variable
- TSIPronunciationID iPronunciationID;
- // rule ID pointer member variable
- TSIRuleID* iRuleID;
-
-};
-
-
-/**
-* This is the TSrsRuleValidity class declaration.
-*
-* @lib SpeechRecognitionCustomCommands.lib
-* @since 2.0
-*/
-class TSrsRuleValidity
-{
-public:
- /**
- * C++ constructor for this class.
- * @since 2.0
- * @param -
- * @return -
- */
- TSrsRuleValidity() {}
-
- /**
- * C++ constructor for this class.
- * @since 2.0
- * @param aGrammarID grammar ID
- * @param aRuleID rule ID
- & @param aRuldValid indicates if the rule is valid
- * @return -
- */
- TSrsRuleValidity(TSIGrammarID aGrammarID, TSIRuleID aRuleID, TBool* aRuleValid) :
- iGrammarID(aGrammarID), iRuleID(aRuleID), iRuleValid(aRuleValid) {}
-
- // grammar ID member variable
- TSIGrammarID iGrammarID;
- // rule ID pointer member variable
- TSIRuleID iRuleID;
- // rule valid member variable
- TBool* iRuleValid;
-};
-
-/**
-* This is the TSrsGetUtteranceDuration class declaration.
-*
-* @lib SpeechRecognitionCustomCommands.lib
-* @since 2.0
-*/
-class TSrsGetUtteranceDuration
-{
-public:
- /**
- * C++ constructor for this class.
- * @since 2.0
- * @param -
- * @return -
- */
- TSrsGetUtteranceDuration() {}
-
- /**
- * C++ constructor for this class.
- * @since 2.0
- * @param aModelBankID model bank ID
- * @param aModelID model ID
- * @return -
- */
- TSrsGetUtteranceDuration(TSIModelBankID aModelBankID, TSIModelID aModelID,
- TTimeIntervalMicroSeconds32* aDuration) :
- iModelBankID(aModelBankID), iModelID(aModelID),
- iDuration(aDuration) {}
-
- // model bank ID member variable
- TSIModelBankID iModelBankID;
- // model ID member variable
- TSIModelID iModelID;
- // utterance duration
- TTimeIntervalMicroSeconds32* iDuration;
-};
-
-/**
-* This is the TSrsPlayUtterance class declaration.
-*
-* @lib SpeechRecognitionCustomCommands.lib
-* @since 2.0
-*/
-class TSrsPlayUtterance
-{
-public:
- /**
- * C++ constructor for this class.
- * @since 2.0
- * @param -
- * @return -
- */
- TSrsPlayUtterance() {}
-
- /**
- * C++ constructor for this class.
- * @since 2.0
- * @param aModelBankID model bank ID
- * @param aModelID model ID
- * @return -
- */
- TSrsPlayUtterance(TSIModelBankID aModelBankID, TSIModelID aModelID) :
- iModelBankID(aModelBankID), iModelID(aModelID) {}
-
- // model bank ID member variable
- TSIModelBankID iModelBankID;
- // model ID member variable
- TSIModelID iModelID;
-};
-
-/**
-* This class is used to moves data required by AddPronunciation method
-* over the MMF client-server barrier.
-*
-* @lib SpekaerIndependentCustomCommands.lib
-* @since 2.8
-*/
-class TSrsAddPronunciationSI
- {
- public:
- /**
- * C++ constructor for this class.
- * @since 2.8
- * @param -
- * @return -
- */
- TSrsAddPronunciationSI() {}
-
- /**
- * C++ constructor for this class.
- * @since 2.8
- * @param aLexiconID Lexicon identifier
- * @param aTextLength Length of the text to be trained.
- * @param aLanguage Pronunciation language
- * @param aPronunciation New pronunciation identifier
- * will be assigned to this variable.
- * @return -
- */
-
- TSrsAddPronunciationSI(
- TSILexiconID aLexiconID,
- TInt aTextLength,
- TLanguage aLanguage,
- TSIPronunciationID& aPronunciationID )
- {
- iLexiconID = aLexiconID;
- iLanguage = aLanguage;
- iPronunciationIDPtr = &aPronunciationID;
- iTextLength = aTextLength;
- }
-
- TSILexiconID iLexiconID;
- TLanguage iLanguage;
- TInt iTextLength;
- TSIPronunciationID *iPronunciationIDPtr;
- };
-
-
-/**
-* This class is used to moves data required by AddRuleVariant method
-* over the MMF client-server barrier.
-*
-* @lib SpekaerIndependentCustomCommands.lib
-* @since 2.8
-*/
-class TSrsAddRuleVariant
- {
- public:
- /**
- * C++ constructor for this class.
- * @since 2.8
- * @param -
- * @return -
- */
- TSrsAddRuleVariant() {}
-
- /**
- * C++ constructor for this class.
- * @since 2.8
- * @param aLexiconID Lexicon identifier
- * @param aTrainText Text to be trained. LESS THAN KMaxPhraseLen CHARACTERS.
- * @param aLanguage Pronunciation language
- * @param aPronunciation New pronunciation identifier
- * will be assigned to this variable.
- * @return -
- */
-
- TSrsAddRuleVariant(
- TSIGrammarID aGrammarID,
- TSILexiconID aLexiconID,
- TInt aPronunIDCount,
- TSIRuleID aRuleID,
- TSIRuleVariantID* aRuleVariantID
- ) :
- iGrammarID( aGrammarID ),
- iLexiconID( aLexiconID ),
- iPronunIDCount( aPronunIDCount ),
- iRuleID( aRuleID ),
- iRuleVariantID( aRuleVariantID )
- {
- // Nothing
- }
-
- TSIGrammarID iGrammarID;
- TSILexiconID iLexiconID;
- TInt iPronunIDCount;
- TSIRuleID iRuleID;
- TSIRuleVariantID* iRuleVariantID;
- };
-
-/**
-* This class is used to moves data required by AddVoiceTags method
-* over the MMF client-server barrier.
-*
-* @lib NssSpeakerIndependentCustomCommands.lib
-* @since 2.8
-*/
-class TSrsAddVoiceTag
- {
- public:
- /**
- * C++ constructor for this class.
- * @since 2.8
- */
- TSrsAddVoiceTag() {}
-
- /**
- * C++ constructor for this class.
- * @since 2.8
- *
- * @param aLexiconID Lexicon identifier
- * @param aGrammarID Grammar identifier
- * @param aRuleID
- * @param aLanguageTable Pronunciation languages
- */
- TSrsAddVoiceTag( TSILexiconID aLexiconID,
- TSIGrammarID aGrammarID,
- TSIRuleID* aRuleID,
- const RArray<TLanguage>& aLanguageTable ) :
- iLexiconID( aLexiconID ),
- iGrammarID( aGrammarID ),
- iRuleID( aRuleID )
- {
- TInt languageCount = 0;
-
- if ( &aLanguageTable != NULL )
- {
- languageCount = aLanguageTable.Count();
- }
-
- for ( TInt k = 0; k < KMaxLanguages; k++ )
- {
- if ( k < languageCount )
- {
- // If aLanguageTable == NULL, languageCount == 0 and
- // this is never called.
- iLanguages[ k ] = aLanguageTable[ k ];
- }
- else
- {
- iLanguages[ k ] = ELangNone;
- }
- }
- }
-
- /**
- * Returns a copy of language ids in RArray
- *
- * @since 2.8
- * @param aLangArray Array which is filled
- */
- void ListLanguagesL( RArray<TLanguage>& aLangArray )
- {
- for ( TInt k = 0; iLanguages[ k ] != ELangNone; k++ )
- {
- User::LeaveIfError( aLangArray.Append( iLanguages[ k ] ) );
- }
- }
-
- TSILexiconID iLexiconID;
- TSIGrammarID iGrammarID;
- TSIRuleID* iRuleID;
- TLanguage iLanguages[ KMaxLanguages ];
- };
-
-/**
-* This class is used to moves data required by AddSindeVoiceTags method
-* over the MMF client-server barrier.
-*
-* @lib NssSpeakerIndependentCustomCommands.lib
-* @since 3.1
-*/
-class TSrsAddSindeVoiceTag
- {
- public:
- /**
- * C++ constructor
- * @since 3.1
- */
- TSrsAddSindeVoiceTag() {}
-
- /**
- * C++ constructor.
- * Makes a copy LanguageArray.
- *
- * @since 3.1
- * @param aLexiconID Lexicon identifier
- * @param aGrammarID Grammar identifier
- * @param aRuleID
- * @param aLanguageTable Pronunciation languages
- */
- TSrsAddSindeVoiceTag( TSILexiconID aLexiconID,
- TSIGrammarID aGrammarID,
- TSIRuleID* aRuleID,
- const RArray<RLanguageArray>& aLanguageTable ) :
- iLexiconID( aLexiconID ),
- iGrammarID( aGrammarID ),
- iRuleID( aRuleID )
- {
- // Find out how many arrays there are inside the language array
- TInt languageArrayCount = aLanguageTable.Count();
-
- for ( TInt partsInText = 0; partsInText < KMaxPartitionsInText; partsInText++ )
- {
- RLanguageArray languages;
- TInt languageCount = 0;
- if ( partsInText < languageArrayCount )
- {
- languages = aLanguageTable[ partsInText ];
- languageCount = languages.Count();
- }
-
- for ( TInt languageCounter = 0; languageCounter < KMaxLanguages; languageCounter++ )
- {
- if ( languageCounter < languageCount )
- {
- // Store real value
- iLanguages[ KMaxLanguages * partsInText + languageCounter ] = languages[ languageCounter ];
- iGrouping[ KMaxLanguages * partsInText + languageCounter ] = partsInText;
- }
- else
- {
- // Fill in ELangNone & KErrNotFound to empty spaces
- iLanguages[ KMaxLanguages * partsInText + languageCounter ] = ELangNone;
- iGrouping[ KMaxLanguages * partsInText + languageCounter ] = KErrNotFound;
- }
- }
- }
- }
-
- /**
- * Returns a copy of language ids in RArray<RLanguageArray>
- *
- * @since 3.1
- * @param aLangArray Array which is filled
- */
- void ListLanguagesL( RArray<RLanguageArray>& aLangArray )
- {
- aLangArray.Reset();
- RLanguageArray langArr;
- CleanupClosePushL( langArr );
- TInt previousGroup( KErrNotFound );
- for ( TInt k = 0; k < KMaxLanguages * KMaxPartitionsInText; k++ )
- {
- if ( iLanguages[k] != ELangNone )
- {
- if ( ( previousGroup != iGrouping[k] ) && ( previousGroup != KErrNotFound ) )
- {
- User::LeaveIfError( aLangArray.Append( langArr ) );
- // Ownership transferred
- CleanupStack::Pop( &langArr );
- // Create new array for next bunch of languages
- langArr = RLanguageArray();
- CleanupClosePushL( langArr );
- }
- User::LeaveIfError( langArr.Append( iLanguages[k] ) );
- previousGroup = iGrouping[k];
- }
- } // for
- // Append the last one if there just is something
- if ( langArr.Count() > 0 )
- {
- User::LeaveIfError( aLangArray.Append( langArr ) );
- }
- CleanupStack::Pop( &langArr );
- }
-
- // Lexicon ID
- TSILexiconID iLexiconID;
-
- // Grammar ID
- TSIGrammarID iGrammarID;
-
- // Rule ID pointer, used as a return value to client thread, not owned
- TSIRuleID* iRuleID;
-
- private:
- // Linear array of language ids
- TLanguage iLanguages[ KMaxLanguages * KMaxPartitionsInText ];
-
- // Array which maps languages in iLanguages to groups
- TInt iGrouping[ KMaxLanguages * KMaxPartitionsInText ];
- };
-
-#endif // NSSSISPEECHRECOGNITIONCUSTOMCOMMANDCOMMON_H
-
-// End of file