wlanutilities/wlanplugin/inc/wlanpluginwlanstate.h
branchRCL_3
changeset 55 f28ada11abbf
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/wlanutilities/wlanplugin/inc/wlanpluginwlanstate.h	Wed Sep 01 12:20:32 2010 +0100
@@ -0,0 +1,345 @@
+/*
+* Copyright (c) 2007 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: 
+*        Header file for WlanPluginWlanState class.
+*
+*/
+
+
+#ifndef __C_WLANPLUGINWLANSTATE_H__
+#define __C_WLANPLUGINWLANSTATE_H__
+
+// System includes
+#include <e32base.h>
+#include <wsfstatechangeobserver.h>
+#include <wsfwlaninfo.h>
+#include <AknsItemID.h>
+
+//forward declarations
+class CWsfModel;
+class CWsfWlanInfoArray;
+class CCoeEnv;
+class CGSParentPlugin;
+class CGulIcon;
+class CWlanPluginDbObserver;
+class CWsfWlanInfoArrayVisitor;
+class CWlanPluginTimeShifter;
+
+/**
+* WLAN state class.
+*/
+class CWlanPluginWlanState : public CBase,
+                                public MWsfStateChangeObserver
+    {
+        
+    public:
+    
+        /*
+        * Default constructor
+        * @param aParent The the parent plugin of it in.
+        * the Control Panel
+        */
+        CWlanPluginWlanState( CGSParentPlugin *aParent );
+        
+        /*
+        * Destructor
+        */
+        virtual ~CWlanPluginWlanState();
+        
+        /*
+        * First phase of 2 phase constructor.
+        * @param aParent pointer to parent plugin.
+        * @return An instance.
+        */
+        static CWlanPluginWlanState* NewLC( CGSParentPlugin *aParent );
+        
+        /*
+        * First phase of 2 phase constructor
+        * @param aParent Pointer to parent plugin.
+        * @return An instance.
+        */
+        static CWlanPluginWlanState* NewL( CGSParentPlugin *aParent );
+        
+        /*
+        *  Gives back the wlan state descriptor into aDes.
+        *  @param aDes Reference to the destination descriptor.
+        */
+        void GetStateStringL( TDes& aDes );
+        
+        /*
+        * Gives back the wlan state main icon. The result is
+        * ETrue if there is valid id. 
+        * @param aPic The id of the icon.
+        * @param aPicMask The id of the mask.
+        */
+        TBool GetMainIconL( TInt& aPic, 
+        		            TInt& aPicMask, 
+        		            TAknsItemID& aItemID );
+
+        /*
+        * Gives back the signal strength. The result is
+        * ETrue if there is valid strength, and the state
+        * is connected. 
+        * @param aPic The id of the icon.
+        * @param aPicMask The id of the mask.
+        * @return If D column icon is needed.
+        */
+        TBool GetStrengthIconL( TInt& aPic, 
+        		                TInt& aPicMask, 
+        		                TAknsItemID& aItemId );
+        
+        /**
+        * Returns if the observed scanning is on
+        * @return If the scanning is on.
+        */
+        TBool IsScanning();
+        
+        /**
+        * Sets the scanning value, and manage effects, caused
+        * by it. It is used by the dbobserver class to manage 
+        * setting scanning value caused by the "Wlan availability".
+        * @param aScanning The set value.
+        */
+        void SetScanningL( TBool aScanning );
+        
+        /**
+        *
+        */
+        void DirectlyScanL();
+        
+        /**
+        *
+        */
+        void DeleteTimeShifter();
+        
+    public: //from MWlanSnifferStateChangeObserver
+        /*
+        * The current wlan data has changed
+        * and it is ready to be retrieved.
+        */
+        virtual void WlanListChangedL();
+
+        /*
+        * Engine error occured
+        * @param aError System wide error to describe what has happened.
+        */
+        virtual void NotifyEngineError( TInt aError );
+
+        /*
+        *  The network scanning has been disabled.
+        */
+        virtual void ScanDisabledL();
+
+        /*
+        * The network scanning has been enabled.
+        */
+        virtual void ScanEnabledL();
+
+        /*
+        * Wlan bearer opened using accesspoint
+        */
+        virtual void WlanConnectionActivatedL();
+
+        /*
+        * wlan bearer has been closed
+        */
+        virtual void WlanConnectionClosedL();
+        
+        /**
+        * Connection creation process finished
+        * @param aError System wide error code
+        */
+        virtual void ConnectionCreationProcessFinishedL( TInt aError );
+        
+    protected:
+        /*
+        * Makes the wlan state descriptor according to
+        * the given info array.
+        * @param aArray the given info array.
+        * @param aDes the result is written here.
+        */
+        void MakeStateStringL( CWsfWlanInfoArray* aArray, HBufC*& aBuf );
+
+
+        /*
+        * Gives the connected wlan status string.
+        * @param aItem Ref to the result descriptor. 
+        */
+        void FormatConnectedL( HBufC*& aBuf );
+        
+        /*
+        * Gives the offline wlan status string.
+        * @param aItem Ref to the result descriptor. 
+        */
+        void FormatStatusOffL( HBufC*& aBuf );
+
+        /*
+        * Decides if there is one interesting wlan or
+        * more and writes out wlan state string.
+        * @param aArray input array of wlans.
+        * @param aItem ref to the result descriptor.
+        */
+        void CheckWlansL( CWsfWlanInfoArray* aArray, HBufC*& aBuf );
+
+        /*
+        * Decides if the wlan given is connected, or known 
+        * and writes out the suitable text to aItem according
+        * to it.
+        * @param aWlan Input wlan info.
+        * @param aItem Ref to the result descriptor. 
+        */
+        void FormatWlanSingleLineL( TWsfWlanInfo& aWlan, HBufC*& aBuf );
+
+        /*
+        * Decides if there is one unknown or more
+        * networks and writes solution according to it.
+        * @param aMultipleUnknownWlans If 
+        * there is more network available.
+        * @param aItem Ref to the result descriptor.
+        */
+        void FormatUnknownWlansSingleLineL( 
+                    const TBool aMultipleUnknownWlans, 
+                    HBufC*& aBuf );
+
+        /*
+        * Gives the descripto meaning there are no
+        * wlans found. 
+        * @param aItem Ref to output descriptor.
+        */
+        void FormatNoWlansAvailableL( HBufC*& aBuf );
+
+        /*
+        * Checks if the wlan state is different from
+        * the one iPresentString represent. The
+        * result is ETrue if the state changed.
+        * @return If the state is changed.
+        */
+        TBool IsStateChangedL();
+        
+        /*
+        * Gets the present signal strength. It is a normal
+        * strength if the wlan state is connected, otherwise it is
+        * ENoSignal.
+        * @return The signal strength
+        */
+        TWsfWlanSignalStrengthLevel GetSignalStrength();
+        
+        /**
+        * Updates the parent plugin in Control Panel
+        */
+        void UpdateParentViewL();
+                  
+    private:
+
+        /*
+        * Second phase of two phase construction
+        */
+        void ConstructL();
+        
+        /**
+        * Updates the wlan list
+        */
+        void UpdateWlanListL();
+        
+    protected:
+        
+        /*
+        * @var pointer to a sniffer model    
+        */
+        CWsfModel* iEngine;
+
+        /*
+        * @var present wlan info list    
+        */
+        CWsfWlanInfoArray* iInfoArray;
+        
+        /*
+        * @var if wlan is scanning    
+        */
+        TBool iScanning;
+        
+        /*
+        * @var if there is wlan connection    
+        */
+        TInt iConnected;
+        
+        /*
+        * @var true if the plugin explicitely started wlan scanning
+        */
+        TInt iExplicitScanning;
+        
+        /*
+        * @var pointer to coeEnv
+        */
+        CCoeEnv* iCoeEnv;
+
+        /*
+        * @var pointer to parent plugin
+        */
+        CGSParentPlugin* iParent;
+
+        /*
+        * @var the present written out status string
+        */
+        HBufC* iPresentString;
+        
+        /*
+        * @var the present signal strength
+        */ 
+        TWsfWlanSignalStrengthLevel iSignalStrength;
+        
+        /**
+        * @var The Database observer class
+        */
+        CWlanPluginDbObserver* iDbObserver;
+                
+        /**
+        * @var A bool representing if calling an update for parent
+        * plugin is enabled. True if the parent do not have be updated. 
+        */
+        TBool iSupressParentUpdate;
+        
+        /**
+        * @var A bool false, if wlan list update is valid to call
+        */
+        TBool iSupressUpdateWlan;
+        
+        /**
+        * @var object needed filtering out wlans
+        */
+        CWsfWlanInfoArrayVisitor* iWlanInfoBranding;
+        
+        /*
+        * @var the second line data reachable is valid
+        */
+        TBool iValidSecondLine;
+        
+        /*
+        * @var tThe wlan info of the connected network
+        */
+        TWsfWlanInfo iConnectedWlanInfo;
+        
+        /*
+        * @var Time shifter
+        */
+        CWlanPluginTimeShifter* iTimeShifter;
+        
+        /*
+        * @var Time shifter supressing
+        */
+        TBool iSupressTimeShifter;
+        
+    };
+
+#endif //__C_WLANPLUGINWLANSTATE_H__