Index: media/audio/virtual_audio_output_stream.cc |
diff --git a/media/audio/virtual_audio_output_stream.cc b/media/audio/virtual_audio_output_stream.cc |
new file mode 100644 |
index 0000000000000000000000000000000000000000..57628976e54ecf134fcf90d27d08eeaf2ceb0c9d |
--- /dev/null |
+++ b/media/audio/virtual_audio_output_stream.cc |
@@ -0,0 +1,61 @@ |
+// Copyright (c) 2012 The Chromium Authors. All rights reserved. |
+// Use of this source code is governed by a BSD-style license that can be |
+// found in the LICENSE file. |
+ |
+#include "media/audio/virtual_audio_output_stream.h" |
+ |
+#include "base/bind.h" |
+#include "base/bind_helpers.h" |
+#include "base/logging.h" |
+#include "base/message_loop.h" |
+#include "media/audio/audio_manager_base.h" |
+ |
+namespace media { |
+ |
+// static |
+AudioOutputStream* VirtualAudioOutputStream::MakeStream( |
+ AudioManagerBase* manager, const AudioParameters& params) { |
+ return new VirtualAudioOutputStream(manager, params); |
+} |
+ |
+VirtualAudioOutputStream::VirtualAudioOutputStream( |
+ AudioManagerBase* manager, const AudioParameters& params) |
+ : audio_manager_(manager), |
+ params_(params), |
+ callback_(NULL) { |
+} |
+ |
+VirtualAudioOutputStream::~VirtualAudioOutputStream() { |
+ DCHECK(!callback_); |
+} |
+ |
+bool VirtualAudioOutputStream::Open() { |
+ DCHECK(audio_manager_->GetMessageLoop()->BelongsToCurrentThread()); |
+ return true; |
+} |
+ |
+void VirtualAudioOutputStream::Start(AudioSourceCallback* callback) { |
+ DCHECK(audio_manager_->GetMessageLoop()->BelongsToCurrentThread()); |
+ callback_ = callback; |
+ // TODO(justinlin): Do we want videos to keep playing if the virtual |
+ // audio input device crashes for some reason? |
+} |
+ |
+void VirtualAudioOutputStream::Stop() { |
+ DCHECK(audio_manager_->GetMessageLoop()->BelongsToCurrentThread()); |
+ callback_ = NULL; |
+} |
+ |
+void VirtualAudioOutputStream::Close() { |
+ DCHECK(!callback_); |
+ DCHECK(audio_manager_->GetMessageLoop()->BelongsToCurrentThread()); |
+ audio_manager_->ReleaseOutputStream(this); |
+} |
+ |
+void VirtualAudioOutputStream::SetVolume(double volume) {} |
+ |
+void VirtualAudioOutputStream::GetVolume(double* volume) { |
+ *volume = 0; |
+} |
+ |
+} // namespace media |