mmdevicefw/speechrecogsupport/ASR/src/SpeechRecognitionUtilityBody.h
changeset 0 40261b775718
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mmdevicefw/speechrecogsupport/ASR/src/SpeechRecognitionUtilityBody.h	Tue Feb 02 01:56:55 2010 +0200
@@ -0,0 +1,144 @@
+// Copyright (c) 2003-2009 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:
+//
+
+#ifndef __SPEECHRECOGNITIONUTILITYBODY_H__
+#define __SPEECHRECOGNITIONUTILITYBODY_H__
+
+// INCLUDES
+
+#include <e32base.h>
+#include <mmf/common/mmfcontroller.h>
+#include <mmf/common/speechrecognitioncustomcommands.h>
+#include <mmf/common/speechrecognitiondataclient.h>
+#include <speechrecognitionutility.h>
+
+
+class CSpeechRecognitionUtility::CBody : public CBase, public MMMFControllerEventMonitorObserver
+{
+public:
+	static CSpeechRecognitionUtility::CBody* NewL(TUid aClientUid, MSpeechRecognitionUtilityObserver& aSpeechRecognitionUtilityObserver);
+	static CSpeechRecognitionUtility::CBody* NewLC(TUid aClientUid, MSpeechRecognitionUtilityObserver& aSpeechRecognitionUtilityObserver);
+	
+	 ~CBody();
+	 TInt GetEngineProperties( const RArray<TInt>& aPropertyId, RArray<TInt>& aPropertyValue );
+	 TInt AddPronunciation(TLexiconID aLexiconID, TModelBankID aModelBankID, TModelID aModelID, TPronunciationID& aPronunciationID);
+	 TInt AddRule(TGrammarID aGrammarID, TLexiconID aLexiconID, TPronunciationID aPronunciationID, TRuleID& aRuleID);
+	 void Cancel();
+	 TInt CommitChanges();
+	 TInt CreateGrammar(TGrammarID& aGrammarID);
+	 TInt CreateLexicon(TLexiconID& aLexiconID);
+	 TInt LoadModels(TModelBankID aModelBankID);
+	 TInt LoadGrammar(TGrammarID aGrammarID);
+
+	 TInt LoadLexicon(TLexiconID aLexiconID);
+
+	 TInt GetUtteranceDuration(TModelBankID aModelBankID, TModelID aModelID, TTimeIntervalMicroSeconds32& aDuration);
+	 TInt PlayUtterance(TModelBankID aModelBankID, TModelID aModelID);
+	 TInt GetModelCount(TModelBankID aModelBankID, TInt& aModelCount);
+	 TInt EndRecSession();
+
+	 TInt StartRecSession(TRecognitionMode aMode);
+	 TInt Recognize(CSDClientResultSet& aResultSet);
+
+	 TInt Record(TTimeIntervalMicroSeconds32 aRecordTime);
+
+	 TInt RemoveGrammar(TGrammarID aGrammarID);
+
+	 TInt RemovePronunciation(TLexiconID aLexiconID, TPronunciationID aPronunciationID);
+
+	 TInt RemoveLexicon(TLexiconID aLexiconID);
+
+	 TInt RemoveModel(TModelBankID aModelBankID, TModelID aModelID);
+
+	 TInt RemoveRule(TGrammarID aGrammarID, TRuleID aRuleID);
+	 TInt Train(TModelBankID aModelBankID, TModelID& aModelID);
+	 TInt UnloadRule(TGrammarID aGrammarID, TRuleID aRuleID);
+	 void SetEventHandler(MSpeechRecognitionUtilityObserver* aSpeechRecognitionUtilityObserver);
+	 TInt GetAllPronunciationIDs(TLexiconID aLexiconID, RArray <TPronunciationID>& aPronunciationIDs);
+	 TInt GetAllModelIDs(TModelBankID aModelBankID, RArray <TModelID>& aModelIDs);
+	 TInt GetAllRuleIDs(TGrammarID aGrammarID, RArray <TRuleID>& aRuleIDs);
+	 
+  	 TInt GetAllLexiconIDs(RArray <TLexiconID>& aPronunciationIDs);
+	 TInt GetAllModelBankIDs(RArray <TModelBankID>& aModelIDs);
+	 TInt GetAllGrammarIDs(RArray <TGrammarID>& aRuleIDs);
+
+ 	 TInt GetAllClientLexiconIDs(RArray <TLexiconID>& aPronunciationIDs);
+	 TInt GetAllClientModelBankIDs(RArray <TModelBankID>& aModelIDs);
+	 TInt GetAllClientGrammarIDs(RArray <TGrammarID>& aRuleIDs);
+
+ 	 TInt GetRuleValidity(TGrammarID aGrammarID, TRuleID aRuleID, TBool& aValid); 
+
+	 TInt CreateModelBank(TModelBankID& aModelBankID);
+	 TInt RemoveModelBank(TModelBankID aModelBankID);
+	 TInt GetAvailableStorage(TInt& aAvailableStorage); 
+	 TInt LoadEngineParameters( const RArray<TInt>& aParameterId, 
+								const RArray<TInt>& aParameterValue );
+
+	 TInt SetAudioPriority( TInt aPriority, TInt aTrainPreference, 
+					TInt aPlaybackPreference, TInt aRecognitionPreference );
+
+	void HandleEvent(const TMMFEvent& aEvent);
+
+private:
+	CBody(TUid aClientUid, MSpeechRecognitionUtilityObserver& aSpeechRecognitionUtilityObserver);
+	
+	void ConstructL();
+
+	// member variable MMF controller
+	RMMFController iMMFController;
+	// member variable for custom commands
+	RSpeechRecognitionCustomCommands iSrCustomCommands;
+	// member variable pointer for observer class
+	MSpeechRecognitionUtilityObserver* iSpeechRecognitionUtilityObserver;
+
+	// member variable pointer for controller event monitor class
+	CMMFControllerEventMonitor* iControllerEventMonitor;
+	// used to indicate if an event is the result of an internal command
+	TBool iAsyncCallBusy;
+
+	// member variable pointer for array of rule IDs - not owned
+	RArray <TRuleID>* iRuleIDs;
+	// member variable pointer for array of pronunciation IDs  - not owned
+	RArray <TPronunciationID>* iPronunciationIDs;
+	// member variable pointer for array of model IDs  - not owned
+	RArray <TModelID>* iModelIDs;
+	
+	// member variable pointer for array of Grammar IDs  - not owned
+	RArray <TGrammarID>* iGrammarIDs;
+	// member variable pointer for array of Lexicon IDs  - not owned
+	RArray <TLexiconID>* iLexiconIDs;
+	// member variable pointer for array of Model Bank IDs  - not owned
+	RArray <TModelBankID>* iModelBankIDs;
+
+
+	// member variable for audio priority
+	TInt iAudioPriority;
+	// member variable for train preference
+	TMdaPriorityPreference iTrainPreference; 
+	// member variable for playback preference
+	TMdaPriorityPreference iPlaybackPreference;
+	// member variable for recognition preference
+	TMdaPriorityPreference iRecognitionPreference;
+	
+	CSDClientResultSet* iResultSet;
+
+	// settings used in the construction of the asr controlller 
+	TMMFPrioritySettings   iPrioritySettings;
+	
+	TUid iClientUid;
+
+};
+
+#endif	// __SPEECHRECOGNITIONUTILITY_H__