Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(153)

Side by Side Diff: chromeos/audio/audio_devices_pref_handler_impl.cc

Issue 817013002: cros: Remove system-level policy for audio capture allowed (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: (allow-audio) rebase Created 5 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright (c) 2013 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2013 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "chromeos/audio/audio_devices_pref_handler_impl.h" 5 #include "chromeos/audio/audio_devices_pref_handler_impl.h"
6 6
7 #include <algorithm> 7 #include <algorithm>
8 8
9 #include "base/bind.h" 9 #include "base/bind.h"
10 #include "base/bind_helpers.h" 10 #include "base/bind_helpers.h"
(...skipping 67 matching lines...) Expand 10 before | Expand all | Expand 10 after
78 return (mute == kPrefMuteOn); 78 return (mute == kPrefMuteOn);
79 } 79 }
80 80
81 void AudioDevicesPrefHandlerImpl::SetMuteValue(const AudioDevice& device, 81 void AudioDevicesPrefHandlerImpl::SetMuteValue(const AudioDevice& device,
82 bool mute) { 82 bool mute) {
83 device_mute_settings_->SetInteger(GetDeviceIdString(device), 83 device_mute_settings_->SetInteger(GetDeviceIdString(device),
84 mute ? kPrefMuteOn : kPrefMuteOff); 84 mute ? kPrefMuteOn : kPrefMuteOff);
85 SaveDevicesMutePref(); 85 SaveDevicesMutePref();
86 } 86 }
87 87
88
89 bool AudioDevicesPrefHandlerImpl::GetAudioCaptureAllowedValue() {
90 if (audio_capture_allowed_pref_.empty())
91 return true;
92
93 return local_state_->GetBoolean(audio_capture_allowed_pref_);
94 }
95
96 bool AudioDevicesPrefHandlerImpl::GetAudioOutputAllowedValue() { 88 bool AudioDevicesPrefHandlerImpl::GetAudioOutputAllowedValue() {
97 return local_state_->GetBoolean(prefs::kAudioOutputAllowed); 89 return local_state_->GetBoolean(prefs::kAudioOutputAllowed);
98 } 90 }
99 91
100 void AudioDevicesPrefHandlerImpl::AddAudioPrefObserver( 92 void AudioDevicesPrefHandlerImpl::AddAudioPrefObserver(
101 AudioPrefObserver* observer) { 93 AudioPrefObserver* observer) {
102 observers_.AddObserver(observer); 94 observers_.AddObserver(observer);
103 } 95 }
104 96
105 void AudioDevicesPrefHandlerImpl::RemoveAudioPrefObserver( 97 void AudioDevicesPrefHandlerImpl::RemoveAudioPrefObserver(
(...skipping 22 matching lines...) Expand all
128 120
129 double AudioDevicesPrefHandlerImpl::GetDeviceDefaultOutputVolume( 121 double AudioDevicesPrefHandlerImpl::GetDeviceDefaultOutputVolume(
130 const AudioDevice& device) { 122 const AudioDevice& device) {
131 if (device.type == AUDIO_TYPE_HDMI) 123 if (device.type == AUDIO_TYPE_HDMI)
132 return kDefaultHdmiOutputVolumePercent; 124 return kDefaultHdmiOutputVolumePercent;
133 else 125 else
134 return kDefaultOutputVolumePercent; 126 return kDefaultOutputVolumePercent;
135 } 127 }
136 128
137 AudioDevicesPrefHandlerImpl::AudioDevicesPrefHandlerImpl( 129 AudioDevicesPrefHandlerImpl::AudioDevicesPrefHandlerImpl(
138 PrefService* local_state, 130 PrefService* local_state)
139 const std::string& audio_capture_allowed_pref)
140 : device_mute_settings_(new base::DictionaryValue()), 131 : device_mute_settings_(new base::DictionaryValue()),
141 device_volume_settings_(new base::DictionaryValue()), 132 device_volume_settings_(new base::DictionaryValue()),
142 local_state_(local_state), 133 local_state_(local_state) {
143 audio_capture_allowed_pref_(audio_capture_allowed_pref) {
144 InitializePrefObservers(); 134 InitializePrefObservers();
145 135
146 UpdateDevicesMutePref(); 136 UpdateDevicesMutePref();
147 UpdateDevicesVolumePref(); 137 UpdateDevicesVolumePref();
148 } 138 }
149 139
150 AudioDevicesPrefHandlerImpl::~AudioDevicesPrefHandlerImpl() { 140 AudioDevicesPrefHandlerImpl::~AudioDevicesPrefHandlerImpl() {
151 } 141 }
152 142
153 void AudioDevicesPrefHandlerImpl::InitializePrefObservers() { 143 void AudioDevicesPrefHandlerImpl::InitializePrefObservers() {
154 pref_change_registrar_.Init(local_state_); 144 pref_change_registrar_.Init(local_state_);
155 base::Closure callback = 145 base::Closure callback =
156 base::Bind(&AudioDevicesPrefHandlerImpl::NotifyAudioPolicyChange, 146 base::Bind(&AudioDevicesPrefHandlerImpl::NotifyAudioPolicyChange,
157 base::Unretained(this)); 147 base::Unretained(this));
158 pref_change_registrar_.Add(prefs::kAudioOutputAllowed, callback); 148 pref_change_registrar_.Add(prefs::kAudioOutputAllowed, callback);
159
160 if (!audio_capture_allowed_pref_.empty())
161 pref_change_registrar_.Add(audio_capture_allowed_pref_, callback);
162 } 149 }
163 150
164 void AudioDevicesPrefHandlerImpl::UpdateDevicesMutePref() { 151 void AudioDevicesPrefHandlerImpl::UpdateDevicesMutePref() {
165 const base::DictionaryValue* mute_prefs = 152 const base::DictionaryValue* mute_prefs =
166 local_state_->GetDictionary(prefs::kAudioDevicesMute); 153 local_state_->GetDictionary(prefs::kAudioDevicesMute);
167 if (mute_prefs) 154 if (mute_prefs)
168 device_mute_settings_.reset(mute_prefs->DeepCopy()); 155 device_mute_settings_.reset(mute_prefs->DeepCopy());
169 } 156 }
170 157
171 void AudioDevicesPrefHandlerImpl::SaveDevicesMutePref() { 158 void AudioDevicesPrefHandlerImpl::SaveDevicesMutePref() {
(...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after
213 SaveDevicesVolumePref(); 200 SaveDevicesVolumePref();
214 } 201 }
215 202
216 void AudioDevicesPrefHandlerImpl::NotifyAudioPolicyChange() { 203 void AudioDevicesPrefHandlerImpl::NotifyAudioPolicyChange() {
217 FOR_EACH_OBSERVER(AudioPrefObserver, 204 FOR_EACH_OBSERVER(AudioPrefObserver,
218 observers_, 205 observers_,
219 OnAudioPolicyPrefChanged()); 206 OnAudioPolicyPrefChanged());
220 } 207 }
221 208
222 // static 209 // static
223 void AudioDevicesPrefHandlerImpl::RegisterPrefs( 210 void AudioDevicesPrefHandlerImpl::RegisterPrefs(PrefRegistrySimple* registry) {
224 PrefRegistrySimple* registry,
225 const std::string& audio_capture_allowed_pref) {
226 registry->RegisterDictionaryPref(prefs::kAudioDevicesVolumePercent); 211 registry->RegisterDictionaryPref(prefs::kAudioDevicesVolumePercent);
227 registry->RegisterDictionaryPref(prefs::kAudioDevicesMute); 212 registry->RegisterDictionaryPref(prefs::kAudioDevicesMute);
228 213
229 // Register the prefs backing the audio muting policies. 214 // Register the prefs backing the audio muting policies.
215 // Policy for audio input is handled by kAudioCaptureAllowed in the Chrome
216 // media system.
230 registry->RegisterBooleanPref(prefs::kAudioOutputAllowed, true); 217 registry->RegisterBooleanPref(prefs::kAudioOutputAllowed, true);
231 218
232 // This pref has moved to the media subsystem but we should verify it is there
233 // before we use it.
234 // NOTE: This registers the pref in the device-wide local state pref registry.
235 // In Chrome the media subsystem also registers kAudioCaptureAllowed in the
236 // per-user profile pref registry.
237 if (!audio_capture_allowed_pref.empty())
238 registry->RegisterBooleanPref(audio_capture_allowed_pref, true);
239
240 // Register the legacy audio prefs for migration. 219 // Register the legacy audio prefs for migration.
241 registry->RegisterDoublePref(prefs::kAudioVolumePercent, 220 registry->RegisterDoublePref(prefs::kAudioVolumePercent,
242 kDefaultOutputVolumePercent); 221 kDefaultOutputVolumePercent);
243 registry->RegisterIntegerPref(prefs::kAudioMute, kPrefMuteOff); 222 registry->RegisterIntegerPref(prefs::kAudioMute, kPrefMuteOff);
244 } 223 }
245 224
246 } // namespace chromeos 225 } // namespace chromeos
OLDNEW
« no previous file with comments | « chromeos/audio/audio_devices_pref_handler_impl.h ('k') | chromeos/audio/audio_devices_pref_handler_impl_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698