diff options
| author | lizzie <lizzie@eden-emu.dev> | 2026-02-11 03:00:15 +0100 |
|---|---|---|
| committer | crueter <crueter@eden-emu.dev> | 2026-02-11 03:00:15 +0100 |
| commit | 19494bc7ac943478e099f1b28877d33ece685d3f (patch) | |
| tree | 2cf52c459067d05a7ccb2a11169d46e7a9e7e7b1 /src/yuzu/util/overlay_dialog.cpp | |
| parent | 28a78d76fed94255233284abb3df36b3fd41467d (diff) | |
[network, qt] use jthread and use std::vector for packet list instead of std::list (#254)
Signed-off-by: lizzie <lizzie@eden-emu.dev>
Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/254
Reviewed-by: DraVee <dravee@eden-emu.dev>
Reviewed-by: Maufeat <sahyno1996@gmail.com>
Co-authored-by: lizzie <lizzie@eden-emu.dev>
Co-committed-by: lizzie <lizzie@eden-emu.dev>
Diffstat (limited to 'src/yuzu/util/overlay_dialog.cpp')
| -rw-r--r-- | src/yuzu/util/overlay_dialog.cpp | 38 |
1 files changed, 13 insertions, 25 deletions
diff --git a/src/yuzu/util/overlay_dialog.cpp b/src/yuzu/util/overlay_dialog.cpp index 466bbe7b25..2d50f22acb 100644 --- a/src/yuzu/util/overlay_dialog.cpp +++ b/src/yuzu/util/overlay_dialog.cpp @@ -1,3 +1,5 @@ +// SPDX-FileCopyrightText: Copyright 2026 Eden Emulator Project +// SPDX-License-Identifier: GPL-3.0-or-later // SPDX-FileCopyrightText: Copyright 2021 yuzu Emulator Project // SPDX-License-Identifier: GPL-2.0-or-later @@ -231,34 +233,20 @@ void OverlayDialog::TranslateButtonPress(Core::HID::NpadButton button) { } void OverlayDialog::StartInputThread() { - if (input_thread_running) { - return; - } - - input_thread_running = true; - - input_thread = std::thread(&OverlayDialog::InputThread, this); + input_thread = std::jthread([&](std::stop_token stoken) { + while (!stoken.stop_requested()) { + input_interpreter->PollInput(); + HandleButtonPressedOnce<Core::HID::NpadButton::A, Core::HID::NpadButton::B, + Core::HID::NpadButton::Left, Core::HID::NpadButton::Right, + Core::HID::NpadButton::StickLLeft, + Core::HID::NpadButton::StickLRight>(); + std::this_thread::sleep_for(std::chrono::milliseconds(50)); + } + }); } void OverlayDialog::StopInputThread() { - input_thread_running = false; - - if (input_thread.joinable()) { - input_thread.join(); - } -} - -void OverlayDialog::InputThread() { - while (input_thread_running) { - input_interpreter->PollInput(); - - HandleButtonPressedOnce<Core::HID::NpadButton::A, Core::HID::NpadButton::B, - Core::HID::NpadButton::Left, Core::HID::NpadButton::Right, - Core::HID::NpadButton::StickLLeft, - Core::HID::NpadButton::StickLRight>(); - - std::this_thread::sleep_for(std::chrono::milliseconds(50)); - } + input_thread.request_stop(); } void OverlayDialog::keyPressEvent(QKeyEvent* e) { |
