#pragma once // Qt #include #include // Project #include "main.h" #include "Network.h" // define #define _WifiInterface WifiInterface::I() /*! * \brief The WifiInterface class * Communicates with Access Points * \details * - Scans for Access Points * - Authenticates with Access Points * - Disconnects from Access Points */ class WifiInterface : public QObject { Q_OBJECT QThread *_thread = nullptr; bool _init = false; bool _scanRunning = false; QProcess _scanProcess; // Singleton SINGLETON(WifiInterface) private: void onInitConnections(); void onQuitThread(); void timerEvent(QTimerEvent* event); public slots: bool doInit(); void doScan(); signals: void didAddNetwork(const Network); void didScanStatusChanged(const bool); private slots: void onQuit(); void onScanFinished(int, QProcess::ExitStatus); void onParseWifiScan(const QString &output); };