Frontend: emulate motion sensor
This commit is contained in:
parent
6479f63091
commit
bcf9d20d57
9 changed files with 239 additions and 16 deletions
|
@ -191,6 +191,7 @@ qreal GRenderWindow::windowPixelRatio() {
|
|||
}
|
||||
|
||||
void GRenderWindow::closeEvent(QCloseEvent* event) {
|
||||
motion_emu = nullptr;
|
||||
emit Closed();
|
||||
QWidget::closeEvent(event);
|
||||
}
|
||||
|
@ -204,11 +205,13 @@ void GRenderWindow::keyReleaseEvent(QKeyEvent* event) {
|
|||
}
|
||||
|
||||
void GRenderWindow::mousePressEvent(QMouseEvent* event) {
|
||||
auto pos = event->pos();
|
||||
if (event->button() == Qt::LeftButton) {
|
||||
auto pos = event->pos();
|
||||
qreal pixelRatio = windowPixelRatio();
|
||||
this->TouchPressed(static_cast<unsigned>(pos.x() * pixelRatio),
|
||||
static_cast<unsigned>(pos.y() * pixelRatio));
|
||||
} else if (event->button() == Qt::RightButton) {
|
||||
motion_emu->BeginTilt(pos.x(), pos.y());
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -217,11 +220,14 @@ void GRenderWindow::mouseMoveEvent(QMouseEvent* event) {
|
|||
qreal pixelRatio = windowPixelRatio();
|
||||
this->TouchMoved(std::max(static_cast<unsigned>(pos.x() * pixelRatio), 0u),
|
||||
std::max(static_cast<unsigned>(pos.y() * pixelRatio), 0u));
|
||||
motion_emu->Tilt(pos.x(), pos.y());
|
||||
}
|
||||
|
||||
void GRenderWindow::mouseReleaseEvent(QMouseEvent* event) {
|
||||
if (event->button() == Qt::LeftButton)
|
||||
this->TouchReleased();
|
||||
else if (event->button() == Qt::RightButton)
|
||||
motion_emu->EndTilt();
|
||||
}
|
||||
|
||||
void GRenderWindow::ReloadSetKeymaps() {
|
||||
|
@ -279,11 +285,13 @@ void GRenderWindow::OnMinimalClientAreaChangeRequest(
|
|||
}
|
||||
|
||||
void GRenderWindow::OnEmulationStarting(EmuThread* emu_thread) {
|
||||
motion_emu = std::make_unique<Motion::MotionEmu>(*this);
|
||||
this->emu_thread = emu_thread;
|
||||
child->DisablePainting();
|
||||
}
|
||||
|
||||
void GRenderWindow::OnEmulationStopping() {
|
||||
motion_emu = nullptr;
|
||||
emu_thread = nullptr;
|
||||
child->EnablePainting();
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue