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

Side by Side Diff: chromeos/audio/cras_audio_handler.h

Issue 2190773002: Fix Volume slider is captured in screenshot done in touchview mode (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: audio handler side change Created 4 years, 4 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
« no previous file with comments | « ash/wm/power_button_controller.cc ('k') | chromeos/audio/cras_audio_handler.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 #ifndef CHROMEOS_AUDIO_CRAS_AUDIO_HANDLER_H_ 5 #ifndef CHROMEOS_AUDIO_CRAS_AUDIO_HANDLER_H_
6 #define CHROMEOS_AUDIO_CRAS_AUDIO_HANDLER_H_ 6 #define CHROMEOS_AUDIO_CRAS_AUDIO_HANDLER_H_
7 7
8 #include <stddef.h> 8 #include <stddef.h>
9 #include <stdint.h> 9 #include <stdint.h>
10 #include <queue> 10 #include <queue>
(...skipping 20 matching lines...) Expand all
31 31
32 class CHROMEOS_EXPORT CrasAudioHandler : public CrasAudioClient::Observer, 32 class CHROMEOS_EXPORT CrasAudioHandler : public CrasAudioClient::Observer,
33 public AudioPrefObserver, 33 public AudioPrefObserver,
34 public SessionManagerClient::Observer { 34 public SessionManagerClient::Observer {
35 public: 35 public:
36 typedef std::priority_queue<AudioDevice, 36 typedef std::priority_queue<AudioDevice,
37 std::vector<AudioDevice>, 37 std::vector<AudioDevice>,
38 AudioDeviceCompare> AudioDevicePriorityQueue; 38 AudioDeviceCompare> AudioDevicePriorityQueue;
39 typedef std::vector<uint64_t> NodeIdList; 39 typedef std::vector<uint64_t> NodeIdList;
40 40
41 // Volume change reasons that are not user-initiated.
42 enum AutomatedVolumeChangeReason {
43 // Indicates it is from intializaing audio state.
Daniel Erat 2016/08/03 00:04:25 nit: initializing
Qiang(Joe) Xu 2016/08/04 00:35:41 Done.
44 VOLUME_CHANGE_INITIALIZING_AUDIO_STATE,
45
46 // Indicates it is from restoring volume in maximimize mode screenshot.
47 VOLUME_CHANGE_MAXIMIZE_MODE_SCREENSHOT,
48 };
49
41 class AudioObserver { 50 class AudioObserver {
42 public: 51 public:
43 // Called when an active output volume changed. 52 // Called when an active output volume changed.
44 virtual void OnOutputNodeVolumeChanged(uint64_t node_id, int volume); 53 virtual void OnOutputNodeVolumeChanged(uint64_t node_id, int volume);
45 54
46 // Called when output mute state changed. 55 // Called when output mute state changed.
47 // |mute_on|: True if output is muted. 56 // |mute_on|: True if output is muted.
48 // |system_adjust|: True if the mute state is adjusted by the system 57 // |system_adjust|: True if the mute state is adjusted by the system
49 // automatically(i.e. not by user). UI should reflect the system's mute 58 // automatically(i.e. not by user). UI should reflect the system's mute
50 // state, but it should not be too loud, e.g., the volume pop up window 59 // state, but it should not be too loud, e.g., the volume pop up window
(...skipping 97 matching lines...) Expand 10 before | Expand all | Expand 10 after
148 // This call can be invoked from I/O thread or UI thread because 157 // This call can be invoked from I/O thread or UI thread because
149 // it does not need to access CrasAudioClient on DBus. 158 // it does not need to access CrasAudioClient on DBus.
150 virtual void GetAudioDevices(AudioDeviceList* device_list) const; 159 virtual void GetAudioDevices(AudioDeviceList* device_list) const;
151 160
152 virtual bool GetPrimaryActiveOutputDevice(AudioDevice* device) const; 161 virtual bool GetPrimaryActiveOutputDevice(AudioDevice* device) const;
153 162
154 // Whether there is alternative input/output audio device. 163 // Whether there is alternative input/output audio device.
155 virtual bool has_alternative_input() const; 164 virtual bool has_alternative_input() const;
156 virtual bool has_alternative_output() const; 165 virtual bool has_alternative_output() const;
157 166
158 // Sets all active output devices' volume level to |volume_percent|, whose 167 // Sets all active output devices' volume levels to |volume_percent|, whose
159 // range is from 0-100%. 168 // range is from 0-100%.
160 virtual void SetOutputVolumePercent(int volume_percent); 169 virtual void SetOutputVolumePercent(int volume_percent);
161 170
171 // Sets all active output devices' volume levels to |volume_percent|, whose
172 // range is from 0-100%, without notifying observers.
173 virtual void SetOutputVolumePercentWithoutNotifyingObservers(
174 int volume_percent,
175 AutomatedVolumeChangeReason reason);
176
162 // Sets all active input devices' gain level to |gain_percent|, whose range is 177 // Sets all active input devices' gain level to |gain_percent|, whose range is
163 // from 0-100%. 178 // from 0-100%.
164 virtual void SetInputGainPercent(int gain_percent); 179 virtual void SetInputGainPercent(int gain_percent);
165 180
166 // Adjusts all active output devices' volume up (positive percentage) or down 181 // Adjusts all active output devices' volume up (positive percentage) or down
167 // (negative percentage). 182 // (negative percentage).
168 virtual void AdjustOutputVolumeByPercent(int adjust_by_percent); 183 virtual void AdjustOutputVolumeByPercent(int adjust_by_percent);
169 184
170 // Adjusts all active output devices' volume to a minimum audible level if it 185 // Adjusts all active output devices' volume to a minimum audible level if it
171 // is too low. 186 // is too low.
(...skipping 253 matching lines...) Expand 10 before | Expand all | Expand 10 after
425 // Failures are not logged at startup, since CRAS may not be running yet. 440 // Failures are not logged at startup, since CRAS may not be running yet.
426 bool log_errors_; 441 bool log_errors_;
427 442
428 // Timer for HDMI re-discovering grace period. 443 // Timer for HDMI re-discovering grace period.
429 base::OneShotTimer hdmi_rediscover_timer_; 444 base::OneShotTimer hdmi_rediscover_timer_;
430 int hdmi_rediscover_grace_period_duration_in_ms_; 445 int hdmi_rediscover_grace_period_duration_in_ms_;
431 bool hdmi_rediscovering_; 446 bool hdmi_rediscovering_;
432 447
433 bool cras_service_available_ = false; 448 bool cras_service_available_ = false;
434 449
450 // FIFO list of reasons passed to
451 // SetOutputVolumePercentWithoutNotifyingObservers() for which we're still
452 // waiting for OutputNodeVolumeChanged() calls. These are used to suppress
453 // notifications for those changes.
454 std::deque<AutomatedVolumeChangeReason> automated_volume_change_reasons_;
455
435 bool initializing_audio_state_ = false; 456 bool initializing_audio_state_ = false;
436 int init_volume_; 457 int init_volume_;
437 uint64_t init_node_id_; 458 uint64_t init_node_id_;
438 int init_volume_count_ = 0;
439 459
440 base::WeakPtrFactory<CrasAudioHandler> weak_ptr_factory_; 460 base::WeakPtrFactory<CrasAudioHandler> weak_ptr_factory_;
441 461
442 DISALLOW_COPY_AND_ASSIGN(CrasAudioHandler); 462 DISALLOW_COPY_AND_ASSIGN(CrasAudioHandler);
443 }; 463 };
444 464
445 } // namespace chromeos 465 } // namespace chromeos
446 466
447 #endif // CHROMEOS_AUDIO_CRAS_AUDIO_HANDLER_H_ 467 #endif // CHROMEOS_AUDIO_CRAS_AUDIO_HANDLER_H_
OLDNEW
« no previous file with comments | « ash/wm/power_button_controller.cc ('k') | chromeos/audio/cras_audio_handler.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698