/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * Copyright (C) 2016 Simon Stürz * * * * This file is part of guh. * * * * Guh is free software: you can redistribute it and/or modify * * it under the terms of the GNU General Public License as published by * * the Free Software Foundation, version 2 of the License. * * * * Guh is distributed in the hope that it will be useful, * * but WITHOUT ANY WARRANTY; without even the implied warranty of * * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * * GNU General Public License for more details. * * * * You should have received a copy of the GNU General Public License * * along with guh. If not, see . * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ #ifndef WIRELESSNETWORKMANAGER_H #define WIRELESSNETWORKMANAGER_H #include #include #include #include #include #include #include #include "networkdevice.h" #include "wirelessaccesspoint.h" namespace guhserver { class WirelessNetworkDevice : public NetworkDevice { Q_OBJECT public: explicit WirelessNetworkDevice(const QDBusObjectPath &objectPath, QObject *parent = 0); // Properties QString macAddress() const; int bitRate() const; WirelessAccessPoint *activeAccessPoint(); // Accesspoints QList accessPoints(); WirelessAccessPoint *getAccessPoint(const QString &ssid); WirelessAccessPoint *getAccessPoint(const QDBusObjectPath &objectPath); // Methods void scanWirelessNetworks(); private: QDBusInterface *m_wirelessInterface; QString m_macAddress; int m_bitRate; WirelessAccessPoint *m_activeAccessPoint; QDBusObjectPath m_activeAccessPointObjectPath; QHash m_accessPointsTable; void readAccessPoints(); void setMacAddress(const QString &macAddress); void setBitrate(const int &bitRate); void setActiveAccessPoint(const QDBusObjectPath &activeAccessPointObjectPath); private slots: void accessPointAdded(const QDBusObjectPath &objectPath); void accessPointRemoved(const QDBusObjectPath &objectPath); void propertiesChanged(const QVariantMap &properties); signals: void bitRateChanged(const bool &bitRate); void stateChanged(const NetworkDeviceState &state); }; QDebug operator<<(QDebug debug, WirelessNetworkDevice *device); } #endif // WIRELESSNETWORKMANAGER_H