forked from ShuriZma/suyu
1
0
Fork 0

debugger/controller: Remove TAS

This commit is contained in:
german77 2021-09-20 19:59:09 -05:00 committed by Narr the Reg
parent 173a6b1e57
commit 456397ed39
2 changed files with 5 additions and 46 deletions

View File

@ -6,12 +6,11 @@
#include <QLayout> #include <QLayout>
#include <QString> #include <QString>
#include "common/settings.h" #include "common/settings.h"
#include "input_common/main.h" #include "core/core.h"
#include "yuzu/configuration/configure_input_player_widget.h" #include "yuzu/configuration/configure_input_player_widget.h"
#include "yuzu/debugger/controller.h" #include "yuzu/debugger/controller.h"
ControllerDialog::ControllerDialog(QWidget* parent, InputCommon::InputSubsystem* input_subsystem_) ControllerDialog::ControllerDialog(QWidget* parent) : QWidget(parent, Qt::Dialog) {
: QWidget(parent, Qt::Dialog), input_subsystem{input_subsystem_} {
setObjectName(QStringLiteral("Controller")); setObjectName(QStringLiteral("Controller"));
setWindowTitle(tr("Controller P1")); setWindowTitle(tr("Controller P1"));
resize(500, 350); resize(500, 350);
@ -21,7 +20,8 @@ ControllerDialog::ControllerDialog(QWidget* parent, InputCommon::InputSubsystem*
Qt::WindowMaximizeButtonHint); Qt::WindowMaximizeButtonHint);
widget = new PlayerControlPreview(this); widget = new PlayerControlPreview(this);
refreshConfiguration(); widget->SetController(Core::System::GetInstance().HIDCore().GetEmulatedController(
Core::HID::NpadIdType::Player1));
QLayout* layout = new QVBoxLayout(this); QLayout* layout = new QVBoxLayout(this);
layout->setContentsMargins(0, 0, 0, 0); layout->setContentsMargins(0, 0, 0, 0);
layout->addWidget(widget); layout->addWidget(widget);
@ -30,22 +30,10 @@ ControllerDialog::ControllerDialog(QWidget* parent, InputCommon::InputSubsystem*
// Configure focus so that widget is focusable and the dialog automatically forwards focus to // Configure focus so that widget is focusable and the dialog automatically forwards focus to
// it. // it.
setFocusProxy(widget); setFocusProxy(widget);
widget->SetConnectedStatus(false);
widget->setFocusPolicy(Qt::StrongFocus); widget->setFocusPolicy(Qt::StrongFocus);
widget->setFocus(); widget->setFocus();
} }
void ControllerDialog::refreshConfiguration() {
const auto& players = Settings::values.players.GetValue();
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); }};
widget->SetCallBack(callback);
widget->repaint();
widget->SetConnectedStatus(players[player].connected);
}
QAction* ControllerDialog::toggleViewAction() { QAction* ControllerDialog::toggleViewAction() {
if (toggle_view_action == nullptr) { if (toggle_view_action == nullptr) {
toggle_view_action = new QAction(tr("&Controller P1"), this); toggle_view_action = new QAction(tr("&Controller P1"), this);
@ -61,7 +49,6 @@ void ControllerDialog::showEvent(QShowEvent* ev) {
if (toggle_view_action) { if (toggle_view_action) {
toggle_view_action->setChecked(isVisible()); toggle_view_action->setChecked(isVisible());
} }
refreshConfiguration();
QWidget::showEvent(ev); QWidget::showEvent(ev);
} }
@ -69,16 +56,5 @@ void ControllerDialog::hideEvent(QHideEvent* ev) {
if (toggle_view_action) { if (toggle_view_action) {
toggle_view_action->setChecked(isVisible()); toggle_view_action->setChecked(isVisible());
} }
widget->SetConnectedStatus(false);
QWidget::hideEvent(ev); QWidget::hideEvent(ev);
} }
void ControllerDialog::InputController(ControllerInput input) {
u32 buttons = 0;
int index = 0;
for (bool btn : input.button_values) {
buttons |= (btn ? 1U : 0U) << index;
index++;
}
//input_subsystem->GetTas()->RecordInput(buttons, input.axis_values);
}

View File

@ -4,9 +4,7 @@
#pragma once #pragma once
#include <QFileSystemWatcher>
#include <QWidget> #include <QWidget>
#include "common/settings.h"
class QAction; class QAction;
class QHideEvent; class QHideEvent;
@ -17,35 +15,20 @@ namespace InputCommon {
class InputSubsystem; class InputSubsystem;
} }
struct ControllerInput {
std::array<std::pair<float, float>, Settings::NativeAnalog::NUM_STICKS_HID> axis_values{};
std::array<bool, Settings::NativeButton::NumButtons> button_values{};
bool changed{};
};
struct ControllerCallback {
std::function<void(ControllerInput)> input;
};
class ControllerDialog : public QWidget { class ControllerDialog : public QWidget {
Q_OBJECT Q_OBJECT
public: public:
explicit ControllerDialog(QWidget* parent = nullptr, explicit ControllerDialog(QWidget* parent = nullptr);
InputCommon::InputSubsystem* input_subsystem_ = nullptr);
/// Returns a QAction that can be used to toggle visibility of this dialog. /// Returns a QAction that can be used to toggle visibility of this dialog.
QAction* toggleViewAction(); QAction* toggleViewAction();
void refreshConfiguration();
protected: protected:
void showEvent(QShowEvent* ev) override; void showEvent(QShowEvent* ev) override;
void hideEvent(QHideEvent* ev) override; void hideEvent(QHideEvent* ev) override;
private: private:
void InputController(ControllerInput input);
QAction* toggle_view_action = nullptr; QAction* toggle_view_action = nullptr;
QFileSystemWatcher* watcher = nullptr;
PlayerControlPreview* widget; PlayerControlPreview* widget;
InputCommon::InputSubsystem* input_subsystem;
}; };