epoc32/include/mmf/common/speechrecognitioncustomcommands.h
branchSymbian2
changeset 2 2fe1408b6811
child 4 837f303aceeb
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/epoc32/include/mmf/common/speechrecognitioncustomcommands.h	Tue Mar 16 16:12:26 2010 +0000
@@ -0,0 +1,667 @@
+// Copyright (c) 2002-2009 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of the License "Symbian Foundation License v1.0" to Symbian Foundation members and "Symbian Foundation End User License Agreement v1.0" to non-members
+// which accompanies this distribution, and is available
+// at the URL "http://www.symbianfoundation.org/legal/licencesv10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+//
+
+#ifndef __SPEECHRECOGNITIONCUSTOMCOMMANDS_H__
+#define __SPEECHRECOGNITIONCUSTOMCOMMANDS_H__
+
+//  INCLUDES
+#include	<mmf/common/mmfcontroller.h>
+#include 	<mmf/common/speechrecognitiondataclient.h>
+
+/**
+@publishedAll
+@released
+
+This is the main class of Speech Recognition Custom Commands.
+
+@since  8.0
+*/
+class RSpeechRecognitionCustomCommands : public RMMFCustomCommandsBase
+	{
+public:
+	/**
+	Public C++ constructor for RSpeechRecognitionCustomCommands class.
+
+	@param  aController			
+	        A reference to a RMMFController object.
+
+	@since  8.0
+	*/
+	IMPORT_C RSpeechRecognitionCustomCommands(RMMFController& aController);
+	
+	/** 
+	Adds a new pronunciation for the given model into the specified lexicon.
+
+	@param  aLexiconID
+	        The lexicon ID to where the new pronunciation is added.
+	@param  aModelBankID
+	        The model bank ID.
+	@param  aModelID
+	        The model ID.
+	@param  aPronunciationID
+	        A reference to where a new pronunciation ID is assigned.
+
+	@return An error code indicating if the function call was successful. KErrNone on success, otherwise
+	        another of the system-wide error codes.
+
+	@since  8.0
+	*/
+	IMPORT_C TInt AddPronunciation(TLexiconID aLexiconID,
+					TModelBankID aModelBankID, TModelID aModelID,
+					TPronunciationID& aPronunciationID);
+
+	/**
+	Adds a new rule for the given pronunciation into the specified grammar.
+
+	@param  aGrammarID			
+	        The grammar ID to where the new rule is added.
+	@param  aLexiconID			
+	        The lexicon ID.
+	@param  aPronunciationID	
+	        The pronunciation ID.
+	@param  aRuleID				
+	        A reference to where a new rule ID is assigned.
+
+	@return An error code indicating if the function call was successful. KErrNone on success, otherwise
+	        another of the system-wide error codes.
+
+	@since  8.0
+	*/
+	IMPORT_C TInt AddRule(TGrammarID aGrammarID, TLexiconID aLexiconID,
+					TPronunciationID aPronunciationID, TRuleID& aRuleID);
+
+	/**
+	Cancels the current operation.
+
+	@since  8.0
+	*/
+	IMPORT_C void Cancel();
+
+	/**
+	Commits the current train operation to the database.
+
+	@return An error code indicating if the function call was successful. KErrNone on success, otherwise
+	        another of the system-wide error codes.
+
+	@since  8.0
+	*/
+	IMPORT_C TInt CommitChanges();
+
+	/**
+	Creates a new grammar.
+
+	@param  aGrammarID
+	        A reference to where the grammar ID is stored.
+
+	@return An error code indicating if the function call was successful. KErrNone on success, otherwise
+	        another of the system-wide error codes.
+
+	@since  8.0
+    */
+	IMPORT_C TInt CreateGrammar(TGrammarID& aGrammarID);
+
+	/**
+	Creates a new lexicon.
+
+	@param  aLexiconID			
+	        A reference where lexicon ID is stored.
+
+	@return An error code indicating if the function call was successful. KErrNone on success, otherwise
+	        another of the system-wide error codes.
+
+	@since  8.0
+    */
+	IMPORT_C TInt CreateLexicon(TLexiconID& aLexiconID);
+
+    /**
+	Creates a new model bank.
+
+	@param  aModelBankID		
+	        A reference to where a new model bank ID is assigned.
+
+	@return An error code indicating if the function call was successful. KErrNone on success, otherwise
+	        another of the system-wide error codes.
+
+	@since  8.0
+    */
+	IMPORT_C TInt CreateModelBank(TModelBankID& aModelBankID);
+
+	/**
+	Ends the current recognition session.
+	
+	The resources allocated for recognition are freed.
+
+	@return An error code indicating if the function call was successful. KErrNone on success, otherwise
+	        another of the system-wide error codes.
+
+	@since  8.0
+    */
+	IMPORT_C TInt EndRecSession();
+
+	/**
+	Returns all grammar IDs owned by the client.
+
+	@return An error code indicating if the function call was successful. KErrNone on success, otherwise
+	        another of the system-wide error codes.
+
+	@since  8.0
+    */
+	IMPORT_C TInt GetAllClientGrammarIDs();
+
+	/**
+	Returns all lexicon IDs owned by the client.
+
+	@return An error code indicating if the function call was successful. KErrNone on success, otherwise
+	        another of the system-wide error codes.
+	
+	@since  8.0
+    */
+	IMPORT_C TInt GetAllClientLexiconIDs();
+
+	/**
+	Returns all modelBank IDs owned by the client.
+
+    @return An error code indicating if the function call was successful. KErrNone on success, otherwise
+	           another of the system-wide error codes.
+
+	@since  8.0
+    */
+	IMPORT_C TInt GetAllClientModelBankIDs();
+
+	/**
+	Returns all grammar IDs owned by the client.
+
+	@return An error code indicating if the function call was successful. KErrNone on success, otherwise
+	        another of the system-wide error codes.
+
+	@since  8.0
+    */
+	IMPORT_C TInt GetAllGrammarIDs();
+
+	/**
+	Returns all lexicon IDs owned by the client.
+
+	@return An error code indicating if the function call was successful. KErrNone on success, otherwise
+	        another of the system-wide error codes.
+
+	@since  8.0
+    */
+	IMPORT_C TInt GetAllLexiconIDs();
+
+
+	/**
+	Returns all modelBank IDs owned by the client.
+
+	@return An error code indicating if the function call was successful. KErrNone on success, otherwise
+	        another of the system-wide error codes.
+
+	@since  8.0
+    */
+	IMPORT_C TInt GetAllModelBankIDs();
+
+	/**
+	Returns all model IDs that exist in the specified model bank.
+
+	@param  aModelBankID		
+	        The model bank ID.
+
+	@return An error code indicating if the function call was successful. KErrNone on success, otherwise
+	        another of the system-wide error codes.
+
+	@since  8.0
+    */
+	IMPORT_C TInt GetAllModelIDs(TModelBankID aModelBankID);
+
+	/**
+	Returns all pronunciation IDs that exist in the specified lexicon.
+
+	@param  aLexiconID			
+	        The lexicon ID.
+
+	@return An error code indicating if the function call was successful. KErrNone on success, otherwise
+	        another of the system-wide error codes.
+
+	@since  8.0
+    */
+	IMPORT_C TInt GetAllPronunciationIDs(TLexiconID aLexiconID);
+
+	/**
+	Returns all rule IDs that exist in the specified grammar.
+
+    @param  aGrammarID			
+	        The grammar ID.
+
+	@return An error code indicating if the function call was successful. KErrNone on success, otherwise
+	        another of the system-wide error codes.
+
+	@since  8.0
+    */
+	IMPORT_C TInt GetAllRuleIDs(TGrammarID aGrammarID);
+
+	/**
+	Returns the number of models available for training system wide,
+	based on available disk space.
+
+	@param  aAvailableStorage	
+	        The number of models that can be held in available storage space.
+
+	@return An error code indicating if the function call was successful. KErrNone on success, otherwise
+	        another of the system-wide error codes.
+
+	@since  8.0
+    */
+	IMPORT_C TInt GetAvailableStorage(TInt& aAvailableStorage);
+
+	/**
+	Returns the engine properties specified by the engine property
+	ID array. On return aPropertyValue contains an array of engine
+	properties.
+
+	@param  aPropertyId		
+	        A constant reference to an array of engine property IDs.
+	@param  aPropertyValue	
+	        A reference to an array of engine property values.
+
+	@return An error code indicating if the function call was successful. KErrNone on success, otherwise
+	        another of the system-wide error codes.
+
+	@since  8.0
+    */
+	IMPORT_C TInt GetEngineProperties(const RArray<TInt>& aPropertyId,
+					RArray<TInt>& aPropertyValue);
+
+	/**
+	Returns the number of models in the specified model bank.
+
+	@param  aModelBankID		
+	        The model bank ID.
+	@param  aModelCount			
+	        The reference where the number of models is set.
+
+	@return An error code indicating if the function call was successful. KErrNone on success, otherwise
+	        another of the system-wide error codes.
+
+	@since  8.0
+    */
+	IMPORT_C TInt GetModelCount(TModelBankID aModelBankID,
+					TInt& aModelCount);
+
+
+	/**
+	Checks if the rule is valid or not.
+
+	@param  aGrammarID			
+            The grammar ID.
+	@param  aRuleID				
+	        The rule ID.
+	@param  aValid				
+	        A reference where the validity of the rule is set.
+
+	@return An error code indicating if the function call was successful. KErrNone on success, otherwise
+	        another of the system-wide error codes.
+
+	@since  8.0
+    */
+	IMPORT_C TInt GetRuleValidity(TGrammarID aGrammarID, TRuleID aRuleID, 
+					TBool& aValid);
+
+	/**
+    *
+    *	Returns the duration of the utterance for the specified model.
+    * @since 8.0
+    * @param	aModelBankID		model bank Id
+	* @param	aModelID			model Id
+	* @param	aDuration			reference where the duration of 
+	*								utterance is set
+    * @return	System-wide errors
+    */
+	IMPORT_C TInt GetUtteranceDuration(TModelBankID aModelBankID, 
+				TModelID aModelID, TTimeIntervalMicroSeconds32& aDuration);
+
+	/**
+    Loads the specified grammar into the recognizer; done prior to recognition.
+
+    @param  aGrammarID			
+	        The grammar ID.
+
+	@return An error code indicating if the function call was successful. KErrNone on success, otherwise
+	        another of the system-wide error codes.
+
+    @since  8.0
+    */
+	IMPORT_C TInt LoadGrammar(TGrammarID aGrammarID);
+
+	/**
+	Loads the specified lexicon into the recognizer; done prior to recognition.
+
+	@param  aLexiconID			
+	        The lexicon ID.
+
+	@return An error code indicating if the function call was successful. KErrNone on success, otherwise
+	        another of the system-wide error codes.
+
+	@since  8.0
+    */
+	IMPORT_C TInt LoadLexicon(TLexiconID aLexiconID);
+
+	/**
+	Loads the specified model bank into the recognizer; done prior to recognition.
+
+	@param  aModelBankID		
+	        The model bank ID.
+
+	@return An error code indicating if the function call was successful. KErrNone on success, otherwise
+	        another of the system-wide error codes.
+
+	@since  8.0
+    */
+	IMPORT_C TInt LoadModels(TModelBankID aModelBankID);
+
+	/**
+	Plays the previously trained utterance.
+
+	@param  aModelBankID		
+	        The model bank ID.
+	@param  aModelID			
+	        The model ID, whose utterance is played.
+
+	@return An error code indicating if the function call was successful. KErrNone on success, otherwise
+	        another of the system-wide error codes.
+
+	@since  8.0
+    */
+	IMPORT_C TInt PlayUtterance(TModelBankID aModelBankID,
+					TModelID aModelID);
+
+	/**
+	Initiates recognition; performed following loading of model bank, lexicon, and grammar.
+
+	@param  aResultSet			
+	        A reference where the recognition result is set.
+
+    @return An error code indicating if the function call was successful. KErrNone on success, otherwise
+            another of the system-wide error codes.
+
+	@since  8.0
+    */
+	IMPORT_C TInt Recognize(CSDClientResultSet& aResultSet);
+
+	/**
+	Records the user utterance for training and recognition.
+
+	@param  aRecordTime			
+	        The recording time in microseconds.
+
+	@return An error code indicating if the function call was successful. KErrNone on success, otherwise
+	         another of the system-wide error codes.
+
+	@since  8.0
+    */
+	IMPORT_C TInt Record(TTimeIntervalMicroSeconds32 aRecordTime);
+
+	/**
+	Removes the specified grammar from the permanent storage.
+
+	Removing a grammar will remove all rules within the grammar.
+
+	@param  aGrammarID			
+	        The grammar ID.
+
+	@return An error code indicating if the function call was successful. KErrNone on success, otherwise
+	        another of the system-wide error codes.
+	
+	@since  8.0
+    */
+	IMPORT_C TInt RemoveGrammar(TGrammarID aGrammarID);
+
+	/**
+	Removes the specified lexicon from the permanent storage.
+
+	Removing a lexicon will remove all pronunciations within the lexicon.
+
+	@param  aLexiconID			
+	        The lexicon ID.
+
+	@return An error code indicating if the function call was successful. KErrNone on success, otherwise
+	        another of the system-wide error codes.
+	@since  8.0
+    */
+	IMPORT_C TInt RemoveLexicon(TLexiconID aLexiconID);
+
+	/**
+	Removes the specified model bank from the permanent storage.
+
+	Removing a model bank will remove all models within the model bank.
+
+	@param  aModelBankID		
+	        The model bank ID.
+
+	@return An error code indicating if the function call was successful. KErrNone on success, otherwise
+	        another of the system-wide error codes.
+
+	@since  8.0
+    */
+	IMPORT_C TInt RemoveModelBank(TModelBankID aModelBankID);
+
+	/**
+	Removes the specified model from the specified model bank permanently.
+
+	@param  aModelBankID		
+	        The model bank ID.
+	@param  aModelID			
+	        The model ID.
+
+	@return An error code indicating if the function call was successful. KErrNone on success, otherwise
+	        another of the system-wide error codes.
+
+	@since  8.0
+    */
+	IMPORT_C TInt RemoveModel(TModelBankID aModelBankID,
+								TModelID aModelID);
+
+	/**
+	Removes the specified pronunciation from the specified lexicon permanently.
+
+	@param  aLexiconID
+	        The lexicon ID.
+	@param  aPronunciationID
+	        The pronunciation ID.
+
+	@return An error code indicating if the function call was successful. KErrNone on success, otherwise
+	        another of the system-wide error codes.
+
+	@since	8.0
+    */
+	IMPORT_C TInt RemovePronunciation(TLexiconID aLexiconID,
+								TPronunciationID aPronunciationID);
+
+	/**
+	Removes the specified rule from the specified grammar permanently.
+
+	@param  aGrammarID			
+	        The grammar ID.
+	@param  aRuleID				
+	        The rule ID.
+
+	@return An error code indicating if the function call was successful. KErrNone on success, otherwise
+	        another of the system-wide error codes.
+
+	@since  8.0
+    */
+	IMPORT_C TInt RemoveRule(TGrammarID aGrammarID, TRuleID aRuleID);
+
+	/**
+	Sets the client UID for client.
+
+	@param  aClientUid			
+	        The client UID.
+
+	@return An error code indicating if the function call was successful. KErrNone on success, otherwise
+	        another of the system-wide error codes.
+
+	@since  8.0
+	*/
+	IMPORT_C TInt SetClientUid(TUid aClientUid);
+
+	/**
+	Starts a new recognition session.
+
+	@param  aMode				
+	        The recognition mode.
+
+	@return An error code indicating if the function call was successful. KErrNone on success, otherwise
+	        another of the system-wide error codes.
+
+	@since  8.0
+    */
+	IMPORT_C TInt StartRecSession(TRecognitionMode aMode);
+
+    /**
+	Trains a new model into the specified model bank.
+
+	@param  aModelBankID		
+	        The model bank ID.
+	@param  aModelID			
+	        The reference to where a new model ID is assigned.
+
+	@return An error code indicating if the function call was successful. KErrNone on success, otherwise
+	        another of the system-wide error codes.
+
+	@since  8.0
+    */
+	IMPORT_C TInt Train(TModelBankID aModelBankID, TModelID& aModelID);
+
+	/**
+	Unloads the specified rule from the specified grammar in temporary
+	memory, previously loaded with LoadGrammarL(). The rule in the
+	permanent storage remains intact.
+
+	@param  aGrammarID
+	        The grammar ID.
+	@param  aRuleID
+	        The rule ID.
+
+	@return An error code indicating if the function call was successful. KErrNone on success, otherwise
+	        another of the system-wide error codes.
+
+	@since  8.0
+    */
+	IMPORT_C TInt UnloadRule(TGrammarID aGrammarID, TRuleID aRuleID);
+
+	/**
+	Uploads the specified parameters into the engine.
+
+	@param  aParameterId		
+	        An array of parameter IDs.
+	@param  aParameterValue
+	        An array of parameter values.
+
+	@return An error code indicating if the function call was successful. KErrNone on success, otherwise
+	        another of the system-wide error codes.
+
+	@since  8.0
+    */
+	IMPORT_C TInt LoadEngineParameters(const RArray<TInt>& aParameterId,
+								const RArray<TInt>& aParameterValue);
+
+	/**
+	Gets an array of pronunciation IDs previously requested by GetAllPronunciationIDs.
+
+	@param  aPronunciationIDs
+	        An array to store pronunciation IDs.
+
+    @since  8.0
+    */
+	IMPORT_C void GetPronunciationIDArrayL(RArray<TPronunciationID>& aPronunciationIDs);
+
+	/**
+	Gets an array of rule IDs previously requested by GetAllRuleIDs.
+
+	@param  aRuleIDs
+	        An array to store rule IDs.
+
+    @since  8.0
+    */
+	IMPORT_C void GetRuleIDArrayL(RArray<TRuleID>& aRuleIDs);
+
+	/**
+	Gets an array of model IDs previously requested by GetAllModelIDs.
+
+	@param  aModelIDs
+	        An array to store model IDs.
+
+    @since  8.0
+    */
+	IMPORT_C void GetModelIDArrayL(RArray<TModelID>& aModelIDs);
+
+	/**
+	Gets an array of grammar IDs previously requested by GetAllGrammarIDs.
+
+	@param  aGrammarIDs
+	        An array to store grammar IDs.
+
+    @since  8.0
+    */
+	IMPORT_C void GetGrammarIDArrayL(RArray<TGrammarID>& aGrammarIDs);
+
+	/**
+	Gets an array of lexicon IDs previously requested by GetAllLexiconIDs.
+
+	@param  aLexiconIDs
+	        An array to store lexicon IDs.
+
+	@since  8.0
+    */
+	IMPORT_C void GetLexiconIDArrayL(RArray<TLexiconID>& aLexiconIDs);
+
+
+	/**
+	Gets an array of modelBank IDs previously requested by GetAllModelBankIDs.
+
+	@param  aModelBankIDs
+	        An array to store modelBank IDs.
+
+    @since  8.0
+    */
+	IMPORT_C void GetModelBankIDArrayL(RArray<TModelBankID>& aModelBankIDs);
+
+
+	/**
+	Gets a client result set previously created by a call to Recognise().
+
+	@param  aResultSet
+	        The ResultSet used to contain the recognition results
+
+    @since  8.0
+    */
+	IMPORT_C void GetResultSetL(CSDClientResultSet& aResultSet);
+	
+private:
+	void DoGetEnginePropertiesL(const RArray<TInt>& aPropertyId, 
+					RArray<TInt>& aPropertyValue);
+	void DoLoadEngineParametersL(const RArray<TInt>& aParameterId, 
+								const RArray<TInt>& aParameterValue);
+
+					
+	CBufFlat* ExternalizeIntArrayL(const RArray<TInt>& aArray);
+	void InternalizeIntArrayL(TDes8& aDes, TInt aNumberElements, RArray<TInt>& aArray);
+	
+	void DoRecognizeL(CSDClientResultSet& aResultSet);
+private:
+	TAny* iReservedPtr_1;	// reserved for future expansion
+	TAny* iReservedPtr_2;	// reserved for future expansion
+};
+
+#endif  // __SPEECHRECOGNITIONCUSTOMCOMMANDS_H__