This repository has been archived on 2026-05-31. You can view files and clone it, but cannot push or open issues or pull requests.
2018-03-05 20:37:40 +01:00

75 lines
2.4 KiB
C++

/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
* *
* Copyright (C) 2016 Simon Stürz <simon.stuerz@guh.io> *
* *
* This file is part of loopd. *
* *
* Loopd can not be copied and/or distributed without the express *
* permission of guh GmbH. *
* *
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
#ifndef WIRELESSNETWORKMANAGER_H
#define WIRELESSNETWORKMANAGER_H
#include <QObject>
#include <QDebug>
#include <QDBusConnection>
#include <QDBusInterface>
#include <QDBusMessage>
#include <QDBusContext>
#include <QDBusArgument>
#include "networkdevice.h"
#include "wirelessaccesspoint.h"
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<WirelessAccessPoint *> 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<QDBusObjectPath, WirelessAccessPoint *> 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 int &bitRate);
};
QDebug operator<<(QDebug debug, WirelessNetworkDevice *device);
#endif // WIRELESSNETWORKMANAGER_H