| Index: chrome/browser/chromeos/audio/audio_handler.cc
|
| ===================================================================
|
| --- chrome/browser/chromeos/audio/audio_handler.cc (revision 119435)
|
| +++ chrome/browser/chromeos/audio/audio_handler.cc (working copy)
|
| @@ -49,8 +49,10 @@
|
| return g_audio_handler;
|
| }
|
|
|
| -bool AudioHandler::IsInitialized() {
|
| - return mixer_->IsInitialized();
|
| +// static
|
| +AudioHandler* AudioHandler::GetInstanceIfInitialized() {
|
| + return g_audio_handler && g_audio_handler->IsMixerInitialized() ?
|
| + g_audio_handler : NULL;
|
| }
|
|
|
| double AudioHandler::GetVolumePercent() {
|
| @@ -60,6 +62,7 @@
|
| void AudioHandler::SetVolumePercent(double volume_percent) {
|
| volume_percent = min(max(volume_percent, 0.0), 100.0);
|
| mixer_->SetVolumeDb(PercentToVolumeDb(volume_percent));
|
| + FOR_EACH_OBSERVER(VolumeObserver, volume_observers_, OnVolumeChanged());
|
| }
|
|
|
| void AudioHandler::AdjustVolumeByPercent(double adjust_by_percent) {
|
| @@ -74,8 +77,17 @@
|
|
|
| void AudioHandler::SetMuted(bool mute) {
|
| mixer_->SetMuted(mute);
|
| + FOR_EACH_OBSERVER(VolumeObserver, volume_observers_, OnVolumeChanged());
|
| }
|
|
|
| +void AudioHandler::AddVolumeObserver(VolumeObserver* observer) {
|
| + volume_observers_.AddObserver(observer);
|
| +}
|
| +
|
| +void AudioHandler::RemoveVolumeObserver(VolumeObserver* observer) {
|
| + volume_observers_.RemoveObserver(observer);
|
| +}
|
| +
|
| AudioHandler::AudioHandler()
|
| : mixer_(new AudioMixerAlsa()) {
|
| mixer_->Init();
|
| @@ -85,6 +97,10 @@
|
| mixer_.reset();
|
| };
|
|
|
| +bool AudioHandler::IsMixerInitialized() {
|
| + return mixer_->IsInitialized();
|
| +}
|
| +
|
| // VolumeDbToPercent() and PercentToVolumeDb() conversion functions allow us
|
| // complete control over how the 0 to 100% range is mapped to actual loudness.
|
| //
|
|
|