Skip to content

Commit

Permalink
add internal buffer size argument to Effect::init
Browse files Browse the repository at this point in the history
  • Loading branch information
tesselode committed Dec 24, 2024
1 parent 51374a5 commit 79ca3a7
Show file tree
Hide file tree
Showing 10 changed files with 13 additions and 6 deletions.
2 changes: 1 addition & 1 deletion crates/kira/src/effect.rs
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@ pub trait EffectBuilder {
#[allow(unused_variables)]
pub trait Effect: Send {
/// Called when the effect is first sent to the renderer.
fn init(&mut self, sample_rate: u32) {}
fn init(&mut self, sample_rate: u32, internal_buffer_size: usize) {}

/// Called when the sample rate of the renderer is changed.
fn on_change_sample_rate(&mut self, sample_rate: u32) {}
Expand Down
2 changes: 1 addition & 1 deletion crates/kira/src/effect/reverb.rs
Original file line number Diff line number Diff line change
Expand Up @@ -126,7 +126,7 @@ impl Reverb {
}

impl Effect for Reverb {
fn init(&mut self, sample_rate: u32) {
fn init(&mut self, sample_rate: u32, _internal_buffer_size: usize) {
self.init_filters(sample_rate);
}

Expand Down
3 changes: 2 additions & 1 deletion crates/kira/src/track/main.rs
Original file line number Diff line number Diff line change
Expand Up @@ -20,12 +20,13 @@ pub(crate) struct MainTrack {
sounds: ResourceStorage<Box<dyn Sound>>,
effects: Vec<Box<dyn Effect>>,
temp_buffer: Vec<Frame>,
internal_buffer_size: usize,
}

impl MainTrack {
pub fn init_effects(&mut self, sample_rate: u32) {
for effect in &mut self.effects {
effect.init(sample_rate);
effect.init(sample_rate, self.internal_buffer_size);
}
}

Expand Down
1 change: 1 addition & 0 deletions crates/kira/src/track/main/builder.rs
Original file line number Diff line number Diff line change
Expand Up @@ -154,6 +154,7 @@ impl MainTrackBuilder {
sounds,
effects: self.effects,
temp_buffer: vec![Frame::ZERO; internal_buffer_size],
internal_buffer_size,
};
let handle = MainTrackHandle {
set_volume_command_writer,
Expand Down
3 changes: 2 additions & 1 deletion crates/kira/src/track/send.rs
Original file line number Diff line number Diff line change
Expand Up @@ -33,12 +33,13 @@ pub(crate) struct SendTrack {
set_volume_command_reader: CommandReader<ValueChangeCommand<Decibels>>,
effects: Vec<Box<dyn Effect>>,
input: Vec<Frame>,
internal_buffer_size: usize,
}

impl SendTrack {
pub fn init_effects(&mut self, sample_rate: u32) {
for effect in &mut self.effects {
effect.init(sample_rate);
effect.init(sample_rate, self.internal_buffer_size);
}
}

Expand Down
1 change: 1 addition & 0 deletions crates/kira/src/track/send/builder.rs
Original file line number Diff line number Diff line change
Expand Up @@ -185,6 +185,7 @@ impl SendTrackBuilder {
set_volume_command_reader,
effects: self.effects,
input: vec![Frame::ZERO; internal_buffer_size],
internal_buffer_size,
};
let handle = SendTrackHandle {
id,
Expand Down
3 changes: 2 additions & 1 deletion crates/kira/src/track/sub.rs
Original file line number Diff line number Diff line change
Expand Up @@ -54,6 +54,7 @@ pub(crate) struct Track {
spatial_data: Option<SpatialData>,
playback_state_manager: PlaybackStateManager,
temp_buffer: Vec<Frame>,
internal_buffer_size: usize,
}

impl Track {
Expand All @@ -75,7 +76,7 @@ impl Track {

pub fn init_effects(&mut self, sample_rate: u32) {
for effect in &mut self.effects {
effect.init(sample_rate);
effect.init(sample_rate, self.internal_buffer_size);
}
for (_, sub_track) in &mut self.sub_tracks {
sub_track.init_effects(sample_rate);
Expand Down
1 change: 1 addition & 0 deletions crates/kira/src/track/sub/builder.rs
Original file line number Diff line number Diff line change
Expand Up @@ -261,6 +261,7 @@ impl TrackBuilder {
spatial_data: None,
playback_state_manager: PlaybackStateManager::new(None),
temp_buffer: vec![Frame::ZERO; internal_buffer_size],
internal_buffer_size,
};
let handle = TrackHandle {
renderer_shared,
Expand Down
1 change: 1 addition & 0 deletions crates/kira/src/track/sub/spatial_builder.rs
Original file line number Diff line number Diff line change
Expand Up @@ -314,6 +314,7 @@ impl SpatialTrackBuilder {
}),
playback_state_manager: PlaybackStateManager::new(None),
temp_buffer: vec![Frame::ZERO; internal_buffer_size],
internal_buffer_size,
};
let handle = SpatialTrackHandle {
renderer_shared,
Expand Down
2 changes: 1 addition & 1 deletion crates/kira/tests/change_sample_rate.rs
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ struct TestEffect {
}

impl Effect for TestEffect {
fn init(&mut self, sample_rate: u32) {
fn init(&mut self, sample_rate: u32, _internal_buffer_size: usize) {
self.sample_rate.store(sample_rate, Ordering::SeqCst);
}

Expand Down

0 comments on commit 79ca3a7

Please sign in to comment.