3#ifdef HAVE_PCAPPLUSPLUS
4 #include "PcapPlusPlusVersion.h"
5 #include "PcapDevice.h"
7 #include <QLoggingCategory>
8 static Q_LOGGING_CATEGORY(logPcpp,
"WOL.PCPP")
9 void Pcpp_Logger(pcpp::Logger::LogLevel logLevel,
10 const std::
string& logMessage,
11 const std::
string& file,
12 const std::
string& method,
17 case pcpp::Logger::LogLevel::Debug:
18 qDebug(logPcpp) << logMessage.c_str();
20 case pcpp::Logger::LogLevel::Info:
21 qInfo(logPcpp) << logMessage.c_str();
23 case pcpp::Logger::LogLevel::Error:
24 qCritical(logPcpp) << logMessage.c_str();
32#include <QLoggingCategory>
35#include "RabbitCommonTools.h"
36#include "PluginWakeOnLan.h"
37#include "OperateWakeOnLan.h"
39static Q_LOGGING_CATEGORY(log,
"WakeOnLan.Plugin")
44#ifdef HAVE_PCAPPLUSPLUS
45 pcpp::Logger::getInstance().setLogPrinter(Pcpp_Logger);
46 pcpp::Logger::getInstance().setAllModulesToLogLevel(
47 pcpp::Logger::LogLevel::Debug);
49 pcpp::Logger::getInstance().enableLogs();
50 pcpp::Logger::getInstance().setLogLevel(
51 pcpp::LogModule::PcapLogModuleLiveDevice, pcpp::Logger::LogLevel::Info);
55CPluginWakeOnLan::~CPluginWakeOnLan()
57 qDebug(log) <<
"CPluginWakeOnLan::~CPluginWakeOnLan()";
60const CPlugin::TYPE CPluginWakeOnLan::Type()
const
62 return TYPE::NetworkTools;
72 return tr(
"Wake on lan");
77 return tr(
"Wake on lan");
80const QIcon CPluginWakeOnLan::Icon()
const
82 return QIcon::fromTheme(
"lan");
87 return PluginWakeOnLan_VERSION;
93 szDetails +=
"- " + tr(
"Dependency libraries") +
"\n";
94#ifdef HAVE_PCAPPLUSPLUS
95 szDetails +=
" - PcapPlusPlus";
97 szDetails +=
" - " + tr(
"version: ")
98 + pcpp::getPcapPlusPlusVersionFull().c_str();
100 szDetails +=
" - " + tr(
"Pcap lib version info: ")
101 + pcpp::PcapLiveDevice::getPcapLibVersionInfo().c_str();
109 QStringList permissions;
110 permissions <<
"android.permission.CHANGE_WIFI_STATE"
111 <<
"android.permission.ACCESS_WIFI_STATE"
112 <<
"android.permission.ACCESS_NETWORK_STATE"
113 <<
"android.permission.CHANGE_NETWORK_STATE";
114 RabbitCommon::CTools::AndroidRequestPermission(permissions);
117 if(!m_pOperate)
return m_pOperate;
119 QString szFile = m_pOperate->GetSettingsFile();
121 if(!d.exists(szFile))
return m_pOperate;
124 bool bRet = QMetaObject::invokeMethod(
127 Qt::DirectConnection,
128 Q_RETURN_ARG(
int, nRet),
129 Q_ARG(QString, szFile));
131 qCritical(log) <<
"Call" << m_pOperate->metaObject()->className()
132 + QString(
"::") +
"Load(QString szFile) fail." << szFile;
136 qCritical(log) <<
"Load parameter fail" << nRet;
144COperate* CPluginWakeOnLan::OnCreateOperate(
const QString &szId)
146 qDebug(log) << Q_FUNC_INFO;
156 qDebug(log) << Q_FUNC_INFO;
157 Q_ASSERT(m_pOperate == p);
158 m_pOperate =
nullptr;
Wake on lan operate interface.
Global parameters of plugins.
virtual const QString Details() const override
Display more information in About dialog or log.
virtual const QString Protocol() const override
Plugin Protocol.
virtual int DeleteOperate(COperate *p) override
Delete COperate.
virtual const QString DisplayName() const override
The plugin display name.
virtual const QString Name() const override
This name must be the same as the project name (${PROJECT_NAME}). The translation file (${PROJECT_NAM...
virtual const QString Version() const override
Version.
virtual const QString Description() const override
Plugin description.
virtual COperate * CreateOperate(const QString &szId, CParameterPlugin *para) override
New COperate instance.
virtual Q_INVOKABLE int DeleteOperate(COperate *p)
Delete COperate.
virtual const QString Id() const
ID. Default: Type() + ":" + Protocol() + ":" + Name()
virtual Q_INVOKABLE COperate * CreateOperate(const QString &szId, CParameterPlugin *para)
New COperate instance.