diff -r 000000000000 -r 96612d01cf9f videofeeds/vcnsuiengine/inc/vcxnscategoryprovider.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/videofeeds/vcnsuiengine/inc/vcxnscategoryprovider.h Mon Jan 18 20:21:12 2010 +0200 @@ -0,0 +1,217 @@ +/* +* 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 C_VCXNSCATEGORYPROVIDER_H +#define C_VCXNSCATEGORYPROVIDER_H + +// INCLUDES +#include +#include "CIptvUtil.h" +#include "vcxnscategoryproviderif.h" +#include "vcxnscategoryproviderobserver.h" + +// FORWARD DECLARATIONS +class CVcxNsCategory; +class CVcxNsCategoryList; +class MVcxNsCategoryProviderObserver; +class CVcxNsUiEngine; + +// CLASS DECLARATION + +/** +* Class CVcxNsCategoryProvider handles application categorys. +* +* @lib vcxnsuiengine.lib +*/ +class CVcxNsCategoryProvider : public CBase, + public MVcxNsCategoryProviderIf + { + +public: + + /** + * Constructor + * + * @param aUiEngine Parent ui engine ptr. + */ + static CVcxNsCategoryProvider* NewL( CVcxNsUiEngine& aUiEngine ); + + /** + * Destructor + */ + virtual ~CVcxNsCategoryProvider(); + + /** + * RegisterObserver. + * + * @param aObserver Observer + */ + void RegisterObserver( MVcxNsCategoryProviderObserver* aObserver ); + + /** + * DeRegisterObserver. + * + * @param aObserver Observer + */ + void DeRegisterObserver( MVcxNsCategoryProviderObserver* aObserver ); + + /** + * Get categories for active service. + * @param aHighlight On return, hightlight index for category list. + * @return Category array. Ownership of categories remains in ui engine. + */ + RPointerArray& GetCategoriesL( TInt& aHighlight ); + + /** + * Get categories for active service. + * @return Vod categorys. + */ + RPointerArray& GetCategorysL( ); + + /** + * Opens selected category. + * + * @param aIndex Index of the category to be opened. + */ + void OpenCategoryL( TInt aIndex ); + + /** + * Return pointer to active category data + * @return Pointer to active category data. + * NULL returned, if category data not found + */ + CVcxNsCategory* GetActiveCategoryDataL(); + + /** + * Return specified category data. + * @param aServiceId Service Id + * @param aCategoryId Category Id + * @return Pointer to category data. + * NULL returned, if specified category data not found + */ + CVcxNsCategory* GetCategoryDataL( TUint32 aServiceId, TUint32 aCategoryId ); + + /** + * Get highlight index for content list. + * @return Current highlight index in content list. + */ + TInt GetCurrentHighlightL(); + + /** + * Set highlight index for content list. + * @param aIndex Index to save + */ + void SetCurrentHighlightL( TInt aIndex ); + + /** + * Update active category data. + * This method is needed when count + * of videos in category changes (search). + * + * @param aCategory Category data to updat + * + */ + void UpdateActiveCategoryDataL( CVcxNsCategory& aCategory ); + + /** + * Reset the categories with given service id. + * + * @param aServiceId Service id + */ + void RemoveServiceData( TUint32 aServiceId ); + + /** + * Starts the category update. + * + * @return KErrNone or one of the system wide error codes. + */ + TInt RefreshCategorysL(); + +// From MVcxNsCategoryProviderObserver + + /** + * Category update notification. + * + * @param aIndex Updated item's index + */ + void CategoryUpdated( TInt aIndex ); + + /** + * View needs to be refreshed. + */ + void RefreshView(); + + /** + * Application state needs to be updated. + */ + void HandleAppStateChangedL(); + + /** + * Epg update is ongoing, show the notification. + * When downloading and parsing the xml, both parameters are 0. + * + * @param aShow If ETrue, show the note, if EFalse, hide it. + * @param aDownloadedTbns count of downloaded thumbnails. + * @param aTotalTbns Total count of thumbnails to be downloaded. + */ + void ShowUpdatingNoteL( TBool aShow, TInt aDownloadedTbns, TInt aTotalTbns ); + + /** + * Handle error. + * + * @param aError Error code. + * @param aServiceId Service ID + */ + void HandleErrorL( TInt aError, TUint32 aServiceId ); + + /** + * Save category highlight. + * @param aHighlight Highlight index to save. + */ + void SetCategoryHighlight( TInt aHighlight ); + +private: + + /** + * Default constructor. + * @param aUiEngine + */ + CVcxNsCategoryProvider( CVcxNsUiEngine& aUiEngine ); + +private: + + /** + * Array of category event observers. Not Own. + */ + RPointerArray iCategoryObservers; + + /** + * UI engine. + */ + CVcxNsUiEngine& iUiEngine; + + /** + * Array of category lists. + */ + RPointerArray iCategoryListList; + + }; + +#endif // C_VCXNSCATEGORYPROVIDER_H