--- a/wlanutilities/cpwlansettingsplugin/src/wlansettings.cpp Wed Aug 18 10:52:46 2010 +0300
+++ b/wlanutilities/cpwlansettingsplugin/src/wlansettings.cpp Thu Sep 02 21:36:44 2010 +0300
@@ -20,9 +20,11 @@
#include <xqsettingsmanager.h>
#include <xqsettingskey.h>
#include <psmsrvdomaincrkeys.h>
+#include <psmtypes.h>
// User includes
+#include "wlansettings_s60_p.h"
#include "wlansettings.h"
#include "OstTraceDefinitions.h"
@@ -38,9 +40,13 @@
// External function prototypes
// Local constants
-/** Default value for Scan Interval. */
-const int KDefaultScanInterval = 5;
+//! Device Power Saving Mode setting key
+static const XQSettingsKey devicePowerSavingKey(
+ XQSettingsKey::TargetCentralRepository,
+ KCRUidPowerSaveMode.iUid,
+ KPsmCurrentMode);
+
// ======== MEMBER FUNCTIONS ========
/*!
@@ -48,11 +54,13 @@
*/
WlanSettings::WlanSettings() :
- QObject(), mPsmKeyValue(0)
+ QObject(),
+ mSettingsManager(new XQSettingsManager(this)),
+ mDevicePowerSavingMode(0),
+ mDevicePowerSavingModeUpToDate(false)
{
-
- OstTraceFunctionEntry1(WLANSETTINGS_WLANSETTINGS_ENTRY, this);
- OstTraceFunctionExit1(WLANSETTINGS_WLANSETTINGS_EXIT, this);
+ OstTraceFunctionEntry0( WLANSETTINGS_WLANSETTINGS_ENTRY );
+ OstTraceFunctionExit0( WLANSETTINGS_WLANSETTINGS_EXIT );
}
/*!
@@ -61,11 +69,11 @@
WlanSettings::~WlanSettings()
{
- OstTraceFunctionEntry1(DUP1_WLANSETTINGS_WLANSETTINGS_ENTRY, this);
+ OstTraceFunctionEntry0( DUP1_WLANSETTINGS_WLANSETTINGS_ENTRY );
- delete mImpl;
+ delete d_ptr;
- OstTraceFunctionExit1(DUP1_WLANSETTINGS_WLANSETTINGS_EXIT, this);
+ OstTraceFunctionExit0( DUP1_WLANSETTINGS_WLANSETTINGS_EXIT );
}
/*!
@@ -75,32 +83,59 @@
int WlanSettings::init()
{
- OstTraceFunctionEntry1(WLANSETTINGS_INIT_ENTRY, this);
-
- readPsmKey();
+ OstTraceFunctionEntry0( WLANSETTINGS_INIT_ENTRY );
- TRAPD(error,(mImpl = CWlanSettingsPrivate::NewL(mPsmKeyValue)));
+ // Listen for changes in the key value
+ bool connectStatus = connect(
+ mSettingsManager,
+ SIGNAL(valueChanged(XQSettingsKey, QVariant)),
+ this,
+ SLOT(devicePowerSavingKeyChanged()));
+ Q_ASSERT(connectStatus);
+ mSettingsManager->startMonitoring(devicePowerSavingKey);
- OstTraceFunctionExit1(WLANSETTINGS_INIT_EXIT, this);
+ TRAPD(error,(d_ptr = CWlanSettingsPrivate::NewL(this)));
+
+ OstTraceFunctionExit0( WLANSETTINGS_INIT_EXIT );
return error;
}
+/*!
+ Reads the value of the Device Power Saving Mode setting.
+*/
-void WlanSettings::readPsmKey()
+void WlanSettings::readDevicePowerSavingKey()
{
- OstTraceFunctionEntry1(WLANSETTINGS_READPSMKEY_ENTRY, this);
+ OstTraceFunctionEntry0( WLANSETTINGS_READDEVICEPOWERSAVINGKEY_ENTRY );
- QScopedPointer<XQSettingsManager> settingsManager;
- settingsManager.reset(new XQSettingsManager());
+ mDevicePowerSavingMode =
+ mSettingsManager->readItemValue(devicePowerSavingKey).toInt();
- XQSettingsKey key(XQSettingsKey::TargetCentralRepository,
- KCRUidPowerSaveMode.iUid, KPsmCurrentMode);
+ mDevicePowerSavingModeUpToDate = true;
+
+ OstTrace1(
+ TRACE_NORMAL,
+ WLANSETTINGS_READDEVICEPOWERSAVINGKEY,
+ "WlanSettings::readDevicePowerSavingKey;powerSaving=%d",
+ mDevicePowerSavingMode );
+
+ OstTraceFunctionExit0( WLANSETTINGS_READDEVICEPOWERSAVINGKEY_EXIT );
+}
- QVariant keyValue = settingsManager->readItemValue(key);
+/*!
+ Slot for handling updates in the Device Power Saving Mode setting.
+*/
- mPsmKeyValue = keyValue.toInt();
+void WlanSettings::devicePowerSavingKeyChanged()
+{
+ OstTraceFunctionEntry0( WLANSETTINGS_DEVICEPOWERSAVINGKEYCHANGED_ENTRY );
- OstTraceFunctionExit1(WLANSETTINGS_READPSMKEY_EXIT, this);
+ // Remember that we need to read the setting value again before
+ // using it, and notify UI of the change.
+ mDevicePowerSavingModeUpToDate = false;
+ emit devicePowerSavingUpdated();
+
+ OstTraceFunctionExit0( WLANSETTINGS_DEVICEPOWERSAVINGKEYCHANGED_EXIT );
}
/*!
@@ -110,11 +145,17 @@
int WlanSettings::loadSettings()
{
- OstTraceFunctionEntry1(WLANSETTINGS_LOADSETTINGS_ENTRY, this);
+ OstTraceFunctionEntry0( WLANSETTINGS_LOADSETTINGS_ENTRY );
+
+ TRAPD(error, d_ptr->LoadDBSettingsL());
- TRAPD(error, mImpl->LoadDBSettingsL());
+ OstTrace1(
+ TRACE_NORMAL,
+ WLANSETTINGS_LOADSETTINGS,
+ "WlanSettings::loadSettings;error=%d",
+ error );
- OstTraceFunctionExit1(WLANSETTINGS_LOADSETTINGS_EXIT, this);
+ OstTraceFunctionExit0( WLANSETTINGS_LOADSETTINGS_EXIT );
return error;
}
@@ -125,19 +166,22 @@
WlanSettings::ScanNetworkType WlanSettings::scanNetworkType()
{
- OstTraceFunctionEntry1(WLANSETTINGS_SCANNETWORKTYPE_ENTRY, this);
+ OstTraceFunctionEntry0( WLANSETTINGS_SCANNETWORKTYPE_ENTRY );
ScanNetworkType scanType;
- uint scanInterval = mImpl->ScanInterval();
-
- if (scanInterval == KWlanSettingsScanNetworkAuto) {
+ if (d_ptr->ScanInterval() == ScanNetworkAuto) {
scanType = EScanNetworkAuto;
- }
- else {
+ } else {
scanType = EScanNetworkUserDefined;
}
- OstTraceFunctionExit1(WLANSETTINGS_SCANNETWORKTYPE_EXIT, this);
+ OstTrace1(
+ TRACE_NORMAL,
+ WLANSETTINGS_SCANNETWORKTYPE,
+ "WlanSettings::scanNetworkType;scanType=%d",
+ scanType );
+
+ OstTraceFunctionExit0( WLANSETTINGS_SCANNETWORKTYPE_EXIT );
return scanType;
}
@@ -148,26 +192,30 @@
uint WlanSettings::scanInterval()
{
- OstTraceFunctionEntry1(WLANSETTINGS_SCANINTERVAL_ENTRY, this);
+ OstTraceFunctionEntry0( WLANSETTINGS_SCANINTERVAL_ENTRY );
- uint scanInterval = mImpl->ScanInterval();
+ uint scanInterval = d_ptr->ScanInterval();
- if (scanInterval == KWlanSettingsScanNetworkAuto) {
- scanInterval = KDefaultScanInterval;
- }
+ OstTrace1(
+ TRACE_NORMAL,
+ WLANSETTINGS_SCANINTERVAL,
+ "WlanSettings::scanInterval;scanInterval=%u",
+ scanInterval );
- OstTraceFunctionExit1(WLANSETTINGS_SCANINTERVAL_EXIT, this);
+ OstTraceFunctionExit0( WLANSETTINGS_SCANINTERVAL_EXIT );
return scanInterval;
}
/*!
- Function to get Power Saving Option.
+ Function to get Wlan Power Saving Option.
\return True if Power Saving option is enabled, otherwise False.
*/
-int WlanSettings::isPowerSavingEnabled() const
+bool WlanSettings::isWlanPowerSavingEnabled() const
{
- return mImpl->PowerSaving();
+ OstTraceFunctionEntry0( WLANSETTINGS_ISWLANPOWERSAVINGENABLED_ENTRY );
+ OstTraceFunctionExit0( WLANSETTINGS_ISWLANPOWERSAVINGENABLED_EXIT );
+ return d_ptr->PowerSaving();
}
/*!
@@ -178,12 +226,12 @@
int WlanSettings::setWlanPowerSaving(int powerSavingOption)
{
- OstTraceFunctionEntry1(WLANSETTINGS_SETWLANPOWERSAVING_ENTRY, this);
+ OstTraceFunctionEntry0( WLANSETTINGS_SETWLANPOWERSAVING_ENTRY );
- mImpl->SetPowerSaving(powerSavingOption);
- TRAPD(error, mImpl->SaveDBSettingsL(CWlanSettingsPrivate::EWlanPowerSaving));
+ d_ptr->SetPowerSaving(powerSavingOption);
+ TRAPD(error, d_ptr->SaveDBSettingsL(CWlanSettingsPrivate::EWlanPowerSaving));
- OstTraceFunctionExit1(WLANSETTINGS_SETWLANPOWERSAVING_EXIT, this);
+ OstTraceFunctionExit0( WLANSETTINGS_SETWLANPOWERSAVING_EXIT );
return error;
}
@@ -195,12 +243,12 @@
int WlanSettings::setWlanScanInterval(uint scanInterval)
{
- OstTraceFunctionEntry1(WLANSETTINGS_SETWLANSCANINTERVAL_ENTRY, this);
+ OstTraceFunctionEntry0( WLANSETTINGS_SETWLANSCANINTERVAL_ENTRY );
- mImpl->SetScanInterval(scanInterval);
- TRAPD(error, mImpl->SaveDBSettingsL(CWlanSettingsPrivate::EWlanScanInterval));
+ d_ptr->SetScanInterval(scanInterval);
+ TRAPD(error, d_ptr->SaveDBSettingsL(CWlanSettingsPrivate::EWlanScanInterval));
- OstTraceFunctionExit1(WLANSETTINGS_SETWLANSCANINTERVAL_EXIT, this);
+ OstTraceFunctionExit0( WLANSETTINGS_SETWLANSCANINTERVAL_EXIT );
return error;
}
@@ -211,7 +259,9 @@
int WlanSettings::joinWlanMode() const
{
- return mImpl->JoinWlanMode();
+ OstTraceFunctionEntry0( WLANSETTINGS_JOINWLANMODE_ENTRY );
+ OstTraceFunctionExit0( WLANSETTINGS_JOINWLANMODE_EXIT );
+ return d_ptr->JoinWlanMode();
}
/*!
@@ -222,11 +272,11 @@
int WlanSettings::setJoinWlanMode(int mode)
{
- OstTraceFunctionEntry1(WLANSETTINGS_SETJOINWLANMODE_ENTRY, this);
+ OstTraceFunctionEntry0( WLANSETTINGS_SETJOINWLANMODE_ENTRY );
- TRAPD(error, mImpl->SaveJoinWlanSettingL(mode));
+ TRAPD(error, d_ptr->SaveJoinWlanSettingL(mode));
- OstTraceFunctionExit1(WLANSETTINGS_SETJOINWLANMODE_EXIT, this);
+ OstTraceFunctionExit0( WLANSETTINGS_SETJOINWLANMODE_EXIT );
return error;
}
@@ -235,7 +285,18 @@
\return True if Power Saving is enabled.
*/
-int WlanSettings::isPsmEnabled() const
+bool WlanSettings::isDevicePowerSavingEnabled()
{
- return mImpl->IsPsmEnabled();
+ OstTraceFunctionEntry0( WLANSETTINGS_ISDEVICEPOWERSAVINGENABLED_ENTRY );
+
+ if (!mDevicePowerSavingModeUpToDate) {
+ readDevicePowerSavingKey();
+ }
+ if (mDevicePowerSavingMode == EPsmsrvModeNormal) {
+ OstTraceFunctionExit0( WLANSETTINGS_ISDEVICEPOWERSAVINGENABLED_EXIT );
+ return false;
+ } else {
+ OstTraceFunctionExit0( DUP1_WLANSETTINGS_ISDEVICEPOWERSAVINGENABLED_EXIT );
+ return true;
+ }
}