Index: chrome/browser/chromeos/audio/audio_handler.cc |
diff --git a/chrome/browser/chromeos/audio/audio_handler.cc b/chrome/browser/chromeos/audio/audio_handler.cc |
index fc4316294856cd3cb0be3743980e9e9aedff8dda..04b4494bd59359d9f8e885b454f0ed4ed588b777 100644 |
--- a/chrome/browser/chromeos/audio/audio_handler.cc |
+++ b/chrome/browser/chromeos/audio/audio_handler.cc |
@@ -40,7 +40,11 @@ static AudioHandler* g_audio_handler = NULL; |
// static |
void AudioHandler::Initialize() { |
CHECK(!g_audio_handler); |
- g_audio_handler = new AudioHandler(); |
+#if defined(USE_CRAS) |
+ g_audio_handler = new AudioHandler(new AudioMixerCras()); |
+#else |
+ g_audio_handler = new AudioHandler(new AudioMixerAlsa()); |
+#endif |
} |
// static |
@@ -53,6 +57,12 @@ void AudioHandler::Shutdown() { |
} |
// static |
+void AudioHandler::InitializeForTesting(AudioMixer* mixer) { |
+ CHECK(!g_audio_handler); |
+ g_audio_handler = new AudioHandler(mixer); |
+} |
+ |
+// static |
AudioHandler* AudioHandler::GetInstance() { |
VLOG_IF(1, !g_audio_handler) |
<< "AudioHandler::GetInstance() called with NULL global instance."; |
@@ -81,7 +91,7 @@ void AudioHandler::RegisterPrefs(PrefService* local_state) { |
} |
double AudioHandler::GetVolumePercent() { |
- return mixer_->GetVolumePercent(); |
+ return (mixer_->IsMuted()) ? 0.0 : mixer_->GetVolumePercent(); |
Daniel Erat
2012/05/18 23:45:13
I don't think that this UX decision should be refl
Jun Mukai
2012/05/18 23:53:19
Removed. I will make the UI change in another CL.
|
} |
void AudioHandler::SetVolumePercent(double volume_percent) { |
@@ -96,7 +106,7 @@ void AudioHandler::AdjustVolumeByPercent(double adjust_by_percent) { |
} |
bool AudioHandler::IsMuted() { |
- return mixer_->IsMuted(); |
+ return mixer_->GetVolumePercent() == 0 || mixer_->IsMuted(); |
Daniel Erat
2012/05/18 23:45:13
ditto here
Jun Mukai
2012/05/18 23:53:19
Removed too.
|
} |
void AudioHandler::SetMuted(bool mute) { |
@@ -113,12 +123,8 @@ void AudioHandler::RemoveVolumeObserver(VolumeObserver* observer) { |
volume_observers_.RemoveObserver(observer); |
} |
-AudioHandler::AudioHandler() |
-#if defined(USE_CRAS) |
- : mixer_(new AudioMixerCras()), |
-#else |
- : mixer_(new AudioMixerAlsa()), |
-#endif |
+AudioHandler::AudioHandler(AudioMixer* mixer) |
+ : mixer_(mixer), |
prefs_(g_browser_process->local_state()) { |
mixer_->SetVolumePercent(prefs_->GetDouble(prefs::kAudioVolumePercent)); |
mixer_->SetMuted(prefs_->GetInteger(prefs::kAudioMute) == kPrefMuteOn); |