--- /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 <e32base.h>
+#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<CVcxNsCategory>& GetCategoriesL( TInt& aHighlight );
+
+ /**
+ * Get categories for active service.
+ * @return Vod categorys.
+ */
+ RPointerArray<CVcxNsCategory>& 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<MVcxNsCategoryProviderObserver> iCategoryObservers;
+
+ /**
+ * UI engine.
+ */
+ CVcxNsUiEngine& iUiEngine;
+
+ /**
+ * Array of category lists.
+ */
+ RPointerArray<CVcxNsCategoryList> iCategoryListList;
+
+ };
+
+#endif // C_VCXNSCATEGORYPROVIDER_H