94 lines
2.0 KiB
C++
94 lines
2.0 KiB
C++
// Copyright 2014-2023 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;
|
|
int iWidth, iHeight;
|
|
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
|