diff options
Diffstat (limited to 'media/base/audio_hardware_config.h')
-rw-r--r-- | media/base/audio_hardware_config.h | 33 |
1 files changed, 19 insertions, 14 deletions
diff --git a/media/base/audio_hardware_config.h b/media/base/audio_hardware_config.h index e61d9ba..d1621b98 100644 --- a/media/base/audio_hardware_config.h +++ b/media/base/audio_hardware_config.h @@ -7,6 +7,7 @@ #include "base/compiler_specific.h" #include "base/synchronization/lock.h" +#include "media/audio/audio_parameters.h" #include "media/base/channel_layout.h" #include "media/base/media_export.h" @@ -15,32 +16,36 @@ namespace media { // Provides thread safe access to the audio hardware configuration. class MEDIA_EXPORT AudioHardwareConfig { public: - AudioHardwareConfig(int output_buffer_size, int output_sample_rate, - int input_sample_rate, - ChannelLayout input_channel_layout); + AudioHardwareConfig(const media::AudioParameters& input_params, + const media::AudioParameters& output_params); virtual ~AudioHardwareConfig(); // Accessors for the currently cached hardware configuration. Safe to call // from any thread. - int GetOutputBufferSize(); - int GetOutputSampleRate(); - int GetInputSampleRate(); - ChannelLayout GetInputChannelLayout(); + int GetOutputBufferSize() const; + int GetOutputSampleRate() const; + ChannelLayout GetOutputChannelLayout() const; + int GetOutputChannels() const; + + int GetInputSampleRate() const; + ChannelLayout GetInputChannelLayout() const; + int GetInputChannels() const; + + media::AudioParameters GetInputConfig() const; + media::AudioParameters GetOutputConfig() const; // Allows callers to update the cached values for either input or output. The // values are paired under the assumption that these values will only be set // after an input or output device change respectively. Safe to call from // any thread. - void UpdateInputConfig(int sample_rate, media::ChannelLayout channel_layout); - void UpdateOutputConfig(int buffer_size, int sample_rate); + void UpdateInputConfig(const media::AudioParameters& input_params); + void UpdateOutputConfig(const media::AudioParameters& output_params); private: // Cached values; access is protected by |config_lock_|. - base::Lock config_lock_; - int output_buffer_size_; - int output_sample_rate_; - int input_sample_rate_; - ChannelLayout input_channel_layout_; + mutable base::Lock config_lock_; + media::AudioParameters input_params_; + media::AudioParameters output_params_; DISALLOW_COPY_AND_ASSIGN(AudioHardwareConfig); }; |