diff options
| author | lizzie <lizzie@eden-emu.dev> | 2025-12-07 07:13:43 +0100 |
|---|---|---|
| committer | crueter <crueter@eden-emu.dev> | 2025-12-07 07:13:43 +0100 |
| commit | 83332316aa382e11e6af79b8432520ff4c9950b6 (patch) | |
| tree | 73c025c0deb6bd7095e908fecba15b1cf65120d0 /src/qt_common/gamemode.cpp | |
| parent | 3141019fcd01f7b8da310c1a1fb233866fe7cf93 (diff) | |
[gamemode] Make available on other platforms (#353)
Signed-off-by: lizzie <lizzie@eden-emu.dev>
Co-authored-by: crueter <crueter@eden-emu.dev>
Co-authored-by: Caio Oliveira <caiooliveirafarias0@gmail.com>
Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/353
Reviewed-by: CamilleLaVey <camillelavey99@gmail.com>
Reviewed-by: Caio Oliveira <caiooliveirafarias0@gmail.com>
Co-authored-by: lizzie <lizzie@eden-emu.dev>
Co-committed-by: lizzie <lizzie@eden-emu.dev>
Diffstat (limited to 'src/qt_common/gamemode.cpp')
| -rw-r--r-- | src/qt_common/gamemode.cpp | 52 |
1 files changed, 52 insertions, 0 deletions
diff --git a/src/qt_common/gamemode.cpp b/src/qt_common/gamemode.cpp new file mode 100644 index 0000000000..6a3d870aae --- /dev/null +++ b/src/qt_common/gamemode.cpp @@ -0,0 +1,52 @@ +// SPDX-FileCopyrightText: Copyright 2025 Eden Emulator Project +// SPDX-License-Identifier: GPL-3.0-or-later + +// SPDX-FileCopyrightText: Copyright 2023 yuzu Emulator Project +// SPDX-License-Identifier: GPL-2.0-or-later + +// While technically available on al *NIX platforms, Linux is only available +// as the primary target of libgamemode.so - so warnings are suppressed +#ifdef __unix__ +#include <gamemode_client.h> +#endif +#include "qt_common/gamemode.h" +#include "common/logging/log.h" +#include "qt_common/config/uisettings.h" + +namespace Common::FeralGamemode { + +/// @brief Start the gamemode client +void Start() noexcept { + if (UISettings::values.enable_gamemode) { +#ifdef __unix__ + if (gamemode_request_start() < 0) { +#ifdef __linux__ + LOG_WARNING(Frontend, "{}", gamemode_error_string()); +#else + LOG_INFO(Frontend, "{}", gamemode_error_string()); +#endif + } else { + LOG_INFO(Frontend, "Done"); + } +#endif + } +} + +/// @brief Stop the gmemode client +void Stop() noexcept { + if (UISettings::values.enable_gamemode) { +#ifdef __unix__ + if (gamemode_request_end() < 0) { +#ifdef __linux__ + LOG_WARNING(Frontend, "{}", gamemode_error_string()); +#else + LOG_INFO(Frontend, "{}", gamemode_error_string()); +#endif + } else { + LOG_INFO(Frontend, "Done"); + } +#endif + } +} + +} // namespace Common::Linux |
