| // Copyright 2019 The Chromium Authors |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| #include "chrome/browser/media/webrtc/desktop_media_picker_manager.h" |
| |
| #include "base/no_destructor.h" |
| #include "base/observer_list.h" |
| |
| // static |
| DesktopMediaPickerManager* DesktopMediaPickerManager::Get() { |
| static base::NoDestructor<DesktopMediaPickerManager> instance; |
| return instance.get(); |
| } |
| |
| DesktopMediaPickerManager::DesktopMediaPickerManager() = default; |
| DesktopMediaPickerManager::~DesktopMediaPickerManager() = default; |
| |
| void DesktopMediaPickerManager::AddObserver(DialogObserver* observer) { |
| observers_.AddObserver(observer); |
| } |
| |
| void DesktopMediaPickerManager::RemoveObserver(DialogObserver* observer) { |
| observers_.RemoveObserver(observer); |
| } |
| |
| void DesktopMediaPickerManager::OnShowDialog( |
| const DesktopMediaPicker::Params& params) { |
| for (auto& observer : observers_) { |
| observer.OnDialogOpened(params); |
| } |
| } |
| |
| void DesktopMediaPickerManager::OnHideDialog() { |
| for (auto& observer : observers_) |
| observer.OnDialogClosed(); |
| } |