Rabbit Remote Control
0.1.0-bate14
Toggle main menu visibility
Loading...
Searching...
No Matches
Src
BackendDesktop.h
1
// Author: Kang Lin <kl222@126.com>
2
3
#pragma once
4
#include <QPoint>
5
#include <QMouseEvent>
6
#include <QKeyEvent>
7
#include <QWheelEvent>
8
#include <QMimeData>
9
#include <QMessageBox>
10
#if HAVE_QT6_MULTIMEDIA
11
#include <QMediaCaptureSession>
12
#endif
13
#if HAVE_QT6_RECORD
14
#include <QVideoFrameInput>
15
#include <QAudioBufferInput>
16
#include <QAudioBufferOutput>
17
#include <QMediaRecorder>
18
#include "ParameterRecord.h"
19
#endif
20
21
#include "FrmViewer.h"
22
#include "OperateDesktop.h"
23
24
class
QRecordVideoEvent
;
25
37
class
PLUGIN_EXPORT CBackendDesktop :
public
CBackend
38
{
39
Q_OBJECT
40
public
:
41
explicit
CBackendDesktop(
COperateDesktop
*pOperate =
nullptr
);
42
virtual
~CBackendDesktop();
43
44
public
Q_SLOTS:
45
#if HAVE_QT6_RECORD
46
virtual
int
Stop
()
override
;
47
#endif
52
virtual
void
slotClipBoardChanged
() = 0;
53
54
private
:
55
int
SetConnect(
COperateDesktop
* pOperate);
56
int
SetViewer
(
CFrmViewer
* pView);
57
58
Q_SIGNALS:
59
void
sigSetDesktopSize(
int
width,
int
height);
60
void
sigServerName(
const
QString& szName);
61
71
void
sigUpdateRect
(
const
QRect& r,
const
QImage& image);
76
void
sigUpdateRect
(
const
QImage& image);
77
void
sigUpdateCursor(
const
QCursor& cursor);
78
void
sigUpdateCursorPosition(
const
QPoint& pos);
79
void
sigUpdateLedState(
unsigned
int
state);
80
void
sigSetClipboard(QMimeData* data);
81
82
public
Q_SLOTS:
83
// \~chinese 以下函数在 CFrmView 线程(主线程)中调用
84
// \~english The following functions are called in the CFrmView thread(main thread)
85
virtual
void
slotMousePressEvent(QMouseEvent* event, QPoint pos);
86
virtual
void
slotMouseReleaseEvent(QMouseEvent* event, QPoint pos);
87
virtual
void
slotMouseMoveEvent(QMouseEvent* event, QPoint pos);
88
virtual
void
slotWheelEvent(QWheelEvent* event, QPoint pos);
89
virtual
void
slotKeyPressEvent(QKeyEvent *event);
90
virtual
void
slotKeyReleaseEvent(QKeyEvent *event);
91
virtual
void
slotInputMethodEvent(QInputMethodEvent* event);
92
93
protected
:
94
// \~chinese 以下函数在后台线程中调用
95
// \~english The following functions are called in the Backend thread(background thread)
96
virtual
void
mousePressEvent(QMouseEvent *event) = 0;
97
virtual
void
mouseReleaseEvent(QMouseEvent *event) = 0;
98
virtual
void
mouseMoveEvent(QMouseEvent *event) = 0;
99
virtual
void
wheelEvent(QWheelEvent *event) = 0;
100
virtual
void
keyPressEvent(QKeyEvent *event) = 0;
101
virtual
void
keyReleaseEvent(QKeyEvent *event) = 0;
102
virtual
void
InputMethodEvent(QInputMethodEvent* event) = 0;
103
104
// QObject interface
105
public
:
106
virtual
bool
event(QEvent *event)
override
;
107
108
#if HAVE_QT6_RECORD
110
private
Q_SLOTS:
111
// menu
112
virtual
void
slotRecord(
bool
bRecord);
113
virtual
void
slotRecordPause(
bool
bPause);
114
// CFrmView
115
void
slotRecordVideo(
const
QImage& img);
116
Q_SIGNALS:
117
void
sigRecordVideo(
bool
bRecord, qreal nRate = 0);
118
private
:
119
void
RecordVideo(
QRecordVideoEvent
*event);
120
CParameterRecord
* m_pParameterRecord;
121
122
protected
:
123
QVideoFrameInput m_VideoFrameInput;
124
QAudioBufferInput m_AudioBufferInput;
125
QAudioBufferOutput m_AudioBufferOutput;
126
QMediaRecorder m_Recorder;
127
#endif
128
#if HAVE_QT6_MULTIMEDIA
129
QMediaCaptureSession m_CaptureSession;
130
#endif
131
};
CBackendDesktop::sigUpdateRect
void sigUpdateRect(const QRect &r, const QImage &image)
Notify the CFrmView update image.
CBackendDesktop::SetViewer
int SetViewer(CFrmViewer *pView)
Definition
BackendDesktop.cpp:161
CBackendDesktop::sigUpdateRect
void sigUpdateRect(const QImage &image)
Notify the CFrmView update image.
CBackendDesktop::slotClipBoardChanged
virtual void slotClipBoardChanged()=0
Be called when the clip board change.
CBackend::Stop
virtual int Stop()
Stop.
Definition
Backend.cpp:103
CBackend::CBackend
CBackend(COperate *pOperate=nullptr, bool bStopSignal=true)
CBackend.
CFrmViewer
A widget which displays output image from a CConnectDesktop and sends input keypresses and mouse acti...
Definition
FrmViewer.h:48
COperateDesktop
Remote desktop operate interface.
Definition
OperateDesktop.h:69
CParameterRecord
Definition
ParameterRecord.h:13
QRecordVideoEvent
Definition
BackendDesktop.cpp:21
Author: Kang Lin (kl222@126.com)
Copyright (c) Kang Lin Studios All Rights Reserved