srsfenginestub/adaptationhwdevice/src/asrsadaptationhwdevice.h
author Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
Thu, 14 Jan 2010 07:14:53 +0200
changeset 0 0ce1b5ce9557
permissions -rw-r--r--
Revision: 201001

/*
* Copyright (c) 2002 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:     ARM hardware device for grammar compiling
*
*/






#ifndef ASRADAPTATIONHWDEVICE_H
#define ASRADAPTATIONHWDEVICE_H

//  INCLUDES
#include <asrshwdevice.h>
#include <nsssispeechrecognitiondatadevasr.h>

// Implementation
class CAsrAdaptationAlgorithm;
 
// CLASS DECLARATION
/**
*  Callback class for adaptation.
*
*  !!@lib asrsadaptationhwdevice.lib
*  @since 2.8
*/
class MASRAdaptationHwDeviceObserver
    {
public:
	    /**!!!
        *  
        * @since 2.8
        * @param none
        * @return  
        */
     
	virtual void MaahdAdaptationComplete(TInt aError) = 0; 
};



/**
*  Adaptation class 
*
*  !!@lib asrsadaptationhwdevice.lib
*  @since 2.8
*/
class  CASRSAdaptHwDevice : public CASRSHwDevice
    {
    public:  // Constructors and destructor
        
        /**
        * Two-phased constructor.
        */
        IMPORT_C static CASRSAdaptHwDevice* NewL(         
         MASRAdaptationHwDeviceObserver& aObserver  );
        
        /**
        * Destructor.
        */
        IMPORT_C virtual ~CASRSAdaptHwDevice();

    public: // New functions

		/**
        * Retrieve a custom interface
        * @since 2.8
        * @param none
        * @return Pointer to a custom interface
        */
        IMPORT_C TAny* CustomInterface(TUid aInterfaceId);

		/**
        * Initializes the device. Subsequent calls reset the device.
        * @since 2.8
        * @param none
        * @return none
        */
        IMPORT_C void InitializeL();

		/**
        * Clears the device.
        * @since 2.8
        * @param none
        * @return none
        */
        IMPORT_C void Clear();

	 
		/**
        * Start the adaptation.  It will adapt the acoustic models given the feature vector set and phoneme sequences 
		* of a correctly recognized utterance
        * @since 2.8
 		* @param 		aAdaptationData: Buffer that stores data(feature vector) for the speaker adaptation.
		* @param 		aModelBank: Model bank, which is the acoustic model to be adapted.
		* @param 		aPronunciation: Pronunciation of the adaptation utterance.
		* @param 		aLanguage : adaptation language
        * @return		none
        */
        IMPORT_C void StartAdaptationL(const TDesC8& aAdaptationData, 
										CSIModelBank& aModelBank, 
										  CSIPronunciation& aPronunciation,TLanguage aLanguage);
		
	 

	 	/**
        * Cancel the Adaptation process. No callback is sent to the client.
        * @since 2.8
        * @param none
        * @return none
        */
        IMPORT_C void CancelAdaptation();

		/**
        * Cancels adaptation. No callback is sent to the client.
        * @since 2.8
        * @param none
        * @return none
        */
/*        IMPORT_C void CancelCombination();*/
 
    public: // Functions from base classes

        /**
        * From ?base_class ?member_description.
        * @since ?Series60_version
        * @param ?arg1 ?description
        * @return ?description
        */
        //?type ?member_function( ?type ?arg1 );
        
    protected:  // New functions
        
        /**
        * ?member_description.
        * @since ?Series60_version
        * @param ?arg1 ?description
        * @return ?description
        */
        //?type ?member_function( ?type ?arg1 );

    protected:  // Functions from base classes
        
        /**
        * From ?base_class ?member_description
        */
        //?type ?member_function();

    private:

        /**
        * C++ default constructor.
        */
         CASRSAdaptHwDevice(MASRAdaptationHwDeviceObserver& anObserver);

        /**
        * By default Symbian 2nd phase constructor is private.
        */
        void ConstructL();


		
       
        // Prohibit copy constructor if not deriving from CBase.
        // CASRGrCompilerHwDevice( const CASRGrCompilerHwDevice& );
        // Prohibit assigment operator if not deriving from CBase.
        // CASRGrCompilerHwDevice& operator=( const CASRGrCompilerHwDevice& );

    public:     // Data
        // ?one_line_short_description_of_data
        //?data_declaration;
    
    protected:  // Data
        // ?one_line_short_description_of_data
        //?data_declaration;

    private:    // Data
        // pronunciation tree builder algorithm
        // CPTBAlgorithm* iPtb;

        // The observer
        MASRAdaptationHwDeviceObserver& iObserver;

        // Implementation-specific functions and data
        CAsrAdaptationAlgorithm *iAlgorithm;
 
        // Has Initialize() been called
        TBool iIsInitialised;

        // Reserved pointer for future extension.
        TAny* iReserved;

    public:     // Friend classes
        //?friend_class_declaration;
    protected:  // Friend classes
        //?friend_class_declaration;
    private:    // Friend classes
        //?friend_class_declaration;

    };
#endif      // ?INCLUDE_H   
            
// End of File