--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/homemedia/homemedia/inc/homemediaappview.h Thu Dec 17 08:52:00 2009 +0200
@@ -0,0 +1,347 @@
+/*
+* 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 "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: Main application view
+*
+*/
+
+
+
+
+
+
+#ifndef __HOMEMEDIAAPPVIEW_H__
+#define __HOMEMEDIAAPPVIEW_H__
+
+// INCLUDES
+#include <aknview.h>
+#include <AknWaitNoteWrapper.h> //MAknBackgroundProcess
+#include "upnpfilesharingengineobserver.h"
+#include "upnppluginloaderobserver.h"
+
+//forward declaration
+class CHomeMediaContainer;
+class CUPnPFileSharingEngine;
+class CUPnPPluginInterface;
+class CUPnPPluginLoader;
+class MUPnPAVController;
+class CUPnPSettingsEngine;
+class CAknNavigationDecorator;
+class CGSPluginInterface;
+class CIdle;
+class CAknInputBlock;
+class CUPnPAppFileSharingDialog;
+class CUPnPPeriodic;
+
+/**
+ * CHomeMediaAppView
+ * View class for CHomeMediaAppUi, handles menu commands and creates
+ * container which shows main view items.
+ */
+class CHomeMediaAppView : public CAknView,
+ private MUPnPFileSharingEngineObserver,
+ private MAknBackgroundProcess,
+ private MUPnPPluginLoaderObserver
+ {
+public:
+ // New methods
+
+ /**
+ * NewL.
+ * Two-phased constructor.
+ * @return a pointer to the created instance of CHomeMediaAppView.
+ */
+ static CHomeMediaAppView* NewL();
+
+ /**
+ * NewLC.
+ * Two-phased constructor.
+ * @return A pointer to the created instance of CHomeMediaAppView.
+ */
+ static CHomeMediaAppView* NewLC();
+
+ /**
+ * ~CHomeMediaAppView
+ * Virtual Destructor.
+ */
+ virtual ~CHomeMediaAppView();
+
+ /**
+ * Get the pointer of fileSharingDialog ,which is constructed in the function of
+ * ProcessCommandL
+ */
+ void RefreshVisibilitySettingItemL() ;
+
+private:
+ // Constructors
+
+ /**
+ * ConstructL
+ * 2nd phase constructor.
+ * Perform the second phase construction of a
+ * CHomeMediaAppView object.
+ */
+ void ConstructL();
+
+ /**
+ * CHomeMediaAppView.
+ * C++ default constructor.
+ */
+ CHomeMediaAppView();
+
+public: // Functions from base classes
+
+ /**
+ * Return Uid
+ */
+ TUid Id() const;
+
+ /**
+ * Handle Size changes
+ */
+ void HandleClientRectChange();
+
+private: // From AknView
+
+ /**
+ * Activates view
+ */
+ void DoActivateL(const TVwsViewId& aPrevViewId,TUid aCustomMessageId,
+ const TDesC8& aCustomMessage);
+
+ /**
+ * Deactivates view
+ */
+ void DoDeactivate();
+
+private: // Functions from base classes
+
+ /**
+ * Handle Commands
+ */
+ void HandleCommandL(TInt aCommand);
+
+ /**
+ * Add some comments here
+ */
+ void DynInitMenuPaneL( TInt aResourceId, CEikMenuPane* aMenuPane );
+
+private:
+ /**
+ * From MAknBackgroundProcess
+ */
+ void StepL();
+
+ /**
+ * From MAknBackgroundProcess
+ */
+ TBool IsProcessDone() const;
+
+ /**
+ * From MAknBackgroundProcess
+ */
+ TInt CycleError( TInt aError );
+
+private: //From MUPnPFileSharingEngineObserver
+
+ /**
+ * Function informs when file sharing was enabled or disabled
+ * @param aEngine File sharing engine
+ * @param aError, error code
+ * @param aPhase ETrue if current phase is sharing activation,
+ * otherwise EFalse
+ */
+ void HandleSharingStatus(
+ CUPnPFileSharingEngine& aEngine,
+ TInt aError,
+ TBool aPhase );
+
+ /**
+ * Callback to inform if connection has been lost
+ * @param aEngine File sharing engine
+ */
+ void HandleSharingConnectionLost(
+ CUPnPFileSharingEngine& aEngine );
+
+private: //From MUPnPPluginLoaderObserver
+
+ /**
+ * Called by UPnPPluginLoader when plugin(s) has been updated
+ */
+ void PluginsUpdated();
+
+private: //business logic methods
+
+ /**
+ * Browse home
+ */
+ void ExecuteBrowseL();
+
+ /**
+ * Browse home
+ */
+ void DoExecuteBrowseL();
+
+ /**
+ * Start wizard
+ * @return key pressed in the wizard
+ */
+ TInt StartWizardL();
+
+ /**
+ * @return IAP id
+ */
+ TInt IAP() const;
+
+ /**
+ * @return validity of current IAP
+ */
+ TBool CheckAccessPointValid();
+
+ /**
+ * Show the error note
+ *
+ * @param aMain resource id for loc
+ */
+ void ShowErrorNoteL( TInt aMain ) const;
+
+ /**
+ * Update title pane
+ */
+ void UpdateTitlePaneL();
+
+ /**
+ * update navi pane
+ *
+ * @param aShowStatus ETrue if shown
+ */
+ void UpdateNaviPaneL( TBool aShowStatus );
+
+ /**
+ * Load external plugins
+ */
+ void LoadPluginL();
+
+ /**
+ * Launch the settings view
+ */
+ void StartSettingsViewL();
+
+ /**
+ * If get the correct pointer ,refresh the correspond item in view or share dialog
+ */
+ void RefreshSharelistItemL() ;
+
+ /**
+ * Launch the setup wizard
+ *
+ * @param aPtr CHomeMediaAppView* pointer
+ * @return EFalse
+ */
+ static TBool InitializeWizardL( TAny* aPtr );
+
+ /**
+ * Launch a timer
+ *
+ * @param aPtr CHomeMediaAppView* pointer
+ * @return KErrNone
+ */
+ static TInt RefreshSharingL( TAny* aPtr );
+
+private:
+ /**
+ * The internal phases of wait note when starting browsing
+ */
+ enum TBrowsingState
+ {
+ EPhaseNotActive,
+ EPhaseProcessing,
+ EPhaseCompleted
+ };
+
+ /**
+ * View's window
+ * Own
+ */
+ CHomeMediaContainer* iContainer;
+
+ /**
+ * File sharing engine
+ * Own
+ */
+ CUPnPFileSharingEngine* iFileSharing;
+
+ /**
+ * Array of plugins
+ * Not own
+ */
+ RPointerArray<CUPnPPluginInterface> iPluginArray;
+
+ /**
+ * Plugin loader
+ * Own
+ */
+ CUPnPPluginLoader* iPluginLoader;
+
+ /**
+ * Current browse state
+ */
+ TBrowsingState iBrowseState;
+
+ /**
+ * AV contoller
+ * Own
+ */
+ MUPnPAVController* iAvControl;
+
+ /**
+ * Settings engine
+ * Own
+ */
+ CUPnPSettingsEngine* iSettingsEngine;
+
+ /**
+ * App's navigation decorator
+ * Own
+ */
+ CAknNavigationDecorator* iNaviDecorator;
+
+ /**
+ * Settings view
+ * Not own
+ */
+ CGSPluginInterface* iSettingsView;
+
+ /**
+ * Idle loop
+ * Own
+ */
+ CIdle* iIdle;
+
+ /**
+ * block UI in case of first start
+ * Own
+ */
+ CAknInputBlock* iInputBlocker;
+
+ /**
+ * record the pointer of CUPnPAppFileSharingDialog
+ * Own
+ */
+ CUPnPAppFileSharingDialog* ifileSharingDialog;
+
+ CUPnPPeriodic* iRefreshTimer;
+ };
+
+#endif // __HOMEMEDIAAPPVIEW_H__
+// End of File