Chromium Code Reviews| OLD | NEW |
|---|---|
| 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/cras_audio_handler.h" | 5 #include "chromeos/audio/cras_audio_handler.h" |
| 6 | 6 |
| 7 #include <stddef.h> | 7 #include <stddef.h> |
| 8 #include <stdint.h> | 8 #include <stdint.h> |
| 9 | 9 |
| 10 #include <algorithm> | 10 #include <algorithm> |
| (...skipping 358 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 369 // Set all active devices to the same volume. | 369 // Set all active devices to the same volume. |
| 370 for (AudioDeviceMap::const_iterator it = audio_devices_.begin(); | 370 for (AudioDeviceMap::const_iterator it = audio_devices_.begin(); |
| 371 it != audio_devices_.end(); | 371 it != audio_devices_.end(); |
| 372 it++) { | 372 it++) { |
| 373 const AudioDevice& device = it->second; | 373 const AudioDevice& device = it->second; |
| 374 if (!device.is_input && device.active) | 374 if (!device.is_input && device.active) |
| 375 SetOutputNodeVolumePercent(device.id, volume_percent); | 375 SetOutputNodeVolumePercent(device.id, volume_percent); |
| 376 } | 376 } |
| 377 } | 377 } |
| 378 | 378 |
| 379 void CrasAudioHandler::SetOutputVolumePercentInternally(int volume_percent) { | |
|
jennyz
2016/07/28 21:10:05
Please add a unit test for this new API.
Qiang(Joe) Xu
2016/07/28 23:15:57
Done.
| |
| 380 volume_internally_changed_ = true; | |
|
jennyz
2016/07/28 21:02:17
Will it be possible for SetOutputVolumePercentInte
Qiang(Joe) Xu
2016/07/28 23:15:57
Currently only maximize mode screenshot calls this
| |
| 381 // Set all active devices to the same volume. | |
| 382 for (AudioDeviceMap::const_iterator it = audio_devices_.begin(); | |
| 383 it != audio_devices_.end(); it++) { | |
| 384 const AudioDevice& device = it->second; | |
| 385 if (!device.is_input && device.active) | |
| 386 SetOutputNodeVolumePercent(device.id, volume_percent); | |
| 387 } | |
|
jennyz
2016/07/28 21:02:17
line 381-387 is the same as SetOutputVolumePercent
Qiang(Joe) Xu
2016/07/28 23:15:57
Done.
| |
| 388 } | |
| 389 | |
| 379 // TODO: Rename the 'Percent' to something more meaningful. | 390 // TODO: Rename the 'Percent' to something more meaningful. |
| 380 void CrasAudioHandler::SetInputGainPercent(int gain_percent) { | 391 void CrasAudioHandler::SetInputGainPercent(int gain_percent) { |
| 381 // TODO(jennyz): Should we set all input devices' gain to the same level? | 392 // TODO(jennyz): Should we set all input devices' gain to the same level? |
| 382 for (AudioDeviceMap::const_iterator it = audio_devices_.begin(); | 393 for (AudioDeviceMap::const_iterator it = audio_devices_.begin(); |
| 383 it != audio_devices_.end(); | 394 it != audio_devices_.end(); |
| 384 it++) { | 395 it++) { |
| 385 const AudioDevice& device = it->second; | 396 const AudioDevice& device = it->second; |
| 386 if (device.is_input && device.active) | 397 if (device.is_input && device.active) |
| 387 SetInputNodeGainPercent(active_input_node_id_, gain_percent); | 398 SetInputNodeGainPercent(active_input_node_id_, gain_percent); |
| 388 } | 399 } |
| (...skipping 236 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 625 return; | 636 return; |
| 626 } else { | 637 } else { |
| 627 // Reset the initializing_audio_state_ in case SetOutputNodeVolume request | 638 // Reset the initializing_audio_state_ in case SetOutputNodeVolume request |
| 628 // is lost by cras due to cras is not ready when CrasAudioHandler is being | 639 // is lost by cras due to cras is not ready when CrasAudioHandler is being |
| 629 // initialized. | 640 // initialized. |
| 630 initializing_audio_state_ = false; | 641 initializing_audio_state_ = false; |
| 631 init_volume_count_ = 0; | 642 init_volume_count_ = 0; |
| 632 } | 643 } |
| 633 } | 644 } |
| 634 | 645 |
| 646 // Do not notify the observers for the volume changed event if that is | |
| 647 // initiated internally, not by users. For example, a volume restoring | |
| 648 // comes from maximize mode screenshot volume-down, power down accelerators. | |
| 649 if (volume_internally_changed_) { | |
|
jennyz
2016/07/28 21:02:17
volume_internally_changed_ is similar to initializ
Qiang(Joe) Xu
2016/07/28 23:15:57
I use a mask to merge them.
| |
| 650 volume_internally_changed_ = false; | |
| 651 return; | |
| 652 } | |
| 653 | |
| 635 FOR_EACH_OBSERVER(AudioObserver, observers_, | 654 FOR_EACH_OBSERVER(AudioObserver, observers_, |
| 636 OnOutputNodeVolumeChanged(node_id, volume)); | 655 OnOutputNodeVolumeChanged(node_id, volume)); |
| 637 } | 656 } |
| 638 | 657 |
| 639 void CrasAudioHandler::ActiveOutputNodeChanged(uint64_t node_id) { | 658 void CrasAudioHandler::ActiveOutputNodeChanged(uint64_t node_id) { |
| 640 if (active_output_node_id_ == node_id) | 659 if (active_output_node_id_ == node_id) |
| 641 return; | 660 return; |
| 642 | 661 |
| 643 // Active audio output device should always be changed by chrome. | 662 // Active audio output device should always be changed by chrome. |
| 644 // During system boot, cras may change active input to unknown device 0x1, | 663 // During system boot, cras may change active input to unknown device 0x1, |
| (...skipping 727 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 1372 hdmi_rediscover_grace_period_duration_in_ms_), | 1391 hdmi_rediscover_grace_period_duration_in_ms_), |
| 1373 this, &CrasAudioHandler::UpdateAudioAfterHDMIRediscoverGracePeriod); | 1392 this, &CrasAudioHandler::UpdateAudioAfterHDMIRediscoverGracePeriod); |
| 1374 } | 1393 } |
| 1375 | 1394 |
| 1376 void CrasAudioHandler::SetHDMIRediscoverGracePeriodForTesting( | 1395 void CrasAudioHandler::SetHDMIRediscoverGracePeriodForTesting( |
| 1377 int duration_in_ms) { | 1396 int duration_in_ms) { |
| 1378 hdmi_rediscover_grace_period_duration_in_ms_ = duration_in_ms; | 1397 hdmi_rediscover_grace_period_duration_in_ms_ = duration_in_ms; |
| 1379 } | 1398 } |
| 1380 | 1399 |
| 1381 } // namespace chromeos | 1400 } // namespace chromeos |
| OLD | NEW |