-
Notifications
You must be signed in to change notification settings - Fork 0
/
PluginPlayerAPI.h
143 lines (122 loc) · 6.31 KB
/
PluginPlayerAPI.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
/**********************************************************\
Auto-generated PluginPlayerAPI.h
\**********************************************************/
#include <string>
#include <sstream>
#include <boost/weak_ptr.hpp>
#include "JSAPIAuto.h"
#include "BrowserHost.h"
#include "PluginPlayer.h"
#include "MediaPlayer.h"
#include "Base64.h"
#ifndef H_PluginPlayerAPI
#define H_PluginPlayerAPI
class PluginPlayerAPI : public FB::JSAPIAuto
{
public:
////////////////////////////////////////////////////////////////////////////
/// @fn PluginPlayerAPI::PluginPlayerAPI(const PluginPlayerPtr& plugin, const FB::BrowserHostPtr host)
///
/// @brief Constructor for your JSAPI object.
/// You should register your methods, properties, and events
/// that should be accessible to Javascript from here.
///
/// @see FB::JSAPIAuto::registerMethod
/// @see FB::JSAPIAuto::registerProperty
/// @see FB::JSAPIAuto::registerEvent
////////////////////////////////////////////////////////////////////////////
PluginPlayerAPI(const PluginPlayerPtr& plugin, const FB::BrowserHostPtr& host) :
m_plugin(plugin), m_host(host), m_player(), m_valid(false),pluginVersion("3.428")
{
LOG4CPLUS_WARN(getPlugin()->m_rtspClient.pTestLogger,pluginVersion.c_str());
std::ostringstream oStr;
oStr << "Version:" <<pluginVersion<<endl;
this->m_host->htmlLog(oStr.str());
registerMethod("echo", make_method(this, &PluginPlayerAPI::echo));
registerMethod("testEvent", make_method(this, &PluginPlayerAPI::testEvent));
registerMethod("play", make_method(this, &PluginPlayerAPI::play));
registerMethod("stop", make_method(this, &PluginPlayerAPI::stop));
registerMethod("setSize", make_method(this, &PluginPlayerAPI::setSize));
registerMethod ("set_m_szRtspURL", make_method(this, &PluginPlayerAPI::set_m_szRtspURL));//获取rtsp流
registerMethod("returnCoordinate", make_method(this, &PluginPlayerAPI::returnCoordinate));//返回当前画框的坐标
registerMethod("returnAllCoordinate", make_method(this, &PluginPlayerAPI::returnAllCoordinate));//返回所有框的坐标
registerMethod("clearCoordinate", make_method(this, &PluginPlayerAPI::clearCoordinate));//清除方框
registerMethod ("clearAllCoordinate", make_method(this, &PluginPlayerAPI::clearAllCoordinate));//清楚所有区域
registerMethod ("captureScreen", make_method(this, &PluginPlayerAPI::captureScreenM));//抓图
registerMethod ("set_Areas", make_method(this, &PluginPlayerAPI::set_Areas));//设置区域
registerMethod("isAllowDrawFrame", make_method(this, &PluginPlayerAPI::isAllowDrawFrame));//是否允许画框
registerMethod ("recordVideo", make_method (this, &PluginPlayerAPI::recordVideo));//录像
registerMethod ("setDeviceStatus", make_method (this, &PluginPlayerAPI::setDeviceStatus));//设置设备状态
registerMethod ("ShowSelectedFrame", make_method (this, &PluginPlayerAPI::ShowSelectedFrame));//是否显示选择后的框
registerMethod ("ShowBullseye", make_method (this, &PluginPlayerAPI::ShowBullseye));//是否显示靶心
registerMethod ("getPluginVersion", make_method (this, &PluginPlayerAPI::getPluginVersion));//返回插件版本号
registerMethod ("setPole", make_method (this, &PluginPlayerAPI::setPole));//设置杆塔
registerMethod ("beforeSetURL", make_method (this, &PluginPlayerAPI::BeforeSetURL));////是否在设置url之前的10s
registerMethod ("refreshTips", make_method (this, &PluginPlayerAPI::RefreshTips));//刷新提示信息,最小化或改变浏览器大小会导致提示信息丢失,通过刷新提示来重现提示
registerMethod ("showMessage", make_method (this, &PluginPlayerAPI::ShowMessage));//显示信息
registerMethod ("getResolution", make_method (this, &PluginPlayerAPI::getResolution));//返回分辨率
// Read-write property
registerProperty("testString",make_property(this,&PluginPlayerAPI::get_testString,&PluginPlayerAPI::set_testString));
// Read-only property
registerProperty("version",make_property(this,&PluginPlayerAPI::get_version));
}
///////////////////////////////////////////////////////////////////////////////
/// @fn PluginPlayerAPI::~PluginPlayerAPI()
///
/// @brief Destructor. Remember that this object will not be released until
/// the browser is done with it; this will almost definitely be after
/// the plugin is released.
///////////////////////////////////////////////////////////////////////////////
virtual ~PluginPlayerAPI() {
};
PluginPlayerPtr getPlugin();
void setWindow(FB::PluginWindow*);
// Read/Write property ${PROPERTY.ident}
std::string get_testString();
void set_testString(const std::string& val);
// Read-only property ${PROPERTY.ident}
std::string get_version();
// Method echo
FB::variant echo(const FB::variant& msg);
FB::variant getPlayerStatus(const FB::variant& msg);
// Event helpers
FB_JSAPI_EVENT(getPlayerStatus, 3, (const FB::variant&,const FB::variant&,const FB::variant&));
FB_JSAPI_EVENT(echo, 2, (const FB::variant&, const int));
// Method test-event
void testEvent(const FB::variant& events,const FB::variant& msg);
void play();
void stop();
int setSize(int width,int height);
std::string get_m_szRtspURL();
void set_m_szRtspURL(const std::string& val);
string returnCoordinate();
vector<string> returnAllCoordinate();
void clearCoordinate();
void captureScreenM();
void clearAllCoordinate();
void RefreshTips();//刷新提示信息
void ShowMessage(std::string val);//显示信息
void set_Areas(FB::VariantList& areas);
void isAllowDrawFrame(boolean allow);
void BeforeSetURL(boolean enable);
void recordVideo(const std::string& val);
void setDeviceStatus(std::string val);
BOOL StringToWString(const std::string &str,std::wstring &wstr);
void ShowSelectedFrame(boolean showFrame);
void ShowBullseye(boolean showBullseye);
void setPole(const std::string& pole);
std::string getPluginVersion();
std::string getResolution();
private:
PluginPlayerWeakPtr m_plugin;
FB::BrowserHostPtr m_host;
std::string m_testString;
HWND m_hWnd;
typedef boost::shared_ptr<MediaPlayer> MediaPlayerPtr;
MediaPlayerPtr m_player;
bool m_valid;
string m_szRtspURL;
HANDLE handleStartPlay;
std::string pluginVersion;
};
#endif // H_PluginPlayerAPI