diff options
author | Allan Sandfeld Jensen <allan.jensen@qt.io> | 2018-05-03 13:42:47 +0200 |
---|---|---|
committer | Allan Sandfeld Jensen <allan.jensen@qt.io> | 2018-05-15 10:27:51 +0000 |
commit | 8c5c43c7b138c9b4b0bf56d946e61d3bbc111bec (patch) | |
tree | d29d987c4d7b173cf853279b79a51598f104b403 /chromium/services/audio/service.cc | |
parent | 830c9e163d31a9180fadca926b3e1d7dfffb5021 (diff) | |
download | qtwebengine-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.cc | 23 |
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 |