--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/videofeeds/hgvodui/inc/vcxhgvodmainview.h Mon Jan 18 20:21:12 2010 +0200
@@ -0,0 +1,423 @@
+/*
+* 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: HG VOD Feed view implementation*
+*/
+
+
+// Version : %version: tr1ido#REL6_12 %
+
+#ifndef VCXHGVODMAINVIEW_H
+#define VCXHGVODMAINVIEW_H
+
+#include <aknview.h>
+#include <videoplayeractivationmessage.h>
+#include "vcxviewmessageutility.h"
+
+class CAknTitlePane;
+class CAknNavigationControlContainer;
+class CEikonEnv;
+class CAknsBasicBackgroundControlContext;
+class CGulIcon;
+class CRepository;
+class CVcxHgVodMainViewContainer;
+class CIptvResourceLoader;
+class MEikMenuObserver;
+class CVcxNsPlayerWrapper;
+class CVcxNsUiEngine;
+class MMPXViewUtility;
+class CVcxNsContent;
+class CVcxHgVodServiceListImpl;
+class CVcxHgVodCategoryListImpl;
+class CVcxHgVodContentListImpl;
+class CVcxHgVodServiceGroupListImpl;
+class CVcxHgVodListImplBase;
+class CVcxHgVodTelephonyClient;
+class TViaPlayerCustomMessage;
+class CHgDoubleGraphicList;
+class CHgDoubleTextList;
+
+// CLASS DECLARATION
+/**
+ * Main view
+ *
+ *
+ * @code
+ *
+ * @endcode
+ *
+ * @lib vcxhgvodui.lib
+ * @since S60 v5.0
+ */
+class CVcxHgVodMainView : public CAknView,
+ public MVcxViewMessageObserver
+ {
+
+public:
+
+ //list type
+ enum TVcxHgVodListType
+ {
+ EVcxNsServiceList,
+ EVcxNsCategoryList,
+ EVcxNsContentList,
+ EVcxNsCustomList
+ };
+
+ /**
+ * Two-phased constructor.
+ */
+ IMPORT_C static CVcxHgVodMainView* NewL( );
+
+ /**
+ * Two-phased constructor.
+ */
+ IMPORT_C static CVcxHgVodMainView* NewLC( );
+
+ /**
+ * Destructor.
+ */
+ IMPORT_C virtual ~CVcxHgVodMainView();
+
+ /**
+ * Accessor for the application's AppUi.
+ *
+ * @return Pointer to AppUi.
+ */
+ CAknViewAppUi* AppUi() const { return CAknView::AppUi(); }
+
+ /**
+ * Get pointer to title pane
+ * @return Pointer to CAknTitlePane
+ */
+ CAknTitlePane* TitlePaneL();
+
+ /**
+ * Get pointer to navi pane
+ * @return Pointer to CAknNavigationControlContainer
+ */
+ CAknNavigationControlContainer* NaviPaneL();
+
+ /**
+ * Accessor for player wrapper.
+ *
+ * @return Pointer to player wrapper.
+ */
+ CVcxNsPlayerWrapper* PlayerWrapper();
+
+ /**
+ * Command handling function
+ * @param aCommand ID of the command to respond to
+ */
+ void HandleCommandL( TInt aCommand );
+
+ /**
+ * Accessor for view container
+ *
+ */
+ CVcxHgVodMainViewContainer* Container();
+
+ /**
+ * Handles key events from container.
+ *
+ * @param aKeyEvent Key event.
+ * @param aType Key event type.
+ * @return Response, tells if key was handled or not.
+ */
+ TKeyResponse HandleKeyEventL( const TKeyEvent& aKeyEvent, TEventCode aType );
+
+ /**
+ * Create list widget and related classes
+ * @param aType List type
+ */
+ void CreateListL( TVcxHgVodListType aType );
+
+ /**
+ * Change list inside main view.
+ * No actual view change, just switch to different list type.
+ */
+ void ChangeListViewL();
+
+ /**
+ * Open settings view via mpx view utility
+ * @param aCommand Command for the state where settings is opened
+ */
+ void OpenSettingsL( TInt aCommand );
+
+ /**
+ * Open schedule settings for the service.
+ */
+ void OpenScheduleSettingsL();
+
+ /**
+ * Get pointer to active list in view
+ * @return Pointer to active list.
+ */
+ CVcxHgVodListImplBase* ActiveList();
+
+ /**
+ * PlayInternalVideoL
+ *
+ * @param aContent Content that contains video data.
+ */
+ void PlayInternalVideoL( CVcxNsContent* aContent );
+
+ /**
+ * Play stream
+ * @param aUrl Url
+ */
+ void PlayStreamL( const TDesC& aUrl );
+
+ /**
+ * From MVcxViewMessageObserver
+ * Handles a custom view message.
+ * @param aMessageUid UID for custom message
+ * @param aCustomMessage Message contents
+ */
+ void HandleCustomViewMessageL(
+ const TUid aMessageUid,
+ const TDesC8 &aCustomMessage );
+
+ /**
+ * Called by list impelementation(s) when layout is changed.
+ */
+ void LayoutChanged();
+
+ /**
+ * Return eikon env.
+ *
+ * @return Reference to eikon env
+ */
+ CEikonEnv& EikonEnv();
+
+ /**
+ * Return view's cba.
+ */
+ CEikButtonGroupContainer* ViewCba();
+
+ /**
+ * Return touch support flag.
+ * ETrue if touch supported.
+ */
+ TBool IsTouchSupported();
+
+private:
+
+ /**
+ * Set active list
+ * @param aList
+ */
+ void SetActiveList( CVcxHgVodListImplBase* aList );
+
+ /**
+ * From CAknView returns Uid of View
+ * @return TUid uid of the view
+ */
+ TUid Id() const;
+
+ /**
+ * From CAknView activate the view
+ *
+ * @since S60 v3.0
+ * @param aPrevViewId
+ * @param aCustomMessageId
+ * @param aCustomMessage
+ */
+ void DoActivateL( const TVwsViewId& aPrevViewId,
+ TUid aCustomMessageId,
+ const TDesC8& aCustomMessage );
+
+ /**
+ * From CAknView deactivate the view (free resources)
+ *
+ * @since S60 v3.0
+ */
+ void DoDeactivate();
+
+ /**
+ * Default constructor
+ *
+ */
+ CVcxHgVodMainView( );
+
+ /**
+ * Constructor
+ *
+ */
+ void ConstructL();
+
+ //From MEikMenuObserver
+
+ /**
+ * Menu item handling method
+ * @param aResourceId Menu pane resource id
+ * @param aMenuPane Pointer to menu pane
+ */
+ void DynInitMenuPaneL( TInt aResourceId, CEikMenuPane* aMenuPane );
+
+ /**
+ * Supplies objects to Mop childs.
+ * @param aId Type of object to supply.
+ * @return Type UID pointer containing supplied object, or @c NULL type UID
+ * pointer if given type is not found.
+ */
+ TTypeUid::Ptr MopSupplyObject( TTypeUid aId );
+
+ /**
+ * Handles the change of status pane.
+ */
+ void HandleStatusPaneSizeChange();
+
+ /**
+ * Handles the foreground event.
+ * @param aForeground Is foreground state gained or not.
+ */
+ void HandleForegroundEventL( TBool aForeground );
+
+ /**
+ * Checks parental control for a video, and asks lock code.
+ *
+ * @leave KErrPermissionDenied If not allowed to play.
+ * @param aAgeProfile Age profile for the video to be checked.
+ */
+ void CheckParentalControlL( TUint32 aAgeProfile );
+
+ /*
+ * Process custom activation message.
+ *
+ * @param aCustomMessage The message.
+ */
+ void ProcessCustomMessageL( const TDesC8& aCustomMessage );
+
+ /*
+ * Handles custom activation message.
+ */
+ void HandleCustomViewMessageL();
+
+ /**
+ * Locates the mif file searching from y: to a: and then z: last
+ *
+ * @param aFileName Full path to mif file.
+ */
+ void LocateMifFileL( TFileName& aFileName );
+
+private: // data
+
+ /**
+ * View id
+ */
+ TUid iViewId;
+
+ /**
+ * Flag for touch support
+ */
+ TBool iTouchSupport;
+
+ /**
+ * View container
+ * Own.
+ */
+ CVcxHgVodMainViewContainer* iContainer;
+
+ /**
+ * Resource loader
+ * Own.
+ */
+ CIptvResourceLoader* iResourceLoader;
+
+ /**
+ * Background context.
+ * Own.
+ */
+ CAknsBasicBackgroundControlContext* iBgContext;
+
+ /**
+ * Ui engine.
+ * Own.
+ */
+ CVcxNsUiEngine* iModel;
+
+ /**
+ * Service list view implementation
+ * Own.
+ */
+ CVcxHgVodServiceListImpl* iServiceList;
+
+ /**
+ * Category list view implementation
+ * Own.
+ */
+ CVcxHgVodCategoryListImpl* iCategoryList;
+
+ /**
+ * Content list view implementation
+ * Own.
+ */
+ CVcxHgVodContentListImpl* iContentList;
+
+ /**
+ * Service group list view implementation
+ * Own.
+ */
+ CVcxHgVodServiceGroupListImpl* iServiceGroupList;
+
+ /**
+ * Content list view implementation
+ * Own.
+ */
+ CVcxHgVodListImplBase* iActiveList;
+
+ /**
+ * Mpx view Utility
+ */
+ MMPXViewUtility* iViewUtility;
+
+ /**
+ * Scroller for double graphics hg list.
+ * Own.
+ */
+ CHgDoubleGraphicList* iGraphicScroller;
+
+ /**
+ * Scroller for double text hg list.
+ * Own.
+ */
+ CHgDoubleTextList* iTextScroller;
+
+ /**
+ * Default icon for services.
+ * Own.
+ */
+ CGulIcon* iServiceDefaultIcon;
+
+ /**
+ * Default icon for content.
+ * Own.
+ */
+ CGulIcon* iContentDefaultIcon;
+
+ /**
+ * Telephony client for lock code queries
+ * Own.
+ */
+ CVcxHgVodTelephonyClient* iTelephonyClient;
+
+ /**
+ * Central repository access needed for parental control setting.
+ * Own.
+ */
+ CRepository* iCenRep;
+
+ };
+
+#endif // VCXHGVODMAINVIEW_H