blob: 0cb7412250a351c22710cc413f7d9d33d99513e0 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
|
// Copyright (C) 2023 The Qt Company Ltd.
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
#ifndef DESKTOP_MEDIA_CONTROLLER_H
#define DESKTOP_MEDIA_CONTROLLER_H
#include <QtWebEngineCore/private/qtwebenginecoreglobal_p.h>
#include <QtCore/QObject>
#include <QString>
namespace QtWebEngineCore {
class DesktopMediaListQtPrivate;
class DesktopMediaControllerPrivate;
enum DesktopMediaType { Screen = 0, Window };
class Q_WEBENGINECORE_EXPORT DesktopMediaListQt : public QObject
{
Q_OBJECT
public:
~DesktopMediaListQt() override;
QString getSourceName(int index) const;
int getSourceCount() const;
Q_SIGNALS:
void initialized();
void itemSelected(int index);
void sourceAdded(int index);
void sourceRemoved(int index);
void sourceMoved(int oldIndex, int newIndex);
void sourceNameChanged(int index);
private:
friend class DesktopMediaController;
friend class DesktopMediaControllerPrivate;
bool isInitialized() const;
explicit DesktopMediaListQt(DesktopMediaType type);
std::unique_ptr<DesktopMediaListQtPrivate> d;
};
class Q_WEBENGINECORE_EXPORT DesktopMediaController : public QObject
{
Q_OBJECT
public:
explicit DesktopMediaController(DesktopMediaControllerPrivate *dd);
~DesktopMediaController() override;
DesktopMediaListQt *screens() const;
DesktopMediaListQt *windows() const;
void selectScreen(int index);
void selectWindow(int index);
void cancel();
Q_SIGNALS:
void mediaListsInitialized();
private:
std::unique_ptr<DesktopMediaControllerPrivate> d;
};
} // namespace QtWebEngineCore
#endif // DESKTOP_MEDIA_CONTROLLER_H
|