Rabbit Remote Control 0.0.37
Loading...
Searching...
No Matches
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
25
37class PLUGIN_EXPORT CBackendDesktop : public CBackend
38{
39 Q_OBJECT
40public:
41 explicit CBackendDesktop(COperateDesktop *pOperate = nullptr,
42 bool bDirectConnection = true);
43 virtual ~CBackendDesktop();
44
45public Q_SLOTS:
46#if HAVE_QT6_RECORD
47 virtual int Stop() override;
48#endif
53 virtual void slotClipBoardChanged() = 0;
54
55private:
56 int SetConnect(COperateDesktop* pOperate);
57 int SetViewer(CFrmViewer* pView,
58 COperateDesktop* pOperate, bool bDirectConnection);
59
60Q_SIGNALS:
61 void sigSetDesktopSize(int width, int height);
62 void sigServerName(const QString& szName);
63
73 void sigUpdateRect(const QRect& r, const QImage& image);
78 void sigUpdateRect(const QImage& image);
79 void sigUpdateCursor(const QCursor& cursor);
80 void sigUpdateCursorPosition(const QPoint& pos);
81 void sigUpdateLedState(unsigned int state);
82 void sigSetClipboard(QMimeData* data);
83
84public Q_SLOTS:
85 // \~chinese 以下函数在 CFrmView 线程(主线程)中调用
86 // \~english The following functions are called in the CFrmView thread(main thread)
87 virtual void slotMousePressEvent(QMouseEvent* event, QPoint pos);
88 virtual void slotMouseReleaseEvent(QMouseEvent* event, QPoint pos);
89 virtual void slotMouseMoveEvent(QMouseEvent* event, QPoint pos);
90 virtual void slotWheelEvent(QWheelEvent* event, QPoint pos);
91 virtual void slotKeyPressEvent(QKeyEvent *event);
92 virtual void slotKeyReleaseEvent(QKeyEvent *event);
93 virtual void slotInputMethodEvent(QInputMethodEvent* event);
94
95protected:
100 virtual int WakeUp() override;
101 // \~chinese 以下函数在后台线程中调用
102 // \~english The following functions are called in the Backend thread(background thread)
103 virtual void mousePressEvent(QMouseEvent *event);
104 virtual void mouseReleaseEvent(QMouseEvent *event);
105 virtual void mouseMoveEvent(QMouseEvent *event);
106 virtual void wheelEvent(QWheelEvent *event);
107 virtual void keyPressEvent(QKeyEvent *event);
108 virtual void keyReleaseEvent(QKeyEvent *event);
109 virtual void InputMethodEvent(QInputMethodEvent* event);
110
111 // QObject interface
112public:
113 virtual bool event(QEvent *event) override;
114
115#if HAVE_QT6_RECORD
117private Q_SLOTS:
118 // menu
119 virtual void slotRecord(bool bRecord);
120 virtual void slotRecordPause(bool bPause);
121 // CFrmView
122 void slotRecordVideo(const QImage& img);
123Q_SIGNALS:
124 void sigRecordVideo(bool bRecord, qreal nRate = 0);
125private:
126 void RecordVideo(QRecordVideoEvent *event);
127 CParameterRecord* m_pParameterRecord;
128
129protected:
130 QVideoFrameInput m_VideoFrameInput;
131 QAudioBufferInput m_AudioBufferInput;
132 QAudioBufferOutput m_AudioBufferOutput;
133 QMediaRecorder m_Recorder;
134#endif
135#if HAVE_QT6_MULTIMEDIA
136 QMediaCaptureSession m_CaptureSession;
137#endif
138};
Remote desktop interface.
void sigUpdateRect(const QRect &r, const QImage &image)
Notify the CFrmView update image.
void sigUpdateRect(const QImage &image)
Notify the CFrmView update image.
virtual void slotClipBoardChanged()=0
Be called when the clip board change.
Backend interface.
Definition Backend.h:42
virtual int Stop()
Stop.
Definition Backend.cpp:92
virtual int WakeUp()
Wake up.
Definition Backend.cpp:100
A widget which displays output image from a CConnectDesktop and sends input keypresses and mouse acti...
Definition FrmViewer.h:48
Remote desktop operate interface.