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

Unified Diff: content/browser/renderer_host/media/audio_input_device_manager.cc

Issue 599443003: Activate and inactivate keyboard mic on ChromeOS. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@check_kmic_set_effect
Patch Set: Code review fix. Created 6 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
Index: content/browser/renderer_host/media/audio_input_device_manager.cc
diff --git a/content/browser/renderer_host/media/audio_input_device_manager.cc b/content/browser/renderer_host/media/audio_input_device_manager.cc
index 952f20f9cc5bea6fd5cef4e8361dc4fe8e0f008d..e360eb0eef26a15bad462b3352580dd02510d945 100644
--- a/content/browser/renderer_host/media/audio_input_device_manager.cc
+++ b/content/browser/renderer_host/media/audio_input_device_manager.cc
@@ -14,6 +14,10 @@
#include "media/base/channel_layout.h"
#include "media/base/scoped_histogram_timer.h"
+#if defined(OS_CHROMEOS)
+#include "chromeos/audio/cras_audio_handler.h"
+#endif
+
namespace content {
const int AudioInputDeviceManager::kFakeOpenSessionId = 1;
@@ -28,6 +32,9 @@ AudioInputDeviceManager::AudioInputDeviceManager(
: listener_(NULL),
next_capture_session_id_(kFirstSessionId),
use_fake_device_(false),
+#if defined(OS_CHROMEOS)
+ keyboard_mic_streams_count_(0),
+#endif
audio_manager_(audio_manager) {
}
@@ -109,6 +116,43 @@ bool AudioInputDeviceManager::ShouldUseFakeDevice() const {
return use_fake_device_;
}
+#if defined(OS_CHROMEOS)
+void AudioInputDeviceManager::RegisterKeyboardMicStream(
+ const base::Closure& callback) {
+ DCHECK_CURRENTLY_ON(BrowserThread::IO);
+
+ ++keyboard_mic_streams_count_;
+ if (keyboard_mic_streams_count_ == 1) {
+ BrowserThread::PostTaskAndReply(
+ BrowserThread::UI,
+ FROM_HERE,
+ base::Bind(
+ &AudioInputDeviceManager::SetKeyboardMicStreamActiveOnUIThread,
+ this,
+ true),
+ callback);
+ } else {
+ callback.Run();
+ }
+}
+
+void AudioInputDeviceManager::UnregisterKeyboardMicStream() {
+ DCHECK_CURRENTLY_ON(BrowserThread::IO);
+
+ --keyboard_mic_streams_count_;
+ DCHECK_GE(keyboard_mic_streams_count_, 0);
+ if (keyboard_mic_streams_count_ == 0) {
+ BrowserThread::PostTask(
+ BrowserThread::UI,
+ FROM_HERE,
+ base::Bind(
+ &AudioInputDeviceManager::SetKeyboardMicStreamActiveOnUIThread,
+ this,
+ false));
+ }
+}
+#endif
+
void AudioInputDeviceManager::EnumerateOnDeviceThread(
MediaStreamType stream_type) {
SCOPED_UMA_HISTOGRAM_TIMER(
@@ -250,4 +294,13 @@ void AudioInputDeviceManager::GetFakeDeviceNames(
kFakeDeviceId2));
}
+#if defined(OS_CHROMEOS)
+void AudioInputDeviceManager::SetKeyboardMicStreamActiveOnUIThread(
+ bool active) {
+ DCHECK_CURRENTLY_ON(BrowserThread::UI);
+ chromeos::CrasAudioHandler::Get()->SetKeyboardMicActive(active);
+}
+#endif
+
+
} // namespace content

Powered by Google App Engine
This is Rietveld 408576698