media_capture_devices_dispatcher.h 2.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  1. // Copyright (c) 2012 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-CHROMIUM file.
  4. #ifndef ELECTRON_SHELL_BROWSER_MEDIA_MEDIA_CAPTURE_DEVICES_DISPATCHER_H_
  5. #define ELECTRON_SHELL_BROWSER_MEDIA_MEDIA_CAPTURE_DEVICES_DISPATCHER_H_
  6. #include "components/webrtc/media_stream_device_enumerator_impl.h"
  7. #include "content/public/browser/media_observer.h"
  8. #include "third_party/blink/public/common/mediastream/media_stream_request.h"
  9. #include "third_party/blink/public/mojom/mediastream/media_stream.mojom.h"
  10. namespace electron {
  11. // This singleton is used to receive updates about media events from the content
  12. // layer.
  13. class MediaCaptureDevicesDispatcher
  14. : public content::MediaObserver,
  15. public webrtc::MediaStreamDeviceEnumeratorImpl {
  16. public:
  17. static MediaCaptureDevicesDispatcher* GetInstance();
  18. // Overridden from content::MediaObserver:
  19. void OnAudioCaptureDevicesChanged() override {}
  20. void OnVideoCaptureDevicesChanged() override {}
  21. void OnMediaRequestStateChanged(int render_process_id,
  22. int render_view_id,
  23. int page_request_id,
  24. const GURL& security_origin,
  25. blink::mojom::MediaStreamType stream_type,
  26. content::MediaRequestState state) override {}
  27. void OnCreatingAudioStream(int render_process_id,
  28. int render_view_id) override {}
  29. void OnSetCapturingLinkSecured(int render_process_id,
  30. int render_frame_id,
  31. int page_request_id,
  32. blink::mojom::MediaStreamType stream_type,
  33. bool is_secure) override {}
  34. const std::optional<blink::MediaStreamDevice>
  35. GetPreferredAudioDeviceForBrowserContext(
  36. content::BrowserContext* browser_context,
  37. const std::vector<std::string>& eligible_audio_device_ids) const override;
  38. const std::optional<blink::MediaStreamDevice>
  39. GetPreferredVideoDeviceForBrowserContext(
  40. content::BrowserContext* browser_context,
  41. const std::vector<std::string>& eligible_video_device_ids) const override;
  42. // disable copy
  43. MediaCaptureDevicesDispatcher(const MediaCaptureDevicesDispatcher&) = delete;
  44. MediaCaptureDevicesDispatcher& operator=(
  45. const MediaCaptureDevicesDispatcher&) = delete;
  46. private:
  47. friend base::NoDestructor<MediaCaptureDevicesDispatcher>;
  48. MediaCaptureDevicesDispatcher();
  49. ~MediaCaptureDevicesDispatcher() override;
  50. };
  51. } // namespace electron
  52. #endif // ELECTRON_SHELL_BROWSER_MEDIA_MEDIA_CAPTURE_DEVICES_DISPATCHER_H_