diff -r cad71a31b7fc -r e36f3802f733 srsf/nssvasapi/nssvasrecognition/inc/nssvasctagselectnotification.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/srsf/nssvasapi/nssvasrecognition/inc/nssvasctagselectnotification.h Wed Sep 01 12:29:17 2010 +0100 @@ -0,0 +1,141 @@ +/* +* Copyright (c) 2003 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 CNssTagSelectNotification class allows the client to +* register and deregister for a voice tag select event. +* +*/ + + +#ifndef CNSSTAGSELECTNOTIFICATION_H +#define CNSSTAGSELECTNOTIFICATION_H + +// INCLUDES + +#include +#include "nssvasmtagselectnotification.h" +#include "nssvasmdbtagselectnotifierclient.h" +#include "nssvasccontext.h" +#include "nssvascvasdbbuilder.h" + +// FORWARD DECL +class CNssTag; +class CNssVASDBBuilder; +class MNssTagSelectHandler; +class CNssTagSelectData; + + +// CLASS DEFINITIONS + +/** +* +* The CNssTagSelectNotification class performs the recognition function. +* +* @lib NssVASApi.lib +* @since 2.8 +*/ + +class CNssTagSelectNotification : public CBase, + public MNssTagSelectNotification, + public MNssDBTagSelectNotifierClient +{ + + public: // Constructors and destructor + + /** + * Two-phased constructor. + */ + static CNssTagSelectNotification* NewL(); + + /** + * Two-phased constructor. + */ + static CNssTagSelectNotification* NewLC(); + + /** + * Destructor. + */ + ~CNssTagSelectNotification(); + + public: // Functions from base classes + + /** + * From MNssTagSelectNotification + * Register for voice tag select notification + * @since 2.0 + * @param aContext The voice tag context which determines notification. + * @param aTagSelectHandler The event handler for tag select notification. + * @return TSelectError Return code to indicate request was valid. + */ + TNssSelectResult RegisterL(MNssContext* aContext, + MNssTagSelectHandler* aTagSelectHandler); + + /** + * From MNssTagSelectNotification + * Deegister from voice tag select notification + * @since 2.0 + * @param aContext The voice tag context which determines notification. + * @param aTagSelectHandler The event handler for tag select notification, + * used to deregister the correct client. + * @return TSelectError Return code to indicate request was valid. + */ + TNssSelectResult Deregister(MNssContext* aContext, + MNssTagSelectHandler* aTagSelectHandler); + + /** + * From MNssDBTagSelectNotifierClient + * HandleSelection is called into the client by CNssDBTagSelectNotifier + * @since 2.0 + * @param aTag The voice tag which was selected. + * @return - + */ + void HandleSelection(CNssTag* aTag); + + private: + + /** + * Constructor. + */ + CNssTagSelectNotification(); + + /** + * By default Symbian 2nd phase constructor is private. + */ + void ConstructL(); + + /** + * CompareContexts compare a context with a Tag Select Data List context + * @since 2.0 + * @param aContext The context of the voice tag which is selected. + * @param aIndex The index of the Tag Select Data List entry to compare + * the aContext with + * @return - ETrue if contexts match, EFalse if they do not compare + */ + TBool CompareContexts(CNssContext* aContext, TInt aIndex); + + private: + + // Pointer to VAS Database Builder object. + CNssVASDBBuilder* iVasDBBuilder; + + // Pointer to Database Tag Select Notifier object. + CNssDBTagSelectNotifier* iDBTagSelectNotifier; + + // Pointer to Tag Select Data List object. + CArrayPtrFlat* iTagSelectDataList; + +}; + +#endif // CNSSTAGSELECTNOTIFICATION_H + +// End of File