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

Side by Side Diff: chromeos/audio/cras_audio_handler.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/cras_audio_handler.h" 5 #include "chromeos/audio/cras_audio_handler.h"
6 6
7 #include <algorithm> 7 #include <algorithm>
8 #include <cmath> 8 #include <cmath>
9 9
10 #include "base/bind.h" 10 #include "base/bind.h"
(...skipping 348 matching lines...) Expand 10 before | Expand all | Expand 10 after
359 359
360 void CrasAudioHandler::AdjustOutputVolumeToAudibleLevel() { 360 void CrasAudioHandler::AdjustOutputVolumeToAudibleLevel() {
361 if (output_volume_ <= kMuteThresholdPercent) { 361 if (output_volume_ <= kMuteThresholdPercent) {
362 // Avoid the situation when sound has been unmuted, but the volume 362 // Avoid the situation when sound has been unmuted, but the volume
363 // is set to a very low value, so user still can't hear any sound. 363 // is set to a very low value, so user still can't hear any sound.
364 SetOutputVolumePercent(kDefaultUnmuteVolumePercent); 364 SetOutputVolumePercent(kDefaultUnmuteVolumePercent);
365 } 365 }
366 } 366 }
367 367
368 void CrasAudioHandler::SetInputMute(bool mute_on) { 368 void CrasAudioHandler::SetInputMute(bool mute_on) {
369 if (!SetInputMuteInternal(mute_on)) 369 SetInputMuteInternal(mute_on);
370 return;
371
372 FOR_EACH_OBSERVER(AudioObserver, observers_, OnInputMuteChanged()); 370 FOR_EACH_OBSERVER(AudioObserver, observers_, OnInputMuteChanged());
373 } 371 }
374 372
375 void CrasAudioHandler::SetActiveOutputNode(uint64 node_id, bool notify) { 373 void CrasAudioHandler::SetActiveOutputNode(uint64 node_id, bool notify) {
376 chromeos::DBusThreadManager::Get()->GetCrasAudioClient()-> 374 chromeos::DBusThreadManager::Get()->GetCrasAudioClient()->
377 SetActiveOutputNode(node_id); 375 SetActiveOutputNode(node_id);
378 if (notify) 376 if (notify)
379 NotifyActiveNodeChanged(false); 377 NotifyActiveNodeChanged(false);
380 } 378 }
381 379
(...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after
424 : audio_pref_handler_(audio_pref_handler), 422 : audio_pref_handler_(audio_pref_handler),
425 output_mute_on_(false), 423 output_mute_on_(false),
426 input_mute_on_(false), 424 input_mute_on_(false),
427 output_volume_(0), 425 output_volume_(0),
428 input_gain_(0), 426 input_gain_(0),
429 active_output_node_id_(0), 427 active_output_node_id_(0),
430 active_input_node_id_(0), 428 active_input_node_id_(0),
431 has_alternative_input_(false), 429 has_alternative_input_(false),
432 has_alternative_output_(false), 430 has_alternative_output_(false),
433 output_mute_locked_(false), 431 output_mute_locked_(false),
434 input_mute_locked_(false),
435 log_errors_(false), 432 log_errors_(false),
436 weak_ptr_factory_(this) { 433 weak_ptr_factory_(this) {
437 if (!audio_pref_handler.get()) 434 if (!audio_pref_handler.get())
438 return; 435 return;
439 // If the DBusThreadManager or the CrasAudioClient aren't available, there 436 // If the DBusThreadManager or the CrasAudioClient aren't available, there
440 // isn't much we can do. This should only happen when running tests. 437 // isn't much we can do. This should only happen when running tests.
441 if (!chromeos::DBusThreadManager::IsInitialized() || 438 if (!chromeos::DBusThreadManager::IsInitialized() ||
442 !chromeos::DBusThreadManager::Get() || 439 !chromeos::DBusThreadManager::Get() ||
443 !chromeos::DBusThreadManager::Get()->GetCrasAudioClient()) 440 !chromeos::DBusThreadManager::Get()->GetCrasAudioClient())
444 return; 441 return;
(...skipping 154 matching lines...) Expand 10 before | Expand all | Expand 10 after
599 // Mute the device, but do not update the preference. 596 // Mute the device, but do not update the preference.
600 SetOutputMuteInternal(true); 597 SetOutputMuteInternal(true);
601 output_mute_locked_ = true; 598 output_mute_locked_ = true;
602 } else { 599 } else {
603 // Restore the mute state. 600 // Restore the mute state.
604 const AudioDevice* device = GetDeviceFromId(active_output_node_id_); 601 const AudioDevice* device = GetDeviceFromId(active_output_node_id_);
605 if (device) 602 if (device)
606 SetOutputMuteInternal(audio_pref_handler_->GetMuteValue(*device)); 603 SetOutputMuteInternal(audio_pref_handler_->GetMuteValue(*device));
607 } 604 }
608 605
609 input_mute_locked_ = false; 606 // Policy for audio input is handled by kAudioCaptureAllowed in the Chrome
610 if (audio_pref_handler_->GetAudioCaptureAllowedValue()) { 607 // media system.
611 VLOG(1) << "Audio input allowed by policy, sets input id="
612 << "0x" << std::hex << active_input_node_id_ << " mute=false";
613 SetInputMuteInternal(false);
614 } else {
615 VLOG(0) << "Audio input NOT allowed by policy, sets input id="
616 << "0x" << std::hex << active_input_node_id_ << " mute=true";
617 SetInputMuteInternal(true);
618 input_mute_locked_ = true;
619 }
620 } 608 }
621 609
622 void CrasAudioHandler::SetOutputNodeVolume(uint64 node_id, int volume) { 610 void CrasAudioHandler::SetOutputNodeVolume(uint64 node_id, int volume) {
623 chromeos::DBusThreadManager::Get()->GetCrasAudioClient()-> 611 chromeos::DBusThreadManager::Get()->GetCrasAudioClient()->
624 SetOutputNodeVolume(node_id, volume); 612 SetOutputNodeVolume(node_id, volume);
625 } 613 }
626 614
627 void CrasAudioHandler::SetOutputNodeVolumePercent(uint64 node_id, 615 void CrasAudioHandler::SetOutputNodeVolumePercent(uint64 node_id,
628 int volume_percent) { 616 int volume_percent) {
629 const AudioDevice* device = this->GetDeviceFromId(node_id); 617 const AudioDevice* device = this->GetDeviceFromId(node_id);
(...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after
671 input_gain_ = gain_percent; 659 input_gain_ = gain_percent;
672 660
673 audio_pref_handler_->SetVolumeGainValue(*device, gain_percent); 661 audio_pref_handler_->SetVolumeGainValue(*device, gain_percent);
674 662
675 if (device->active) { 663 if (device->active) {
676 SetInputNodeGain(node_id, gain_percent); 664 SetInputNodeGain(node_id, gain_percent);
677 FOR_EACH_OBSERVER(AudioObserver, observers_, OnInputGainChanged()); 665 FOR_EACH_OBSERVER(AudioObserver, observers_, OnInputGainChanged());
678 } 666 }
679 } 667 }
680 668
681 bool CrasAudioHandler::SetInputMuteInternal(bool mute_on) { 669 void CrasAudioHandler::SetInputMuteInternal(bool mute_on) {
682 if (input_mute_locked_)
683 return false;
684
685 input_mute_on_ = mute_on; 670 input_mute_on_ = mute_on;
686 chromeos::DBusThreadManager::Get()->GetCrasAudioClient()-> 671 chromeos::DBusThreadManager::Get()->GetCrasAudioClient()->
687 SetInputMute(mute_on); 672 SetInputMute(mute_on);
688 return true;
689 } 673 }
690 674
691 void CrasAudioHandler::GetNodes() { 675 void CrasAudioHandler::GetNodes() {
692 chromeos::DBusThreadManager::Get()->GetCrasAudioClient()->GetNodes( 676 chromeos::DBusThreadManager::Get()->GetCrasAudioClient()->GetNodes(
693 base::Bind(&CrasAudioHandler::HandleGetNodes, 677 base::Bind(&CrasAudioHandler::HandleGetNodes,
694 weak_ptr_factory_.GetWeakPtr()), 678 weak_ptr_factory_.GetWeakPtr()),
695 base::Bind(&CrasAudioHandler::HandleGetNodesError, 679 base::Bind(&CrasAudioHandler::HandleGetNodesError,
696 weak_ptr_factory_.GetWeakPtr())); 680 weak_ptr_factory_.GetWeakPtr()));
697 } 681 }
698 682
(...skipping 224 matching lines...) Expand 10 before | Expand all | Expand 10 after
923 active_output_node_id_ = 0; 907 active_output_node_id_ = 0;
924 chromeos::DBusThreadManager::Get() 908 chromeos::DBusThreadManager::Get()
925 ->GetCrasAudioClient() 909 ->GetCrasAudioClient()
926 ->RemoveActiveOutputNode(node_id); 910 ->RemoveActiveOutputNode(node_id);
927 if (notify) 911 if (notify)
928 NotifyActiveNodeChanged(false); 912 NotifyActiveNodeChanged(false);
929 } 913 }
930 } 914 }
931 915
932 } // namespace chromeos 916 } // namespace chromeos
OLDNEW
« no previous file with comments | « chromeos/audio/cras_audio_handler.h ('k') | extensions/shell/browser/shell_browser_main_parts.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698