37 lines
1.2 KiB
C++
37 lines
1.2 KiB
C++
#pragma once
|
|
|
|
#include <array>
|
|
#include <cstdint>
|
|
|
|
#include <types.hpp>
|
|
#include <vamp_style.hpp>
|
|
|
|
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<std::char_t, 96> last_title_{};
|
|
std::array<std::char_t, 48> last_part_{};
|
|
std::uint32_t last_page_{};
|
|
std::uint32_t last_pages_{};
|
|
};
|
|
|
|
}
|