Tab Generation
ci / checks (push) Successful in 1h19m14s

This commit is contained in:
khodowany
2026-09-20 16:20:43 -05:00
parent 68ded4d8c8
commit cf7c0c010c
423 changed files with 1422 additions and 1332 deletions
+10 -26
View File
@@ -66,42 +66,26 @@ auto vamp_zero::active_practice(vamp_zero::app_state const &state) -> vamp_zero:
return found == state.catalog->practice.exercises.end() ? nullptr : &*found;
}
auto vamp_zero::selected_practice_variant(vamp_zero::app_state const &state, vamp_zero::practice_exercise const &exercise) -> vamp_zero::practice_exercise::score_variant const * {
if (exercise.variants.empty()) {
auto vamp_zero::selected_practice_part(vamp_zero::app_state const &state, vamp_zero::practice_exercise const &exercise) -> vamp_zero::library_part const * {
if (exercise.parts.empty()) {
return nullptr;
}
if (state.selected_practice_key_index == 0U) {
if (state.selected_practice_part_index == 0U) {
return nullptr;
}
auto index = state.selected_practice_key_index - 1U;
if (index >= exercise.variants.size()) {
auto index = state.selected_practice_part_index - 1U;
if (index >= exercise.parts.size()) {
return nullptr;
}
return &exercise.variants[index];
return &exercise.parts[index];
}
auto vamp_zero::selected_practice_key(vamp_zero::app_state const &state, vamp_zero::practice_exercise const &exercise) -> std::optional<std::string_view> {
auto const *variant = vamp_zero::selected_practice_variant(state, exercise);
if (variant == nullptr) {
return std::nullopt;
}
return variant->key_signature;
}
auto vamp_zero::practice_key_row_count(vamp_zero::app_state const &state) -> std::size_t {
auto vamp_zero::practice_part_row_count(vamp_zero::app_state const &state) -> std::size_t {
auto const *exercise = vamp_zero::selected_practice_exercise(state);
if (exercise == nullptr) {
return 1U;
}
return menu_row_count(exercise->variants.size());
}
auto vamp_zero::effective_practice_key(vamp_zero::app_state const &state, vamp_zero::practice_exercise const &exercise) -> std::string {
if (auto const *variant = vamp_zero::selected_practice_variant(state, exercise);
variant != nullptr && !variant->key_signature.empty()) {
return variant->key_signature;
}
return exercise.variants.empty() ? std::string{} : exercise.variants.front().key_signature;
return menu_row_count(exercise->parts.size());
}
auto vamp_zero::active_pages(vamp_zero::app_state const &state) -> std::size_t {
@@ -111,8 +95,8 @@ auto vamp_zero::active_pages(vamp_zero::app_state const &state) -> std::size_t {
}
if (state.mode == vamp_zero::app_mode::PRACTICE_SCORE) {
auto const *exercise = vamp_zero::active_practice(state);
auto const *variant = exercise == nullptr ? nullptr : vamp_zero::selected_practice_variant(state, *exercise);
return variant == nullptr ? 0U : variant->total_pages;
auto const *practice_part = exercise == nullptr ? nullptr : vamp_zero::selected_practice_part(state, *exercise);
return practice_part == nullptr ? 0U : practice_part->total_pages;
}
return 0U;
}