Files
AronaCore/core/audio/misc/audio_buffer.h
2024-02-27 23:24:40 +08:00

22 lines
623 B
C++

#pragma once
class audio_buffer {
public:
float** get_headers() { return headers_.data(); }
const std::vector<float*>& get_headers_vector() { return headers_; }
[[nodiscard]] uint32_t get_num_channels() const { return buffer_.size(); }
[[nodiscard]] uint32_t get_num_samples() const { return buffer_[0].size(); }
void resize(uint32_t channel_num, uint32_t block_size);
void clear();
void mix(audio_buffer& in_buffer, float percent = 1.f);
void multiple(float percent);
private:
std::vector<std::vector<float>> buffer_;
std::vector<float*> headers_{};
std::mutex lock_{};
};