@@ -15,8 +15,7 @@
|
||||
namespace vamp_zero {
|
||||
|
||||
auto async_validate_database(boost::asio::any_io_executor executor, vamp_zero::database_config config, std::bool_t integrity = false) -> boost::asio::awaitable<std::expected<void, modulus::error>>;
|
||||
auto async_load_performance_library(boost::asio::any_io_executor executor, vamp_zero::database_config config, std::string assets_path) -> boost::asio::awaitable<std::expected<vamp_zero::library_state, modulus::error>>;
|
||||
auto async_load_practice_library(boost::asio::any_io_executor executor, vamp_zero::database_config config, std::string assets_path) -> boost::asio::awaitable<std::expected<vamp_zero::practice_library, modulus::error>>;
|
||||
auto async_load_catalog(boost::asio::any_io_executor executor, vamp_zero::database_config config, std::string assets_path) -> boost::asio::awaitable<std::expected<vamp_zero::catalog, modulus::error>>;
|
||||
auto async_load_score(boost::asio::any_io_executor executor, vamp_zero::database_config config, vamp_zero::score_reference reference, std::string assets_path) -> boost::asio::awaitable<std::expected<vamp_zero::score_document, modulus::error>>;
|
||||
|
||||
}
|
||||
|
||||
@@ -12,7 +12,7 @@
|
||||
namespace vamp_zero {
|
||||
|
||||
auto parse_score_document(std::string_view json, std::string source_path = {}) -> std::expected<vamp_zero::score_document, modulus::error>;
|
||||
auto group_library_parts(std::vector<vamp_zero::library_part> parts) -> vamp_zero::library_state;
|
||||
auto group_practice_exercises(std::vector<vamp_zero::practice_exercise> exercises) -> std::expected<vamp_zero::practice_library, modulus::error>;
|
||||
// Parts must be ordered by title, composer, part, and ID, as returned by the catalog query.
|
||||
auto group_ordered_parts(std::vector<vamp_zero::library_part> parts) -> vamp_zero::catalog;
|
||||
|
||||
}
|
||||
|
||||
@@ -14,10 +14,6 @@ namespace vamp_zero {
|
||||
auto selected_group(vamp_zero::app_state const &state) -> vamp_zero::song_group const *;
|
||||
auto selected_part(vamp_zero::app_state const &state) -> vamp_zero::library_part const *;
|
||||
auto active_part(vamp_zero::app_state const &state) -> vamp_zero::library_part const *;
|
||||
auto selected_practice_exercise(vamp_zero::app_state const &state) -> vamp_zero::practice_exercise const *;
|
||||
auto active_practice(vamp_zero::app_state const &state) -> vamp_zero::practice_exercise const *;
|
||||
auto selected_practice_part(vamp_zero::app_state const &state, vamp_zero::practice_exercise const &exercise) -> vamp_zero::library_part const *;
|
||||
auto practice_part_row_count(vamp_zero::app_state const &state) -> std::size_t;
|
||||
auto active_pages(vamp_zero::app_state const &state) -> std::size_t;
|
||||
|
||||
}
|
||||
|
||||
@@ -4,7 +4,6 @@
|
||||
#include <cstdint>
|
||||
#include <memory>
|
||||
#include <string>
|
||||
#include <string_view>
|
||||
#include <vector>
|
||||
|
||||
#include <modulus/types.hpp>
|
||||
@@ -49,36 +48,14 @@ struct song_group {
|
||||
std::vector<std::size_t> parts{};
|
||||
};
|
||||
|
||||
struct library_state {
|
||||
struct catalog {
|
||||
std::vector<vamp_zero::library_part> parts{};
|
||||
std::vector<vamp_zero::song_group> groups{};
|
||||
};
|
||||
|
||||
struct practice_exercise {
|
||||
std::string id{};
|
||||
std::string title{};
|
||||
std::string composer{};
|
||||
std::vector<vamp_zero::library_part> parts{};
|
||||
};
|
||||
|
||||
struct practice_library {
|
||||
std::vector<vamp_zero::practice_exercise> exercises{};
|
||||
};
|
||||
|
||||
struct catalog {
|
||||
vamp_zero::library_state performance{};
|
||||
vamp_zero::practice_library practice{};
|
||||
};
|
||||
|
||||
auto empty_catalog() -> std::shared_ptr<vamp_zero::catalog const> const &;
|
||||
|
||||
enum class score_category {
|
||||
PERFORMANCE,
|
||||
PRACTICE,
|
||||
};
|
||||
|
||||
struct score_reference {
|
||||
vamp_zero::score_category category{vamp_zero::score_category::PERFORMANCE};
|
||||
std::string id{};
|
||||
auto operator==(vamp_zero::score_reference const &) const -> std::bool_t = default;
|
||||
};
|
||||
@@ -88,9 +65,6 @@ enum class app_mode {
|
||||
PERFORMANCE_SONG_MENU,
|
||||
PERFORMANCE_PART_MENU,
|
||||
PERFORMANCE_SCORE,
|
||||
PRACTICE_EXERCISE_MENU,
|
||||
PRACTICE_PART_MENU,
|
||||
PRACTICE_SCORE,
|
||||
};
|
||||
|
||||
struct audio_state {
|
||||
@@ -111,10 +85,7 @@ struct app_state {
|
||||
std::size_t selected_main_menu_index{};
|
||||
std::size_t selected_song_index{};
|
||||
std::size_t selected_part_index{};
|
||||
std::size_t selected_practice_exercise_index{};
|
||||
std::size_t selected_practice_part_index{};
|
||||
std::string active_part_id{};
|
||||
std::string active_practice_id{};
|
||||
std::size_t page_index{};
|
||||
std::uint64_t score_session{};
|
||||
std::uint64_t next_count{};
|
||||
@@ -126,6 +97,5 @@ struct app_state {
|
||||
};
|
||||
|
||||
auto to_string(vamp_zero::app_mode value) -> std::string;
|
||||
auto practice_part_names() -> std::vector<std::string_view> const &;
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user