diff --git a/core/audio/mixer/mixer.cpp b/core/audio/mixer/mixer.cpp index 0f0fc7b..ae8269c 100644 --- a/core/audio/mixer/mixer.cpp +++ b/core/audio/mixer/mixer.cpp @@ -129,8 +129,6 @@ void mixer::process(uint32_t in_frames) { return; e->run(taskflow_).wait(); post_process(in_frames); -// dummy_track* master = get_master(); -// master->buffer.multiple(master->volume); } void mixer::reset() { diff --git a/core/audio/mixer/mixer_track.cpp b/core/audio/mixer/mixer_track.cpp index 58cbb46..3d8c8ae 100644 --- a/core/audio/mixer/mixer_track.cpp +++ b/core/audio/mixer/mixer_track.cpp @@ -50,13 +50,15 @@ void mixer_track::remove_child(mixer_track* in_child) { void mixer_track::process(uint32_t in_frames) { for (auto effect : effects) effect->process(in_frames); - buffer.multiple(volume); +// buffer.multiple(volume); on_processed.broadcast(this); } void mixer_track::post_process(uint32_t in_frames) { + buffer.multiple(get_volume()); for (int i = 0; i < buffer.get_num_channels(); ++i) { - (*ui_buffers)[i].Push(buffer.get_headers()[i], in_frames); + ui_buffer_type& ui_buffer = (*ui_buffers)[i]; + ui_buffer.Push(buffer.get_headers()[i], in_frames); } } diff --git a/core/audio/mixer/mixer_track.h b/core/audio/mixer/mixer_track.h index c98d39e..7147849 100644 --- a/core/audio/mixer/mixer_track.h +++ b/core/audio/mixer/mixer_track.h @@ -20,8 +20,11 @@ struct mixer_track_link { class mixer_track { public: + using ui_buffer_type = circular_audio_buffer; + using ui_buffer_vector_type = std::vector; + explicit mixer_track(mixer_track_type in_type) : type_(in_type) { - ui_buffers = std::make_shared>>(); + ui_buffers = std::make_shared(); } virtual ~mixer_track(); @@ -47,7 +50,7 @@ public: [[nodiscard]] float get_volume() const { return volume; } audio_buffer buffer; - std::shared_ptr>> ui_buffers; + std::shared_ptr ui_buffers; std::vector effects{}; std::vector children{}; multicast_delegate on_processed;