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

Unified Diff: chromeos/audio/cras_audio_handler.cc

Issue 23444057: Reduce chrome cras dbus call logs during device rebooting. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Rename EnableLog Created 7 years, 3 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « chromeos/audio/cras_audio_handler.h ('k') | chromeos/dbus/cras_audio_client.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chromeos/audio/cras_audio_handler.cc
diff --git a/chromeos/audio/cras_audio_handler.cc b/chromeos/audio/cras_audio_handler.cc
index 94c032e329554a7d0b40ae27e2e7bc409a445ca3..5460466c4b5ef0c94a972b04e4e7f5975888ffad 100644
--- a/chromeos/audio/cras_audio_handler.cc
+++ b/chromeos/audio/cras_audio_handler.cc
@@ -288,6 +288,10 @@ void CrasAudioHandler::SetMuteForDevice(uint64 device_id, bool mute_on) {
audio_pref_handler_->SetMuteValue(*device, mute_on);
}
+void CrasAudioHandler::LogErrors() {
+ log_errors_ = true;
+}
+
CrasAudioHandler::CrasAudioHandler(
scoped_refptr<AudioDevicesPrefHandler> audio_pref_handler)
: audio_pref_handler_(audio_pref_handler),
@@ -301,7 +305,8 @@ CrasAudioHandler::CrasAudioHandler(
has_alternative_input_(false),
has_alternative_output_(false),
output_mute_locked_(false),
- input_mute_locked_(false) {
+ input_mute_locked_(false),
+ log_errors_(false) {
if (!audio_pref_handler.get())
return;
// If the DBusThreadManager or the CrasAudioClient aren't available, there
@@ -312,6 +317,10 @@ CrasAudioHandler::CrasAudioHandler(
return;
chromeos::DBusThreadManager::Get()->GetCrasAudioClient()->AddObserver(this);
audio_pref_handler_->AddAudioPrefObserver(this);
+ if (chromeos::DBusThreadManager::Get()->GetSessionManagerClient()) {
+ chromeos::DBusThreadManager::Get()->GetSessionManagerClient()->
+ AddObserver(this);
+ }
InitializeAudioState();
}
@@ -322,12 +331,17 @@ CrasAudioHandler::~CrasAudioHandler() {
return;
chromeos::DBusThreadManager::Get()->GetCrasAudioClient()->
RemoveObserver(this);
+ chromeos::DBusThreadManager::Get()->GetSessionManagerClient()->
+ RemoveObserver(this);
if (audio_pref_handler_.get())
audio_pref_handler_->RemoveAudioPrefObserver(this);
audio_pref_handler_ = NULL;
}
void CrasAudioHandler::AudioClientRestarted() {
+ // Make sure the logging is enabled in case cras server
+ // restarts after crashing.
+ LogErrors();
InitializeAudioState();
}
@@ -341,8 +355,13 @@ void CrasAudioHandler::ActiveOutputNodeChanged(uint64 node_id) {
return;
// Active audio output device should always be changed by chrome.
- LOG(WARNING) << "Active output node changed unexpectedly by system node_id="
- << "0x" << std::hex << node_id;
+ // During system boot, cras may change active input to unknown device 0x1,
+ // we don't need to log it, since it is not an valid device.
+ if (GetDeviceFromId(node_id)) {
+ LOG_IF(WARNING, log_errors_)
+ << "Active output node changed unexpectedly by system node_id="
+ << "0x" << std::hex << node_id;
+ }
}
void CrasAudioHandler::ActiveInputNodeChanged(uint64 node_id) {
@@ -350,14 +369,25 @@ void CrasAudioHandler::ActiveInputNodeChanged(uint64 node_id) {
return;
// Active audio input device should always be changed by chrome.
- LOG(WARNING) << "Active input node changed unexpectedly by system node_id="
- << "0x" << std::hex << node_id;
+ // During system boot, cras may change active input to unknown device 0x2,
+ // we don't need to log it, since it is not an valid device.
+ if (GetDeviceFromId(node_id)) {
+ LOG_IF(WARNING, log_errors_)
+ << "Active input node changed unexpectedly by system node_id="
+ << "0x" << std::hex << node_id;
+ }
}
void CrasAudioHandler::OnAudioPolicyPrefChanged() {
ApplyAudioPolicy();
}
+void CrasAudioHandler::EmitLoginPromptVisibleCalled() {
+ // Enable logging after cras server is started, which will be after
+ // EmitLoginPromptVisible.
+ LogErrors();
+}
+
const AudioDevice* CrasAudioHandler::GetDeviceFromId(uint64 device_id) const {
AudioDeviceMap::const_iterator it = audio_devices_.find(device_id);
if (it == audio_devices_.end())
@@ -370,7 +400,8 @@ void CrasAudioHandler::SetupAudioInputState() {
// Set the initial audio state to the ones read from audio prefs.
const AudioDevice* device = GetDeviceFromId(active_input_node_id_);
if (!device) {
- LOG(ERROR) << "Can't set up audio state for unknow input device id ="
+ LOG_IF(ERROR, log_errors_)
+ << "Can't set up audio state for unknown input device id ="
<< "0x" << std::hex << active_input_node_id_;
return;
}
@@ -384,8 +415,9 @@ void CrasAudioHandler::SetupAudioInputState() {
void CrasAudioHandler::SetupAudioOutputState() {
const AudioDevice* device = GetDeviceFromId(active_output_node_id_);
if (!device) {
- LOG(ERROR) << "Can't set up audio state for unknow output device id ="
- << "0x" << std::hex << active_output_node_id_;
+ LOG_IF(ERROR, log_errors_)
+ << "Can't set up audio state for unknown output device id ="
+ << "0x" << std::hex << active_output_node_id_;
return;
}
output_mute_on_ = audio_pref_handler_->GetMuteValue(*device);
@@ -415,7 +447,10 @@ void CrasAudioHandler::ApplyAudioPolicy() {
input_mute_locked_ = false;
if (audio_pref_handler_->GetAudioCaptureAllowedValue()) {
- SetInputMute(false);
+ // Set input mute if we have discovered active input device.
+ const AudioDevice* device = GetDeviceFromId(active_input_node_id_);
+ if (device)
+ SetInputMuteInternal(false);
} else {
SetInputMute(true);
input_mute_locked_ = true;
@@ -455,6 +490,8 @@ bool CrasAudioHandler::SetInputMuteInternal(bool mute_on) {
void CrasAudioHandler::GetNodes() {
chromeos::DBusThreadManager::Get()->GetCrasAudioClient()->GetNodes(
base::Bind(&CrasAudioHandler::HandleGetNodes,
+ weak_ptr_factory_.GetWeakPtr()),
+ base::Bind(&CrasAudioHandler::HandleGetNodesError,
weak_ptr_factory_.GetWeakPtr()));
}
@@ -586,7 +623,7 @@ void CrasAudioHandler::UpdateDevicesAndSwitchActive(
void CrasAudioHandler::HandleGetNodes(const chromeos::AudioNodeList& node_list,
bool success) {
if (!success) {
- LOG(ERROR) << "Failed to retrieve audio nodes data";
+ LOG_IF(ERROR, log_errors_) << "Failed to retrieve audio nodes data";
return;
}
@@ -594,4 +631,9 @@ void CrasAudioHandler::HandleGetNodes(const chromeos::AudioNodeList& node_list,
FOR_EACH_OBSERVER(AudioObserver, observers_, OnAudioNodesChanged());
}
+void CrasAudioHandler::HandleGetNodesError(const std::string& error_name,
+ const std::string& error_msg) {
+ LOG_IF(ERROR, log_errors_) << "Failed to call GetNodes: "
+ << error_name << ": " << error_msg;
+}
} // namespace chromeos
« no previous file with comments | « chromeos/audio/cras_audio_handler.h ('k') | chromeos/dbus/cras_audio_client.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698