Files
product-vamp/include/vamp_pico/display.hpp
T
khodowany 2a1aa2c67a UI
2026-09-30 18:23:25 -05:00

32 lines
882 B
C++

#pragma once
#include <array>
#include <cstdint>
#include <vamp_pico/screen.hpp>
namespace vamp_pico {
class display {
public:
auto init() -> void;
auto show_remote(link_status link, remote_display_state const &state, std::bool_t busy = false) -> void;
auto accept_title(std::string_view identifier, std::string_view image) -> std::bool_t;
auto reject_title(std::string_view identifier) -> void;
auto title_ready() const -> std::bool_t;
// At most four scanlines per call, with an 8 ms minimum write interval.
auto poll(std::uint64_t now_ms) -> void;
private:
auto dirty(std::size_t begin, std::size_t end) -> void;
title_cache title_{};
std::array<std::bool_t, display_height> dirty_{};
link_status link_{link_status::CONNECTING};
std::bool_t busy_{};
remote_display_state state_{};
std::uint64_t last_write_ms_{};
std::size_t next_row_{};
};
}