#pragma once #include #include #include #include #include #include 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_type(vamp_zero::app_state const &state) -> vamp_zero::practice_type_group const *; auto selected_practice_lesson(vamp_zero::app_state const &state) -> vamp_zero::practice_lesson_group 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 supports_key_selection(vamp_zero::practice_exercise const &exercise) -> std::bool_t; auto selected_practice_variant(vamp_zero::app_state const &state, vamp_zero::practice_exercise const &exercise) -> vamp_zero::practice_exercise::score_variant const *; auto selected_practice_key(vamp_zero::app_state const &state, vamp_zero::practice_exercise const &exercise) -> std::optional; auto practice_key_row_count(vamp_zero::app_state const &state) -> std::size_t; auto effective_practice_key(vamp_zero::app_state const &state, vamp_zero::practice_exercise const &exercise) -> std::string; auto active_pages(vamp_zero::app_state const &state) -> std::size_t; auto practice_fallback_menu(vamp_zero::app_state const &state) -> vamp_zero::app_mode; }