[M120 Migration] Build libchromium-impl.so with chrome implementation
[platform/framework/web/chromium-efl.git] / content / browser / renderer_host / media / render_frame_audio_input_stream_factory.cc
index 587a9ee..0e0488e 100644 (file)
 #include "third_party/blink/public/common/mediastream/media_stream_request.h"
 #include "url/origin.h"
 
+#if BUILDFLAG(IS_TIZEN_TV)
+#include "content/browser/browser_main_loop.h"
+#endif
+
 using blink::mojom::MediaDeviceType;
 
 namespace content {
@@ -158,6 +162,11 @@ class RenderFrameAudioInputStreamFactory::Core final
       const base::UnguessableToken& input_stream_id,
       const std::string& raw_output_device_id);
 
+#if BUILDFLAG(IS_TIZEN_TV)
+  void OnMediaStateChanged(uint32_t previous, uint32_t current) final;
+  void NotifyMediaStateChanged(uint32_t previous, uint32_t current);
+#endif
+
   const raw_ptr<MediaStreamManager> media_stream_manager_;
   const int process_id_;
   const int frame_id_;
@@ -362,4 +371,33 @@ void RenderFrameAudioInputStreamFactory::Core::
                                                      raw_output_device_id);
 }
 
+#if BUILDFLAG(IS_TIZEN_TV)
+void RenderFrameAudioInputStreamFactory::Core::OnMediaStateChanged(
+    uint32_t previous,
+    uint32_t current) {
+  DCHECK_CURRENTLY_ON(BrowserThread::IO);
+  GetUIThreadTaskRunner({})->PostTask(
+      FROM_HERE,
+      base::BindOnce(&Core::NotifyMediaStateChanged,
+                     weak_ptr_factory_.GetWeakPtr(), previous, current));
+}
+
+void RenderFrameAudioInputStreamFactory::Core::NotifyMediaStateChanged(
+    uint32_t previous,
+    uint32_t current) {
+  content::BrowserMainLoop* browser_main_loop =
+      content::BrowserMainLoop::GetInstance();
+  if (!browser_main_loop) {
+    LOG(ERROR) << "browser_main_loop is null";
+    return;
+  }
+  content::MediaStreamManager* msm = browser_main_loop->media_stream_manager();
+  if (!msm) {
+    LOG(ERROR) << "MediaStreamManager is null";
+    return;
+  }
+  msm->NotifyMediaStateChanged(content::MediaInputStreamType::AUDIO_CAPTURE,
+                               previous, current);
+}
+#endif
 }  // namespace content