File indexing completed on 2024-04-14 03:57:40

0001 /*
0002     SPDX-FileCopyrightText: 2012-2013 Jan Grulich <jgrulich@redhat.com>
0003 
0004     SPDX-License-Identifier: LGPL-2.1-only OR LGPL-3.0-only OR LicenseRef-KDE-Accepted-LGPL
0005 */
0006 
0007 #ifndef NETWORKMANAGERQT_WIRELESS_SETTING_H
0008 #define NETWORKMANAGERQT_WIRELESS_SETTING_H
0009 
0010 #include "setting.h"
0011 #include <networkmanagerqt/networkmanagerqt_export.h>
0012 
0013 #include <QSharedPointer>
0014 #include <QStringList>
0015 
0016 namespace NetworkManager
0017 {
0018 class WirelessSettingPrivate;
0019 
0020 /**
0021  * Represents wireless setting
0022  */
0023 class NETWORKMANAGERQT_EXPORT WirelessSetting : public Setting
0024 {
0025 public:
0026     typedef QSharedPointer<WirelessSetting> Ptr;
0027     typedef QList<Ptr> List;
0028 
0029     enum NetworkMode {
0030         Infrastructure,
0031         Adhoc,
0032         Ap,
0033     };
0034 
0035     enum FrequencyBand {
0036         Automatic,
0037         A,
0038         Bg,
0039     };
0040 
0041     enum PowerSave {
0042         PowerSaveDefault = 0,
0043         PowerSaveIgnore = 1,
0044         PowerSaveDisable = 2,
0045         PowerSaveEnable = 3,
0046     };
0047 
0048     WirelessSetting();
0049     explicit WirelessSetting(const Ptr &setting);
0050     ~WirelessSetting() override;
0051 
0052     QString name() const override;
0053 
0054     void setSsid(const QByteArray &ssid);
0055     QByteArray ssid() const;
0056 
0057     void setMode(NetworkMode mode);
0058     NetworkMode mode() const;
0059 
0060     void setBand(FrequencyBand band);
0061     FrequencyBand band() const;
0062 
0063     void setChannel(quint32 channel);
0064     quint32 channel() const;
0065 
0066     void setBssid(const QByteArray &bssid);
0067     QByteArray bssid() const;
0068 
0069     void setRate(quint32 rate);
0070     quint32 rate() const;
0071 
0072     void setTxPower(quint32 power);
0073     quint32 txPower() const;
0074 
0075     void setAssignedMacAddress(const QString &assignedMacAddress);
0076     QString assignedMacAddress() const;
0077 
0078     void setMacAddress(const QByteArray &address);
0079     QByteArray macAddress() const;
0080 
0081     /// @deprecated since NM 1.4.0, will internally use assigned-mac-address property
0082     void setClonedMacAddress(const QByteArray &address);
0083     QByteArray clonedMacAddress() const;
0084 
0085     void setGenerateMacAddressMask(const QString &macAddressMask);
0086     QString generateMacAddressMask() const;
0087 
0088     void setMacAddressBlacklist(const QStringList &list);
0089     QStringList macAddressBlacklist() const;
0090 
0091     void setMacAddressRandomization(MacAddressRandomization randomization);
0092     MacAddressRandomization macAddressRandomization() const;
0093 
0094     void setMtu(quint32 mtu);
0095     quint32 mtu() const;
0096 
0097     void setSeenBssids(const QStringList &list);
0098     QStringList seenBssids() const;
0099 
0100     void setPowerSave(PowerSave powersave);
0101     PowerSave powerSave() const;
0102 
0103     /// @deprecated since NM 1.0.0
0104     void setSecurity(const QString &security);
0105     QString security() const;
0106 
0107     void setHidden(bool hidden);
0108     bool hidden() const;
0109 
0110     void fromMap(const QVariantMap &setting) override;
0111 
0112     QVariantMap toMap() const override;
0113 
0114 protected:
0115     WirelessSettingPrivate *d_ptr;
0116 
0117 private:
0118     Q_DECLARE_PRIVATE(WirelessSetting)
0119 };
0120 
0121 NETWORKMANAGERQT_EXPORT QDebug operator<<(QDebug dbg, const WirelessSetting &setting);
0122 
0123 }
0124 
0125 #endif // NETWORKMANAGERQT_WIRELESS_SETTING_H