multi_capture_service_client.cc 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940
  1. // Copyright 2022 The Chromium Authors. All rights reserved.
  2. // Use of this source code is governed by a BSD-style license that can be
  3. // found in the LICENSE file.
  4. #include "ash/multi_capture/multi_capture_service_client.h"
  5. #include "base/logging.h"
  6. namespace ash {
  7. MultiCaptureServiceClient::MultiCaptureServiceClient(
  8. mojo::PendingRemote<video_capture::mojom::MultiCaptureService>
  9. multi_capture_service)
  10. : multi_capture_service_(std::move(multi_capture_service)) {
  11. multi_capture_service_->AddObserver(
  12. multi_capture_service_observer_receiver_.BindNewPipeAndPassRemote());
  13. }
  14. MultiCaptureServiceClient::~MultiCaptureServiceClient() = default;
  15. void MultiCaptureServiceClient::AddObserver(Observer* observer) {
  16. observers_.AddObserver(observer);
  17. }
  18. void MultiCaptureServiceClient::RemoveObserver(Observer* observer) {
  19. observers_.RemoveObserver(observer);
  20. }
  21. void MultiCaptureServiceClient::MultiCaptureStarted(const std::string& label,
  22. const url::Origin& origin) {
  23. for (Observer& observer : observers_)
  24. observer.MultiCaptureStarted(label, origin);
  25. }
  26. void MultiCaptureServiceClient::MultiCaptureStopped(const std::string& label) {
  27. for (Observer& observer : observers_)
  28. observer.MultiCaptureStopped(label);
  29. }
  30. } // namespace ash