#pragma once #include #include #include #include namespace vamp_pico { constexpr auto display_width = std::int32_t{320}; constexpr auto display_height = std::int32_t{240}; constexpr auto color_black = std::uint16_t{0x0000}; constexpr auto color_white = std::uint16_t{0xffff}; constexpr auto color_gray = std::uint16_t{0x8410}; class display { public: auto init() -> void; auto fill(std::uint16_t color) -> void; auto fill_rect(std::int32_t x, std::int32_t y, std::int32_t width, std::int32_t height, std::uint16_t color) -> void; auto draw_text(std::int32_t x, std::int32_t y, std::char_t const* text, std::uint16_t color, std::int32_t scale = 2) -> void; auto show_boot(std::char_t const* line1, std::char_t const* line2, std::uint16_t accent) -> void; auto show_remote(vamp_style::color status, std::char_t const* title, std::char_t const* part, std::uint32_t page, std::uint32_t pages, std::bool_t active) -> void; private: std::bool_t remote_valid_{}; vamp_style::color last_status_{}; std::bool_t last_active_{}; std::array last_title_{}; std::array last_part_{}; std::uint32_t last_page_{}; std::uint32_t last_pages_{}; }; }