input_common/tas: Fallback to simple update

This commit is contained in:
MonsterDruide1
2021-06-20 00:04:34 +02:00
parent c01a872c8e
commit f078b15565
10 changed files with 60 additions and 102 deletions

View File

@ -41,7 +41,8 @@ void ControllerDialog::refreshConfiguration() {
constexpr std::size_t player = 0;
widget->SetPlayerInputRaw(player, players[player].buttons, players[player].analogs);
widget->SetControllerType(players[player].controller_type);
ControllerCallback callback{[this](ControllerInput input) { InputController(input); }};
ControllerCallback callback{[this](ControllerInput input) { InputController(input); },
[this](bool update) { UpdateController(update); }};
widget->SetCallBack(callback);
widget->repaint();
widget->SetConnectedStatus(players[player].connected);
@ -74,10 +75,6 @@ void ControllerDialog::hideEvent(QHideEvent* ev) {
QWidget::hideEvent(ev);
}
void ControllerDialog::RefreshTasFile() {
input_subsystem->GetTas()->RefreshTasFile();
}
void ControllerDialog::InputController(ControllerInput input) {
u32 buttons = 0;
int index = 0;
@ -86,4 +83,11 @@ void ControllerDialog::InputController(ControllerInput input) {
index++;
}
input_subsystem->GetTas()->RecordInput(buttons, input.axis_values);
}
}
void ControllerDialog::UpdateController(bool update) {
if (!update) {
return;
}
input_subsystem->GetTas()->UpdateThread();
}

View File

@ -25,6 +25,7 @@ struct ControllerInput {
struct ControllerCallback {
std::function<void(ControllerInput)> input;
std::function<void(bool)> update;
};
class ControllerDialog : public QWidget {
@ -43,8 +44,8 @@ protected:
void hideEvent(QHideEvent* ev) override;
private:
void RefreshTasFile();
void InputController(ControllerInput input);
void UpdateController(bool update);
QAction* toggle_view_action = nullptr;
QFileSystemWatcher* watcher = nullptr;
PlayerControlPreview* widget;