williamr@2: // Copyright (c) 2002-2009 Nokia Corporation and/or its subsidiary(-ies). williamr@2: // All rights reserved. williamr@2: // This component and the accompanying materials are made available williamr@2: // under the terms of the License "Symbian Foundation License v1.0" to Symbian Foundation members and "Symbian Foundation End User License Agreement v1.0" to non-members williamr@2: // which accompanies this distribution, and is available williamr@2: // at the URL "http://www.symbianfoundation.org/legal/licencesv10.html". williamr@2: // williamr@2: // Initial Contributors: williamr@2: // Nokia Corporation - initial contribution. williamr@2: // williamr@2: // Contributors: williamr@2: // williamr@2: // Description: williamr@2: // williamr@2: williamr@2: #ifndef __SPEECHRECOGNITIONDATACLIENT_H__ williamr@2: #define __SPEECHRECOGNITIONDATACLIENT_H__ williamr@2: williamr@2: #include williamr@2: #include williamr@2: williamr@2: // INCLUDES williamr@2: #include williamr@2: #include williamr@2: williamr@2: williamr@2: // FORWARD DECLARATION williamr@2: class TDiagnostic; williamr@2: williamr@2: williamr@2: // CLASS DECLARATION williamr@2: williamr@2: /** williamr@2: @publishedAll williamr@2: @released williamr@2: williamr@2: Class to encapsulate a client recognition result. williamr@2: The result is formulated for client consumption. williamr@2: williamr@2: @since 8.0 williamr@2: */ williamr@2: class CSDClientResult : public CBase williamr@2: { williamr@2: public: // Constructors and destructor williamr@2: /** williamr@2: Destructor. williamr@2: */ williamr@2: IMPORT_C ~CSDClientResult(); williamr@2: williamr@2: /** williamr@2: Two-phased constructor. Creates an uninitialised recognition result. williamr@2: williamr@2: Can leave with one of the system-wide error codes williamr@2: williamr@2: @return CSDClientResult object williamr@2: */ williamr@2: IMPORT_C static CSDClientResult* NewL(); williamr@2: williamr@2: /** williamr@2: Two-phased constructor. Creates an uninitialised recognition result. A copy of the newly created class williamr@2: is pushed onto the cleanup stack. williamr@2: williamr@2: Can leave with one of the system-wide error codes. williamr@2: williamr@2: @return CSDClientResult object williamr@2: */ williamr@2: IMPORT_C static CSDClientResult* NewLC(); williamr@2: williamr@2: /** williamr@2: Two-phased constructor. Creates a result with a grammar and rule ID. williamr@2: williamr@2: Can leave with one of the system-wide error codes. williamr@2: williamr@2: @param aGrammarID williamr@2: The grammar ID of the result. williamr@2: @param aRuleID williamr@2: The rule ID of the result. williamr@2: williamr@2: @return CSDClientResult object. williamr@2: */ williamr@2: IMPORT_C static CSDClientResult* NewL(TGrammarID aGrammarID, TRuleID aRuleID); williamr@2: williamr@2: /** williamr@2: Two-phased constructor. Creates a result with a grammar and rule ID. A copy of the newly created class williamr@2: is pushed onto the cleanup stack. williamr@2: williamr@2: Can leave with one of the system-wide error codes. williamr@2: williamr@2: @param aGrammarID williamr@2: The grammar ID of the result williamr@2: @param aRuleID williamr@2: The rule ID of the result williamr@2: williamr@2: @return CSDClientResult object. williamr@2: */ williamr@2: IMPORT_C static CSDClientResult* NewLC(TGrammarID aGrammarID, TRuleID aRuleID); williamr@2: williamr@2: /** williamr@2: Sets the grammar ID on the result. williamr@2: williamr@2: @param aGrammarID williamr@2: The grammar identifier. williamr@2: williamr@2: @since 8.0 williamr@2: */ williamr@2: IMPORT_C void SetGrammarID(TGrammarID aGrammarID); williamr@2: williamr@2: /** williamr@2: Retrieves the grammar ID of the result. williamr@2: williamr@2: @return Grammar identifier. williamr@2: @since 8.0 williamr@2: */ williamr@2: IMPORT_C TGrammarID GrammarID() const; williamr@2: williamr@2: /** williamr@2: Sets the rule ID of the result. williamr@2: williamr@2: @param aRuleID williamr@2: The rule identifier. williamr@2: williamr@2: @since 8.0 williamr@2: */ williamr@2: IMPORT_C void SetRuleID(TRuleID aRuleID); williamr@2: williamr@2: /** williamr@2: Returns the rule ID of the result. williamr@2: williamr@2: @return The rule identifier. williamr@2: @since 8.0 williamr@2: */ williamr@2: IMPORT_C TRuleID RuleID() const; williamr@2: williamr@2: /** williamr@2: @internalTechnology williamr@2: williamr@2: Writes the class to a stream. williamr@2: williamr@2: @param aStream williamr@2: A RWriteStream to write the class to. williamr@2: williamr@2: @since 8.0 williamr@2: */ williamr@2: void ExternalizeL(RWriteStream& aStream) const; williamr@2: /** williamr@2: @internalTechnology williamr@2: williamr@2: Reads the class from a stream. williamr@2: williamr@2: @param aStream williamr@2: A RReadStream to read from. williamr@2: williamr@2: @since 8.0 williamr@2: */ williamr@2: void InternalizeL(RReadStream& aStream); williamr@2: williamr@2: private: williamr@2: void ConstructL(); williamr@2: CSDClientResult(); williamr@2: CSDClientResult(TGrammarID aGrammarID, TRuleID aRuleID); williamr@2: williamr@2: williamr@2: private: williamr@2: TGrammarID iGrammarID; williamr@2: TRuleID iRuleID; williamr@2: }; williamr@2: williamr@2: williamr@2: /** williamr@2: @publishedAll williamr@2: @released williamr@2: williamr@2: Class to encapsulate a client recogntion result set williamr@2: This is a lightweight result set formulated for client consumption williamr@2: williamr@2: @since 8.0 williamr@2: */ williamr@2: class CSDClientResultSet : public CBase williamr@2: { williamr@2: public: // Constructors and destructor williamr@2: /** williamr@2: Destructor. williamr@2: */ williamr@2: IMPORT_C ~CSDClientResultSet(); williamr@2: williamr@2: /** williamr@2: Two-phased constructor. williamr@2: williamr@2: @return CSDClientResultSet object. williamr@2: */ williamr@2: IMPORT_C static CSDClientResultSet* NewL(); williamr@2: williamr@2: /** williamr@2: Two-phased constructor. Pushes the newly created object onto the cleanup stack williamr@2: williamr@2: @return CSDClientResultSet object. williamr@2: */ williamr@2: IMPORT_C static CSDClientResultSet* NewLC(); williamr@2: williamr@2: williamr@2: /** williamr@2: Sets the maximum number of best matches (N-best) expected in the recognition result after williamr@2: recognition. williamr@2: williamr@2: @param aMaxResults williamr@2: The maximum number of matches expected in the recognition result. williamr@2: williamr@2: @since 8.0 williamr@2: */ williamr@2: IMPORT_C void SetMaxResultsL(TInt aMaxResults); williamr@2: williamr@2: /** williamr@2: Returns the current value of the max number of expected after recognition. williamr@2: williamr@2: @return The maximum number of best matches (N-best) expected in the recognition result. williamr@2: williamr@2: @since 8.0 williamr@2: */ williamr@2: IMPORT_C TInt MaxResults() const; williamr@2: williamr@2: /** williamr@2: Returns a result at a given index within the result set. williamr@2: williamr@2: @param aIndex williamr@2: The index of result to return. williamr@2: williamr@2: @return A pointer to CSDClientResult object. williamr@2: williamr@2: @since 8.0 williamr@2: */ williamr@2: IMPORT_C const CSDClientResult& At(TInt aIndex) const; williamr@2: williamr@2: /** williamr@2: Sets the number of results actually returned after recogntion. williamr@2: williamr@2: @param aResultCount williamr@2: The number of results returned by the recognizer. williamr@2: williamr@2: @since 8.0 williamr@2: */ williamr@2: IMPORT_C void SetResultCount(TInt aResultCount); williamr@2: williamr@2: /** williamr@2: Returns the number of results actually returned after recogntion. williamr@2: williamr@2: @return The number of results actually returned after recogntion. williamr@2: williamr@2: @since 8.0 williamr@2: */ williamr@2: IMPORT_C TInt ResultCount() const; williamr@2: williamr@2: /** williamr@2: Sets the diagnostic of this result set. williamr@2: williamr@2: @param aDiagnostic williamr@2: The reference to the diagostic object. williamr@2: williamr@2: @since 8.0 williamr@2: */ williamr@2: IMPORT_C void SetDiagnostic(TDiagnostic& aDiagnostic); williamr@2: williamr@2: /** williamr@2: Gets the diagnostic of this result set. williamr@2: williamr@2: @return A reference to TDiagnostic object. williamr@2: williamr@2: @since 8.0 williamr@2: */ williamr@2: IMPORT_C const TDiagnostic& Diagnostic() const; williamr@2: williamr@2: williamr@2: /** williamr@2: Writes the state of the class to a stream. williamr@2: williamr@2: @param aStream williamr@2: The stream to write to. williamr@2: williamr@2: @since 8.0 williamr@2: */ williamr@2: IMPORT_C void ExternalizeL(RWriteStream& aStream) const; williamr@2: williamr@2: /** williamr@2: Restores the state of the object from a stream. williamr@2: williamr@2: @param aStream williamr@2: The stream to read from. williamr@2: williamr@2: @since 8.0 williamr@2: */ williamr@2: IMPORT_C void InternalizeL(RReadStream& aStream); williamr@2: williamr@2: private: williamr@2: void ConstructL(); williamr@2: CSDClientResultSet(); williamr@2: williamr@2: private: williamr@2: TInt iMaxResults; // maximum number of results williamr@2: TInt iResultCount; // number of recognition results williamr@2: RPointerArray iResultArray; // array of recognition results williamr@2: TDiagnostic* iDiagnostic; // diagnostic information williamr@2: }; williamr@2: williamr@2: #endif // __SPEECHRECOGNITIONDATACLIENT_H__ williamr@2: