玉兔远程控制 0.0.31
载入中...
搜索中...
未找到
ConnecterPlayer.h
1// Author: Kang Lin <kl222@126.com>
2
3#ifndef CONNETERPLAYER_H
4#define CONNETERPLAYER_H
5
6#pragma once
7
8#include <QMenu>
9#include <QMediaPlayer>
10#include <QMediaRecorder>
11#if HAVE_QVideoWidget
12#include "FrmPlayer.h"
13#endif
14
15#include "ConnecterThread.h"
16#include "ParameterPlayer.h"
17
19{
20 Q_OBJECT
21
22public:
23 explicit CConnecterPlayer(CPluginClient *plugin);
24 virtual ~CConnecterPlayer();
25
26 // CConnecter interface
27public:
28 virtual qint16 Version() override;
29 // CConnecterConnect interface
30 virtual CConnect *InstanceConnect() override;
31 virtual int Initial() override;
32 virtual int Clean() override;
33
34Q_SIGNALS:
35 void sigStart(bool bStart);
36 void sigPause(bool bPause);
37 void sigChangePosition(qint64 pos);
38
39Q_SIGNALS:
40 void sigScreenShot();
41public Q_SLOTS:
42 virtual void slotScreenShot() override;
43
44private:
45 virtual QDialog *OnOpenDialogSettings(QWidget *parent) override;
46
47private:
48 CParameterPlayer m_Parameters;
49
50#if HAVE_QVideoWidget
51 CFrmPlayer m_Player;
52public:
53 virtual QWidget *GetViewer() override;
54 QVideoSink *GetVideoSink();
55public Q_SLOTS:
56 void slotPositionChanged(qint64 pos, qint64 duration);
57 void slotPlaybackStateChanged(QMediaPlayer::PlaybackState state);
58 void slotPlaybackError(QMediaPlayer::Error error, const QString &errorString);
59#if HAVE_QT6_RECORD
60 void slotRecordStateChanged(QMediaRecorder::RecorderState state);
61#endif
62#else
63 QAction* m_pPause;
64#endif
65
66};
67
68#endif // CONNETERPLAYER_H
连接接口。它由协议插件实现。 它默认启动一个定时器来开启一个非 Qt 事件循环(就是普通的循环处理)。 详见: Connect()、 slotTimeOut()、 OnProcess() 。 当然,它仍...
Definition Connect.h:45
virtual qint16 Version() override
Version
virtual int Clean() override
Clean parameters and resource
virtual CConnect * InstanceConnect() override
新建 CConnect 对象。它的所有者是调用者, 如果调用者不再使用它,调用者必须负责释放它。
virtual QDialog * OnOpenDialogSettings(QWidget *parent) override
得到设置对话框
virtual int Initial() override
Initial parameters and resource
默认启动一个后台线程。实现一个后台线程处理一个连接。 可与插件接口从 CPluginClient 派生的插件一起使用,用于连接是阻塞模型的。
virtual QWidget * GetViewer() override
得到显示视图
客户端插件接口。用于建立 CConnecter 实例,它由协议插件实现。