26 std::shared_ptr<const sequence::SequenceProgram> program;
33 return std::unexpected(
loaded.error().detail);
35 program = std::move(*
loaded);
38 std::vector<sequence::SequenceCommand> commands;
67 return std::unexpected(
68 "sequence command queue cannot fit IBar bank transition");
71 for (
auto& command : commands)
73 const auto queued = std::visit(
81 return std::unexpected(
82 "validated IBar bank command rejected");
bool visible() const noexcept
bool hovered() const noexcept
std::expected< void, std::string > sync(bool visible, bool hovered, engine::SequencePlayback &playback)
static constexpr std::size_t Capacity
static std::expected< std::shared_ptr< const SequenceProgram >, RuntimeError > load(const data::DataSource &source, data::DataId id, std::size_t offset=0, DescriptionLimits limits={})
constexpr std::uint16_t BankPriority
constexpr std::int32_t BankY
constexpr std::int32_t BankX
constexpr data::DataId bankSequence() noexcept
MoveSequenceCommand makeMoveXY(data::DataId dataId, std::uint16_t priority, std::int32_t x, std::int32_t y) noexcept