You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
#[test]
fn test_automation_rate_synchronicity() {
let context = OfflineAudioContext::new(1, 0, 48000.);
let opts = AudioParamDescriptor {
name: String::new(),
automation_rate: AutomationRate::A, // start with A
default_value: 0.,
min_value: 0.,
max_value: 1.,
};
let (param, _render) = audio_param_pair(opts, context.mock_registration());
// set to K
param.set_automation_rate(AutomationRate::K);
assert_eq!(param.automation_rate(), AutomationRate::K);
}
This is quite tricky to fix. We could keep a local copy of the automation rate on the control thread, but because these methods all take &self it needs to be wrapped in an atomic and is susceptible to data races on concurrent calls. Best would be to require &mut on the methods but it is incompatible with how we return AudioParams from the AudioNodes (and the Clone impl)
The text was updated successfully, but these errors were encountered:
The following test fails:
This is quite tricky to fix. We could keep a local copy of the automation rate on the control thread, but because these methods all take
&self
it needs to be wrapped in an atomic and is susceptible to data races on concurrent calls. Best would be to require&mut
on the methods but it is incompatible with how we return AudioParams from the AudioNodes (and the Clone impl)The text was updated successfully, but these errors were encountered: