Improve Catalog
ci / checks (push) Successful in 46m42s

This commit is contained in:
khodowany
2026-09-27 11:03:43 -05:00
parent a416a80dd9
commit 142d843fac
418 changed files with 440 additions and 324488 deletions
+1 -2
View File
@@ -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>>;
}
+2 -2
View File
@@ -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;
}
-4
View File
@@ -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;
}
+1 -31
View File
@@ -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 &;
}