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")));
22QList<QCapturableWindow> QWasmCapturableWindows::windows()
const
24 return m_capurableWindows;
27void QWasmCapturableWindows::getDisplayMedia()
31 emscripten::val navigator = emscripten::val::global(
"navigator");
32 emscripten::val mediaDevices = navigator[
"mediaDevices"];
34 if (mediaDevices.isNull() || mediaDevices.isUndefined()) {
35 qWarning() <<
"No media devices found";
39 emscripten::val constraints = emscripten::val::object();
41 constraints.set(
"video",
true);
42 constraints.set(
"selfBrowserSurface", std::string(
"include"));
45 qstdweb::PromiseCallbacks getDisplayMediaCallback{
48 [
this](emscripten::val stream) {
49 QUuid uid(QString::fromStdString(stream[
"id"].as<std::string>()));
51 m_capurableWindows.push_back(QCapturableWindowPrivate::create(
52 static_cast<QCapturableWindowPrivate::Id>(uid.toByteArray().toLong()),
53 QString::fromStdString(stream[
"id"].as<std::string>())));
59 qstdweb::Promise::make(mediaDevices, QStringLiteral(
"getDisplayMedia"),
60 std::move(getDisplayMediaCallback), constraints);
63bool QWasmCapturableWindows::isWindowValid(
const QCapturableWindowPrivate &)
const
65 return m_capurableWindows.count() > 0;
Combined button and popup list for selecting options.