#include #include #include #include #include "Controller.hpp" #include namespace Hardware { Controller::Controller(const score::DocumentContext& document, Scenario::IntervalModel& interval, std::string_view device_name) : bugui::controller{device_name} , doc{document} , interval{&interval} { auto scnr = qobject_cast(&*interval.processes.begin()); if (scnr) add_widget(scnr); update(); } void Controller::on_play(bool pressed) { if (m_shift) doc.app.actions.action().action()->trigger(); else doc.app.actions.action().action()->trigger(); } void Controller::on_stop(bool pressed) { if (m_shift) doc.app.actions.action().action()->trigger(); else doc.app.actions.action().action()->trigger(); } void Controller::on_shift(bool pressed) { m_shift = pressed; } void Controller::on_up(bool pressed) { if (!pressed) return; if (m_shift) { vertical_scale += .2; update(); } else { if (vertical_ofset > -1) return; vertical_ofset += 1; update(); } } void Controller::on_down(bool pressed) { if (!pressed) return; if (m_shift) { if (vertical_scale > .2) { vertical_scale -= .2; update(); } } else { vertical_ofset -= 1; update(); } } void Controller::on_left(bool pressed) { if (!pressed) return; if (m_shift) { if (horizontal_scale > .02) { horizontal_scale -= .02; update(); } } else { if (horizontal_ofset > -1) return; horizontal_ofset += 1; update(); } } void Controller::on_right(bool pressed) { if (!pressed) return; if (m_shift) { horizontal_scale += .02; update(); } else { horizontal_ofset -= 1; update(); } } } // namespace hardware