1111#include < qtypes.h>
1212
1313#include " ../../dbus/properties.hpp"
14+ #include " enums.hpp"
1415#include " nm/dbus_nm_accesspoint.h"
1516
16- namespace qs ::network {
17-
18- class NM80211ApFlags : public QObject {
19- Q_OBJECT;
20-
21- public:
22- enum Enum : quint8 {
23- None = 0 ,
24- Privacy = 1 ,
25- Wps = 2 ,
26- WpsPbc = 4 ,
27- WpsPin = 8 ,
28- };
29- Q_ENUM (Enum);
30- };
31-
32- class NM80211ApSecurityFlags : public QObject {
33- Q_OBJECT;
34-
35- public:
36- enum Enum : quint16 {
37- None = 0 ,
38- PairWep40 = 1 ,
39- PairWep104 = 2 ,
40- PairTkip = 4 ,
41- PairCcmp = 8 ,
42- GroupWep40 = 16 ,
43- GroupWep104 = 32 ,
44- GroupTkip = 64 ,
45- GroupCcmp = 128 ,
46- KeyMgmtPsk = 256 ,
47- KeyMgmt8021x = 512 ,
48- KeyMgmtSae = 1024 ,
49- KeyMgmtOwe = 2048 ,
50- KeyMgmtOweTm = 4096 ,
51- KeyMgmtEapSuiteB192 = 8192 ,
52- };
53- Q_ENUM (Enum);
54- };
55-
56- } // namespace qs::network
57-
5817namespace qs ::dbus {
5918
6019template <>
@@ -71,6 +30,13 @@ struct DBusDataTransform<qs::network::NM80211ApSecurityFlags::Enum> {
7130 static DBusResult<Data> fromWire (Wire wire);
7231};
7332
33+ template <>
34+ struct DBusDataTransform <qs::network::NM80211Mode::Enum> {
35+ using Wire = quint32;
36+ using Data = qs::network::NM80211Mode::Enum;
37+ static DBusResult<Data> fromWire (Wire wire);
38+ };
39+
7440} // namespace qs::dbus
7541
7642namespace qs ::network {
@@ -86,14 +52,21 @@ class NMAccessPointAdapter: public QObject {
8652 [[nodiscard]] bool isValid () const ;
8753 [[nodiscard]] QString path () const ;
8854 [[nodiscard]] QString address () const ;
89- [[nodiscard]] quint8 getSignal () const { return this ->bSignalStrength ; };
55+ [[nodiscard]] QByteArray ssid () const { return this ->bSsid ; };
56+ [[nodiscard]] quint8 signalStrength () const { return this ->bSignalStrength ; };
57+ [[nodiscard]] NM80211ApFlags::Enum flags () const { return this ->bFlags ; };
58+ [[nodiscard]] NM80211ApSecurityFlags::Enum wpaFlags () const { return this ->bWpaFlags ; };
59+ [[nodiscard]] NM80211ApSecurityFlags::Enum rsnFlags () const { return this ->bRsnFlags ; };
60+ [[nodiscard]] NM80211Mode::Enum mode () const { return this ->bMode ; };
9061
9162signals:
9263 void ssidChanged (const QByteArray& ssid);
9364 void signalStrengthChanged (quint8 signal);
9465 void wpaFlagsChanged (NM80211ApSecurityFlags::Enum wpaFlags);
9566 void rsnFlagsChanged (NM80211ApSecurityFlags::Enum rsnFlags);
9667 void flagsChanged (NM80211ApFlags::Enum flags);
68+ void modeChanged (NM80211Mode::Enum mode);
69+ void ready ();
9770
9871private:
9972 // clang-format off
@@ -102,40 +75,18 @@ class NMAccessPointAdapter: public QObject {
10275 Q_OBJECT_BINDABLE_PROPERTY (NMAccessPointAdapter, NM80211ApFlags::Enum, bFlags, &NMAccessPointAdapter::flagsChanged);
10376 Q_OBJECT_BINDABLE_PROPERTY (NMAccessPointAdapter, NM80211ApSecurityFlags::Enum, bWpaFlags, &NMAccessPointAdapter::wpaFlagsChanged);
10477 Q_OBJECT_BINDABLE_PROPERTY (NMAccessPointAdapter, NM80211ApSecurityFlags::Enum, bRsnFlags, &NMAccessPointAdapter::rsnFlagsChanged);
78+ Q_OBJECT_BINDABLE_PROPERTY (NMAccessPointAdapter, NM80211Mode::Enum, bMode, &NMAccessPointAdapter::modeChanged);
10579
10680 QS_DBUS_BINDABLE_PROPERTY_GROUP (NMAccessPointAdapter, accessPointProperties);
10781 QS_DBUS_PROPERTY_BINDING (NMAccessPointAdapter, pSsid, bSsid, accessPointProperties, " Ssid" );
10882 QS_DBUS_PROPERTY_BINDING (NMAccessPointAdapter, pSignalStrength, bSignalStrength, accessPointProperties, " Strength" );
10983 QS_DBUS_PROPERTY_BINDING (NMAccessPointAdapter, pFlags, bFlags, accessPointProperties, " Flags" );
11084 QS_DBUS_PROPERTY_BINDING (NMAccessPointAdapter, pWpaFlags, bWpaFlags, accessPointProperties, " WpaFlags" );
11185 QS_DBUS_PROPERTY_BINDING (NMAccessPointAdapter, pRsnFlags, bRsnFlags, accessPointProperties, " RsnFlags" );
86+ QS_DBUS_PROPERTY_BINDING (NMAccessPointAdapter, pMode, bMode, accessPointProperties, " Mode" );
11287 // clang-format on
11388
11489 DBusNMAccessPointProxy* proxy = nullptr ;
11590};
11691
117- // NMWifiNetwork represents a wireless network, which aggregates all access points with
118- // the same SSID. It also provides signals and slots for a frontend WifiNetwork.
119- class NMWifiNetwork : public QObject {
120- Q_OBJECT;
121-
122- public:
123- explicit NMWifiNetwork (QByteArray ssid, QObject* parent = nullptr );
124- void addAccessPoint (NMAccessPointAdapter* ap);
125- void removeAccessPoint (NMAccessPointAdapter* ap);
126- void updateSignalStrength ();
127- [[nodiscard]] bool isEmpty () const { return this ->mAccessPoints .isEmpty (); };
128-
129- signals:
130- void signalStrengthChanged (quint8 signal);
131-
132- private:
133- QList<NMAccessPointAdapter*> mAccessPoints ;
134- QByteArray mSsid ;
135-
136- // clang-format off
137- Q_OBJECT_BINDABLE_PROPERTY (NMWifiNetwork, quint8, bMaxSignal, &NMWifiNetwork::signalStrengthChanged);
138- // clang-format on
139- };
140-
14192} // namespace qs::network
0 commit comments