mirror of
https://github.com/dolphin-emu/dolphin.git
synced 2025-07-21 05:09:34 -06:00
DolphinQt: Rework TAS input threading, part 1 (buttons)
This gets rid of a blocking operation, improving performance and fixing https://bugs.dolphin-emu.org/issues/12893. This also makes us no longer directly access the state of certain UI elements from the CPU thread, which probably wasn't thread-safe but doesn't seem to have caused any observable issues so far.
This commit is contained in:
@ -5,6 +5,8 @@
|
||||
|
||||
#include <QCheckBox>
|
||||
|
||||
#include "DolphinQt/TAS/TASControlState.h"
|
||||
|
||||
class QMouseEvent;
|
||||
class TASInputWindow;
|
||||
|
||||
@ -14,13 +16,21 @@ class TASCheckBox : public QCheckBox
|
||||
public:
|
||||
explicit TASCheckBox(const QString& text, TASInputWindow* parent);
|
||||
|
||||
// Can be called from the CPU thread
|
||||
bool GetValue() const;
|
||||
// Must be called from the CPU thread
|
||||
void OnControllerValueChanged(bool new_value);
|
||||
|
||||
protected:
|
||||
void mousePressEvent(QMouseEvent* event) override;
|
||||
|
||||
private slots:
|
||||
void OnUIValueChanged(int new_value);
|
||||
void ApplyControllerValueChange();
|
||||
|
||||
private:
|
||||
const TASInputWindow* m_parent;
|
||||
TASControlState m_state;
|
||||
int m_frame_turbo_started = 0;
|
||||
int m_turbo_press_frames = 0;
|
||||
int m_turbo_total_frames = 0;
|
||||
|
Reference in New Issue
Block a user