diff -r 000000000000 -r 15bf7259bb7c exampleapps/alfexanalogdialer/inc/alfexanalogdialerfeedback.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/exampleapps/alfexanalogdialer/inc/alfexanalogdialerfeedback.h Tue Feb 02 07:56:43 2010 +0200 @@ -0,0 +1,158 @@ +/* +* Copyright (c) 2008-2008 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: Class for Analog Dialer example application, which +* implements long lasting tactile feed back event +* +*/ + + + +#ifndef ANALOGDIALER_FEEDBACK_H +#define ANALOGDIALER_FEEDBACK_H + +#include + +// Forward reference +class MTouchFeedback; +class CPeriodic; + +// default time values for playing tactile feedback +const TInt KFeedbackDefault = 0; + +/** + * Class for giving physical feedback about events in the analog dialer + * + * @since S60 5.0 + */ +class CAlfExAnalogDialerFeedback : public CBase + { +public: + + + /* Constructors and destructor. */ + + /** + * First phase construction of CAlfExAnalogDialerFeedback. + * + * @since S60 5.0 + */ + static CAlfExAnalogDialerFeedback* NewL(); + + /** + * Destructor of CAlfExAnalogDialerFeedback + * Destroy the object and release all memory objects + * + * @since S60 5.0 + */ + virtual ~CAlfExAnalogDialerFeedback(); + + + /* Methods. */ + + /** + * Starts tactile feedback which lasts for given time + * + * @param aDuration total duration of tactile feedback. + * KFeedbackDefaultInterval: feedback is given once only + * @param aInterval interval, when feed back is restarted + * KFeedbackDefaultInterval: continuos feedback is given. + * if aDuration == KFeedbackDefaultInterval, this parameter + * is ignored. + * + * @since S60 5.0 + */ + void Start( TInt aDurationMilliSeconds = KFeedbackDefault, + TInt aIntervalMilliSeconds = KFeedbackDefault); + + /** + * Stops tactile feedback immediately + * + * @since S60 5.0 + */ + void Stop(); + +private: + + + /* Constructors */ + + /** + * Constructor of CAlfExAnalogDialerFeedback + * @since S60 5.0 + */ + CAlfExAnalogDialerFeedback(); + + /** + * Second phase construction of CAlfExAnalogDialerFeedback. + * Private as this object must be constructed via NewL() or NewLC() + * + * @since S60 5.0 + */ + void ConstructL(); + + + /* Methods. */ + + /** + * Handles elapsed interval of feedback clock + * + * @since S60 5.0 + */ + void DoHandleInterval(); + + /** + * TCallBack function. Handles elapsed interval of feedback clock. + * Required by CPeriodic. + * + * @return Returns value forced by TCallBack + * @since S60 5.0 + */ + static TInt HandleInterval(TAny* aThis); + +private: + + /* Member data. */ + + /** + * Tactile feedback object + * Not own. + */ + MTouchFeedback* iFeedback; + + /** + * Class for implementing continuous feedback effect + * Own. + */ + CPeriodic* iClock; + + /** + * time for duration of current feedback + */ + TInt iDuration; + + /** + * interval of current feedback + */ + TInt iInterval; + + /** + * Clock time when feedback stops + */ + TTime iDurationStop; + + }; + + +#endif // ANALOGDIALER_FEEDBACK_H +