Monomorphize the context variables
For the parameter setting context functions we don't be able to use trait objects.
This commit is contained in:
parent
f2d3d987a0
commit
cbd51b0c3a
|
@ -111,7 +111,7 @@ impl Plugin for Gain {
|
||||||
&mut self,
|
&mut self,
|
||||||
_bus_config: &BusConfig,
|
_bus_config: &BusConfig,
|
||||||
_buffer_config: &BufferConfig,
|
_buffer_config: &BufferConfig,
|
||||||
_context: &dyn ProcessContext,
|
_context: &impl ProcessContext,
|
||||||
) -> bool {
|
) -> bool {
|
||||||
// This plugin doesn't need any special initialization, but if you need to do anything
|
// This plugin doesn't need any special initialization, but if you need to do anything
|
||||||
// expensive then this would be the place. State is kept around while when the host
|
// expensive then this would be the place. State is kept around while when the host
|
||||||
|
@ -119,7 +119,7 @@ impl Plugin for Gain {
|
||||||
true
|
true
|
||||||
}
|
}
|
||||||
|
|
||||||
fn process(&mut self, buffer: &mut Buffer, _context: &dyn ProcessContext) -> ProcessStatus {
|
fn process(&mut self, buffer: &mut Buffer, _context: &impl ProcessContext) -> ProcessStatus {
|
||||||
for samples in buffer.iter_mut() {
|
for samples in buffer.iter_mut() {
|
||||||
// Smoothing is optionally built into the parameters themselves
|
// Smoothing is optionally built into the parameters themselves
|
||||||
let gain = self.params.gain.smoothed.next();
|
let gain = self.params.gain.smoothed.next();
|
||||||
|
|
|
@ -145,14 +145,14 @@ impl Plugin for Sine {
|
||||||
&mut self,
|
&mut self,
|
||||||
_bus_config: &BusConfig,
|
_bus_config: &BusConfig,
|
||||||
buffer_config: &BufferConfig,
|
buffer_config: &BufferConfig,
|
||||||
_context: &dyn ProcessContext,
|
_context: &impl ProcessContext,
|
||||||
) -> bool {
|
) -> bool {
|
||||||
self.sample_rate = buffer_config.sample_rate;
|
self.sample_rate = buffer_config.sample_rate;
|
||||||
|
|
||||||
true
|
true
|
||||||
}
|
}
|
||||||
|
|
||||||
fn process(&mut self, buffer: &mut Buffer, context: &dyn ProcessContext) -> ProcessStatus {
|
fn process(&mut self, buffer: &mut Buffer, context: &impl ProcessContext) -> ProcessStatus {
|
||||||
let mut next_event = context.next_midi_event();
|
let mut next_event = context.next_midi_event();
|
||||||
for (sample_id, samples) in buffer.iter_mut().enumerate() {
|
for (sample_id, samples) in buffer.iter_mut().enumerate() {
|
||||||
// Smoothing is optionally built into the parameters themselves
|
// Smoothing is optionally built into the parameters themselves
|
||||||
|
|
|
@ -88,7 +88,7 @@ pub trait Plugin: Default + Send + Sync {
|
||||||
&mut self,
|
&mut self,
|
||||||
bus_config: &BusConfig,
|
bus_config: &BusConfig,
|
||||||
buffer_config: &BufferConfig,
|
buffer_config: &BufferConfig,
|
||||||
context: &dyn ProcessContext,
|
context: &impl ProcessContext,
|
||||||
) -> bool {
|
) -> bool {
|
||||||
true
|
true
|
||||||
}
|
}
|
||||||
|
@ -103,7 +103,7 @@ pub trait Plugin: Default + Send + Sync {
|
||||||
/// TODO: Provide a way to access auxiliary input channels if the IO configuration is
|
/// TODO: Provide a way to access auxiliary input channels if the IO configuration is
|
||||||
/// assymetric
|
/// assymetric
|
||||||
/// TODO: Pass transport and other context information to the plugin
|
/// TODO: Pass transport and other context information to the plugin
|
||||||
fn process(&mut self, buffer: &mut Buffer, context: &dyn ProcessContext) -> ProcessStatus;
|
fn process(&mut self, buffer: &mut Buffer, context: &impl ProcessContext) -> ProcessStatus;
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Provides auxiliary metadata needed for a VST3 plugin.
|
/// Provides auxiliary metadata needed for a VST3 plugin.
|
||||||
|
|
Loading…
Reference in a new issue