diff -r ebd48d2de13c -r ecbabf52600f textinput/peninputhwrfscn/inc/peninputhwrengine.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/textinput/peninputhwrfscn/inc/peninputhwrengine.h Wed Sep 01 12:23:33 2010 +0100 @@ -0,0 +1,361 @@ +/* +* Copyright (c) 2002-2005 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: HWR Engine +* +*/ + + +#ifndef C_PENINPUTHWRENGINE_H +#define C_PENINPUTHWRENGINE_H + +// INCLUDES +#include +#include +#include + +class CPeninputHwrfscnDataStore; + +/** + * CAknFepHwrEngine + * + * @lib peninputhwrfscn.lib + * @since S60 v3.2 + */ +class CAknFepHwrEngine: public CBase + { +public: + + /** + * Symbian constructor. + * + * @since S60 v3.2 + * @return Pointer to created CAknFepHwrEngine object + */ + static CAknFepHwrEngine* NewL( CPtiEngine* aPtiEngine, + CPeninputHwrfscnDataStore* aOwner ); + + /** + * destructor + * + * @since S60 v3.2 + * @return None + */ + virtual ~CAknFepHwrEngine(); + + /** + * Do recoginize by engine + * + * @since S60 v3.2 + * @param aTraceData The trace data. + * @param aCandidates The candidates recognized. + * @param aRangeStartPos The range index of candidates. + * @return None + */ + void DoRecognizeL( const RArray& aTraceData, RPointerArray& aCandidates ); + + /** + * Do predictive using trigger string + * + * @since S60 v3.2 + * @param aTriggerStr The trigger string to do predictive. + * @param aPredictives The candidates predictived. + * @param aNextPage Whether it is to get next page + * @return None + */ + void DoPredictiveL( const TDesC& aTriggerStr, + RPointerArray& aPredictives, + TBool aNextPage = EFalse ); + + + /** + * Do homophonic using trigger string + * + * @since S60 v3.2 + * @param aTriggerStr The trigger string to do homophonic. + * @param aHomophonic The homophonic candidates. + * @return None + */ + void DoHomophonicL( const TDesC& aTriggerStr, + RPointerArray& aHomophonic ); + + + /** + * Notify hwr engine to set primary range and auxiliary ranges + * + * @since S60 v3.2 + * @param aPermittedRanges The permitted ranges and the first range is primary range. + * @return None + */ + void SetRanges( const RArray& aPermittedRanges ); + + /** + * Set case + * + * @since S60 v3.2 + * @param aCase The case + * @return None + */ + void SetCase( TInt aCase ); + + /** + * Set number mode + * + * @since S60 v3.2 + * @param aNumberMode Given number mode + * @return None + */ + void SetNumberMode( const TAknEditorNumericKeymap& aNumberMode ); + + /** + * Get stroke end mark from hwr engine + * + * @since S60 v3.2 + * @return Stroke end mark + */ + TPoint StrokeEndMark() const ; + + /** + * Set primary candidate num that hwr engine should return each time + * + * @since S60 v3.2 + * @param aNum The primary candidate num to be set + * @return KErrNone if operation successfully,otherwise system wide error codes + */ + TInt SetPrimaryCandidateNum( TInt aNum ); + + /** + * Set total candidate number that can be shown + * + * @since S60 v3.2 + * @param aNum The total candidate number that should be shown + * @return KErrNone if operation successfully,otherwise system wide error codes + */ + TInt SetCandidatesMaxCount( TInt aCount ); + + /** + * Set aux candidate number that can be shown + * + * @since S60 v3.2 + * @param aNum The aux candidate number that should be shown + * @return KErrNone if operation successfully,otherwise system wide error codes + */ + TInt SetAuxCandidateNum( TInt aNum ); + + /** + * Get aux candidate number that can be shown + * + * @since S60 v3.2 + * @return aux candidate number if operation successfully,otherwise system wide error codes + */ + TInt GetAuxCandidateNum(); + + /** + * Set language + * + * @since S60 v3.2 + * @param aLanguage The language + * @return None + */ + void SetLanguageL( TInt aLanguage ); + + /** + * Set custom key mapping + * + * @since S60 v3.2 + * @param aKeyMap The key mapping + * @return None + */ + void SetCustomKeymapL( const TDesC& aKeyMap ); + + /** + * Clear custom key mapping + * + * @since S60 v3.2 + * @return None + */ + void ResetCustomKeyMap(); + + /** + * Do background construct + * + * @since S60 v3.2 + * @return None + */ + static TBool BackgroundTaskL( TAny* aPtr ); + TInt SetInputAreaSize(TSize& aSize); + TInt SetScreenSize(TSize& aSize); +private: + + /** + * C++ constructor + * + * @since S60 v3.2 + * @return None + */ + CAknFepHwrEngine(); + + /** + * Second phase constructor + * + * @since S60 v3.2 + * @return None + */ + void ConstructL( CPtiEngine* aPtiEngine, CPeninputHwrfscnDataStore* aOwner ); + + /** + * Notify hwr engine to set correct range by language + * + * @since S60 v3.2 + * @param aRange Current range need to be set + * @param aRecognitionRange Recognition range need to be set for hwr engine + * @return None + */ + void SetRecognitionRange( const TInt aRange, TRecognitionRange& aRecognitionRange ); + + /** + * Do background construct + * + * @since S60 v3.2 + * @return None + */ + void DoIdleConstructL(); + + /** + * Convert the stroke end mark of point array to another point + * + * @since S60 v3.2 + * @param aTraceData Point array + * @param aPnt1 Stroke end mark to be replaced + * @param aPnt2 Stroke end mark to be used + * @return None + */ + void ConvertStrokeEndMark( RArray& aTraceData, TPoint aPnt1, TPoint aPnt2 ); + + /** + * Get homophonic or polyphonic candidates + * + * @since S60 v3.2 + * @param aSpelling The spelling of the selected character + * @param aHomophonic The homophonic or polyphonic candidates + * @return None + */ + void GetHomophonicAndPolyphonic( TDes& aSpelling, RPointerArray& aHomophonic ); + + /** + * Reorder secondary range in writing candidates + * + * @since S60 v3.2 + * @param aCandidates The writing candidates + * @return None + */ + void ReorderSecondaryRange( RPointerArray& aCandidates ); + + /** + * Do recongition when the ragnge is only number + * + * @since S60 v5.0 + * @param aTraceData The trace data. + * @param aCandidates The candidates recognized. + * @return None + */ + void DoRecognizeOfNumberOnly( const RArray& aTraceData, + RPointerArray& aCandidates ); + +private: //data + + /** + * Engine + * Ownership is determined by flag + */ + CPtiEngine* iPtiEngine; + + /** + * iPtiEngine ownership flag + */ + TBool iOwnPtiEngine; + + /** + * Hwr recognizer (Now own) + */ + MPtiHwrRecognizer* iRecognizer; + + /** + * Total candidate number that can be shown + */ + TInt iTotalCandidateNum; + + /** + * Current case + */ + TInt iCase; + + /** + * Current language + */ + TInt iLanguage; + + /** + * Range count + */ + TInt iRangeCount; + + /** + * Premary range + */ + TInt iPremaryRange; + + /** + * Custom key mapping + */ + HBufC* iCustomKeymap; + + /** + * Idle (own) + */ + CIdle* iIdle; + + /** + * Data store (Not own) + */ + CPeninputHwrfscnDataStore* iOwner; + + /** + * Set number mode flag + */ + TBool iNeedSetNumberMode; + + /** + * Set case flag + */ + TBool iNeedSetCase; + + /** + * Set range flag + */ + TBool iNeedSetRange; + + /** + * Permitted range array + */ + RArray iNeedPermittedRanges; + + /** + * The number mode + */ + TInt iNumberMode; + }; + +#endif //C_PENINPUTHWRENGINE_H + +//End Of File