srsfenginestub/nlphwdevice/src/asrsnlphwdevice.h
changeset 0 0ce1b5ce9557
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srsfenginestub/nlphwdevice/src/asrsnlphwdevice.h	Thu Jan 14 07:14:53 2010 +0200
@@ -0,0 +1,171 @@
+/*
+* Copyright (c) 2004 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:     Algorithms for text normalization
+*
+*/
+
+
+
+
+
+#ifndef NLPHWDEVICE_H
+#define NLPHWDEVICE_H
+
+//  INCLUDES
+#include <e32std.h>
+#include <e32base.h>
+#include <nssttscommon.h>
+#include <asrshwdevice.h>
+
+// FORWARD DECLARATIONS
+class CNlpAlgorithm;
+
+// CLASS DECLARATION
+/**
+*  Class to define callback functions
+*
+*  @lib asrsttshwdevice.lib
+*  @since 3.0
+*/
+class MNlpHwDeviceObserver
+    { 
+    public: // New functions
+
+        /**
+        * Called by the HW device when the asynchronous text processing 
+        * has been completed.
+        * @since 3.0
+        * @param aStatus Error code, KErrNone if success
+        * @return none
+        */
+        virtual void MnhdoNlpCompleted( TInt aStatus ) = 0;
+
+
+        /**
+        * Invoked by Nlp Hw Device when it needs a configuration data package.
+        * @since 3.0
+        * @param aPackageType Type identifier. 
+        * @param aPackageID Identifier of package
+        * @param aStartPosition Start index in bytes
+        * @param aEndPosition End index in bytes. If the position is bigger 
+        *         than the size of data package, the end part will be returned.
+        * @return Data package in a buffer
+        */
+        virtual HBufC8* MnhdoConfigurationData( TUint32 aPackageType, 
+                                                TUint32 aPackageID, 
+                                                TUint32 aStartPosition = 0, 
+                                                TUint32 aEndPosition = KMaxTUint32 
+                                              ) = 0;
+                                              
+
+        /**
+        * Returns style given the style id.
+        * @since 3.0
+        * @param aStyleID The style id.
+        * @return A reference to TTtsStyle.
+        */
+        virtual const TTtsStyle& MnhdoStyleL( TTtsStyleID aStyleID ) = 0; 
+
+    };
+
+
+/**
+*  Class to provide text normalization
+*
+*  @lib asrsnlphwdevice.lib
+*  @since 3.0
+*/
+class CNlpHwDevice : public CASRSHwDevice
+    {
+    public: // Constructors and destructor
+        
+        /**
+        * Two-phased constructor.
+        * @param aObserver Observer which implements callback functions.
+        * @param aSamplingRate Sampling rate for output audio
+        * @param aBufferSize Buffer size for output audio
+        */
+        IMPORT_C static CNlpHwDevice* NewL( MNlpHwDeviceObserver& aObserver );
+
+        /**
+        * Destructor.
+        */
+        IMPORT_C virtual ~CNlpHwDevice();
+
+    public: // New functions
+
+        /**
+        * Ask if a language is supported or not.
+        * @since 3.0
+        * @param aLanguage Synthesizing language.
+        * @return ETrue language is supported otherwise EFalse
+        */
+        IMPORT_C TBool IsLanguageSupported( TLanguage aLanguage );
+
+	
+		/**
+        * Normalize given text, text is not splits into segments.
+        * @since 3.0
+        * @param aText 
+        */
+        IMPORT_C void NormalizeTextL( CTtsParsedText& aText );
+
+
+		/**
+        * Normalize given text asynchronously, text is not splits into segments.
+        * @since 3.0
+        * @param aText 
+        */
+        IMPORT_C void NormalizeTextAsyncL( CTtsParsedText& aText );
+
+    
+        /**
+        * Normalize given text, text is split into segments
+        * @since 3.0
+        * @param aText 
+        */      
+       	IMPORT_C void NormalizeAndSegmentTextL( CTtsParsedText& aText );
+       	
+        /**
+        * Normalize given text asynchronously, text is split into segments
+        * @since 3.0
+        * @param aText 
+        */      
+       	IMPORT_C void NormalizeAndSegmentTextAsyncL( CTtsParsedText& aText );
+       
+    private:
+
+        /**
+        * C++ default constructor.
+        */
+        CNlpHwDevice();
+
+        /**
+        * By default Symbian 2nd phase constructor is private.
+        */
+        void ConstructL( MNlpHwDeviceObserver& aObserver );
+
+    private: // Data
+
+		// Actual algorithm where all processing happens
+		CNlpAlgorithm* iAlgorithm;
+
+		// Reserved pointer for future extension
+        TAny* iReserved;
+
+    };
+
+#endif // NLPHWDEVICE_H   
+            
+// End of File