summaryrefslogtreecommitdiff
path: root/chromium/media/audio/audio_output_controller.h
diff options
context:
space:
mode:
Diffstat (limited to 'chromium/media/audio/audio_output_controller.h')
-rw-r--r--chromium/media/audio/audio_output_controller.h30
1 files changed, 23 insertions, 7 deletions
diff --git a/chromium/media/audio/audio_output_controller.h b/chromium/media/audio/audio_output_controller.h
index 38a2c03f590..615c6a5e6c6 100644
--- a/chromium/media/audio/audio_output_controller.h
+++ b/chromium/media/audio/audio_output_controller.h
@@ -52,6 +52,11 @@
namespace media {
+// Only do power monitoring for non-mobile platforms that need it for the UI.
+#if !defined(OS_ANDROID) && !defined(OS_IOS)
+#define AUDIO_POWER_MONITORING
+#endif
+
class MEDIA_EXPORT AudioOutputController
: public base::RefCountedThreadSafe<AudioOutputController>,
public AudioOutputStream::AudioSourceCallback,
@@ -101,10 +106,14 @@ class MEDIA_EXPORT AudioOutputController
// thread, and if this is successful, the |event_handler| will receive an
// OnCreated() call from the same audio manager thread. |audio_manager| must
// outlive AudioOutputController.
+ // The |output_device_id| can be either empty (default device) or specify a
+ // specific hardware device for audio output. The |input_device_id| is
+ // used only for unified audio when opening up input and output at the same
+ // time (controlled by |params.input_channel_count()|).
static scoped_refptr<AudioOutputController> Create(
AudioManager* audio_manager, EventHandler* event_handler,
- const AudioParameters& params, const std::string& input_device_id,
- SyncReader* sync_reader);
+ const AudioParameters& params, const std::string& output_device_id,
+ const std::string& input_device_id, SyncReader* sync_reader);
// Methods to control playback of the stream.
@@ -166,6 +175,7 @@ class MEDIA_EXPORT AudioOutputController
AudioOutputController(AudioManager* audio_manager, EventHandler* handler,
const AudioParameters& params,
+ const std::string& output_device_id,
const std::string& input_device_id,
SyncReader* sync_reader);
@@ -198,8 +208,12 @@ class MEDIA_EXPORT AudioOutputController
const AudioParameters params_;
EventHandler* const handler_;
+ // Specifies the device id of the output device to open or empty for the
+ // default output device.
+ const std::string output_device_id_;
+
// Used by the unified IO to open the correct input device.
- std::string input_device_id_;
+ const std::string input_device_id_;
AudioOutputStream* stream_;
@@ -227,15 +241,17 @@ class MEDIA_EXPORT AudioOutputController
// The message loop of audio manager thread that this object runs on.
const scoped_refptr<base::MessageLoopProxy> message_loop_;
- // When starting stream we wait for data to become available.
- // Number of times left.
- int number_polling_attempts_left_;
-
+#if defined(AUDIO_POWER_MONITORING)
// Scans audio samples from OnMoreIOData() as input to compute power levels.
AudioPowerMonitor power_monitor_;
// Periodic callback to report power levels during playback.
base::CancelableClosure power_poll_callback_;
+#endif
+
+ // When starting stream we wait for data to become available.
+ // Number of times left.
+ int number_polling_attempts_left_;
DISALLOW_COPY_AND_ASSIGN(AudioOutputController);
};