@@ -32,23 +32,21 @@ struct ui_state {
|
||||
|
||||
class zero_ui {
|
||||
public:
|
||||
using command_handler = std::function<void(vamp_protocol::page_command)>;
|
||||
|
||||
zero_ui(boost::asio::any_io_executor executor, luma::application_config config, command_handler command_handler = {});
|
||||
zero_ui(boost::asio::any_io_executor executor, luma::application_config config, std::function<void(vamp_protocol::page_command)> command_handler = {});
|
||||
auto run() -> std::expected<void, modulus::error>;
|
||||
auto stop() -> void;
|
||||
auto publish(vamp_zero::ui_state state) -> std::expected<void, modulus::error>;
|
||||
auto snapshot() const -> vamp_zero::ui_state;
|
||||
private:
|
||||
auto handle_touch(luma::touch_event const& event) -> std::bool_t;
|
||||
auto handle_touch(luma::touch_event const &event) -> std::bool_t;
|
||||
auto send_touch_command(vamp_protocol::page_command command) -> void;
|
||||
auto arm_pending_tap() -> void;
|
||||
auto cancel_pending_tap_locked() -> void;
|
||||
auto make_root(vamp_zero::ui_state const& state) -> std::expected<std::unique_ptr<luma::control>, modulus::error>;
|
||||
auto make_root(vamp_zero::ui_state const &state) -> std::expected<std::unique_ptr<luma::control>, modulus::error>;
|
||||
boost::asio::any_io_executor executor_;
|
||||
boost::asio::steady_timer tap_timer_;
|
||||
luma::application application_;
|
||||
command_handler command_handler_{};
|
||||
std::function<void(vamp_protocol::page_command)> command_handler_{};
|
||||
std::shared_ptr<vamp_zero::score_draw_cache> score_cache_{};
|
||||
mutable std::mutex mutex_{};
|
||||
vamp_zero::ui_state state_{};
|
||||
@@ -60,6 +58,6 @@ private:
|
||||
std::bool_t pending_tap_{};
|
||||
};
|
||||
|
||||
auto make_ui_state(vamp_zero::config const& config, vamp_zero::app_state app) -> vamp_zero::ui_state;
|
||||
auto make_ui_state(vamp_zero::config const &config, vamp_zero::app_state app) -> vamp_zero::ui_state;
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user