From 8077248cf5c51d091cd28936112845934039a49b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fernando=20Jim=C3=A9nez=20Moreno?= Date: Fri, 6 Jul 2018 09:59:08 +0200 Subject: [PATCH] Allow unsetting AudioBufferSourceNode buffer --- examples/audio_decoder.rs | 2 +- examples/play_noise.rs | 2 +- servo-media/src/audio/buffer_source_node.rs | 4 ++-- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/examples/audio_decoder.rs b/examples/audio_decoder.rs index 8f3cbfca..c8d0f986 100644 --- a/examples/audio_decoder.rs +++ b/examples/audio_decoder.rs @@ -53,7 +53,7 @@ fn run_example(servo_media: Arc) { context.message_node( buffer_source, AudioNodeMessage::AudioBufferSourceNode(AudioBufferSourceNodeMessage::SetBuffer( - decoded_audio.lock().unwrap().to_vec().into(), + Some(decoded_audio.lock().unwrap().to_vec().into()), )), ); let _ = context.resume(); diff --git a/examples/play_noise.rs b/examples/play_noise.rs index 8fab2670..66e0998e 100644 --- a/examples/play_noise.rs +++ b/examples/play_noise.rs @@ -23,7 +23,7 @@ fn run_example(servo_media: Arc) { ); context.message_node( buffer_source, - AudioNodeMessage::AudioBufferSourceNode(AudioBufferSourceNodeMessage::SetBuffer(buffers.into())), + AudioNodeMessage::AudioBufferSourceNode(AudioBufferSourceNodeMessage::SetBuffer(Some(buffers.into()))), ); let _ = context.resume(); thread::sleep(time::Duration::from_millis(5000)); diff --git a/servo-media/src/audio/buffer_source_node.rs b/servo-media/src/audio/buffer_source_node.rs index 221ca3d4..68455a54 100644 --- a/servo-media/src/audio/buffer_source_node.rs +++ b/servo-media/src/audio/buffer_source_node.rs @@ -7,7 +7,7 @@ use audio::param::{Param, UserAutomationEvent}; #[derive(Debug, Clone)] pub enum AudioBufferSourceNodeMessage { /// Set the data block holding the audio sample data to be played. - SetBuffer(AudioBuffer), + SetBuffer(Option), SetPlaybackRate(UserAutomationEvent), SetDetune(UserAutomationEvent), } @@ -92,7 +92,7 @@ impl AudioBufferSourceNode { pub fn handle_message(&mut self, message: AudioBufferSourceNodeMessage, sample_rate: f32) { match message { AudioBufferSourceNodeMessage::SetBuffer(buffer) => { - self.buffer = Some(buffer); + self.buffer = buffer; }, AudioBufferSourceNodeMessage::SetPlaybackRate(event) => { self.playback_rate.insert_event(event.to_event(sample_rate));