From f73d098b1ff7891773e0da3951cf21e600085986 Mon Sep 17 00:00:00 2001 From: sithlord48 Date: Wed, 30 Jul 2025 20:20:59 -0400 Subject: [PATCH] refactor: Unify ENetworkProtocol and ServerProtocol into new enum Class NetworkProtocol in new file base/NetworkProtocol.h --- src/lib/base/CMakeLists.txt | 1 + src/lib/base/NetworkProtocol.h | 13 +++++++++++++ src/lib/deskflow/OptionTypes.h | 10 +--------- src/lib/gui/ServerConfig.cpp | 8 ++++---- src/lib/gui/ServerConfig.h | 17 +++++------------ src/lib/gui/dialogs/ServerConfigDialog.cpp | 9 +++++---- src/lib/server/Config.cpp | 12 ++++++------ src/lib/server/Server.cpp | 18 +++++++++--------- src/lib/server/Server.h | 2 +- 9 files changed, 45 insertions(+), 45 deletions(-) create mode 100644 src/lib/base/NetworkProtocol.h diff --git a/src/lib/base/CMakeLists.txt b/src/lib/base/CMakeLists.txt index a3dd730c9..f70ce872f 100644 --- a/src/lib/base/CMakeLists.txt +++ b/src/lib/base/CMakeLists.txt @@ -25,6 +25,7 @@ add_library(base STATIC Log.cpp Log.h LogLevel.h + NetworkProtocol.h Path.cpp Path.h PriorityQueue.h diff --git a/src/lib/base/NetworkProtocol.h b/src/lib/base/NetworkProtocol.h new file mode 100644 index 000000000..e18770980 --- /dev/null +++ b/src/lib/base/NetworkProtocol.h @@ -0,0 +1,13 @@ +/* + * Deskflow -- mouse and keyboard sharing utility + * SPDX-FileCopyrightText: (C) 2025 Deskflow Developers + * SPDX-License-Identifier: GPL-2.0-only WITH LicenseRef-OpenSSL-Exception + */ + +#pragma once + +enum class NetworkProtocol +{ + Synergy, + Barrier +}; diff --git a/src/lib/deskflow/OptionTypes.h b/src/lib/deskflow/OptionTypes.h index 2e83cf115..d9bc034d0 100644 --- a/src/lib/deskflow/OptionTypes.h +++ b/src/lib/deskflow/OptionTypes.h @@ -8,6 +8,7 @@ #pragma once #include "base/EventTypes.h" +#include "base/NetworkProtocol.h" #include @@ -72,13 +73,4 @@ inline static const auto s_bottomRightCornerMask = 1 << 3; inline static const auto s_allCornersMask = 1 << 0 | 1 << 1 | 1 << 2 | 1 << 3; //@} -//! @name Network protocol -//@{ -enum class ENetworkProtocol -{ - kSynergy, - kBarrier -}; -//@} - #undef OPTION_CODE diff --git a/src/lib/gui/ServerConfig.cpp b/src/lib/gui/ServerConfig.cpp index 0e6f16ab1..8d65f3a64 100644 --- a/src/lib/gui/ServerConfig.cpp +++ b/src/lib/gui/ServerConfig.cpp @@ -165,7 +165,7 @@ void ServerConfig::recall() haveHeartbeat(settings().value("hasHeartbeat", false).toBool()); setHeartbeat(settings().value("heartbeat", 5000).toInt()); - setProtocol(static_cast(settings().value("protocol", static_cast(protocol())).toInt())); + setProtocol(static_cast(settings().value("protocol", static_cast(protocol())).toInt())); setRelativeMouseMoves(settings().value("relativeMouseMoves", false).toBool()); setWin32KeepForeground(settings().value("win32KeepForeground", false).toBool()); haveSwitchDelay(settings().value("hasSwitchDelay", false).toBool()); @@ -224,7 +224,7 @@ int ServerConfig::adjacentScreenIndex(int idx, int deltaColumn, int deltaRow) co QTextStream &operator<<(QTextStream &outStream, const ServerConfig &config) { - using enum deskflow::gui::ServerProtocol; + using enum NetworkProtocol; outStream << "section: screens" << Qt::endl; @@ -264,9 +264,9 @@ QTextStream &operator<<(QTextStream &outStream, const ServerConfig &config) if (config.hasHeartbeat()) outStream << "\t" << "heartbeat = " << config.heartbeat() << Qt::endl; - if (config.protocol() == kSynergy) { + if (config.protocol() == Synergy) { outStream << "\t" << "protocol = synergy" << Qt::endl; - } else if (config.protocol() == kBarrier) { + } else if (config.protocol() == Barrier) { outStream << "\t" << "protocol = barrier" << Qt::endl; } else { qFatal("unrecognized protocol when writing config"); diff --git a/src/lib/gui/ServerConfig.h b/src/lib/gui/ServerConfig.h index 89ea0d18f..98cc4be30 100644 --- a/src/lib/gui/ServerConfig.h +++ b/src/lib/gui/ServerConfig.h @@ -8,6 +8,7 @@ #pragma once #include "Hotkey.h" +#include "base/NetworkProtocol.h" #include "gui/config/IServerConfig.h" #include "gui/config/ScreenConfig.h" #include "gui/config/ScreenList.h" @@ -26,14 +27,8 @@ class MainWindow; namespace deskflow::gui { -enum class ServerProtocol -{ - kSynergy, - kBarrier -}; - // The default protocol was decided by a community vote. -const auto kDefaultProtocol = ServerProtocol::kBarrier; +const auto kDefaultProtocol = NetworkProtocol::Barrier; } // namespace deskflow::gui @@ -47,8 +42,6 @@ enum class ScreenAddResults class ServerConfig : public ScreenConfig, public deskflow::gui::IServerConfig { - using ServerProtocol = deskflow::gui::ServerProtocol; - friend class ServerConfigDialog; friend QTextStream &operator<<(QTextStream &outStream, const ServerConfig &config); @@ -85,7 +78,7 @@ public: { return m_Heartbeat; } - ServerProtocol protocol() const + NetworkProtocol protocol() const { return m_Protocol; } @@ -197,7 +190,7 @@ private: { m_Heartbeat = val; } - void setProtocol(ServerProtocol val) + void setProtocol(NetworkProtocol val) { m_Protocol = val; } @@ -261,7 +254,7 @@ private: private: bool m_HasHeartbeat = false; int m_Heartbeat = 0; - ServerProtocol m_Protocol = deskflow::gui::kDefaultProtocol; + NetworkProtocol m_Protocol = deskflow::gui::kDefaultProtocol; bool m_RelativeMouseMoves = false; bool m_Win32KeepForeground = false; bool m_HasSwitchDelay = false; diff --git a/src/lib/gui/dialogs/ServerConfigDialog.cpp b/src/lib/gui/dialogs/ServerConfigDialog.cpp index b31195d59..3da1965f4 100644 --- a/src/lib/gui/dialogs/ServerConfigDialog.cpp +++ b/src/lib/gui/dialogs/ServerConfigDialog.cpp @@ -9,6 +9,7 @@ #include "ServerConfigDialog.h" #include "ui_ServerConfigDialog.h" +#include "base/NetworkProtocol.h" #include "common/Constants.h" #include "dialogs/ActionDialog.h" #include "dialogs/HotkeyDialog.h" @@ -20,7 +21,7 @@ #include using enum ScreenConfig::SwitchCorner; -using ServerProtocol = deskflow::gui::ServerProtocol; +using enum NetworkProtocol; ServerConfigDialog::ServerConfigDialog(QWidget *parent, ServerConfig &config) : QDialog(parent, Qt::WindowTitleHint | Qt::WindowSystemMenuHint), @@ -67,8 +68,8 @@ ServerConfigDialog::ServerConfigDialog(QWidget *parent, ServerConfig &config) ui->btnBrowseConfigFile->setIcon(QIcon::fromTheme(QIcon::ThemeIcon::DocumentOpen)); ui->lineConfigFile->setText(serverConfig().configFile()); - ui->rbProtocolSynergy->setChecked(serverConfig().protocol() == ServerProtocol::kSynergy); - ui->rbProtocolBarrier->setChecked(serverConfig().protocol() == ServerProtocol::kBarrier); + ui->rbProtocolSynergy->setChecked(serverConfig().protocol() == NetworkProtocol::Synergy); + ui->rbProtocolBarrier->setChecked(serverConfig().protocol() == NetworkProtocol::Barrier); connect(ui->rbProtocolBarrier, &QRadioButton::toggled, this, &ServerConfigDialog::toggleProtocol); ui->cbHeartbeat->setChecked(serverConfig().hasHeartbeat()); @@ -359,7 +360,7 @@ void ServerConfigDialog::toggleRelativeMouseMoves(bool enabled) void ServerConfigDialog::toggleProtocol() { - ServerProtocol proto = ui->rbProtocolBarrier->isChecked() ? ServerProtocol::kBarrier : ServerProtocol::kSynergy; + auto proto = ui->rbProtocolBarrier->isChecked() ? NetworkProtocol::Barrier : NetworkProtocol::Synergy; serverConfig().setProtocol(proto); onChange(); } diff --git a/src/lib/server/Config.cpp b/src/lib/server/Config.cpp index af62cdbab..558348d79 100644 --- a/src/lib/server/Config.cpp +++ b/src/lib/server/Config.cpp @@ -1311,11 +1311,11 @@ std::string Config::getOptionValue(OptionID id, OptionValue value) return result; } if (id == kOptionProtocol) { - using enum ENetworkProtocol; - const auto enumValue = static_cast(value); - if (enumValue == kSynergy) { + using enum NetworkProtocol; + const auto enumValue = static_cast(value); + if (enumValue == Synergy) { return kSynergyProtocolOption; - } else if (enumValue == kBarrier) { + } else if (enumValue == Barrier) { return kBarrierProtocolOption; } else { throw XInvalidProtocol(); @@ -1809,9 +1809,9 @@ OptionValue ConfigReadContext::parseCorner(const std::string &arg) const OptionValue ConfigReadContext::parseProtocol(const std::string &args) const { if (CaselessCmp::equal(args, kSynergyProtocolOption)) { - return static_cast(ENetworkProtocol::kSynergy); + return static_cast(NetworkProtocol::Synergy); } else if (CaselessCmp::equal(args, kBarrierProtocolOption)) { - return static_cast(ENetworkProtocol::kBarrier); + return static_cast(NetworkProtocol::Barrier); } throw XConfigRead(*this, "invalid protocol argument \"%{1}\"", args); } diff --git a/src/lib/server/Server.cpp b/src/lib/server/Server.cpp index 88de9fbee..b14d6a6dc 100644 --- a/src/lib/server/Server.cpp +++ b/src/lib/server/Server.cpp @@ -275,10 +275,10 @@ void Server::disconnect() std::string Server::protocolString() const { - using enum ENetworkProtocol; - if (m_protocol == kSynergy) { + using enum NetworkProtocol; + if (m_protocol == Synergy) { return kSynergyProtocolName; - } else if (m_protocol == kBarrier) { + } else if (m_protocol == Barrier) { return kBarrierProtocolName; } throw XInvalidProtocol(); @@ -1074,12 +1074,12 @@ void Server::processOptions() const OptionID id = optionId; const OptionValue value = optionValue; if (id == kOptionProtocol) { - using enum ENetworkProtocol; - const auto enumValue = static_cast(value); - if (enumValue == kSynergy) { - m_protocol = kSynergy; - } else if (enumValue == kBarrier) { - m_protocol = kBarrier; + using enum NetworkProtocol; + const auto enumValue = static_cast(value); + if (enumValue == Synergy) { + m_protocol = Synergy; + } else if (enumValue == Barrier) { + m_protocol = Barrier; } else { throw XInvalidProtocol(); } diff --git a/src/lib/server/Server.h b/src/lib/server/Server.h index 045e8e5e0..66a234486 100644 --- a/src/lib/server/Server.h +++ b/src/lib/server/Server.h @@ -358,7 +358,7 @@ private: }; // used in hello message sent to the client - ENetworkProtocol m_protocol; + NetworkProtocol m_protocol; // the primary screen client PrimaryClient *m_primaryClient;