5#include "private/qcapturablewindow_p.h"
6#include <QtCore/private/qstdweb_p.h>
7#include <QGuiApplication>
15QWasmCapturableWindows::QWasmCapturableWindows()
17 m_capurableWindows.push_back(QCapturableWindowPrivate::create(
18 static_cast<QCapturableWindowPrivate::Id>(111),
19 QStringLiteral(
"Any Window")));
24QList<QCapturableWindow> QWasmCapturableWindows::windows()
const
26 return m_capurableWindows;
29void QWasmCapturableWindows::getDisplayMedia()
33 emscripten::val navigator = emscripten::val::global(
"navigator");
34 emscripten::val mediaDevices = navigator[
"mediaDevices"];
36 if (mediaDevices.isNull() || mediaDevices.isUndefined()) {
37 qWarning() <<
"No media devices found";
41 emscripten::val constraints = emscripten::val::object();
43 constraints.set(
"video",
true);
44 constraints.set(
"selfBrowserSurface", std::string(
"include"));
47 qstdweb::PromiseCallbacks getDisplayMediaCallback{
50 [
this](emscripten::val stream) {
51 QUuid uid(QString::fromStdString(stream[
"id"].as<std::string>()));
53 m_capurableWindows.push_back(QCapturableWindowPrivate::create(
54 static_cast<QCapturableWindowPrivate::Id>(uid.toByteArray().toLong()),
55 QString::fromStdString(stream[
"id"].as<std::string>())));
62 qstdweb::Promise::make(mediaDevices, QStringLiteral(
"getDisplayMedia"),
63 std::move(getDisplayMediaCallback), constraints);
66bool QWasmCapturableWindows::isWindowValid(
const QCapturableWindowPrivate &)
const
68 return m_capurableWindows.count() > 0;