#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; }