Input will come next

This commit is contained in:
SimoneN64
2024-01-21 22:01:26 +01:00
parent 7d54887d63
commit 346895a86b
7 changed files with 41 additions and 68 deletions

View File

@@ -1,5 +1,6 @@
#include <QFileDialog>
#include <QMessageBox>
#include <QKeyEvent>
#include <MainWindow.hpp>
MainWindowController::MainWindowController() noexcept {
@@ -9,6 +10,8 @@ MainWindowController::MainWindowController() noexcept {
view.actionStop->setDisabled(true);
view.vulkanWidget->hide();
ConnectSignalsToSlots();
setFocusPolicy(Qt::FocusPolicy::StrongFocus);
setFocus();
}
void MainWindowController::ConnectSignalsToSlots() noexcept {
@@ -54,4 +57,33 @@ void MainWindowController::ConnectSignalsToSlots() noexcept {
"Kaizen is licensed under the BSD 3-clause license.\n"
"Nintendo 64 is a registered trademarks of Nintendo Co., Ltd."));
});
}
void MainWindowController::keyPressEvent(QKeyEvent* e) {
n64::Controller data{};
data.z = (e->key() == Qt::Key::Key_Z);
data.a = (e->key() == Qt::Key::Key_X);
data.b = (e->key() == Qt::Key::Key_C);
data.start = e->key() == Qt::Key::Key_Enter || e->key() == Qt::Key::Key_Return;
data.dp_up = (e->key() == Qt::Key::Key_I);
data.dp_down = (e->key() == Qt::Key::Key_K);
data.dp_left = (e->key() == Qt::Key::Key_J);
data.dp_right = (e->key() == Qt::Key::Key_L);
data.l = (e->key() == Qt::Key::Key_A);
data.r = (e->key() == Qt::Key::Key_S);
data.c_up = (e->key() == Qt::Key::Key_8);
data.c_down = (e->key() == Qt::Key::Key_2);
data.c_left = (e->key() == Qt::Key::Key_4);
data.c_right = (e->key() == Qt::Key::Key_6);
data.joy_y = (e->key() == Qt::Key::Key_Up) ? 127 : 0;
data.joy_y = (e->key() == Qt::Key::Key_Down) ? -127 : 0;
data.joy_x = (e->key() == Qt::Key::Key_Left) ? -127 : 0;
data.joy_x = (e->key() == Qt::Key::Key_Right) ? 127 : 0;
emuThread->core.pause = true;
emuThread->core.cpu->mem.mmio.si.pif.UpdateController(data);
emuThread->core.pause = false;
QWidget::keyPressEvent(e);
setFocus();
}