From 0216dae757a1ae8e4971b00b0c79fbafb33bbd57 Mon Sep 17 00:00:00 2001 From: Timothy Pearson Date: Wed, 5 Sep 2012 15:01:20 -0500 Subject: Make access point notifications more extensible --- .../network-manager/network-manager.cpp | 9 ++++++-- tdecore/tdenetworkconnections.cpp | 4 ++-- tdecore/tdenetworkconnections.h | 24 +++++++++++++++------- 3 files changed, 26 insertions(+), 11 deletions(-) diff --git a/tdecore/networkbackends/network-manager/network-manager.cpp b/tdecore/networkbackends/network-manager/network-manager.cpp index 2671ac57b..d6db41565 100644 --- a/tdecore/networkbackends/network-manager/network-manager.cpp +++ b/tdecore/networkbackends/network-manager/network-manager.cpp @@ -1199,7 +1199,7 @@ void TDENetworkConnectionManager_BackendNMPrivate::internalProcessDeviceStateCha void TDENetworkConnectionManager_BackendNMPrivate::internalProcessWiFiAccessPointAdded(const TQT_DBusObjectPath& dbuspath) { TDENetworkWiFiAPInfo* apInfo = m_parent->getAccessPointDetails(dbuspath); if (apInfo) { - m_parent->internalAccessPointVisibilityChanged(apInfo->BSSID, TRUE); + m_parent->internalAccessPointStatusChanged(apInfo->BSSID, TDENetworkAPEventType::Discovered); delete apInfo; } } @@ -1207,11 +1207,16 @@ void TDENetworkConnectionManager_BackendNMPrivate::internalProcessWiFiAccessPoin void TDENetworkConnectionManager_BackendNMPrivate::internalProcessWiFiAccessPointRemoved(const TQT_DBusObjectPath& dbuspath) { TDENetworkWiFiAPInfo* apInfo = m_parent->getAccessPointDetails(dbuspath); if (apInfo) { - m_parent->internalAccessPointVisibilityChanged(apInfo->BSSID, FALSE); + m_parent->internalAccessPointStatusChanged(apInfo->BSSID, TDENetworkAPEventType::Lost); delete apInfo; } } +// FIXME +// If access point strength changes, this must be called: +// m_parent->internalAccessPointStatusChanged(apInfo->BSSID, TDENetworkAPEventType::Lost); +// How do I get NetworkManager to notify me when an access point changes strength? Do I have to poll it for this information? + TDENetworkDeviceType::TDENetworkDeviceType TDENetworkConnectionManager_BackendNM::deviceType() { if (m_macAddress == "") { return TDENetworkDeviceType::BackendOnly; diff --git a/tdecore/tdenetworkconnections.cpp b/tdecore/tdenetworkconnections.cpp index 67cca7f5f..2e35cb6c8 100644 --- a/tdecore/tdenetworkconnections.cpp +++ b/tdecore/tdenetworkconnections.cpp @@ -716,8 +716,8 @@ void TDENetworkConnectionManager::internalNetworkDeviceStateChanged(TDENetworkCo m_prevDeviceStatus[hwAddress] = newState; } -void TDENetworkConnectionManager::internalAccessPointVisibilityChanged(TDEMACAddress BSSID, bool detected) { - emit(accessPointVisibilityChanged(BSSID, detected)); +void TDENetworkConnectionManager::internalAccessPointStatusChanged(TDEMACAddress BSSID, TDENetworkAPEventType::TDENetworkAPEventType event) { + emit(accessPointStatusChanged(BSSID, event)); } /*================================================================================================*/ diff --git a/tdecore/tdenetworkconnections.h b/tdecore/tdenetworkconnections.h index 720b93378..3bff2e5db 100644 --- a/tdecore/tdenetworkconnections.h +++ b/tdecore/tdenetworkconnections.h @@ -176,6 +176,16 @@ namespace TDENetworkSlaveDeviceType { }; }; +namespace TDENetworkAPEventType { + enum TDENetworkAPEventType { + Discovered, + Lost, + SignalStrengthChanged, + Other, + Last = Other + }; +}; + namespace TDENetworkGlobalManagerFlags { enum TDENetworkGlobalManagerFlags { Unknown = 0x00000000, @@ -1045,10 +1055,10 @@ class TDECORE_EXPORT TDENetworkConnectionManager : public TQObject void networkDeviceStateChanged(TDENetworkConnectionStatus::TDENetworkConnectionStatus newState, TDENetworkConnectionStatus::TDENetworkConnectionStatus previousState, TQString hwAddress); /** - * Emitted whenever a wireless access point is detected or lost - * If a new access point was detected, @param detected will be set to TRUE, otherwise if lost it will be set to FALSE + * Emitted whenever the status of a wireless access point changes + * The event type that caused the signal is available in @param event */ - void accessPointVisibilityChanged(TDEMACAddress BSSID, bool detected); + void accessPointStatusChanged(TDEMACAddress BSSID, TDENetworkAPEventType::TDENetworkAPEventType event); public: /** @@ -1095,7 +1105,7 @@ class TDECORE_EXPORT TDENetworkConnectionManager : public TQObject void clearTDENetworkHWNeighborList(); void internalNetworkConnectionStateChanged(TDENetworkGlobalManagerFlags::TDENetworkGlobalManagerFlags newState); void internalNetworkDeviceStateChanged(TDENetworkConnectionStatus::TDENetworkConnectionStatus newState, TQString hwAddress=TQString::null); - void internalAccessPointVisibilityChanged(TDEMACAddress BSSID, bool detected); + void internalAccessPointStatusChanged(TDEMACAddress BSSID, TDENetworkAPEventType::TDENetworkAPEventType event); protected: TDENetworkConnectionList* m_connectionList; @@ -1235,10 +1245,10 @@ class TDECORE_EXPORT TDEGlobalNetworkManager : public TQObject void networkDeviceStateChanged(TDENetworkConnectionStatus::TDENetworkConnectionStatus newState, TDENetworkConnectionStatus::TDENetworkConnectionStatus previousState, TQString hwAddress); /** - * Emitted whenever a wireless access point is detected or lost - * If a new access point was detected, @param detected will be set to TRUE, otherwise if lost it will be set to FALSE + * Emitted whenever the status of a wireless access point changes + * The event type that caused the signal is available in @param event */ - void accessPointVisibilityChanged(TDEMACAddress BSSID, bool detected); + void accessPointStatusChanged(TDEMACAddress BSSID, TDENetworkAPEventType::TDENetworkAPEventType event); public: /** -- cgit v1.2.1