#ifndef IPCPLUSWIDGET_H #define IPCPLUSWIDGET_H #include #include #include #include #include #include "net_msg_bus_api/CMbCommunicator.h" #include "CCamInfo.h" #include "COnvifOpt.h" #include #include class Slider; class QPushButton; class QWidget; class QToolButton; class Renderer; class VoiceSlider; class QComboBox; namespace QtAV { class AVPlayer; class WidgetRenderer; class AVError; } namespace Ui { class IpcPlusWidget; } class IpcPlusWidget : public QWidget { Q_OBJECT public: explicit IpcPlusWidget(bool editMode = false,QWidget *parent = 0); ~IpcPlusWidget(); public slots: void setStreamInfo(QString pointTag); void setNodeInfo(int nDomainId,int nAppid); void setNodeName(const QString &nodeName); void setAppName(const QString &appName); void slotInitStream(CCamInfo caminfo, int result); signals: void sigCamInfo(CCamInfo caminfo); private: void init(); void loadCamInfo(); void startStream(); void setCapturePath(); bool ptzContinuousMove(int cmd,double cmd_speed = 1); bool ptzStopMove(); bool ptzGotopreset(const std::string &preset_tag); bool sendOptContinuousMove(int cmd, double cmd_speed = 1); bool sendOptStopMove(); bool sendOptGotopreset(const std::string &preset_tag); void gotoPreset(); void setShowVoice(bool bo); void setVoiceNum(); private slots: void play(); void pause(); void capture(); void leftPressed(); void released(); void rightPressed(); void upPressed(); void downPressed(); void tretchPressed(); void released_1(); void drawPressed(); void farPressed(); void nearPressed(); void bigPressed(); void smallPressed(); void voiceSliderShow(); void slotVoiceClose(int voice); void slotVoiceOpen(int voice); double getCurrentCmdspeed(); void slot_presets_itemChanged(const QString & str); private: QtAV::AVPlayer *m_player; QtAV::VideoRenderer *m_s_vo; CPlayerCfgParser m_playerCfgParser; QPushButton *m_play,*m_pause; QPushButton *m_cap; //抓图 QPushButton *m_voiceOpen,*m_voiceClose; VoiceSlider *m_voiceSlider; QLabel m_ptz,m_tj,m_jj,m_gq,m_preset;//云台 调焦 聚焦 光圈 QPushButton *m_up,*m_down,*m_left,*m_right; //上下左右 QPushButton *m_tretch,*m_draw,*m_far,*m_near,*m_big,*m_small; //伸 缩 远 近 大 小 QWidget *m_control_1; QWidget *m_control_2; QComboBox *m_combox; QPushButton *m_allot; //调用 int m_nDomainId; int m_nAppId; std::string m_strNodeName; std::string m_strAppName; iot_net::CMbCommunicator m_com; //< 摄像头相关信息 QString m_pointTag; //< 摄像头关联点 CCamInfo m_caminfo; int m_voice; Ui::IpcPlusWidget *ui; QThread m_onvifThread; }; #endif // IPCPLUSWIDGET_H