diff -r 000000000000 -r 05e9090e2422 skins/AknSkins/srvinc/aknssrvwallpapertimer.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/skins/AknSkins/srvinc/aknssrvwallpapertimer.h Thu Dec 17 09:14:12 2009 +0200 @@ -0,0 +1,146 @@ +/* +* Copyright (c) 2007 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: Slide set wallpaper timer. +* +*/ + + +#ifndef C_AKNSWALLPAPERTIMER_H +#define C_AKNSWALLPAPERTIMER_H + +#include + +/** + * Observer interface for wallpaper slide set timer. + * + * This interface is called when timer fires according + * to interval period defined when creating an instance. + * + * @lib aknssrv.lib + * @since S60 v3.2 + */ +class MAknsSrvWallpaperListener + { + public: + virtual void WallpaperTimerTimeoutL( TBool aForceChange = EFalse ) = 0; + }; + +/** + * Slideset wallpaper timer. + * + * This class defines a timer for changing the image + * in a slide set. When timer fires according to interval + * given when creating the class, observer interface + * MAknsSrvWallpaperListener::WallpaperTimerTimeoutL is + * called. + * + * @lib aknssrv.lib + * @since S60 v3.2 + */ +NONSHARABLE_CLASS(CAknsSrvWallpaperTimer) : public CActive + { + public: + + /** + * Creates a new instance of wallpaper slide set timer. + * @param aListener observer for this timer's events. + * + * @return new instance of wallpaper slide set timer. + */ + static CAknsSrvWallpaperTimer* NewL( + MAknsSrvWallpaperListener* aListener ); + + /** + * Start the timer. + * @param aInterval firing interval in seconds. + * The timer is fired after each interval period, + * until stopped. + */ + void Start( TInt aInterval ); + + /** + * Stop the timer. + */ + void Stop(); + + /** + * Returns the interval period of the timer. + * @return interval period of the timer. + */ + TInt Interval(); + + /** + * Destructor. Cancels and closes the timer. + */ + ~CAknsSrvWallpaperTimer(); + + protected: + + /** + * Handles an active object's request completion event. + * @from CActive. + */ + void RunL(); + + /** + * Implements cancellation of an outstanding request. + * @from CActive. + */ + void DoCancel(); + + private: + + // Second phase constructor. + void ConstructL(); + + // C++ constructor. + CAknsSrvWallpaperTimer( MAknsSrvWallpaperListener* aListener ); + + /** + * Issues a new request. If active object is already running, + * nothing happens. + * @param aTempInterval a new interval to use. + */ + void IssueRequest( TInt aTempInterval = 0 ); + + private: + /** + * Pointer to timer firing event listener. + * Not own. + */ + MAknsSrvWallpaperListener* iListener; + + /** + * Interval when timer should fire. + */ + TInt iInterval; + + /** + * Has the request been cancelled. + */ + TBool iCanceled; + + /** + * Timer object. + */ + RTimer iTimer; + + /** + * Previous time when timer was fired. + */ + TTime iPreviousTime; + }; + + +#endif // C_AKNSWALLPAPERTIMER_H