--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/videofeeds/vcnsuiengine/inc/vcxnsupdateprogresshandler.h Mon Jan 18 20:21:12 2010 +0200
@@ -0,0 +1,219 @@
+/*
+* Copyright (c) 2008 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of the License "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:
+*
+*/
+
+
+
+
+#ifndef MVCXNSUPDATEPROGRESSHANDLER_H
+#define MVCXNSUPDATEPROGRESSHANDLER_H
+
+// INCLUDES
+#include <e32std.h>
+#include <e32base.h>
+#include "vcxnsuiengine.h"
+#include "vcxnsupdateprogressif.h"
+#include "MIptvTimerObserver.h"
+
+class CIptvTimer;
+// CLASS DECLARATION
+
+/**
+ * MVcxNsUpdateProgressObserver
+ *
+ * @lib vcxnsuiengine.lib
+ */
+class MVcxNsUpdateProgressObserver
+ {
+public:
+
+ /**
+ * Handle feed update progress change
+ * Informs which index in list needs to be updated with new progress
+ * @param aIndex Index where progress needs to be updated
+ * @param aProgress Progress as percentage
+ *
+ */
+ virtual void HandleFeedUpdateProgressL( TInt aIndex, TInt aProgress ) = 0;
+ };
+
+/**
+* CVcxNsUpdateProgressHandler class
+*
+* @lib vcxnsuiengine.lib
+*/
+NONSHARABLE_CLASS( CVcxNsUpdateProgressHandler ): public CBase,
+ public MVcxNsUpdateProgressIf,
+ public MIptvTimerObserver
+ {
+
+public:
+
+ /**
+ * Constructor
+ * @param aUiEngine Ui engine
+ */
+ static CVcxNsUpdateProgressHandler* NewL( CVcxNsUiEngine& aUiEngine );
+
+ /**
+ * Destructor
+ */
+ virtual ~CVcxNsUpdateProgressHandler();
+
+public:
+
+ /**
+ * From MVcxNsUpdateProgressIf
+ * RegisterObserver.
+ * @param aObserver Observer
+ */
+ void RegisterObserver( MVcxNsUpdateProgressObserver* aObserver );
+
+ /**
+ * From MVcxNsUpdateProgressIf
+ * DeRegisterObserver.
+ * @param aObserver Observer
+ */
+ void DeRegisterObserver( MVcxNsUpdateProgressObserver* aObserver );
+
+ /**
+ * From MVcxNsUpdateProgressIf
+ * Get progress.
+ * @param aServiceId Service id which progress is requested
+ * @return Progress between 0-99, KErrNotFound if not available
+ */
+ TInt GetProgress( TUint32 aServiceId );
+
+ /**
+ * From MIptvTimerObserver
+ * The function to be called when a timeout occurs.
+ *
+ * @param aTimer Pointer to timer which expired.
+ */
+ void TimerExpired( CIptvTimer* aTimer );
+
+ /**
+ * Cancel progress handler.
+ *
+ */
+ void Cancel();
+
+public:
+
+ /**
+ * Update progress value according to status.
+ * @param aServiceId Service id
+ * @param aUpdateStatusMsg Update status message
+ * @param aInfo Additional info with status
+ */
+ void HandleUpdateStatusChangeL(
+ TUint32 aServiceId,
+ TInt aUpdateStatusMsg,
+ TInt aInfo );
+
+private:
+
+ /**
+ * Default constructor
+ * @param aUiEngine Reference to ui engine.
+ */
+ CVcxNsUpdateProgressHandler( CVcxNsUiEngine& aUiEngine );
+
+ /**
+ * Check if thumbnails are allowed.
+ * @return ETrue if thumbnail download is allowed
+ * otherwise EFalse.
+ */
+ TBool ThumbnailsAllowedL() const;
+
+ /**
+ * Start progress update timer
+ */
+ void StartProgressUpdateTimerL( );
+
+ /**
+ * Refresh progress with specified progress value.
+ * Informs observer of the change.
+ * @param aProgress Progress value
+ */
+ void RefreshProgressL( TInt aProgress );
+
+private:
+
+// Data
+
+ /**
+ * Update progress observer.
+ * Not Own.
+ */
+ MVcxNsUpdateProgressObserver* iProgressObserver;
+
+ /**
+ * Reference to UI engine.
+ */
+ CVcxNsUiEngine& iUiEngine;
+
+ /**
+ * Progress timer.
+ * Own.
+ */
+ CIptvTimer* iProgressTimer;
+
+ /**
+ * Flag for thumbnail setting.
+ * ETrue if thumbnail download in content update is allowed.
+ * By default EFalse.
+ */
+ TBool iThumbnails;
+
+ /**
+ * Previously updated progress value.
+ *
+ */
+ TInt iPreviousProgress;
+
+ /**
+ * Saves information on how much progress is increased
+ * when one thumbnail has been downloaded.
+ * If value is 0, progress is calculated based on
+ * iThumbnailsPercent.
+ */
+ TInt iProgressPerThumbnail;
+
+ /**
+ * Information on how many thumbnails must be
+ * downloaded to increase progress by percent.
+ */
+ TInt iThumbnailsInPercent;
+
+ /**
+ * Counter for downloaded thumbnails.
+ */
+ TInt iThumbnailCounter;
+
+ /**
+ * Service id of currently updated service.
+ */
+ TUint32 iCurrentServiceId;
+
+ /**
+ * Current status of content update.
+ */
+ TInt iCurrentStatus;
+ };
+
+
+#endif // MVCXNSUPDATEPROGRESSHANDLER_H