Files
khodowany d2f493c17b
ci / checks (push) Successful in 50m29s
Playback Mode Pages
2026-10-06 23:11:25 -05:00

29 lines
1.2 KiB
C++

#pragma once
#include <expected>
#include <filesystem>
#include <string_view>
#include <boost/json.hpp>
#include <sonus.hpp>
#include <vamp_zero/types.hpp>
namespace vamp_zero {
auto parse_beat(boost::json::value const &value) -> std::expected<vamp_zero::beat_position, modulus::error>;
auto frame_at(vamp_zero::beat_position beat, std::uint32_t bpm) -> std::uint64_t;
auto available_tempos(vamp_zero::app_state const &state) -> std::vector<std::uint32_t>;
auto parse_audio_assets(std::string_view json) -> std::expected<std::vector<vamp_zero::audio_asset>, modulus::error>;
auto validate_audio_assets(vamp_zero::catalog const &catalog, std::filesystem::path const &assets) -> std::expected<void, modulus::error>;
auto prepare_performance(vamp_zero::score_document const &score, vamp_zero::app_state const &state, std::filesystem::path const &assets, std::float32_t click_volume) -> std::expected<sonus::prepared_transport, modulus::error>;
struct performance_position {
std::size_t page{};
std::string phase{};
std::optional<std::size_t> measure{};
};
auto performance_at(vamp_zero::score_document const &score, std::uint64_t frames, std::uint32_t bpm) -> vamp_zero::performance_position;
auto automatic(vamp_zero::audio_state const &audio) -> bool;
}