/* * Deskflow -- mouse and keyboard sharing utility * SPDX-FileCopyrightText: (C) 2025 Chris Rizzitello * SPDX-FileCopyrightText: (C) 2012 - 2016 Symless Ltd. * SPDX-FileCopyrightText: (C) 2002 Chris Schoeneman * SPDX-License-Identifier: GPL-2.0-only WITH LicenseRef-OpenSSL-Exception */ #include "arch/Arch.h" #include "base/EventQueue.h" #include "base/Log.h" #include "deskflow/ClientApp.h" #include "deskflow/ServerApp.h" #if SYSAPI_WIN32 #include "arch/win32/ArchMiscWindows.h" #endif #include void showHelp() { std::cout << "Usage: deskflow-core [...options]" << std::endl; std::cout << "server - start as a server (deskflow-server)" << std::endl; std::cout << "client - start as a client (deskflow-client)" << std::endl; std::cout << "use deskflow-core --help for more information." << std::endl; } bool isServer(int argc, char **argv) { return (argc > 1 && argv[1] == std::string("server")); } bool isClient(int argc, char **argv) { return (argc > 1 && argv[1] == std::string("client")); } int main(int argc, char **argv) { #if SYSAPI_WIN32 ArchMiscWindows::setInstanceWin32(GetModuleHandle(NULL)); #endif Arch arch; arch.init(); Log log; EventQueue events; if (isServer(argc, argv)) { ServerApp app(&events); return app.run(argc, argv); } else if (isClient(argc, argv)) { ClientApp app(&events); return app.run(argc, argv); } else { showHelp(); } return 0; }