blob: 63455011f27ce954eb531fbbeab1c0a29226c2c2 (
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
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
|
// Copyright 2014-2021 The Mumble Developers. All rights reserved.
// Use of this source code is governed by a BSD-style license
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
#ifndef MUMBLE_MUMBLE_OVERLAYCLIENT_H_
#define MUMBLE_MUMBLE_OVERLAYCLIENT_H_
#include <QtCore/QScopedPointer>
#include <QtCore/QUrl>
#include <QtNetwork/QLocalSocket>
#include "../../overlay/overlay.h"
#include "OverlayUserGroup.h"
#include "SharedMemory.h"
#include "Timer.h"
class ClientUser;
class Overlay;
class QLibrary;
class QLocalServer;
class OverlayPositionableItem;
class OverlayClient : public QObject {
friend class Overlay;
private:
Q_OBJECT
Q_DISABLE_COPY(OverlayClient)
protected:
OverlayMsg omMsg;
QLocalSocket *qlsSocket;
SharedMemory2 *smMem;
QRect qrLast;
Timer t;
float framesPerSecond;
int iOffsetX, iOffsetY;
/// The process ID of the process this OverlayClient is connected to.
quint64 uiPid;
/// The path to the executable of the process that this OverlayClient is connected to.
QString qsExecutablePath;
QGraphicsScene qgs;
QScopedPointer< QGraphicsPixmapItem > qgpiCursor;
QScopedPointer< QGraphicsPixmapItem > qgpiLogo;
QScopedPointer< OverlayPositionableItem > qgpiFPS;
QScopedPointer< OverlayPositionableItem > qgpiTime;
OverlayUserGroup ougUsers;
#ifdef Q_OS_MAC
QMap< Qt::CursorShape, QPixmap > qmCursors;
#endif
bool bWasVisible;
bool bDelete;
void setupRender();
void setupScene(bool show);
bool eventFilter(QObject *, QEvent *) Q_DECL_OVERRIDE;
void readyReadMsgInit(unsigned int length);
QList< QRectF > qlDirty;
protected slots:
void readyRead();
void changed(const QList< QRectF > &);
void render();
public:
QGraphicsView qgv;
unsigned int uiWidth, uiHeight;
int iMouseX, iMouseY;
OverlayClient(QLocalSocket *, QObject *);
~OverlayClient() Q_DECL_OVERRIDE;
void reset();
public slots:
void showGui();
void hideGui();
void scheduleDelete();
void updateMouse();
void updateFPS();
void updateTime();
bool update();
void openEditor();
};
#endif
|