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

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

Issue 803303002: Fix special character handling in audio preferences. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 6 years 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
« no previous file with comments | « no previous file | chrome/browser/chromeos/audio/audio_devices_pref_handler_impl_unittest.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 "chrome/browser/chromeos/audio/audio_devices_pref_handler_impl.h" 5 #include "chrome/browser/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 15 matching lines...) Expand all
26 const int kPrefMuteOn = 1; 26 const int kPrefMuteOn = 1;
27 27
28 // Gets the device id string for storing audio preference. The format of 28 // Gets the device id string for storing audio preference. The format of
29 // device string is a string consisting of 3 parts. 29 // device string is a string consisting of 3 parts.
30 // |device_name| : |integer from lower 32 bit of device id| : 30 // |device_name| : |integer from lower 32 bit of device id| :
31 // |0(output device) or 1(input device)| 31 // |0(output device) or 1(input device)|
32 // If an audio device has both integrated input and output devices, the first 2 32 // If an audio device has both integrated input and output devices, the first 2
33 // parts of the string could be identical, only the last part will differentiate 33 // parts of the string could be identical, only the last part will differentiate
34 // them. 34 // them.
35 std::string GetDeviceIdString(const chromeos::AudioDevice& device) { 35 std::string GetDeviceIdString(const chromeos::AudioDevice& device) {
36 return device.device_name + " : " + 36 std::string device_id_string =
37 base::Uint64ToString(device.id & static_cast<uint64>(0xffffffff)) + 37 device.device_name + " : " +
38 " : " + (device.is_input ? "1" : "0"); 38 base::Uint64ToString(device.id & static_cast<uint64>(0xffffffff)) +
39 " : " + (device.is_input ? "1" : "0");
40 // Replace any periods from the device id string with a space, since setting
41 // names cannot contain periods.
42 std::replace(device_id_string.begin(), device_id_string.end(), '.', ' ');
43 return device_id_string;
39 } 44 }
40 45
41 } // namespace 46 } // namespace
42 47
43 namespace chromeos { 48 namespace chromeos {
44 49
45 double AudioDevicesPrefHandlerImpl::GetOutputVolumeValue( 50 double AudioDevicesPrefHandlerImpl::GetOutputVolumeValue(
46 const AudioDevice* device) { 51 const AudioDevice* device) {
47 if (!device) 52 if (!device)
48 return kDefaultOutputVolume; 53 return kDefaultOutputVolume;
(...skipping 58 matching lines...) Expand 10 before | Expand all | Expand 10 after
107 UpdateDevicesVolumePref(); 112 UpdateDevicesVolumePref();
108 113
109 std::string device_id_str = GetDeviceIdString(device); 114 std::string device_id_str = GetDeviceIdString(device);
110 if (!device_volume_settings_->HasKey(device_id_str)) 115 if (!device_volume_settings_->HasKey(device_id_str))
111 MigrateDeviceVolumeSettings(device_id_str); 116 MigrateDeviceVolumeSettings(device_id_str);
112 117
113 // TODO(jennyz, rkc): Return a meaningful input gain default value, when 118 // TODO(jennyz, rkc): Return a meaningful input gain default value, when
114 // cras has added support for normalizing input gain range. 119 // cras has added support for normalizing input gain range.
115 double value = device.is_input ? 120 double value = device.is_input ?
116 0.0 : GetDeviceDefaultOutputVolume(device); 121 0.0 : GetDeviceDefaultOutputVolume(device);
122 // TODO(rkc): The above code is completely ignored since we 'always' have a
123 // default pref value. Fix this. http://crbug.com/442489
117 device_volume_settings_->GetDouble(device_id_str, &value); 124 device_volume_settings_->GetDouble(device_id_str, &value);
118 125
119 return value; 126 return value;
120 } 127 }
121 128
122 double AudioDevicesPrefHandlerImpl::GetDeviceDefaultOutputVolume( 129 double AudioDevicesPrefHandlerImpl::GetDeviceDefaultOutputVolume(
123 const AudioDevice& device) { 130 const AudioDevice& device) {
124 if (device.type == AUDIO_TYPE_HDMI) 131 if (device.type == AUDIO_TYPE_HDMI)
125 return kDefaultHDMIOutputVolume; 132 return kDefaultHDMIOutputVolume;
126 else 133 else
127 return kDefaultOutputVolume; 134 return kDefaultOutputVolume;
128 } 135 }
129 136
130 AudioDevicesPrefHandlerImpl::AudioDevicesPrefHandlerImpl( 137 AudioDevicesPrefHandlerImpl::AudioDevicesPrefHandlerImpl(
131 PrefService* local_state) 138 PrefService* local_state)
132 : device_mute_settings_(new base::DictionaryValue()), 139 : device_mute_settings_(new base::DictionaryValue()),
133 device_volume_settings_(new base::DictionaryValue()), 140 device_volume_settings_(new base::DictionaryValue()),
134 local_state_(local_state) { 141 local_state_(local_state) {
135 InitializePrefObservers(); 142 InitializePrefObservers();
136 143
137 UpdateDevicesMutePref(); 144 UpdateDevicesMutePref();
138 UpdateDevicesVolumePref(); 145 UpdateDevicesVolumePref();
139 } 146 }
140 147
141 AudioDevicesPrefHandlerImpl::~AudioDevicesPrefHandlerImpl() { 148 AudioDevicesPrefHandlerImpl::~AudioDevicesPrefHandlerImpl() {
142 }; 149 }
143 150
144 void AudioDevicesPrefHandlerImpl::InitializePrefObservers() { 151 void AudioDevicesPrefHandlerImpl::InitializePrefObservers() {
145 pref_change_registrar_.Init(local_state_); 152 pref_change_registrar_.Init(local_state_);
146 base::Closure callback = 153 base::Closure callback =
147 base::Bind(&AudioDevicesPrefHandlerImpl::NotifyAudioPolicyChange, 154 base::Bind(&AudioDevicesPrefHandlerImpl::NotifyAudioPolicyChange,
148 base::Unretained(this)); 155 base::Unretained(this));
149 pref_change_registrar_.Add(prefs::kAudioOutputAllowed, callback); 156 pref_change_registrar_.Add(prefs::kAudioOutputAllowed, callback);
150 pref_change_registrar_.Add(prefs::kAudioCaptureAllowed, callback); 157 pref_change_registrar_.Add(prefs::kAudioCaptureAllowed, callback);
151 } 158 }
152 159
(...skipping 72 matching lines...) Expand 10 before | Expand all | Expand 10 after
225 registry->RegisterIntegerPref(prefs::kAudioMute, kPrefMuteOff); 232 registry->RegisterIntegerPref(prefs::kAudioMute, kPrefMuteOff);
226 } 233 }
227 234
228 // static 235 // static
229 AudioDevicesPrefHandler* AudioDevicesPrefHandler::Create( 236 AudioDevicesPrefHandler* AudioDevicesPrefHandler::Create(
230 PrefService* local_state) { 237 PrefService* local_state) {
231 return new AudioDevicesPrefHandlerImpl(local_state); 238 return new AudioDevicesPrefHandlerImpl(local_state);
232 } 239 }
233 240
234 } // namespace chromeos 241 } // namespace chromeos
OLDNEW
« no previous file with comments | « no previous file | chrome/browser/chromeos/audio/audio_devices_pref_handler_impl_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698