#include "WebMediaController.hpp" #include namespace Slic3r { namespace GUI { namespace { void initialize_webview(wxWebView* webview) { if (!webview) return; webview->SetBackgroundColour(*wxBLACK); webview->SetPage("", ""); } } // namespace WebMediaController::WebMediaController(wxWebView* webview) : m_webview(webview) { initialize_webview(m_webview); } void WebMediaController::Load(wxURI url) { m_url = url.BuildURI().ToStdString(); } void WebMediaController::set_mode(CameraStreamMode mode) { m_stream_mode = mode; } void WebMediaController::Play() { if (!m_webview) return; wxString url = wxString::FromUTF8(m_url); wxString html = ""; m_webview->SetPage(html, url); } else { // Load MJPEG streams as the top-level document. Some embedded WebView // backends buffer a multipart stream when it is used as an resource, // which introduces noticeable live-view latency. m_webview->LoadURL(url); } } void WebMediaController::Stop() { if (m_webview) { m_webview->RunScript("if(typeof stopCameraRefresh==='function') stopCameraRefresh();"); m_webview->Stop(); m_webview->SetPage("", "about:blank"); m_webview->ClearHistory(); } m_url.clear(); } }} // namespace Slic3r::GUI