Files
product-vamp/include/vamp_zero/menu.hpp
T
khodowany 150394d598
ci / checks (push) Failing after 24m18s
Toggle Solos
2026-10-08 22:11:34 -05:00

43 lines
1.2 KiB
C++

#pragma once
#include <string>
#include <vamp_zero/types.hpp>
namespace vamp_zero {
namespace settings_row {
inline constexpr std::size_t backing = 1U;
inline constexpr std::size_t metronome = 2U;
inline constexpr std::size_t solos = 3U;
inline constexpr std::size_t tempo = 4U;
inline constexpr std::size_t count = 5U;
}
enum class menu_action_kind { ACTIVATE,
PREVIOUS,
NEXT,
TEMPO_DOWN,
TEMPO_UP };
struct menu_action {
vamp_zero::menu_action_kind kind{};
std::size_t row{};
std::uint64_t revision{};
std::shared_ptr<vamp_zero::catalog const> catalog{};
};
struct menu_item {
std::string label{};
std::string detail{};
};
auto menu_count(vamp_zero::app_state const &state) -> std::size_t;
auto menu_selection(vamp_zero::app_state const &state) -> std::size_t;
auto menu_title(vamp_zero::app_state const &state) -> std::string;
auto menu_row(vamp_zero::app_state const &state, std::size_t row) -> vamp_zero::menu_item;
auto apply_menu_action(vamp_zero::app_state state, vamp_zero::menu_action const &action) -> vamp_zero::app_state;
}