Index: media/audio/audio_output_proxy.h |
diff --git a/media/audio/audio_output_proxy.h b/media/audio/audio_output_proxy.h |
new file mode 100644 |
index 0000000000000000000000000000000000000000..d253413135a00d51579f7a6f3d340b6639898d9b |
--- /dev/null |
+++ b/media/audio/audio_output_proxy.h |
@@ -0,0 +1,55 @@ |
+// Copyright (c) 2010 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. |
+ |
scherkus (not reviewing)
2010/11/22 06:43:15
could we get an explanation of this class somewher
Sergey Ulanov
2010/11/23 19:51:46
Done.
|
+#ifndef MEDIA_AUDIO_AUDIO_OUTPUT_STREAM_PROXY_H |
scherkus (not reviewing)
2010/11/22 06:43:15
header guards should end with _
Sergey Ulanov
2010/11/23 19:51:46
Done.
|
+#define MEDIA_AUDIO_AUDIO_OUTPUT_STREAM_PROXY_H |
+ |
+#include "base/basictypes.h" |
+#include "base/task.h" |
+#include "media/audio/audio_io.h" |
+#include "media/audio/audio_parameters.h" |
+ |
+class AudioOutputDispatcher; |
+ |
+class AudioOutputProxy : public AudioOutputStream { |
scherkus (not reviewing)
2010/11/22 06:43:15
hrmm I'm surprised more of the audio code isn't un
Sergey Ulanov
2010/11/23 19:51:46
Yes, There is a lot of stuff that isn't under medi
|
+ public: |
+ AudioOutputProxy(AudioOutputDispatcher* dispatcher); |
+ |
+ // AudioOutputStream interface. |
+ virtual bool Open(); |
+ virtual void Start(AudioSourceCallback* callback); |
+ virtual void Stop(); |
+ virtual void SetVolume(double volume); |
+ virtual void GetVolume(double* volume); |
+ virtual void Close(); |
+ |
+ private: |
+ // Needs to access destructor. |
+ friend class DeleteTask<AudioOutputProxy>; |
+ |
+ enum State { |
+ kCreated, |
+ kOpened, |
+ kPlaying, |
+ kClosed, |
+ kError, |
+ }; |
+ |
+ virtual ~AudioOutputProxy(); |
+ |
+ scoped_refptr<AudioOutputDispatcher> dispatcher_; |
+ State state_; |
+ |
+ // The actual audio stream. Must be set to NULL in any state other |
+ // than kPlaying. |
+ AudioOutputStream* physical_stream_; |
+ |
+ // Need to save volume here, so that we can restore it in case the stream |
+ // is stopped, and then started again. |
+ double volume_; |
+ |
+ DISALLOW_COPY_AND_ASSIGN(AudioOutputProxy); |
+}; |
+ |
+#endif // MEDIA_AUDIO_AUDIO_OUTPUT_STREAM_PROXY_H |