srsf/nssvasapi/nssvascore/inc/nssvascspeechitem.h
changeset 13 57b735022c18
parent 1 b13cd05eeb2f
--- a/srsf/nssvasapi/nssvascore/inc/nssvascspeechitem.h	Mon Jan 18 20:20:30 2010 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,634 +0,0 @@
-/*
-* Copyright (c) 2004-2006 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:  The CSeechItem provides speech mechanism to request services from SRS.
-*
-*/
-
-
-#ifndef NSSVASCSPEECHITEM_H
-#define NSSVASCSPEECHITEM_H
-
-// INCLUDE FILES
-#include <nsssispeechrecognitiondatacommon.h>
-#include <nsssispeechrecognitionutilityobserver.h>
-#include <nssttscommon.h>
-
-#include "srsfbldvariant.hrh"
-#include "nssvascoreconstant.h"
-#include "nssvasmspeechitem.h"
-#include "nssvasmtrainvoiceeventhandler.h"
-#include "nssvasmtraintexteventhandler.h"
-#include "nssvasmplayeventhandler.h"
-#include "nssvasmcoresrsdbeventhandler.h"
-#include "nssvasmsavetagclient.h"
-#include "nssvasmdeletetagclient.h"
-#include "nssvasccontext.h"
-#include "nssvascspeechitemsrsportal.h"
-#include "nssvastspeechitemconstant.h"
-#include "nssvasttsutilitywrapper.h"
-
-// FORWARD DECLARATIONS
-class CNssSpeechItemTrainer;
-class CNssTag;
-
-/**
-* The CNssSpeechItem class provides a realization of the MNssSpeechItem client
-* interface. The CNssSpeechItem methods use the CSpeechRecognitionUtility Api 
-* to implement client speech requests.
-*
-* @lib nssvasapi.lib
-* @since 2.8
-*/
-class CNssSpeechItem : public CBase, 
-                       public MNssSpeechItem, 
-                       public MSISpeechRecognitionUtilityObserver,
-                       public MTtsClientUtilityObserver
-{
-
-  public:   // Constructors and destructor
-
-    /**
-    * Destructor.
-    */ 
-    ~CNssSpeechItem();
-
-    /**
-    * Two-phased CNssSpeechItem constructor
-    *
-    * @since 2.0
-    * @param aContext A reference to Context object
-    * @param aPortal A reference to SpeechItem Portal object
-    * @return a pointer to the new SpeechItem object
-    */   
-    static CNssSpeechItem* NewL( CNssContext& aContext, 
-                                 CNssSpeechItemSrsPortal& aPortal, 
-                                 CNssSpeechItemTrainer& aTrainer );
-
-
-    /**
-    * Two-phased CNssSpeechItem constructor
-    *
-    * @since 2.0
-    * @param aContext A reference to Context object
-    * @param aPortal A reference to SpeechItem Portal object
-    * @param aRuleID A rule ID value
-    * @param aText A reference to the TDesc text 
-    * @return a pointer to the new SpeechItem object
-    */   
-    static CNssSpeechItem* NewL( CNssContext& aContext,
-                                 CNssSpeechItemSrsPortal& aPortal,
-                                 CNssSpeechItemTrainer& aTrainer,
-                                 TUint32 aRuleID,
-                                 const TDesC& aText );
-
-    /**
-    * Two-phased CNssSpeechItem constructor
-    *
-    * @since 2.0
-    * @param aContext A reference to Context object
-    * @param aPortal A reference to SpeechItem Portal object
-    * @param aRuleID A rule ID value
-    * @param aText A reference to the TDesc text 
-    * @return a pointer to the new SpeechItem object
-    */   
-    static CNssSpeechItem* NewLC( CNssContext& aContext,
-                                  CNssSpeechItemSrsPortal& aPortal, 
-                                  CNssSpeechItemTrainer& aTrainer,
-                                  TUint32 aRuleID,
-                                  const TDesC& aText );
-
-
-  public: // New functions
-
-    /**
-    * Method to return the rule ID
-    *
-    * @since 2.0
-    * @param 
-    * @return the rule ID.
-    */   
-    TUint32 RuleID();
-
-    /**
-    * Method to set the rule ID
-    *
-    * @since 2.0
-    * @param aRuleID Rule ID 
-    */   
-    void SetRuleID( TUint32 aRuleID );
-
-    /**
-    * Method to set the Training Type
-    *
-    * @since 2.0
-    * @param aTrainType Training Type
-    */   
-    void SetTrainedType( TNssVasCoreConstant::TNssTrainedType aTrainType );
-
-	/**
-    * Create a copy of the SpeechItem object. 
-	* This cunction creates a new SpeechItem by allocating memory for
-	* a new SpeechItem, and deep copying the members of the SpeechItem 
-	* on which this fucntion is called. Old SpeechItem and new SpeechItem
-    * exist. Client need to deallocate memory for both.
-    *
-    * @param aContext a pointer to a Context
-    * @return pointer the newly created SpeechItem.
-    */
-	CNssSpeechItem* CopyL( CNssContext* aContext );
-
-
-
-  public: // Functions from base classes
-
-
-    /**
-    * Function inherited from MSISpeechRecognitionUtilityObserver to
-    * handle the events from SRS Utility object
-    *
-    * @since 2.0
-    * @param aEvent an event from the SRS utility object
-    * @param aResult the result from aEvent operation
-    */   
-    void MsruoEvent( TUid aEvent, TInt aResult );
-
- 
-    /**
-    * The Record method is used by the client in the train voice sequence
-    * for SRS to record input speech.
-    *
-    * @since 2.0
-    * @param aTrainVoiceEventHandler a reference to TrainVoiceEventHandler
-    * @return a fail or success result from processing this method.
-    */   
-    TNssSpeechItemResult RecordL( MNssTrainVoiceEventHandler* aTrainVoiceEventHandler );
-
-
-    /**
-    * Method called by the client to indicate to SRS that a playback is
-    * needed.
-    *
-    * @since 2.0
-    * @param aPlayEventHandler a reference to PlayEventHandler
-    * @return a fail or success result from processing this method.
-    */   
-    TNssSpeechItemResult PlayL( MNssPlayEventHandler* aPlayEventHandler );
-
-    /**
-    * Method called by the client to indicate to SRS that a playback is
-    * needed with a certain language.
-    *
-    * @since 2.8
-    * @param aPlayEventHandler a call back object to handle the play events
-    * @param aLanguage language which will be used in playback
-    * @return TNssSpeechItemResult synchronous return value to identify whether the
-    *         synchronous process is success or fail
-    */    
-    TNssSpeechItemResult PlayL( MNssPlayEventHandler* aPlayEventHandler,
-                                TLanguage aLanguage );
-
-    /**
-    * Method called by the client to indicate to SRS that training is
-    * needed.
-    *
-    * @since 2.0
-    * @param aTrainVoiceEventHandler a reference to TrainVoiceEventHandler
-    * @return a fail or success result from processing this method.
-    */   
-    TNssSpeechItemResult TrainVoiceL(MNssTrainVoiceEventHandler* aTrainVoiceEventHandler);
-
-    /**
-    * Method called by the client to  cancel the previous operation.
-    *
-    * @since 2.0
-    * @return a fail or success result from processing this method.
-    */   
-    TNssSpeechItemResult CancelL();
- 
-    /**
-    * The TrainingCapabilities member fucntion is used by the client 
-    * to get training capabilities to beused in Speaker Independent voice 
-    * recognition.
-    *
-    * @since 2.0
-    * @return a pointer to the Training Capability array object
-    */   
-    CArrayFixFlat<TNssVasCoreConstant::TNssTrainingCapability>* TrainingCapabilities();
- 
-    /**
-    * Method to return the Training Type
-    *
-    * @since 2.0
-    * @return the Training Type
-    */   
-    TNssVasCoreConstant::TNssTrainedType TrainedType();
-
-    /**
-    * Method to return the Text
-    *
-    * @since 2.0
-    * @return the Text
-    */   
-    TDesC& Text();
-
-    /**
-    * Returns the raw training text from where escape characters are not removed.
-    * Should not be used by clients who want to display the string.
-    *
-    * @since 3.2
-    * @return Reference to the text buffer
-    */    
-    TDesC& RawText();
-    
-    /**
-    * Returns the part of text which identified with the given id.
-    * If RawText() is for example "_1Amy_1Harris_2mobile" then 
-    * PartialTextL( _L( "1" ) ) call will return "Amy Harris".
-    *
-    * @since 3.2
-    * @param aIdentifier ID of the text part to return
-    * @reuturn Text or KNullDesC if identifier is not found
-    */
-    HBufC* PartialTextL( const TDesC& aIdentifier );
-    
-    /**
-    * Method to set the training text
-    *
-    * @since 2.0
-    * @param aText Text which will be trained
-    * @return
-    */   
-    void SetTextL( const TDesC& aText );
-
-    /**
-    * Method to query playing support.
-    *
-    * @since 2.8
-    * @return TBool True if playing is supported.
-    */
-    TBool IsPlayingSupported();
-
-    /**
-    * Method to train a speech model from text.
-    *
-    * @since 2.8
-    * @param aEventHandler Event handler
-    * @param aTrainingParams Training options, NULL uses default ones.
-    * @return TNssSpeechItemResult Success status
-    */
-    TNssSpeechItemResult TrainTextL( MNssTrainTextEventHandler* aEventHandler,
-                                     CNssTrainingParameters* aTrainingParams );
-
-    /**
-    * Unused method for future extensions of MTtsClientUtilityObserver.
-    *
-    * @from MTtsClientUtilityObserver
-    * @since 2.8
-    * @param aEvent event ID
-    * @param aError result
-    */
-	void MapcCustomCommandEvent( TInt aEvent, TInt aError );
-
-    /**
-    * Method to signal that playing has been initialized.
-    *
-    * @from MTtsClientUtilityObserver
-    * @since 2.8
-    * @param aError Successful or not
-    * @param aDuration Length of the TTS waveform
-    */
-	void MapcInitComplete( TInt aError, const TTimeIntervalMicroSeconds& aDuration);
-
-    /**
-    * Method to signal that playing has been completed.
-    *
-    * @from MTtsClientUtilityObserver
-    * @since 2.8
-    * @param aError Successful or not
-    */
-	void MapcPlayComplete( TInt aError );
-
-  public: // New Functions 
-
-    /**
-    * Method to start transaction for saving the data into the SRS.
-    *
-    * @since 2.0
-    * @param aSaveTagClient Callback after we made it or died trying
-    * @param aTag Tag to be deleted
-    * @return a fail or success result from processing this method.
-    */   
-    MNssCoreSrsDBEventHandler::TNssSrsDBResult 
-        NSSBeginSaveToSrs( MNssSaveTagClient* aSaveTagClient, CNssTag* aTag );
-
-    /**
-    * Method to start transaction for deleting tags from SRS and VAS DB.
-    *
-    * @since 2.0
-    * @param aDeleteTagClient Callback after we made it or died trying
-    * @param aTag Tag to be deleted
-    * @return a fail or success result from processing this method.
-    */   
-    MNssCoreSrsDBEventHandler::TNssSrsDBResult 
-        NSSBeginDeleteFromSrs( MNssDeleteTagClient* aDeleteTagClient, CNssTag* aTag );
-
-    /**
-    * Method to commit the transaction to the SRS.
-    * This is a SYNCHRONOUS method.
-    * @since 2.0
-    * @return a fail or success result from processing this method.
-    */   
-    MNssCoreSrsDBEventHandler::TNssSrsDBResult CommitSrsChanges();
-
-
-    /**
-    * Method to end the transaction without committing..
-    * This is a SYNCHRONOUS method.
-    * @since 2.8
-    * @return a fail or success result from processing this method.
-    */   
-    MNssCoreSrsDBEventHandler::TNssSrsDBResult RollbackSrsChanges();
-
-    /**
-    * Method to set the Tag ID
-    * @since 2.0
-    * @param aTagId a Tag ID 
-    */   
-	void SetTagId( TInt aTagId );
-
-    /**
-    * Method to return the Tag ID
-    *
-    * @since 2.0
-    * @return the Tag ID.
-    */   
-    TInt TagId();
-
-    /**
-    * Method to return the Grammar ID from the context of the speech item.
-    *
-    * @since 2.8
-    * @return the Grammar ID.
-    */
-    TUint32 GrammarId();
-
-    /**
-    * Method to set the Trained flag for True or False
-    *
-    * @since 2.0
-    * @param aTrained Trained flag
-    */   
-	void SetTrained( TBool aTrained );
-
-    /**
-    * Method to return the Trained flag
-    *
-    * @since 2.0
-    * @return the Trained flag
-    */   
-    TBool Trained();
-
-    /**
-    * Updates the speech item after training.
-    *
-    * @since 2.8
-    * @param aRuleID Rule ID.
-    */
-    void DelayedTrainingComplete( TUint32 aRuleID );
-
-
-  private: //function
-
-    /**
-    * C++ constructor
-    *
-    * @param aContext reference to Context object
-    * @param aPortal reference to SpeechItem Portal object
-    * @param aTrainer reference to speech item trainer
-    */   
-    CNssSpeechItem( CNssContext& aContext, 
-                    CNssSpeechItemSrsPortal& aPortal, 
-                    CNssSpeechItemTrainer& aTrainer );
-
-    /**
-    * Symbian 2nd phase constructor 
-    *
-    * @param aRuleID Rule ID value
-    * @param aText Reference to the TDesc text 
-    */   
-    void ConstructL( TUint32 aRuleID, const TDesC& aText );
-
-    /**
-    * Method to copy utterance data from current to transient values
-    */   
-    void CopyUtteranceData();
-
-    /**
-    * Method to handle the "GetUtteranceDurationEvent" complete from SRS
-    */   
-    void DoGetUtteranceDurationCompleteEvent();
-
-    /**
-    * Method to handle the "PlayEvent" complete from SRS
-    */   
-    void DoPlayCompleteEvent();
-
-    /**
-    * Method to handle the "PlayEvent" fail from SRS
-    *
-    * @param aResult - a Result value from the Play operation
-    */   
-    void DoPlayFailEvent( TInt aResult );
-
-    /**
-    * Method to process the SRS play error 
-    *
-    * @param aResult the result value from SRS which indicates an error
-    * @return a converted error code to identify the VAS play error
-    */   
-    MNssPlayEventHandler::TNssPlayResult DoPlayResult( TInt aResult );
-    
-    /**
-    * Method to handle the "GetAvailableStorageEvent" complete from SRS
-    */   
-    void DoGetAvailableStorageCompleteEvent();
-
-    /**
-    * Method to handle the "TrainEvent" complete from SRS
-    */   
-    void DoTrainCompleteEvent();
-
-    /**
-    * Method to process the various train failed events from SRS'
-    *
-    * @param aResult the result value to indicate an error
-    */   
-    void DoTrainFailEvent( TInt aResult );
-
-    /**
-    * Method to process the SRS train error
-    *
-    * @param aResult the result value from SRS which indicates an error
-    * @return a converted error code to identify the VAS train error
-    */   
-    MNssTrainVoiceEventHandler::TNssTrainResult DoTrainResult( TInt aResult );
-    
-    /**
-    * Method to handle the "AddPronunciation" complete from SRS
-    */   
-    void DoAddPronunciationCompleteEvent();
-
-    /**
-    * Method to handle the "AddPronunciation" fail from SRS
-    *
-    * @param aResult a Result value from the event
-    */   
-    void DoAddPronounciationFailEvent( TInt aResult );
-    
-    /**
-    * Method to handle the "RemoveModel" complete from SRS
-    */   
-    void DoRemoveModelCompleteEvent();
-
-    /**
-    * Method to handle the "RemoveModel" fail from SRS
-    *
-    * @param aResult a Result value from the event
-    */   
-    void DoRemoveModelFailEvent( TInt aResult );
-
-    /**
-    * Method to process the SRS DB error 
-    *
-    * @param aResult the result value from SRS to indicate an error
-    * @return an error code to identify the DB error
-    */   
-    MNssCoreSrsDBEventHandler::TNssSrsDBResult DoSrsDBResult( TInt aResult );
-
-    /**
-    * Method to notify the event handler for receiving the Unexpected Event
-    */  
-    void NotifyHandlerForUnexpectedEvent();
-
-    /**
-    * Method to do clean up
-    */   
-    void CleanUp();
-    
-    /**
-    * Method to verify whether it is ok to retry
-    *
-    * @return ETrue is ok to retry, EFalse stops retry 
-    */   
-    TBool DoRetry();
- 
-    /**
-    * This method starts playback with CTtsUtility.
-    */
-    void DoPlayL();
-
-    /**
-    * This method releases resources, which were reserved for playing,
-    * and updated the state from PlayingStrated to Idle.
-    */
-    void CleanPlayback();
-
-    /**
-    * Makes the callback after playing has completed or failed.
-    *
-    * @param Symbian standard error code
-    */
-    void MakePlayCallback( TInt aResult );
-
-  private: //data
-
-    // The rule ID.
-    TUint32 iRuleID;
-
-    // The transient rule ID.
-    TUint32 iTransientRuleID;
-
-    // The text data.
-    HBufC* iText;
-
-    // The trained type.
-    TNssVasCoreConstant::TNssTrainedType iTrainedType;
-
-    // Need to keep track the training state.
-    TNssSpeechItemConstant::TNssState iState;
-    TNssSpeechItemConstant::TNssState iOldState;
-
-    // Reference to Context object
-    CNssContext& iContext;
-
-    // Reference to SRS Portal object.
-    CNssSpeechItemSrsPortal& iPortal;
-
-    // Reference to SRS Trainer object. Used for delayed text training.
-    CNssSpeechItemTrainer& iTrainer;
-
-    // Pointer to Play Event Handler object.
-    MNssPlayEventHandler* iPlayEventHandler; 
-
-    // Pointer to Train Event Handler object
-	MNssTrainVoiceEventHandler* iTrainVoiceEventHandler;
-
-    // The Tag ID for internal use by Vas Database,
-	TInt iTagId; 
-
-    // The Trained flag for re-training operation
-    TBool iTrained;
-
-    // The duration for the play utterance
-    TTimeIntervalMicroSeconds32 iPlayDuration;
-
-    // The flag to identify recovery is in progress
-    TBool iRecover;
-
-    // Retry counter
-    TInt iRetry;
-
-    // Memory is allocated for TTS data only when plaing the tag.
-    // This is because CNssSpeechItem may have thousands of copies.
-    struct TTtsData
-        {
-        // TTS speech style
-        TTtsStyle iStyle;
-
-        // TTS speech style handle
-        TTtsStyleID iStyleID;
-
-        // TTS speech segment
-        TTtsSegment iSegment;
-
-        // TTS player
-        CNssTtsUtilityWrapper* iTts;
-
-        // Parsed text
-        CTtsParsedText* iParsedText;
-
-        // Initializes everyting to zero.
-        TTtsData();
-        };
-
-    // TTS Data
-    TTtsData* iTtsData;
-    
-    // Cleaned text data where escape characters have been removed
-    HBufC* iTrimmedText;
-};
-
-#endif // NSSVASCSPEECHITEM_H
-
-// End of file