Allow reusing AudioBuffers

This commit is contained in:
Fernando Jiménez Moreno 2018-10-11 13:32:19 +02:00
parent 3c6e99498c
commit 091ad49d68
2 changed files with 72 additions and 57 deletions

View file

@ -139,12 +139,12 @@ impl AudioBufferSourceNodeMethods for AudioBufferSourceNode {
// Step 5.
if self.source_node.started() {
if let Some(buffer) = self.buffer.get() {
let buffer = buffer.acquire_contents();
let buffer = buffer.get_channels();
if buffer.is_some() {
self.source_node
.node()
.message(AudioNodeMessage::AudioBufferSourceNode(
AudioBufferSourceNodeMessage::SetBuffer(buffer),
AudioBufferSourceNodeMessage::SetBuffer((*buffer).clone()),
));
}
}
@ -215,12 +215,12 @@ impl AudioBufferSourceNodeMethods for AudioBufferSourceNode {
}
if let Some(buffer) = self.buffer.get() {
let buffer = buffer.acquire_contents();
let buffer = buffer.get_channels();
if buffer.is_some() {
self.source_node
.node()
.message(AudioNodeMessage::AudioBufferSourceNode(
AudioBufferSourceNodeMessage::SetBuffer(buffer),
AudioBufferSourceNodeMessage::SetBuffer((*buffer).clone()),
));
}
}
@ -235,7 +235,7 @@ impl<'a> From<&'a AudioBufferSourceOptions> for AudioBufferSourceNodeOptions {
Self {
buffer: if let Some(ref buffer) = options.buffer {
if let Some(ref buffer) = buffer {
Some(buffer.get_channels())
(*buffer.get_channels()).clone()
} else {
None
}