Cleanup
ci / checks (push) Successful in 41m34s

This commit is contained in:
khodowany
2026-09-10 09:22:26 -05:00
parent fa7485d404
commit 1a13d6b0e1
14 changed files with 609 additions and 13 deletions
+37
View File
@@ -0,0 +1,37 @@
#pragma once
#include <cstdint>
#include <expected>
#include <memory>
#include <mutex>
#include <modulus.hpp>
#include <sonus.hpp>
#include <vamp_zero/config.hpp>
#include <vamp_zero/types.hpp>
namespace vamp_zero {
class audio_controller {
public:
audio_controller(vamp_zero::audio_config config, sonus::engine engine);
audio_controller(vamp_zero::audio_controller const&) = delete;
auto operator=(vamp_zero::audio_controller const&) -> vamp_zero::audio_controller& = delete;
~audio_controller();
auto sync(vamp_zero::app_state const& state) -> void;
private:
auto make_metronome_config(vamp_zero::app_state const& state) const -> sonus::metronome_config;
vamp_zero::audio_config config_{};
sonus::engine engine_;
mutable std::mutex mutex_{};
std::bool_t metronome_running_{false};
std::uint32_t last_metronome_bpm_{};
};
auto create_audio_controller(vamp_zero::audio_config const& config) -> std::expected<std::unique_ptr<vamp_zero::audio_controller>, modulus::error>;
}
+15
View File
@@ -1,6 +1,7 @@
#pragma once
#include <chrono>
#include <cstdint>
#include <expected>
#include <string>
@@ -44,11 +45,25 @@ struct control_config {
std::string zero_cidr{"192.168.42.1/24"};
};
struct audio_config {
std::bool_t enabled{true};
std::bool_t track_enabled{false};
std::bool_t metronome_enabled{false};
std::uint32_t metronome_bpm{120};
std::uint32_t metronome_min_bpm{40};
std::uint32_t metronome_max_bpm{240};
std::uint32_t metronome_step{5};
std::uint32_t beats_per_bar{4};
std::float32_t master_volume{0.70F};
std::float32_t metronome_volume{0.45F};
};
struct config {
modulus::config modulus{};
vamp_zero::runtime_config runtime{};
vamp_zero::database_config database{};
vamp_zero::control_config control{};
vamp_zero::audio_config audio{};
luma::application_config display{.title = "Product Vamp"};
};
+11
View File
@@ -142,10 +142,21 @@ enum class app_mode {
PRACTICE_SCORE,
};
struct audio_state {
std::bool_t track_enabled{false};
std::bool_t metronome_enabled{false};
std::uint32_t metronome_bpm{120};
std::uint32_t metronome_min_bpm{40};
std::uint32_t metronome_max_bpm{240};
std::uint32_t metronome_step{5};
std::bool_t tempo_editing{false};
};
struct app_state {
vamp_zero::library_state performance{};
vamp_zero::practice_library practice{};
vamp_zero::app_mode mode{vamp_zero::app_mode::MAIN_MENU};
vamp_zero::audio_state audio{};
std::size_t selected_main_menu_index{};
std::size_t selected_song_index{};
std::size_t selected_part_index{};