diff -r 8ce15fced3a6 -r cad71a31b7fc srsf/sicc/src/nsssispeechrecognitioncustomcommandcommon.h --- a/srsf/sicc/src/nsssispeechrecognitioncustomcommandcommon.h Thu Aug 19 09:56:14 2010 +0300 +++ /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 -#include - -// 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 TSrsRecognizePckg; -typedef TPckgBuf TSrsAddPronunciationPckg; -typedef TPckgBuf TSrsAddRulePckg; -typedef TPckgBuf TSrsRuleValidityPckg; -typedef TPckgBuf TSrsGetUtteranceDurationPckg; -typedef TPckgBuf TSrsPlayUtterancePckg; - -typedef TPckgBuf TSrsIntPtrPckg; -typedef TPckgBuf TSrsRecognitionModePckg; -typedef TPckgBuf TSrsTimeIntervalMicroSeconds32Pckg; -typedef TPckgBuf TSrsUidPckg; - -typedef TPckgBuf TSrsGrammarIDPckg; -typedef TPckgBuf TSrsGrammarIDPtrPckg; -typedef TPckgBuf TSrsLexiconIDPckg; -typedef TPckgBuf TSrsLexiconIDPtrPckg; -typedef TPckgBuf TSrsModelIDPckg; -typedef TPckgBuf TSrsModelIDPtrPckg; -typedef TPckgBuf TSrsModelBankIDPckg; -typedef TPckgBuf TSrsModelBankIDPtrPckg; -typedef TPckgBuf TSrsPronunciationIDPckg; -typedef TPckgBuf TSrsRuleIDPckg; -typedef TPckgBuf TSrsRuleIDPtrPckg; - -typedef TPckgBuf TSrsAddVoiceTagPckg; -typedef TPckgBuf TSrsAddSindeVoiceTagPckg; -typedef TPckgBuf TSrsAddRuleVariantPckg; -typedef TPckgBuf 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& 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& 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& 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 - * - * @since 3.1 - * @param aLangArray Array which is filled - */ - void ListLanguagesL( RArray& 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