--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/srsf/sisrscontrollerplugin/src/sicontrollerplugininterface.h Thu Dec 17 08:46:30 2009 +0200
@@ -0,0 +1,752 @@
+/*
+* Copyright (c) 2002-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 main interface of the SI Controller Plugin.
+*
+*/
+
+
+
+#ifndef SICONTROLLERPLUGININTERFACE_H
+#define SICONTROLLERPLUGININTERFACE_H
+
+// INCLUDES
+#include <mmfcontroller.h>
+#include <nsssispeechrecognitioncustomcommandimplementor.h>
+#include <nsssispeechrecognitiondataclient.h>
+
+// FORWARD DECLARATIONS
+class CSIControllerPlugin;
+class CSDClientResultSet;
+
+
+// CLASS DECLARATION
+
+/**
+* This is the main interface class of SI Controller Plugin
+*
+* @lib SIControllerPlugin.lib
+* @since 2.8
+*/
+class CSIControllerPluginInterface : public CMMFController,
+public MSISpeechRecognitionCustomCommandImplementor
+{
+public: // Constructors and destructor
+
+ /**
+ * Two-phased constructor.
+ */
+ static CSIControllerPluginInterface* NewL();
+
+ /**
+ * Destructor.
+ */
+ virtual ~CSIControllerPluginInterface();
+
+public: // Functions from base classes
+
+ /**
+ * From CMMFController
+ * Add a data source to the controller plugin.
+ * @since 2.8
+ * @param aDataSource reference to the data source to be added
+ */
+ void AddDataSourceL( MDataSource& aDataSource );
+
+ /**
+ * From CMMFController
+ * Add a data sink to the controller plugin. Not supported.
+ * @since 2.8
+ * @param aDataSink reference to the data sink to be added
+ */
+ void AddDataSinkL( MDataSink& aDataSink );
+
+ /**
+ * From CMMFController
+ * Remove a data source from the controller plugin. Not supported.
+ * @since 2.8
+ * @param aDataSource reference to the data source to be removed
+ */
+ void RemoveDataSourceL( MDataSource& aDataSource );
+
+ /**
+ * From CMMFController
+ * Remove a data sink from the controller plugin. Not supported.
+ * @since 2.8
+ * @param aDataSink reference to the data sink to be removed
+ */
+ void RemoveDataSinkL( MDataSink& aDataSink );
+
+ /**
+ * From CMMFController
+ * Reset the controller plugin. Not supported.
+ * @since 2.8
+ */
+ void ResetL();
+
+ /**
+ * From CMMFController
+ * Prime the controller plugin. Not supported.
+ * @since 2.8
+ */
+ void PrimeL();
+
+ /**
+ * From CMMFController
+ * Commence playback. Not supported.
+ * @since 2.8
+ */
+ void PlayL();
+
+ /**
+ * From CMMFController
+ * Pause the controller plugin. Not supported.
+ * @since 2.8
+ */
+ void PauseL();
+
+ /**
+ * From CMMFController
+ * Stop the controller plugin. Not supported.
+ * @since 2.8
+ */
+ void StopL();
+
+ /**
+ * From CMMFController
+ * Get the current position. Not supported.
+ * @since 2.8
+ */
+ TTimeIntervalMicroSeconds PositionL() const;
+
+ /**
+ * From CMMFController
+ * Set the current position. Not supported.
+ * @since 2.8
+ * @param aPosition desired position in microseconds
+ */
+ void SetPositionL( const TTimeIntervalMicroSeconds& aPosition );
+
+ /**
+ * From CMMFController
+ * Get the duration of the clip. Not supported.
+ * @since 2.8
+ */
+ TTimeIntervalMicroSeconds DurationL() const;
+
+ /**
+ * From CMMFController
+ * Set the priority settings for this controller.
+ * @since 2.8
+ * @param aPrioritySettings new priority settings
+ */
+ void SetPrioritySettings( const TMMFPrioritySettings& aPrioritySettings );
+
+ /**
+ * From CMMFController
+ * Retrieve the number of meta data entries in the clip. Not supported.
+ * @since 2.8
+ * @param aNumberOfEntries reference where the number of entries is set
+ */
+ void GetNumberOfMetaDataEntriesL( TInt& aNumberOfEntries );
+
+ /**
+ * From CMMFController
+ * Retrieve a meta data entry from the clip. Not supported.
+ * @since 2.8
+ * @param aIndex index of the meta data entry to retrieve
+ */
+ CMMFMetaDataEntry* GetMetaDataEntryL( TInt aIndex );
+
+ /**
+ * From MSISpeechRecognitionCustomCommandImplementor
+ * Adds a new pronunciation for the given model into the specified lexicon.
+ * @since 2.8
+ * @param aLexiconID lexicon Id, where the new pronunciation is added to
+ * @param aModelBankID model bank Id
+ * @param aModelID model Id
+ * @param aPronunciationID reference where a new pronunciation Id is assigned to
+ */
+ //SD Remove
+ void MSrAddPronunciationL( TSILexiconID aLexiconID, TSIModelBankID aModelBankID,
+ TSIModelID aModelID,TSIPronunciationID& aPronunciationID );
+
+ /**
+ * From MSISpeechRecognitionCustomCommandImplementor
+ * Adds a new rule for the given pronunciation into the specified grammar.
+ * @since 2.8
+ * @param aGrammarID grammar Id, where the new rule is added to
+ * @param aLexiconID lexicon Id
+ * @param aPronunciationID pronunciation Id
+ * @param aRuleID reference where a new rule Id is assigned to
+ */
+ //SD Remove
+ void MSrAddRuleL( TSIGrammarID aGrammarID, TSILexiconID aLexiconID,
+ TSIPronunciationID aPronunciationID, TSIRuleID& aRuleID );
+
+ /**
+ * From MSISpeechRecognitionCustomCommandImplementor
+ * Cancels the current activity and returns the plugin to Idle state.
+ * @since 2.8
+ */
+ void MSrCancel();
+
+ /**
+ * From MSISpeechRecognitionCustomCommandImplementor
+ * Commits (saves) the current trained model into a permanent storage.
+ * @since 2.8
+ */
+ void MSrCommitChangesL();
+
+ /**
+ * From MSISpeechRecognitionCustomCommandImplementor
+ * Creates a new grammar.
+ * @since 2.8
+ * @param aGrammarID reference where a new rule Id is assigned to
+ */
+ void MSrCreateGrammarL( TSIGrammarID& aGrammarID );
+
+ /**
+ * From MSISpeechRecognitionCustomCommandImplementor
+ * Creates a new lexicon.
+ * @since 2.8
+ * @param aLexiconID reference where a new lexicon Id is assigned to
+ */
+ void MSrCreateLexiconL( TSILexiconID& aLexiconID );
+
+ /**
+ * From MSISpeechRecognitionCustomCommandImplementor
+ * Creates a new model bank.
+ * @since 2.8
+ * @param aModelBankID reference where a new model bank Id is assigned to
+ */
+ void MSrCreateModelBankL( TSIModelBankID& aModelBankID );
+
+ /**
+ * From MSISpeechRecognitionCustomCommandImplementor
+ * Ends the current recognition session. Resources allocated for recognition are freed.
+ * @since 2.8
+ * @param aModelBankID reference where a new model bank Id is assigned to
+ */
+ void MSrEndRecSessionL();
+
+ /**
+ * From MSISpeechRecognitionCustomCommandImplementor
+ * Returns all grammar Ids that belong to the current client, whose UID was set
+ * with MSrSetClientUid().
+ * @since 2.8
+ * @param aGrammarIDs reference where grammar Ids are stored
+ */
+ void MSrGetAllClientGrammarIDsL( RArray<TSIGrammarID>& aGrammarIDs );
+
+ /**
+ * From MSISpeechRecognitionCustomCommandImplementor
+ * Returns all lexicon Ids that belong to the current client, whose UID was set
+ * with MSrSetClientUid().
+ * @since 2.8
+ * @param aLexiconIDs reference where lexicon Ids are stored
+ */
+ void MSrGetAllClientLexiconIDsL( RArray<TSILexiconID>& aLexiconIDs );
+
+ /**
+ * From MSISpeechRecognitionCustomCommandImplementor
+ * Returns all model bank Ids that belong to the current client, whose UID was set
+ * with MSrSetClientUid().
+ * @since 2.8
+ * @param aModelBankIDs reference where model bank Ids are stored
+ */
+ void MSrGetAllClientModelBankIDsL( RArray<TSIModelBankID>& aModelBankIDs );
+
+ /**
+ * From MSISpeechRecognitionCustomCommandImplementor
+ * Returns all grammar Ids that exist (for all clients).
+ * @since 2.8
+ * @param aGrammarIDs reference where grammar Ids are stored
+ */
+ void MSrGetAllGrammarIDsL( RArray<TSIGrammarID>& aGrammarIDs );
+
+ /**
+ * From MSISpeechRecognitionCustomCommandImplementor
+ * Returns all lexicon Ids that exist (for all clients).
+ * @since 2.8
+ * @param aLexiconIDs reference where lexicon Ids are stored
+ */
+ void MSrGetAllLexiconIDsL( RArray<TSILexiconID>& aLexiconIDs );
+
+ /**
+ * From MSISpeechRecognitionCustomCommandImplementor
+ * Returns all model bank Ids that exist (for all clients).
+ * @since 2.8
+ * @param aModelBankIDs reference where model bank Ids are stored
+ */
+ void MSrGetAllModelBankIDsL( RArray<TSIModelBankID>& aModelBankIDs );
+
+ /**
+ * From MSISpeechRecognitionCustomCommandImplementor
+ * Returns all model Ids that exist in the specified model bank.
+ * @since 2.8
+ * @param aModelBankID model bank Id
+ * @param aModelIDs reference where model Ids are stored
+ */
+ //SD
+ void MSrGetAllModelIDsL( TSIModelBankID aModelBankID, RArray<TSIModelID>& aModelIDs );
+
+ /**
+ * From MSISpeechRecognitionCustomCommandImplementor
+ * Returns all pronunciation Ids that exist in the specified lexicon.
+ * @since 2.8
+ * @param aLexiconID lexicon Id
+ * @param aPronunciationIDs reference where pronunciation Ids are stored
+ */
+ void MSrGetAllPronunciationIDsL( TSILexiconID aLexiconID,
+ RArray<TSIPronunciationID>& aPronunciationIDs );
+
+ /**
+ * From MSISpeechRecognitionCustomCommandImplementor
+ * Returns all rule Ids that exist in the specified grammar.
+ * @since 2.8
+ * @param aGrammarID grammar Id
+ * @param aRuleIDs reference where rule Ids are stored
+ */
+ void MSrGetAllRuleIDsL( TSIGrammarID aGrammarID, RArray<TSIRuleID>& aRuleIDs );
+
+ /**
+ * From MSISpeechRecognitionCustomCommandImplementor
+ * Returns the number of models available for training system wide, based on
+ * available disk space.
+ * @since 2.8
+ * @param aCount reference where the number of available models is set
+ */
+ //SD
+ void MSrGetAvailableStorageL( TInt& aCount );
+
+ /**
+ * From MSISpeechRecognitionCustomCommandImplementor
+ * Returns the engine properties specified by the engine property ID array.
+ * On return aPropertyValue contains an array of engine properties.
+ * @since 2.8
+ * @param aPropertyId constant reference to array of engine property Ids
+ * @param aPropertyValue reference to array of engine property values
+ */
+ void MSrGetEnginePropertiesL( const RArray<TInt>& aPropertyId,
+ RArray<TInt>& aPropertyValue );
+
+ /**
+ * From MSISpeechRecognitionCustomCommandImplementor
+ * Returns the number of models in the specified model bank.
+ * @since 2.8
+ * @param aModelBankID model bank Id
+ * @param aCount reference where the number of models is set
+ */
+ //SD
+ void MSrGetModelCountL( TSIModelBankID aModelBankID, TInt& aCount );
+
+ /**
+ * From MSISpeechRecognitionCustomCommandImplementor
+ * Checks if the rule is valid or not.
+ * @since 2.8
+ * @param aGrammarID grammar Id
+ * @param aRuleID rule Id
+ * @param aValid reference where the validity of the rule is set
+ */
+ void MSrGetRuleValidityL( TSIGrammarID aGrammarID, TSIRuleID aRuleID, TBool& aValid );
+
+ /**
+ * From MSISpeechRecognitionCustomCommandImplementor
+ * Returns the duration of the utterance for the specified model.
+ * @since 2.8
+ * @param aModelBankID model bank Id
+ * @param aModelID model Id
+ * @param aDuration reference where the duration of utterance is set
+ */
+ //SD
+ void MSrGetUtteranceDurationL( TSIModelBankID aModelBankID, TSIModelID aModelID,
+ TTimeIntervalMicroSeconds32& aDuration );
+
+ /**
+ * From MSISpeechRecognitionCustomCommandImplementor
+ * Loads the specified recognizer parameter(s). These parameters are used to
+ * alter the recognizer's default parameters. The parameters are specified as
+ * attribute and value pairs.
+ * @since 2.8
+ * @param aParameterID list of parameter Ids
+ * @param aParameterValue list of parameter values
+ */
+ void MSrLoadEngineParametersL( const RArray<TInt>& aParameterId,
+ const RArray<TInt>& aParameterValue );
+
+ /**
+ * From MSISpeechRecognitionCustomCommandImplementor
+ * Loads the specified grammar into the recognizer; done prior to recognition.
+ * @since 2.8
+ * @param aGrammarID grammar Id
+ */
+ void MSrLoadGrammarL( TSIGrammarID aGrammarID );
+
+ /**
+ * From MSISpeechRecognitionCustomCommandImplementor
+ * Loads the specified lexicon into the recognizer; done prior to recognition.
+ * @since 2.8
+ * @param aLexiconID lexicon Id
+ */
+ void MSrLoadLexiconL( TSILexiconID aLexiconID );
+
+ /**
+ * From MSISpeechRecognitionCustomCommandImplementor
+ * Loads the specified model bank into the recognizer; done prior to recognition.
+ * @since 2.8
+ * @param aModelBankID model bank Id
+ */
+ void MSrLoadModelsL( TSIModelBankID aModelBankID );
+
+ /**
+ * From MSISpeechRecognitionCustomCommandImplementor
+ * Plays the previously trained utterance.
+ * @since 2.8
+ * @param aModelBankID model bank Id
+ * @param aModelID model Id, whose utterance is played
+ */
+ //SD
+ void MSrPlayUtteranceL( TSIModelBankID aModelBankID, TSIModelID aModelID );
+
+ /**
+ * From MSISpeechRecognitionCustomCommandImplementor
+ * Initiates recognition; performed following loading of model bank, lexicon, and grammar.
+ * @since 2.8
+ * @param aResultSet reference where the recognition result is set
+ */
+ //SD
+ void MSrRecognizeL( CSDClientResultSet& aResultSet );
+
+ /**
+ * From MSISpeechRecognitionCustomCommandImplementor
+ * Records uder utterance for training and recognition.
+ * @since 2.8
+ * @param aRecordTime recording time in microseconds
+ */
+ void MSrRecordL( TTimeIntervalMicroSeconds32 aRecordTime );
+
+ /**
+ * From MSISpeechRecognitionCustomCommandImplementor.
+ * Starts sampling before MSrRecordL call.
+ *
+ * @since 3.2
+ */
+ void MSrPreStartSamplingL();
+
+ /**
+ * From MSISpeechRecognitionCustomCommandImplementor
+ * Removes the specified grammar from the permanent storage.
+ * Removing a grammar will remove all rules within the grammar.
+ * @since 2.8
+ * @param aGrammarID grammar Id
+ */
+ void MSrRemoveGrammarL( TSIGrammarID aGrammarID );
+
+ /**
+ * From MSISpeechRecognitionCustomCommandImplementor
+ * Removes the specified lexicon from the permanent storage.
+ * Removing a lexicon will remove all pronunciations within the lexicon.
+ * @since 2.8
+ * @param aLexiconID lexicon Id
+ */
+ void MSrRemoveLexiconL( TSILexiconID aLexiconID );
+
+ /**
+ * From MSISpeechRecognitionCustomCommandImplementor
+ * Removes the specified model bank from the permanent storage.
+ * Removing a model bank will remove all models within the model bank.
+ * @since 2.8
+ * @param aModelBankID model bank Id
+ */
+ void MSrRemoveModelBankL( TSIModelBankID aModelBankID );
+
+ /**
+ * From MSISpeechRecognitionCustomCommandImplementor
+ * Removes the specified model from the specified model bank.
+ * @since 2.8
+ * @param aModelBankID model bank Id
+ * @param aModelID model Id
+ */
+ //SD
+ void MSrRemoveModelL( TSIModelBankID aModelBankID, TSIModelID aModelID );
+
+ /**
+ * From MSISpeechRecognitionCustomCommandImplementor
+ * Removes the specified pronunciation from the specified lexicon.
+ * @since 2.8
+ * @param aLexiconID lexicon Id
+ * @param aPronunciationID pronunciation Id
+ */
+ void MSrRemovePronunciationL( TSILexiconID aLexiconID, TSIPronunciationID aPronunciationID );
+
+ /**
+ * From MSISpeechRecognitionCustomCommandImplementor
+ * Removes the specified rule from the specified grammar.
+ * @since 2.8
+ * @param aGrammarID grammar Id
+ * @param aRuleID rule Id
+ */
+ void MSrRemoveRuleL( TSIGrammarID aGrammarID, TSIRuleID aRuleID );
+
+ /**
+ * From MSISpeechRecognitionCustomCommandImplementor
+ * Removes the specified rules from the specified grammar permanently.
+ * If the rule contains rule variants, they are also destoryed.
+ * @since 2.8
+ * @param aGrammarID grammar Id
+ * @param aRuleIDs array of rule ids
+ */
+ void MSrRemoveRulesL( TSIGrammarID aGrammarID, RArray<TSIRuleID>& aRuleIDs );
+
+ /**
+ * From MSISpeechRecognitionCustomCommandImplementor
+ * Sets the client's UID for data ownership identification.
+ * @since 2.8
+ * @param aClientUid client's UID
+ */
+ void MSrSetClientUid( TUid aClientUid );
+
+ /**
+ * From MSISpeechRecognitionCustomCommandImplementor
+ * Starts a new recognition session.
+ * @since 2.8
+ * @param aMode recognition mode
+ */
+ void MSrStartRecSessionL( TNSSRecognitionMode aMode );
+
+ /**
+ * From MSISpeechRecognitionCustomCommandImplementor
+ * Trains a new model into the specified model bank.
+ * @since 2.8
+ * @param aModelBankID model bank Id
+ * @param aModelID reference where a new model Id is assigned to
+ */
+ //SD
+ void MSrTrainL( TSIModelBankID aModelBankID, TSIModelID& aModelID );
+
+ /**
+ * From MSISpeechRecognitionCustomCommandImplementor
+ * Unloads the specified rule from the specified grammar in temporary memory, previously
+ * loaded with LoadGrammarL. The rule in the permanent storage remains intact.
+ * @since 2.8
+ * @param aGrammarID grammar Id
+ * @param aRuleID rule Id
+ */
+ void MSrUnloadRuleL( TSIGrammarID aGrammarID, TSIRuleID aRuleID );
+
+ ///SI Component
+
+
+ /**
+ * From MSISpeechRecognitionCustomCommandImplementor
+ * Does speaker adapation to speaker independent models
+ * @since 2.8
+ * @param aResultSet a recognition result containing adaptation data
+ * @param aCorrect identifies the correct recognition result from the N-best list.
+ */
+ void MSrAdaptL( CSIClientResultSet& aResultSet ,TInt aCorrect);
+
+ /**
+ * From MSISpeechRecognitionCustomCommandImplementor
+ * Adds a new pronunciation for the given model into the specified lexicon.
+ * @since 2.8
+ * @param aLexiconID lexicon Id
+ * @param aTrainText: the text to be trained
+ * @param aLanguage the pronunciation language
+ * @param aPronunciationID: reference where a new pronunciation identifier is set.
+ */
+ void MSrAddPronunciationL(TSILexiconID aLexiconID, const TDesC& aTrainText,
+ TLanguage aLanguage, TSIPronunciationID& aPronunciationID) ;
+
+
+ /**
+ * From MSISpeechRecognitionCustomCommandImplementor
+ * Adds a new rule variant for the given pronunciation into the specified grammar.
+ * @since 2.8
+ * @param aGrammarID grammar Id, where the new rule is added to
+ * @param aLexiconID lexicon Id
+ * @param aPronunciationIDs pronunciation Id array
+ * @param aRuleVariantID reference where a new rule Variant Id is assigned to
+ */
+ void MSrAddRuleVariantL(TSIGrammarID aGrammarID, TSILexiconID aLexiconID,
+ RArray<TSIPronunciationID>& aPronunciationIDs, TSIRuleID aRuleID, TSIRuleVariantID& aRuleVariantID );
+
+ /**
+ * From MSISpeechRecognitionCustomCommandImplementor
+ * Trains a new voice tag. The recognition phrase is the concatenation of words in the aTrainArray.
+ * Pronunciations are created with all given languages, which are supported.
+ * @since 2.8
+ * @param aTrainArray: Recognition phrase is formed by concatenating the descriptors in this array.
+ * @param aLanguageArray Pronunciations are created with these languages. Not all languages are supported. The argument can be NULL.
+ * @param aLexiconID lexicon Id
+ * @param aGrammarID grammar Id, where the new rule is added to
+ * @param aRuleID reference where a new rule Id is assigned to
+ */
+ void MSrAddVoiceTagL( MDesCArray& aTrainArray, RArray<TLanguage>& aLanguageArray,
+ TSILexiconID aLexiconID, TSIGrammarID aGrammarID, TSIRuleID& aRuleID);
+
+ /**
+ * From MSISpeechRecognitionCustomCommandImplementor
+ * Adds several new voice tags.
+ * @since 2.8
+ * @param aTrainArray : An array of MDesCArrays. The recognition phrases are formed by concatenating the descriptors in the MDesCArrays.
+ * @param aLanguageArray Pronunciations are created with these languages. Not all languages are supported. The argument can be NULL.
+ * @param aLexiconID lexicon Id
+ * @param aGrammarID grammar Id, where the new rule is added to
+ * @param aRuleID reference where a new rule Id is assigned to
+ */
+ void MSrAddVoiceTagsL( RPointerArray<MDesCArray>* aTrainArray, RArray<TLanguage>& aLanguageArray, TSILexiconID aLexiconID,
+ TSIGrammarID aGrammarID, RArray<TSIRuleID>& aRuleID );
+
+ /**
+ * From MSISpeechRecognitionCustomCommandImplementor
+ * Creates a new empty rule.
+ * @since 2.8
+ * @param aGrammarID grammar Id, where the new rule is added to
+ * @param aRuleID reference where a new rule Id is assigned to
+ */
+ void MSrCreateRuleL( TSIGrammarID aGrammarID, TSIRuleID& aRuleID );
+
+ /**
+ * From MSISpeechRecognitionCustomCommandImplementor
+ * Initiates recognition; performed following loading of model bank, lexicon, and grammar.
+ * @since 2.8
+ * @param aResultSet: reference where the recognition result is set.
+ */
+ void MSrRecognizeL( CSIClientResultSet& aResultSet );
+
+ /**
+ * From MSISpeechRecognitionCustomCommandImplementor
+ * Ends recording. Unlike Cancel(), this function may return a recognition
+ * result if adequate number of samples was already recorded.
+ * @since 2.8
+ */
+ void MSrEndRecordL();
+
+ /**
+ * From MSISpeechRecognitionCustomCommandImplementor
+ * Unloads the specified grammar from the temporary memory,
+ * previously loaded with MSrLoadGrammarL. The grammar in the permanent storage remains intact.
+ * result if adequate number of samples was already recorded.
+ * @since 2.8
+ * @param aGrammarID grammar Id,
+ */
+ void MSrUnloadGrammarL( TSIGrammarID aGrammarID );
+
+ /**
+ * From MSISpeechRecognitionCustomCommandImplementor
+ * Activiate specified grammar after deactivating.
+ * @since 2.8
+ * @param aGrammarID grammar Id,
+ */
+ void MSrActivateGrammarL( TSIGrammarID aGrammarID );
+
+ /**
+ *
+ * Deactivates a specified grammar.
+ * @since 2.8
+ * @param aGrammarID grammar Id,
+ */
+ void MSrDeactivateGrammarL( TSIGrammarID aGrammarID );
+
+ /**
+ *
+ * Get the number of Pronunciations in the lexicon
+ * @since 2.8
+ * @param aLexiconID lexicon Id,
+ * @param aCount number of pronunciations,
+ */
+ void MSrGetPronunciationCountL( TSILexiconID aLexiconID, TInt& aCount );
+
+ /**
+ *
+ * Get the number of rules in the Grammar
+ * @since 2.8
+ * @param aGrammarID grammar Id,
+ * @param aCount number of rules,
+ */
+ void MSrGetRuleCountL( TSIGrammarID aGrammarID, TInt& aCount );
+
+
+ /**
+ * From MSISpeechRecognitionCustomCommandImplementor
+ * Trains one SINDE voice tag. Adds the text to the lexicon, and
+ * creates the required rules and rule variants.
+ *
+ * @since 3.1
+ * @param aTrainArray The phrase to be trained, split into subwords
+ * @param aLanguageArray The pronunciation languages for each of the
+ * @param aLexiconID Lexicon identifier
+ * @param aGrammarID Grammar identifier
+ * @param aRuleID Reference, where the new rule identifier is assigned to.
+ */
+ void MSrAddSindeVoiceTagL( MDesCArray& aTrainArray,
+ RArray<RLanguageArray>& aLanguageArray,
+ TSILexiconID aLexiconID,
+ TSIGrammarID aGrammarID,
+ TSIRuleID& aRuleID );
+
+ /**
+ * From MSISpeechRecognitionCustomCommandImplementor
+ * Trains SINDE voice tags. If the training fails for some of the names
+ * (but not all), it is signaled by setting the Rule ID to KInvalidRuleID.
+ *
+ * @since 3.1
+ * @param aTrainArray The phrase to be trained, split into subwords
+ * @param aLanguageArray The pronunciation languages
+ * @param aLexiconID Lexicon identifier
+ * @param aGrammarID Grammar identifier
+ * @param aRuleID Referenceto an array, where the new
+ * rule identifiers are assigned to.
+ */
+ void MSrAddSindeVoiceTagsL( RPointerArray<MDesCArray>* aTrainArray,
+ RArray<RLanguageArray>& aLanguageArray,
+ TSILexiconID aLexiconID,
+ TSIGrammarID aGrammarID,
+ RArray<TSIRuleID>& aRuleID );
+
+
+ public: // New functions
+
+ /**
+ * Sends an event to the client.
+ * @since 2.8
+ * @param aEvent event
+ * @param aResult result
+ */
+ void SendSrsEvent( TUid aEvent, TInt aResult );
+
+ private:
+
+ /**
+ * C++ default constructor.
+ */
+ CSIControllerPluginInterface();
+
+ /**
+ * By default Symbian 2nd phase constructor is private.
+ */
+ void ConstructL();
+
+
+ private: // Data
+
+ // SI Controller Plugin Implementation
+ CSIControllerPlugin* iController;
+
+ };
+
+#endif // SICONTROLLERPLUGININTERFACE_H
+
+// End of File