18 [[nodiscard]]
auto get_samples() const -> std::span<
float const> {
return m_samples; }
19 [[nodiscard]]
auto get_channels() const -> std::uint8_t {
return m_channels; }
22 if (m_samples.empty() || m_channels == 0) {
return 0; }
23 return m_samples.size() / m_channels;
26 [[nodiscard]]
auto is_loaded() const ->
bool {
return m_channels > 0 && !m_samples.empty(); }
29 void set_frames(std::vector<float> samples, std::uint8_t channels);
35 [[nodiscard]]
auto decode_bytes(std::span<std::byte const> bytes, std::optional<Encoding> encoding = {}) ->
bool;
41 [[nodiscard]]
auto decode_file(
char const* path, std::optional<Encoding> encoding = {}) ->
bool;
44 std::vector<float> m_samples{};
45 std::uint8_t m_channels{};
49[[nodiscard]]
auto guess_encoding(std::string_view path) -> std::optional<Encoding>;
52[[nodiscard]]
auto file_to_bytes(
char const* path) -> std::vector<std::byte>;
Audio Buffer: stores decoded PCM data in memory.
Definition buffer.hpp:13
void set_frames(std::vector< float > samples, std::uint8_t channels)
Set custom PCM data.
auto decode_bytes(std::span< std::byte const > bytes, std::optional< Encoding > encoding={}) -> bool
Decode bytes in memory.
static constexpr auto sample_rate_v
Sample rate is constant (48kHz).
Definition buffer.hpp:16
auto get_channels() const -> std::uint8_t
Definition buffer.hpp:19
auto decode_file(char const *path, std::optional< Encoding > encoding={}) -> bool
Decode an audio file.
auto get_samples() const -> std::span< float const >
Definition buffer.hpp:18
auto is_loaded() const -> bool
Definition buffer.hpp:26
auto get_frame_count() const -> std::uint64_t
Definition buffer.hpp:21
auto guess_encoding(std::string_view path) -> std::optional< Encoding >
Guess the Encoding format based on the file extension.
Encoding
Format of encoded data.
Definition buffer.hpp:10
auto file_to_bytes(char const *path) -> std::vector< std::byte >
Load file data as a binary byte array.