diff -r 55fa1ec415c6 -r 8f0df5c82986 videocollection/hgmyvideos/inc/vcxhgmyvideosdownloadupdater.h --- a/videocollection/hgmyvideos/inc/vcxhgmyvideosdownloadupdater.h Tue May 11 16:15:40 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,213 +0,0 @@ -/* -* 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: Class for following and updating download progress.* -*/ - - - - -#ifndef VCXHGMYVIDEOSDOWNLOADUPDATER_H -#define VCXHGMYVIDEOSDOWNLOADUPDATER_H - -// INCLUDE FILES -#include -#include - -#include - -class CVcxHgMyVideosVideoModelHandler; -class CPeriodic; -class CMPXMedia; -class CMPXMediaArray; -class CVcxHgMyVideosVideoList; - -/** - * Follows and updates download progress. - * - * @lib vcxhgmyvideos.lib - */ -NONSHARABLE_CLASS( CVcxHgMyVideosDownloadUpdater ) : public CBase - { - protected: - - /** - * TDownloadItem - * Private inner class for storing polled downloads and their - * previous statuses and progresses. - */ - class TDownloadItem - { - public: - - /** - * Mpx media object. - * Not own. - */ - CMPXMedia* iMedia; - - /** - * Old state, used for determine refresh need. - */ - TVcxMyVideosDownloadState iState; - - /** - * Old progress, used for determine refresh need. - */ - TUint32 iProgress; - - /** - * Flag for marking that progressive play possibility has been queried. - * Status is followed only for items where query has been made before. - */ - TBool iProgressivePlayQueried; - - /** - * Previous response to CViaPlayerFileDetails::IsPlayPossible(). - */ - TBool iIsPlayPossible; - }; - - public: - - /** - * Two-phased constructor. - * - * @param aParent Parent class. - * @param aVideoArray Reference to video array. - */ - static CVcxHgMyVideosDownloadUpdater* NewL( - CVcxHgMyVideosVideoModelHandler& aParent, - CVcxHgMyVideosVideoList& aVideoArray ); - - /** - * Destructor. - */ - virtual ~CVcxHgMyVideosDownloadUpdater(); - - /** - * Sets video download updater to pause or normal mode. - * - * @param aPaused If ETrue, updater is paused. - */ - void SetPausedL( TBool aPaused ); - - /** - * Removes the download from download array. - * - * @param aMpxItemId MPX item ID of media object. - */ - void RemoveDownload( TMPXItemId aMpxItemId ); - - /** - * Finds the download from download array. - * - * @param aMedia MPX media object. - * @return Index of array or KErrNotFound. - */ - TInt FindDownload( CMPXMedia* aMedia ); - - /** - * Called to inform that array of videos has changed. Causes download - * data being re-setted to make sure correct downloads are followed. - */ - void VideoArrayChangedL(); - - /** - * Checks video data modifications and updates download array. - * - * @param aEventType Event type, only expects EMPXItemModified. - * @param aMpxItemId MPX item ID of modified video. - * @param aExtraInfo Extra information for modification event. - */ - void VideoModifiedL( TMPXChangeEventType aEventType, - TMPXItemId aMpxItemId, - TInt32 aExtraInfo ); - - /** - * Checks if progressive play (playback during download) is possible - * for given video clip. - * - * @param aIndex Video index on video array. - * @return ETrue if progressive play is possible. - */ - TBool IsPlayPossible( TInt aIndex ); - - /** - * Periodic's callback. - */ - static TInt Callback( TAny *aPtr ); - - protected: - - CVcxHgMyVideosDownloadUpdater( - CVcxHgMyVideosVideoModelHandler& aParent, - CVcxHgMyVideosVideoList& aVideoArray ); - - void ConstructL(); - - /** - * Makes sure that timer that is following download is running, and runs - * only when it is needed. - */ - void ContinueToFollowDownloads(); - - /** - * Resets the list of downloads to follow based on new video array. - */ - void ResetDownloadsToFollowL(); - - /** - * Update the downloads. - */ - void UpdateDownloadsL(); - - /** - * Update given download if it's status has changed. - * - * @param aItem Download item. - */ - void UpdateDownloadL( TDownloadItem& aItem ); - - protected: // data - - /** - * Parent class. - */ - CVcxHgMyVideosVideoModelHandler& iParent; - - /** - * CPeriodic. - * Own. - */ - CPeriodic* iTimer; - - /** - * Reference to array of videos. - * Not own. - */ - CVcxHgMyVideosVideoList& iVideoArray; - - /** - * Flag for pause state of download progress follower. - */ - TBool iPaused; - - /** - * Array of polled downloads. - * Own. - */ - RArray iDownloadArray; - }; - -#endif // VCXHGMYVIDEOSDOWNLOADUPDATER_H