#pragma once #include #include #include #include #include namespace Hardware { class SCORE_ADDON_HARDWARE_EXPORT Controller final : public bugui::controller , public QObject { W_OBJECT(Controller) public: explicit Controller(const score::DocumentContext& document, Scenario::IntervalModel& interval, std::string_view device_name); void on_play(bool pressed); void on_stop(bool pressed); void on_shift(bool pressed); void on_up(bool pressed); void on_down(bool pressed); void on_left(bool pressed); void on_right(bool pressed); bool on_press(int x, int y, bool pressed) override; bool on_double_press(int x, int y) override; private: Scenario::IntervalModel* interval; const score::DocumentContext& doc; bool m_shift{false}; }; }