summaryrefslogtreecommitdiff
path: root/chromium/services/audio/service.cc
diff options
context:
space:
mode:
authorAllan Sandfeld Jensen <allan.jensen@qt.io>2018-05-03 13:42:47 +0200
committerAllan Sandfeld Jensen <allan.jensen@qt.io>2018-05-15 10:27:51 +0000
commit8c5c43c7b138c9b4b0bf56d946e61d3bbc111bec (patch)
treed29d987c4d7b173cf853279b79a51598f104b403 /chromium/services/audio/service.cc
parent830c9e163d31a9180fadca926b3e1d7dfffb5021 (diff)
downloadqtwebengine-chromium-8c5c43c7b138c9b4b0bf56d946e61d3bbc111bec.tar.gz
BASELINE: Update Chromium to 66.0.3359.156
Change-Id: I0c9831ad39911a086b6377b16f995ad75a51e441 Reviewed-by: Michal Klocek <michal.klocek@qt.io>
Diffstat (limited to 'chromium/services/audio/service.cc')
-rw-r--r--chromium/services/audio/service.cc23
1 files changed, 23 insertions, 0 deletions
diff --git a/chromium/services/audio/service.cc b/chromium/services/audio/service.cc
index 4320940918e..99fccde9615 100644
--- a/chromium/services/audio/service.cc
+++ b/chromium/services/audio/service.cc
@@ -4,10 +4,14 @@
#include "services/audio/service.h"
+#include <utility>
+
+#include "base/logging.h"
#include "base/macros.h"
#include "base/single_thread_task_runner.h"
#include "build/build_config.h"
#include "media/audio/audio_manager.h"
+#include "services/audio/debug_recording.h"
#include "services/audio/system_info.h"
#include "services/service_manager/public/cpp/service_context.h"
@@ -24,8 +28,11 @@ Service::~Service() {
void Service::OnStart() {
DCHECK_CALLED_ON_VALID_THREAD(thread_checker_);
+ DVLOG(4) << "audio::Service::OnStart";
registry_.AddInterface<mojom::SystemInfo>(base::BindRepeating(
&Service::BindSystemInfoRequest, base::Unretained(this)));
+ registry_.AddInterface<mojom::DebugRecording>(base::BindRepeating(
+ &Service::BindDebugRecordingRequest, base::Unretained(this)));
}
void Service::OnBindInterface(
@@ -33,11 +40,15 @@ void Service::OnBindInterface(
const std::string& interface_name,
mojo::ScopedMessagePipeHandle interface_pipe) {
DCHECK_CALLED_ON_VALID_THREAD(thread_checker_);
+ DVLOG(4) << "audio::Service::OnBindInterface";
registry_.BindInterface(interface_name, std::move(interface_pipe));
}
bool Service::OnServiceManagerConnectionLost() {
DCHECK_CALLED_ON_VALID_THREAD(thread_checker_);
+ // Reset |debug_recording_| to disable debug recording before AudioManager
+ // shutdown.
+ debug_recording_.reset();
audio_manager_accessor_->Shutdown();
return true;
}
@@ -45,10 +56,22 @@ bool Service::OnServiceManagerConnectionLost() {
void Service::BindSystemInfoRequest(mojom::SystemInfoRequest request) {
DCHECK_CALLED_ON_VALID_THREAD(thread_checker_);
if (!system_info_) {
+ DVLOG(4)
+ << "audio::Service::BindSystemInfoRequest: lazy SystemInfo creation";
system_info_ = std::make_unique<SystemInfo>(
audio_manager_accessor_->GetAudioManager());
}
system_info_->Bind(std::move(request));
}
+void Service::BindDebugRecordingRequest(mojom::DebugRecordingRequest request) {
+ DCHECK_CALLED_ON_VALID_THREAD(thread_checker_);
+ // Accept only one bind request at a time. Old request is overwritten.
+ // |debug_recording_| must be reset first to disable debug recording, and then
+ // create a new DebugRecording instance to enable debug recording.
+ debug_recording_.reset();
+ debug_recording_ = std::make_unique<DebugRecording>(
+ std::move(request), audio_manager_accessor_->GetAudioManager());
+}
+
} // namespace audio