李勇

1.会议模块增加对外接口

@@ -73,7 +73,7 @@ return /******/ (function(modules) { // webpackBootstrap @@ -73,7 +73,7 @@ return /******/ (function(modules) { // webpackBootstrap
73 /******/ } 73 /******/ }
74 74
75 /******/ var hotApplyOnUpdate = true; 75 /******/ var hotApplyOnUpdate = true;
76 -/******/ var hotCurrentHash = "f35e06ee9a27d11fe730"; // eslint-disable-line no-unused-vars 76 +/******/ var hotCurrentHash = "a3d78cdd8a1339c5b14c"; // eslint-disable-line no-unused-vars
77 /******/ var hotCurrentModuleData = {}; 77 /******/ var hotCurrentModuleData = {};
78 /******/ var hotCurrentParents = []; // eslint-disable-line no-unused-vars 78 /******/ var hotCurrentParents = []; // eslint-disable-line no-unused-vars
79 79
@@ -688,7 +688,7 @@ return /******/ (function(modules) { // webpackBootstrap @@ -688,7 +688,7 @@ return /******/ (function(modules) { // webpackBootstrap
688 688
689 var _WhiteBoardApe2 = _interopRequireDefault(_WhiteBoardApe); 689 var _WhiteBoardApe2 = _interopRequireDefault(_WhiteBoardApe);
690 690
691 - var _EngineUtils = __webpack_require__(35); 691 + var _EngineUtils = __webpack_require__(34);
692 692
693 var _EngineUtils2 = _interopRequireDefault(_EngineUtils); 693 var _EngineUtils2 = _interopRequireDefault(_EngineUtils);
694 694
@@ -809,6 +809,7 @@ return /******/ (function(modules) { // webpackBootstrap @@ -809,6 +809,7 @@ return /******/ (function(modules) { // webpackBootstrap
809 _this.leaveClass = _this._leaveClass; 809 _this.leaveClass = _this._leaveClass;
810 _this.getMcuClientStatus = _this._getMcuClientStatus; 810 _this.getMcuClientStatus = _this._getMcuClientStatus;
811 _this.getClassDetail = _this._getClassDetail; 811 _this.getClassDetail = _this._getClassDetail;
  812 + _this.sendUpdaterClass = _this._sendUpdaterClass;
812 813
813 //chatApe 814 //chatApe
814 _this.sendChatMsg = _this._sendChatMsg; 815 _this.sendChatMsg = _this._sendChatMsg;
@@ -1177,6 +1178,8 @@ return /******/ (function(modules) { // webpackBootstrap @@ -1177,6 +1178,8 @@ return /******/ (function(modules) { // webpackBootstrap
1177 // } 1178 // }
1178 //} 1179 //}
1179 1180
  1181 +
  1182 + //ConferApe
1180 // 参会处理 1183 // 参会处理
1181 1184
1182 }, { 1185 }, {
@@ -1188,7 +1191,17 @@ return /******/ (function(modules) { // webpackBootstrap @@ -1188,7 +1191,17 @@ return /******/ (function(modules) { // webpackBootstrap
1188 }; 1191 };
1189 this._emit(msg.type, msg); 1192 this._emit(msg.type, msg);
1190 } 1193 }
  1194 + //更新会议数据
  1195 +
  1196 + }, {
  1197 + key: '_sendUpdaterClass',
  1198 + value: function _sendUpdaterClass(_param) {
  1199 + if (_confer_ape) {
  1200 + _confer_ape.sendUpdaterClassInfo(_param);
  1201 + }
  1202 + }
1191 1203
  1204 + //ChatApe
1192 // 发送聊天消息 1205 // 发送聊天消息
1193 1206
1194 }, { 1207 }, {
@@ -1544,36 +1557,15 @@ return /******/ (function(modules) { // webpackBootstrap @@ -1544,36 +1557,15 @@ return /******/ (function(modules) { // webpackBootstrap
1544 } 1557 }
1545 } 1558 }
1546 } 1559 }
1547 -  
1548 - /* _emit(eid, data) {  
1549 - if (eid) {  
1550 - //eid=* broadcast  
1551 - let asteriskStub =this.MAPS['*'];  
1552 - if (asteriskStub && asteriskStub.length) {  
1553 - asteriskStub.forEach(function (elistener) {  
1554 - elistener(eid, data);  
1555 - })  
1556 - }  
1557 -  
1558 - // eid= normal  
1559 - let stub = this.MAPS[eid];  
1560 - if (stub && stub.length) {  
1561 - stub.forEach(function (elistener) {  
1562 - elistener(data);  
1563 - });  
1564 - }  
1565 - }  
1566 - }*/  
1567 -  
1568 }, { 1560 }, {
1569 key: '_emit', 1561 key: '_emit',
1570 - value: function _emit(eid, data, option) { 1562 + value: function _emit(eid, data) {
1571 if (eid) { 1563 if (eid) {
1572 //eid=* broadcast 1564 //eid=* broadcast
1573 var asteriskStub = this.MAPS['*']; 1565 var asteriskStub = this.MAPS['*'];
1574 if (asteriskStub && asteriskStub.length) { 1566 if (asteriskStub && asteriskStub.length) {
1575 asteriskStub.forEach(function (elistener) { 1567 asteriskStub.forEach(function (elistener) {
1576 - elistener(eid, data, option); 1568 + elistener(eid, data);
1577 }); 1569 });
1578 } 1570 }
1579 1571
@@ -1581,7 +1573,7 @@ return /******/ (function(modules) { // webpackBootstrap @@ -1581,7 +1573,7 @@ return /******/ (function(modules) { // webpackBootstrap
1581 var stub = this.MAPS[eid]; 1573 var stub = this.MAPS[eid];
1582 if (stub && stub.length) { 1574 if (stub && stub.length) {
1583 stub.forEach(function (elistener) { 1575 stub.forEach(function (elistener) {
1584 - elistener(data, option); 1576 + elistener(data);
1585 }); 1577 });
1586 } 1578 }
1587 } 1579 }
@@ -3241,7 +3233,7 @@ return /******/ (function(modules) { // webpackBootstrap @@ -3241,7 +3233,7 @@ return /******/ (function(modules) { // webpackBootstrap
3241 3233
3242 var _ArrayBufferUtil2 = _interopRequireDefault(_ArrayBufferUtil); 3234 var _ArrayBufferUtil2 = _interopRequireDefault(_ArrayBufferUtil);
3243 3235
3244 - var _base64Js = __webpack_require__(34); 3236 + var _base64Js = __webpack_require__(35);
3245 3237
3246 var _base64Js2 = _interopRequireDefault(_base64Js); 3238 var _base64Js2 = _interopRequireDefault(_base64Js);
3247 3239
@@ -3249,7 +3241,7 @@ return /******/ (function(modules) { // webpackBootstrap @@ -3249,7 +3241,7 @@ return /******/ (function(modules) { // webpackBootstrap
3249 3241
3250 var _GlobalConfig2 = _interopRequireDefault(_GlobalConfig); 3242 var _GlobalConfig2 = _interopRequireDefault(_GlobalConfig);
3251 3243
3252 - var _EngineUtils = __webpack_require__(35); 3244 + var _EngineUtils = __webpack_require__(34);
3253 3245
3254 var _EngineUtils2 = _interopRequireDefault(_EngineUtils); 3246 var _EngineUtils2 = _interopRequireDefault(_EngineUtils);
3255 3247
@@ -14261,7 +14253,7 @@ return /******/ (function(modules) { // webpackBootstrap @@ -14261,7 +14253,7 @@ return /******/ (function(modules) { // webpackBootstrap
14261 Object.defineProperty(exports, "__esModule", { 14253 Object.defineProperty(exports, "__esModule", {
14262 value: true 14254 value: true
14263 }); 14255 });
14264 - var _default = "\n//start\n// pdu_def.proto\n\n// syntax = \"proto3\";\n\noption optimize_for = LITE_RUNTIME;\nenum RCPduPriority_E {\n DP_TOP = 0;\n DP_HIGH = 1;\n DP_MEDIUM = 2;\n DP_LOW = 3;\n}\n\nenum RCPduSegment_E {\n SEG_BEGIN = 0;\n SEG_END = 1;\n SEG_ONCE = 2;\n}\n\nenum RCPduTokenStatus_E {\n TS_NOT_IN_USE = 0;\n TS_SELF_GRABBED = 1;\n TS_OTHER_GRABBED = 2;\n TS_SELF_INHIBITED = 3;\n TS_OTHER_INHIBITED = 4;\n TS_SELF_RECIPIENT = 5;\n TS_SELF_GIVING = 6;\n TS_OTHER_GIVING = 7;\n}\n\nenum RCPduType_E {\n// GCC PDU\n RCPDU_CONNECT_PROVIDER_REQUEST = 0;\n RCPDU_CONNECT_PROVIDER_RESPONSE = 1;\n RCPDU_CONFERENCE_JOIN_REQUEST = 2;\n RCPDU_CONFERENCE_JOIN_RESPONSE = 3;\n RCPDU_CONFERENCE_INVITE_REQUEST = 10;\n RCPDU_CONFERENCE_INVITE_RESPONSE = 11;\n RCPDU_CONFERENCE_LOCK_REQUEST = 20;\n RCPDU_CONFERENCE_LOCK_RESPONSE = 21;\n RCPDU_CONFERENCE_LOCK_INDICATION = 22;\n RCPDU_CONFERENCE_UNLOCK_REQUEST = 30;\n RCPDU_CONFERENCE_UNLOCK_RESPONSE = 31;\n RCPDU_CONFERENCE_UNLOCK_INDICATION = 32;\n RCPDU_CONFERENCE_LEAVE_REQUEST = 39;\n RCPDU_CONFERENCE_TERMINATE_REQUEST = 40;\n RCPDU_CONFERENCE_TERMINATE_RESPONSE = 41;\n RCPDU_CONFERENCE_TERMINATE_INDICATION = 42;\n RCPDU_CONFERENCE_EJECT_USER_REQUEST = 50;\n RCPDU_CONFERENCE_EJECT_USER_RESPONSE = 51;\n RCPDU_CONFERENCE_EJECT_USER_INDICATION = 52;\n RCPDU_ROSTER_UPDATE_INDICATION = 60;\n RCPDU_REGISTRY_UPDATE_REQUEST = 70; // INCLUDE ALL OBJS OPERATION\n RCPDU_REGISTRY_UPDATE_RESPONSE = 71;\n RCPDU_REGISTRY_UPDATE_INDICATION = 72;\n RCPDU_FUNCTION_NOT_SUPPORTED_RESPONSE = 80;\n\n // MCS PDU\n RCPDU_SESSION_JOIN_REQUEST = 90;\n RCPDU_SESSION_JOIN_RESPONSE = 91;\n RCPDU_CHANNEL_GRAB_REQUEST = 100;\n RCPDU_CHANNEL_GRAB_RESPONSE = 101;\n RCPDU_CHANNEL_GRAB_INDICATION = 102;\n RCPDU_CHANNEL_JOIN_REQUEST = 103;\n RCPDU_CHANNEL_JOIN_RESPONSE = 104;\n RCPDU_CHANNEL_LEAVE_REQUEST = 105;\n RCPDU_CHANNEL_RELEASE_REQUEST = 106;\n RCPDU_CHANNEL_RELEASE_INDICATION = 107;\n RCPDU_SEND_DATA_REQUEST = 120;\n RCPDU_SEND_DATA_INDICATION = 121;\n RCPDU_UNIFORM_SEND_DATA_REQUEST = 125;\n RCPDU_UNIFORM_SEND_DATA_INDICATION = 126;\n RCPDU_TOKEN_GRAB_REQUEST = 130;\n RCPDU_TOKEN_GRAB_CONFIRM = 131;\n RCPDU_TOKEN_INHIBIT_REQUEST = 132;\n RCPDU_TOKEN_INHIBIT_CONFIRM = 133;\n RCPDU_TOKEN_GIVE_REQUEST = 134;\n RCPDU_TOKEN_GIVE_INDICATION = 135;\n RCPDU_TOKEN_GIVE_RESPONSE = 136;\n RCPDU_TOKEN_GIVE_CONFIRM = 137;\n RCPDU_TOKEN_PLEASE_REQUEST = 138;\n RCPDU_TOKEN_PLEASE_INDICATION = 139;\n RCPDU_TOKEN_RELEASE_REQUEST = 140;\n RCPDU_TOKEN_RELEASE_CONFIRM = 141;\n RCPDU_TOKEN_TEST_REQUEST = 142;\n RCPDU_TOKEN_TEST_CONFIRM = 143;\n\n // Registry PDU\n RCPDU_REG_REGISTER_KEY = 200;\n RCPDU_REG_UNREGISTER_KEY = 201;\n RCPDU_REG_REGISTER_ROSTER = 202;\n RCPDU_REG_REGISTER_TOKEN = 203;\n RCPDU_REG_REGISTER_PARAMETER = 204;\n RCPDU_REG_REGISTER_COUNTER = 205;\n RCPDU_REG_REGISTER_TABLE = 206;\n RCPDU_REG_REGISTER_CACHE = 207;\n RCPDU_REG_REGISTER_OBJ = 208;\n RCPDU_REG_UNREGISTER_OBJ = 209;\n RCPDU_REG_UPDATE_OBJ = 210;\n RCPDU_REG_ADAPTER = 211;\n RCPDU_REG_CLEANUP_NODE = 212;\n RCPDU_REG_REGISTER_QUEUE = 213;\n\n // Registry Obj update PDU\n RCPDU_REG_TABLE_INSERT_PDU = 230;\n RCPDU_REG_TABLE_DELETE_PDU = 231;\n RCPDU_REG_TABLE_UPDATE_PDU = 232;\n RCPDU_REG_ROSTER_INSERT_PDU = 240;\n RCPDU_REG_ROSTER_DELETE_PDU = 241;\n RCPDU_REG_ROSTER_UPDATE_PDU = 242;\n RCPDU_REG_PARAMETER_UPDATE_PDU = 250;\n RCPDU_REG_QUEUE_INSERT_PDU = 255;\n RCPDU_REG_QUEUE_DELETE_PDU = 256;\n RCPDU_REG_QUEUE_UPDATE_PDU = 257;\n\n // data\n RCPDU_CONFERENCE_SEND_DATA_REQUEST = 259;\n RCPDU_VIDEO_SEND_DATA_REQUEST = 260;\n RCPDU_AUDIO_SEND_DATA_REQUEST = 261;\n RCPDU_GIFT_SEND_DATA_REQUEST = 262;\n RCPDU_CHAT_SEND_DATA_REQUEST = 263;\n RCPDU_VOTING_POLL_RECORD = 265;\n\n // Registry resource request or response PDU\n RCPDU_REG_REQUEST_OBJ = 290;\n RCPDU_REG_RESPONSE_OBJ = 291;\n RCPDU_REG_COUNTER_REQUEST_PDU = 292;\n RCPDU_REG_COUNTER_RESPONSE_PDU = 293;\n\n // Index exchange\n RCPDU_INDEX_ADAPTER = 300;\n RCPDU_INDEX_SERVER_USERS = 301;\n RCPDU_INDEX_CONFERENCE_USER_JOINED = 302;\n RCPDU_INDEX_CONFERENCE_USER_EXITED = 303;\n RCPDU_INDEX_CONFERENCE_USERS = 304;\n}\n\nenum RCPduNodeType_E {\n NT_TERMINAL = 0;\n NT_MULTIPORT_TERMINAL = 1;\n NT_MCU = 2;\n}\n\nenum RCPduReason_E {\n RSN_USERINITIATED = 0;\n RSN_DISCONNECTED = 1;\n RSN_SUPER_LEFT = 2;\n}\n\nenum RCPduResult_E {\n RET_SUCCESS = 0;\n RET_USER_REJECTED = 1;\n RET_INVALID_CONFERENCE = 2;\n RET_INVALID_PASSWORD = 3;\n RET_INVALID_CONVENER_PASSWORD = 4;\n RET_CHALLENGE_RESPONSE_REQUIRED = 5;\n RET_INVALID_CHALLENGE_RESPONSE = 6;\n RET_NO_CONNECTION = 7;\n RET_FULL_CAPACITY = 8;\n}\n\nenum RCPduNodeCategory_E {\n NC_CONVENTIONAL = 0;\n NC_COUNTED = 1;\n NC_ANONYMOUS = 2;\n}\n\nmessage RCConferenceDescriptorPdu {\n required uint32 id = 1;\n required bytes name = 2;\n optional bytes description = 3;\n //optional string net_address = 4;\n optional uint32 mode = 4;\n optional string password = 5;\n optional uint32 capacity = 6;\n optional bytes user_data = 7;\n}\n\nmessage RCNodeRecordPdu {\n required uint32 id = 1;\n optional uint32 superior_node = 2;\n required RCPduNodeType_E type = 3;\n required string name = 4;\n required uint32 capability = 5;\n optional string net_address = 6;\n optional RCPduNodeCategory_E category = 7;\n}\n\nmessage RCApplicationRecordPdu {\n required uint32 id = 1; // session id\n required string name = 2;\n required string tag = 3;\n repeated uint32 channel_ids = 4 [packed = true];\n optional uint32 capability = 5;\n}\n\n//reg.proto\n\noption optimize_for = LITE_RUNTIME;\nmessage RCRegistryRegisterKeyPdu {\n required RCPduType_E type = 1 [default = RCPDU_REG_REGISTER_KEY];\n required uint32 id = 2;\n required string name = 3;\n required string tag = 4;\n optional bytes user_data = 5;\n}\n\nmessage RCRegistryUnregisterKeyPdu {\n optional RCPduType_E type = 1 [default = RCPDU_REG_UNREGISTER_KEY];\n required uint32 key_id = 2;\n}\n\nmessage RCRegistryRegisterObjPdu {\n optional RCPduType_E type = 1;\n required uint32 obj_id = 2;\n required string name = 3;\n required string tag = 4;\n optional uint32 owner = 5;\n optional bytes user_data = 6;\n}\n\nmessage RCRegistryUnregisterObjPdu {\n optional RCPduType_E type = 1 [default = RCPDU_REG_UNREGISTER_OBJ];\n required uint32 obj_id = 2;\n}\n\nmessage RCRegistryUpdateObjPdu {\n optional RCPduType_E type = 1 [default = RCPDU_REG_UPDATE_OBJ];\n required RCPduType_E sub_type = 2;\n required uint32 obj_id = 3;\n required bytes user_data = 4;\n}\n\nmessage RCAdapterItemPdu {\n required RCPduType_E type = 1;\n required bytes item_data = 2;\n}\n\n// adapter pdu that used to package a list of pdu.\nmessage RCAdapterPdu {\n optional RCPduType_E type = 1 [default = RCPDU_REG_ADAPTER];\n repeated RCAdapterItemPdu item = 2;\n}\n\n// table operation pdu\nmessage RCRegistryTableItemPdu {\n required uint32 item_idx = 1;\n required uint32 owner = 2;\n required bytes item_data = 3;\n optional uint32 register_obj_id=4;\n}\n\nmessage RCRegistryTableInsertItemPdu {\n optional RCPduType_E type = 1 [default = RCPDU_REG_TABLE_INSERT_PDU];\n repeated RCRegistryTableItemPdu items = 2;\n}\n\nmessage RCRegistryTableDeleteItemPdu {\n optional RCPduType_E type = 1 [default = RCPDU_REG_TABLE_DELETE_PDU];\n repeated uint32 item_idx = 2;\n}\n\nmessage RCRegistryTableUpdateItemPdu {\n optional RCPduType_E type = 1 [default = RCPDU_REG_TABLE_UPDATE_PDU];\n repeated RCRegistryTableItemPdu items = 2;\n}\n\n// roster operation pdu\nmessage RCRegistryRosterItemPdu {\n required uint32 node_id = 1;\n required bytes node_data = 2;\n}\nmessage RCRegistryWBItemPdu {\n required uint32 node_id = 1;\n required bytes node_data = 2;\n}\nmessage RCRegistryRosterInsertItemPdu {\n optional RCPduType_E type = 1 [default = RCPDU_REG_ROSTER_INSERT_PDU];\n repeated RCRegistryRosterItemPdu items = 2;\n}\n\nmessage RCRegistryRosterDeleteItemPdu {\n optional RCPduType_E type = 1 [default = RCPDU_REG_ROSTER_DELETE_PDU];\n required uint32 node_id = 2;\n}\n\nmessage RCRegistryRosterUpdateItemPdu {\n optional RCPduType_E type = 1 [default = RCPDU_REG_ROSTER_UPDATE_PDU];\n repeated RCRegistryRosterItemPdu items = 2;\n}\n\n//message RCCleanupNodePdu\n//{\n// optional RCPduType_E type = 1 [default = RCPDU_REG_CLEANUP_NODE];\n// required uint32 node_id = 2;\n//}\n\n// parameter operation pdu\nmessage RCRegistryParameterUpdatePdu {\n optional RCPduType_E type = 1 [default = RCPDU_REG_PARAMETER_UPDATE_PDU];\n required uint32 value = 2 [default = 0];\n optional uint32 begin_bit = 3 [default = 31];\n optional uint32 end_bit = 4;\n}\n\n// queue operation pdu\nmessage RCRegistryQueueItemPdu {\n required uint32 owner = 1;\n required uint32 item_id = 2;\n optional bytes item_data = 3;\n optional uint32 item_idx = 4;\n}\n\nmessage RCRegstryQueueInsertItemPdu {\n optional RCPduType_E type = 1 [default = RCPDU_REG_QUEUE_INSERT_PDU];\n repeated RCRegistryQueueItemPdu items = 2;\n}\n\nmessage RCRegistryQueueDeleteItemPdu {\n optional RCPduType_E type = 1 [default = RCPDU_REG_QUEUE_DELETE_PDU];\n required uint32 item_id = 2;\n}\n\nmessage RCRegistryQueueUpdateItemPdu {\n optional RCPduType_E type = 1 [default = RCPDU_REG_QUEUE_UPDATE_PDU];\n repeated RCRegistryQueueItemPdu items = 2;\n}\n\nmessage RCRegistryRequestObjPdu {\n optional RCPduType_E type = 1 [default = RCPDU_REG_REQUEST_OBJ];\n required RCPduType_E sub_type = 2;\n required uint32 obj_id = 3;\n required bytes user_data = 4;\n}\n\nmessage RCRegistryResponseObjPdu {\n optional RCPduType_E type = 1 [default = RCPDU_REG_RESPONSE_OBJ];\n required RCPduType_E sub_type = 2;\n required uint32 obj_id = 3;\n required bytes user_data = 4;\n}\n\nmessage RCRegistryCounterRequestPdu {\n optional RCPduType_E type = 1 [default = RCPDU_REG_COUNTER_REQUEST_PDU];\n required uint32 count = 2;\n}\n\nmessage RCRegistryCounterResponsePdu {\n optional RCPduType_E type = 1 [default = RCPDU_REG_COUNTER_RESPONSE_PDU];\n required uint32 start = 2;\n required uint32 end = 3;\n}\n\n// mcs\noption optimize_for = LITE_RUNTIME;\n\n// Session management\nmessage RCSessionJoinRequestPdu {\n required RCPduType_E type = 1 [default = RCPDU_SESSION_JOIN_REQUEST];\n required uint32 id = 2;\n required string name = 3;\n required string tag = 4;\n optional bytes session_data = 5; //\u805A\u5408\u5728\u4E00\u8D77\u7684registry\u4FE1\u606F\n}\n\nmessage RCSessionJoinResponsePdu {\n optional RCPduType_E type = 1 [default = RCPDU_SESSION_JOIN_RESPONSE];\n required uint32 id = 2;\n optional bytes response_data = 3;\n}\n\n// Channel management\nmessage RCChannelGrabRequestPdu {\n optional RCPduType_E type = 1 [default = RCPDU_CHANNEL_GRAB_REQUEST];\n required uint32 initiator = 2;\n required uint32 channel_id = 3;\n}\n\nmessage RCChannelGrabResponsePdu {\n optional RCPduType_E type = 1 [default = RCPDU_CHANNEL_GRAB_RESPONSE];\n required uint32 initiator = 2;\n required uint32 requested_channel_id = 3;\n required RCPduResult_E result = 4;\n optional uint32 channel_id = 5;\n}\n\nmessage RCChannelGrabIndicationPdu {\n optional RCPduType_E type = 1 [default = RCPDU_CHANNEL_GRAB_INDICATION];\n required uint32 initiator = 2;\n optional uint32 channel_id = 3;\n}\n\nmessage RCChannelJoinRequestPdu {\n required RCPduType_E type = 1 [default = RCPDU_CHANNEL_JOIN_REQUEST];\n required uint32 initiator = 2;\n required uint32 channel_id = 3;\n}\n\nmessage RCChannelJoinResponsePdu {\n optional RCPduType_E type = 1 [default = RCPDU_CHANNEL_JOIN_RESPONSE];\n required uint32 initiator = 2;\n required uint32 requested_channel_id = 3;\n required RCPduResult_E result = 4;\n}\n\nmessage RCChannelLeaveRequestPdu {\n optional RCPduType_E type = 1 [default = RCPDU_CHANNEL_LEAVE_REQUEST];\n required uint32 initiator = 2;\n repeated uint32 channel_ids = 3 [packed = true];\n}\n\nmessage RCChannelReleaseRequestPdu {\n optional RCPduType_E type = 1 [default = RCPDU_CHANNEL_RELEASE_REQUEST];\n required uint32 initiator = 2;\n required uint32 channel_id = 3;\n}\n\nmessage RCChannelReleaseIndicationPdu {\n optional RCPduType_E type = 1\n [default = RCPDU_CHANNEL_RELEASE_INDICATION];\n required uint32 initiator = 2;\n required uint32 channel_id = 3;\n}\n\n// Data transfer\nmessage RCSendDataPdu {\n required RCPduType_E type = 1 [default = RCPDU_SEND_DATA_REQUEST];\n required RCPduType_E sub_type = 2;\n required uint32 initiator = 3;\n required uint32 conf_id = 4;\n required uint32 session_id = 5;\n required uint32 channel_id = 6;\n required bool upward = 7;\n required bool reliability = 8;\n required RCPduPriority_E priority = 9;\n required bytes data = 10;\n optional uint32 peer = 11;\n optional RCPduSegment_E seg = 12;\n optional uint32 total_size = 13;\n optional uint32 site_id = 14;\n optional string user_id = 15;\n optional string user_name = 16;\n optional string user_role = 17;\n optional string device_type = 18;\n optional string site = 19;\n}\n\n// Token management\nmessage RCTokenGrabRequestPdu {\n optional RCPduType_E type = 1 [default = RCPDU_TOKEN_GRAB_REQUEST];\n required uint32 initiator = 2;\n required uint32 token_id = 3;\n}\n\nmessage RCTokenGrabConfirmPdu {\n optional RCPduType_E type = 1 [default = RCPDU_TOKEN_GRAB_CONFIRM];\n required uint32 initiator = 2;\n required uint32 token_id = 3;\n required RCPduResult_E result = 4;\n required RCPduTokenStatus_E status = 5;\n}\n\nmessage RCTokenInhibitRequestPdu {\n optional RCPduType_E type = 1 [default = RCPDU_TOKEN_INHIBIT_REQUEST];\n required uint32 initiator = 2;\n required uint32 token_id = 3;\n}\n\nmessage RCTokenInhibitConfirmPdu {\n optional RCPduType_E type = 1 [default = RCPDU_TOKEN_INHIBIT_CONFIRM];\n required uint32 initiator = 2;\n required uint32 token_id = 3;\n required RCPduResult_E result = 4;\n required RCPduTokenStatus_E status = 5;\n}\n\nmessage RCTokenGiveRequestPdu {\n optional RCPduType_E type = 1 [default = RCPDU_TOKEN_GIVE_REQUEST];\n required uint32 initiator = 2;\n required uint32 token_id = 3;\n required uint64 recipient = 4;\n}\n\nmessage RCTokenGiveIndicationPdu {\n optional RCPduType_E type = 1 [default = RCPDU_TOKEN_GIVE_INDICATION];\n required uint32 initiator = 2;\n required uint32 token_id = 3;\n required uint64 recipient = 4;\n}\n\nmessage RCTokenGiveResponsePdu {\n optional RCPduType_E type = 1 [default = RCPDU_TOKEN_GIVE_RESPONSE];\n required uint32 token_id = 2;\n required uint64 recipient = 3;\n required RCPduResult_E result = 4;\n}\n\nmessage RCTokenGiveConfirmPdu {\n optional RCPduType_E type = 1 [default = RCPDU_TOKEN_GIVE_CONFIRM];\n required uint32 token_id = 2;\n required uint64 recipient = 3;\n required RCPduResult_E result = 4;\n required RCPduTokenStatus_E status = 5;\n}\n\nmessage RCTokenPleaseRequestPdu {\n optional RCPduType_E type = 1 [default = RCPDU_TOKEN_PLEASE_REQUEST];\n required uint32 initiator = 2;\n required uint32 token_id = 3;\n}\n\nmessage RCTokenPleaseIndicationPdu {\n optional RCPduType_E type = 1 [default = RCPDU_TOKEN_PLEASE_INDICATION];\n required uint32 initiator = 2;\n required uint32 token_id = 3;\n}\n\nmessage RCTokenReleaseRequestPdu {\n optional RCPduType_E type = 1 [default = RCPDU_TOKEN_RELEASE_REQUEST];\n required uint32 initiator = 2;\n required uint32 token_id = 3;\n}\n\nmessage RCTokenReleaseConfirmPdu {\n optional RCPduType_E type = 1 [default = RCPDU_TOKEN_TEST_REQUEST];\n required uint32 initiator = 2;\n required uint32 token_id = 3;\n required RCPduResult_E result = 4;\n required RCPduTokenStatus_E status = 5;\n}\n\nmessage RCTokenTestRequestPdu {\n optional RCPduType_E type = 1 [default = RCPDU_TOKEN_TEST_REQUEST];\n required uint32 initiator = 2;\n required uint32 token_id = 3;\n}\n\nmessage RCTokenTestConfirmPdu {\n optional RCPduType_E type = 1 [default = RCPDU_TOKEN_TEST_CONFIRM];\n required uint32 initiator = 2;\n required uint32 token_id = 3;\n required RCPduTokenStatus_E status = 4;\n}\n\n//gcc.proto\n\noption optimize_for = LITE_RUNTIME;\nmessage RCConferenceJoinRequestPdu {\n required RCPduType_E type = 1 [default = RCPDU_CONFERENCE_JOIN_REQUEST];\n required uint32 initiator = 2;\n required RCPduNodeType_E node_type = 3;\n required RCConferenceDescriptorPdu conf_desc = 4;\n}\n\nmessage RCConferenceJoinResponsePdu {\n optional RCPduType_E type = 1 [default = RCPDU_CONFERENCE_JOIN_RESPONSE];\n required uint32 conf_id = 2;\n required RCPduResult_E result = 3;\n optional RCConferenceDescriptorPdu conf_desc = 4;\n}\n\nmessage RCConferenceInviteRequestPdu {\n optional RCPduType_E type = 1 [default = RCPDU_CONFERENCE_INVITE_REQUEST];\n required uint32 initiator = 2;\n required RCConferenceDescriptorPdu conf_desc = 3;\n}\n\nmessage RCConferenceInviteResponsePdu {\n optional RCPduType_E type = 1\n [default = RCPDU_CONFERENCE_INVITE_RESPONSE];\n required RCPduResult_E result = 2;\n optional bytes user_data = 3;\n}\n\nmessage RCConferenceLockRequestPdu {\n optional RCPduType_E type = 1 [default = RCPDU_CONFERENCE_LOCK_REQUEST];\n}\n\nmessage RCConferenceLockResponsePdu {\n optional RCPduType_E type = 1 [default = RCPDU_CONFERENCE_LOCK_RESPONSE];\n required RCPduResult_E result = 2;\n}\n\nmessage RCConferenceLockIndicationPdu {\n optional RCPduType_E type = 1\n [default = RCPDU_CONFERENCE_LOCK_INDICATION];\n}\n\nmessage RCConferenceUnlockRequestPdu {\n optional RCPduType_E type = 1 [default = RCPDU_CONFERENCE_UNLOCK_REQUEST];\n}\n\nmessage RCConferenceUnlockResponsePdu {\n optional RCPduType_E type = 1\n [default = RCPDU_CONFERENCE_UNLOCK_RESPONSE];\n required RCPduResult_E result = 2;\n}\n\nmessage RCConferenceUnlockIndicationPdu {\n optional RCPduType_E type = 1\n [default = RCPDU_CONFERENCE_UNLOCK_INDICATION];\n}\n\nmessage RCConferenceLeaveRequestPdu {\n optional RCPduType_E type = 1 [default = RCPDU_CONFERENCE_LEAVE_REQUEST];\n required RCPduReason_E reason = 2;\n}\n\nmessage RCConferenceTerminateRequestPdu {\n optional RCPduType_E type = 1\n [default = RCPDU_CONFERENCE_TERMINATE_REQUEST];\n required RCPduReason_E reason = 2;\n}\n\nmessage RCConferenceTerminateResponsePdu {\n optional RCPduType_E type = 1\n [default = RCPDU_CONFERENCE_TERMINATE_RESPONSE];\n required RCPduResult_E result = 2;\n}\n\nmessage RCConferenceTerminateIndicationPdu { // MCS_Uniform_Send_Data on GCC_Broadcast_Channel\n optional RCPduType_E type = 1\n [default = RCPDU_CONFERENCE_TERMINATE_INDICATION];\n required RCPduReason_E reason = 2;\n}\n\nmessage RCConferenceEjectUserRequestPdu { // MCS_Send_Data on Node ID Channel of Top GCC\n optional RCPduType_E type = 1\n [default = RCPDU_CONFERENCE_EJECT_USER_REQUEST];\n required uint32 ejected_node_id = 2;\n required RCPduReason_E reason = 3;\n}\n\nmessage RCConferenceEjectUserResponsePdu { // MCS_Send_Data on Node ID Channel of requester\n optional RCPduType_E type = 1\n [default = RCPDU_CONFERENCE_EJECT_USER_RESPONSE];\n required uint32 ejected_node_id = 2;\n required RCPduResult_E result = 3;\n}\n\nmessage RCConferenceEjectUserIndicationPdu { // MCS_Uniform_Send_Data on GCC_Broadcast_Channel\n optional RCPduType_E type = 1\n [default = RCPDU_CONFERENCE_EJECT_USER_INDICATION];\n required uint32 ejected_node_id = 2;\n required RCPduReason_E reason = 3;\n}\n\nmessage RCRosterUpdateIndicationPdu { // MCS_Send_Data on Node ID Channel or\n// MCS_Uniform_Send_Data on GCC_Broadcast_Channel\n optional RCPduType_E type = 1 [default = RCPDU_ROSTER_UPDATE_INDICATION];\n required bool full_refresh = 2; // Conference Roster and all\n repeated RCNodeRecordPdu node_record = 3;\n repeated RCApplicationRecordPdu app_record = 4;\n}\n\nmessage RCRegistryUpdateRequestPdu { // MCS_Send_Data on Node ID Channel of Top GCC\n optional RCPduType_E type = 1 [default = RCPDU_REGISTRY_UPDATE_REQUEST];\n required uint32 key_id = 2;\n required uint32 obj_id = 3;\n required bytes user_data = 4;\n}\n\nmessage RCRegistryUpdateIndicationPdu { // MCS_Send_Data on Node ID Channel of Top GCC\n optional RCPduType_E type = 1 [default = RCPDU_REGISTRY_UPDATE_RESPONSE];\n required uint32 key_id = 2;\n required uint32 obj_id = 3;\n required bytes user_data = 4;\n}\n\nmessage RCRegistryUpdateResponsePdu { // MCS_Send_Data on Node ID Channel of requester\n optional RCPduType_E type = 1 [default = RCPDU_REGISTRY_UPDATE_INDICATION];\n required uint32 key_id = 2;\n required uint32 obj_id = 3;\n required RCPduResult_E result = 4;\n}\n\nmessage RCFunctionNotSupportedResponsePdu {\n optional RCPduType_E type = 1\n [default = RCPDU_FUNCTION_NOT_SUPPORTED_RESPONSE];\n required uint32 request_pdu_id = 2;\n}\n\n//ape.proto\n\noption optimize_for = LITE_RUNTIME;\nmessage RCConferenceSendDataRequestPdu {\n optional uint32 initiator = 1;\n optional uint32 peer = 2;\n required bool is_public = 3;\n required bytes user_data = 4;\n}\n\nmessage RCChatSendDataRequestPdu {\n optional uint32 initiator = 1;\n optional uint32 peer = 2;\n required bool is_public = 3;\n required bytes user_data = 4;\n required string from_role = 5;\n required bytes from_name = 6;\n}\n\nmessage RCDocSendDataRequestPdu {\n required uint32 id = 1;\n required string doc_type = 2;\n required string uri = 3;\n optional uint32 owner = 4;\n optional uint32 from = 5;\n optional string name = 6;\n optional uint32 cur_page_no = 7;\n optional uint32 cur_H = 8;\n optional uint32 cur_V = 9;\n optional uint32 scale = 10;\n optional uint32 page_num = 11;\n}\nmessage RCDocSendDataModelPdu {\n required uint32 item_idx=1;//\u552F\u4E00\u6807\u8BC6\n required uint32 owner=2;\n optional uint32 from=3;\n optional uint32 cur_page_no=4;\n optional uint32 page_num =5;\n optional string file_type=6;\n optional string creat_user_id=7;//\u521B\u5EFA\u6587\u6863userid\n optional string relative_url=8;//\u6587\u6863\u76F8\u5BF9\u5730\u5740\n optional string url =9;//\u6587\u6863\u5730\u5740\n optional uint32 cur_V=10;\n optional uint32 cur_H=11;\n optional uint32 scale=12;\n optional bool visible=13;\n optional uint32 action=14;//0\uFF0C\u65E0\u64CD\u4F5C\uFF0C 1\u7FFB\u9875\u30012.\u663E\u793A/\u9690\u85CF\n optional string doc_id=15;//\u6587\u6863\u5728\u670D\u52A1\u5668\u6570\u636E\u5E93\u4E2D\u7684\u552F\u4E00id\n optional string file_name=16;//\u6587\u6863\u7684\u540D\u5B57\n optional string dynamic_TS=17;//\"dynamicTransferStatic\": \"0\"\n optional string md5=18;//md5\n\n}\nmessage RCGiftSendDataRequestPdu {\n optional uint32 initiator = 1;\n required uint32 peer = 2;\n required uint32 index = 3;\n required uint32 num = 4;\n optional bytes user_data = 5;\n}\n\nmessage RCAudioSendDataRequestPdu {\n optional uint32 initiator = 1;\n required bytes user_data = 2;\n}\n\nmessage RCVideoSendDataRequestPdu {\n optional uint32 initiator = 1;\n required bool key_frame = 2;\n required uint32 sequence_id = 3;\n required uint32 slice_id = 4;\n required bytes user_data = 5;\n}\n\nmessage RCAudioChannelInfoRecordPdu {\n required uint32 status = 1;\n required uint32 device_id = 2;\n required uint32 framerate = 3;\n required uint32 bitrate = 4;\n required uint32 codec = 5;\n}\n\nmessage RCVideoChannelInfoRecordPdu {\n optional uint32 status = 1;\n optional uint32 device_id = 2;\n optional uint32 width = 3;\n optional uint32 height = 4;\n optional uint32 framerate = 5;\n optional uint32 bitrate = 6;\n optional uint32 codec = 7;\n optional string peer_id = 8;\n optional string url = 9;\n optional uint32 type = 10;\n optional string shamlive = 11;\n optional uint32 livetype = 12;\n optional uint32 releaseGrab = 13;\n optional string curTime = 14;\n}\n\nmessage RCAudioDeviceInfoRecordPdu {\n required uint32 device_id = 1;\n required string device_name = 2;\n}\n\nmessage RCVideoDeviceInfoRecordPdu {\n required uint32 device_id = 1;\n required string device_name = 2;\n}\n\nmessage RCNodeInfoRecordPdu {\n required uint32 node_id = 1;\n required string name = 2;\n required uint32 role = 3;\n required uint32 level = 4;\n repeated RCAudioDeviceInfoRecordPdu audio_records = 5;\n repeated RCVideoDeviceInfoRecordPdu video_records = 6;\n optional uint32 status = 7;\n optional bytes user_data = 8;\n optional string user_id = 9;\n optional uint32 handUpTime = 10;\n optional uint32 deviceType = 11;\n optional uint32 mobileDirection = 12;\n}\n\nmessage RCVotingPollSettingsPdu {\n required bool timer = 1;\n optional uint32 time_limit = 2;\n optional uint32 total_score = 3;\n}\n\nmessage RCVotingPollResultPdu {\n required string title = 1;\n required string content = 2;\n optional uint32 score = 3;\n}\n\nmessage RCVotingPollQuestionPdu {\n required uint32 index = 1;\n required uint32 type = 2;\n required string title = 3;\n repeated string options = 4;\n optional uint32 score = 5;\n optional uint32 time_limit = 6;\n optional string restrict_input = 7;\n optional uint32 char_limit = 8;\n optional string answer = 9;\n repeated uint32 selections = 10;\n repeated string responses = 11;\n}\n\nmessage RCVotingPollRecordPdu {\n required RCVotingPollSettingsPdu settings = 1;\n required string title = 2;\n repeated RCVotingPollResultPdu results = 3;\n repeated RCVotingPollQuestionPdu questions = 4;\n}\n\nmessage RCNodeInfoUserDataPdu {\n optional string qq = 1;\n optional string skype = 2;\n optional string mobile = 3;\n}\nmessage RCTabUpdateDataRequestPdu {\n optional uint32 id = 1;\n optional bytes action = 2;\n optional uint32 uncomprLen =3;\n}\n\nmessage RCWhiteBoardDataModel {\n required uint32 type= 1;//\u767D\u677F\u7C7B\u578B\n required uint32 itemIdx= 2;//itemIdx \u6BCF\u4E00\u6B21\u7ED8\u5236\u7684\u552F\u4E00\u6807\u8BC6\n required uint32 initiator=3; //\u7ED8\u5236\u6765\u81EA\u8C01\n required uint32 parentId=4; //\u7236\u7EA7\u7684id\n required uint32 curPage= 5;//\u9875\u7801\n optional string pointGroup=6; //\u5750\u6807\u70B9\u96C6\u6570\u7EC4\u7684JSON\u5B57\u7B26\u4E32\n optional string color=7 [default = \"#000000\"]; //\u989C\u8272\n optional uint32 thickness= 8 ;//\u7EBF\u6761\u7C97\u7EC6\n optional uint32 radius= 9;//\u56ED\u7684\u534A\u5F84\n optional uint32 fontSize= 10;//\u5B57\u4F53\u5927\u5C0F\n optional string fontName= 11;//\u5B57\u4F53\u540D\u79F0\n optional string text= 12;//\u6587\u672C\u5185\u5BB9\n optional bytes data = 13;//\u6682\u65F6\u9884\u7559\u7684\u53C2\u6570\n}\n\n\n//end\n"; 14256 + var _default = "\n//start\n// pdu_def.proto\n\n// syntax = \"proto3\";\n\noption optimize_for = LITE_RUNTIME;\nenum RCPduPriority_E {\n DP_TOP = 0;\n DP_HIGH = 1;\n DP_MEDIUM = 2;\n DP_LOW = 3;\n}\n\nenum RCPduSegment_E {\n SEG_BEGIN = 0;\n SEG_END = 1;\n SEG_ONCE = 2;\n}\n\nenum RCPduTokenStatus_E {\n TS_NOT_IN_USE = 0;\n TS_SELF_GRABBED = 1;\n TS_OTHER_GRABBED = 2;\n TS_SELF_INHIBITED = 3;\n TS_OTHER_INHIBITED = 4;\n TS_SELF_RECIPIENT = 5;\n TS_SELF_GIVING = 6;\n TS_OTHER_GIVING = 7;\n}\n\nenum RCPduType_E {\n// GCC PDU\n RCPDU_CONNECT_PROVIDER_REQUEST = 0;\n RCPDU_CONNECT_PROVIDER_RESPONSE = 1;\n RCPDU_CONFERENCE_JOIN_REQUEST = 2;\n RCPDU_CONFERENCE_JOIN_RESPONSE = 3;\n RCPDU_CONFERENCE_INVITE_REQUEST = 10;\n RCPDU_CONFERENCE_INVITE_RESPONSE = 11;\n RCPDU_CONFERENCE_LOCK_REQUEST = 20;\n RCPDU_CONFERENCE_LOCK_RESPONSE = 21;\n RCPDU_CONFERENCE_LOCK_INDICATION = 22;\n RCPDU_CONFERENCE_UNLOCK_REQUEST = 30;\n RCPDU_CONFERENCE_UNLOCK_RESPONSE = 31;\n RCPDU_CONFERENCE_UNLOCK_INDICATION = 32;\n RCPDU_CONFERENCE_LEAVE_REQUEST = 39;\n RCPDU_CONFERENCE_TERMINATE_REQUEST = 40;\n RCPDU_CONFERENCE_TERMINATE_RESPONSE = 41;\n RCPDU_CONFERENCE_TERMINATE_INDICATION = 42;\n RCPDU_CONFERENCE_EJECT_USER_REQUEST = 50;\n RCPDU_CONFERENCE_EJECT_USER_RESPONSE = 51;\n RCPDU_CONFERENCE_EJECT_USER_INDICATION = 52;\n RCPDU_ROSTER_UPDATE_INDICATION = 60;\n RCPDU_REGISTRY_UPDATE_REQUEST = 70; // INCLUDE ALL OBJS OPERATION\n RCPDU_REGISTRY_UPDATE_RESPONSE = 71;\n RCPDU_REGISTRY_UPDATE_INDICATION = 72;\n RCPDU_FUNCTION_NOT_SUPPORTED_RESPONSE = 80;\n\n // MCS PDU\n RCPDU_SESSION_JOIN_REQUEST = 90;\n RCPDU_SESSION_JOIN_RESPONSE = 91;\n RCPDU_CHANNEL_GRAB_REQUEST = 100;\n RCPDU_CHANNEL_GRAB_RESPONSE = 101;\n RCPDU_CHANNEL_GRAB_INDICATION = 102;\n RCPDU_CHANNEL_JOIN_REQUEST = 103;\n RCPDU_CHANNEL_JOIN_RESPONSE = 104;\n RCPDU_CHANNEL_LEAVE_REQUEST = 105;\n RCPDU_CHANNEL_RELEASE_REQUEST = 106;\n RCPDU_CHANNEL_RELEASE_INDICATION = 107;\n RCPDU_SEND_DATA_REQUEST = 120;\n RCPDU_SEND_DATA_INDICATION = 121;\n RCPDU_UNIFORM_SEND_DATA_REQUEST = 125;\n RCPDU_UNIFORM_SEND_DATA_INDICATION = 126;\n RCPDU_TOKEN_GRAB_REQUEST = 130;\n RCPDU_TOKEN_GRAB_CONFIRM = 131;\n RCPDU_TOKEN_INHIBIT_REQUEST = 132;\n RCPDU_TOKEN_INHIBIT_CONFIRM = 133;\n RCPDU_TOKEN_GIVE_REQUEST = 134;\n RCPDU_TOKEN_GIVE_INDICATION = 135;\n RCPDU_TOKEN_GIVE_RESPONSE = 136;\n RCPDU_TOKEN_GIVE_CONFIRM = 137;\n RCPDU_TOKEN_PLEASE_REQUEST = 138;\n RCPDU_TOKEN_PLEASE_INDICATION = 139;\n RCPDU_TOKEN_RELEASE_REQUEST = 140;\n RCPDU_TOKEN_RELEASE_CONFIRM = 141;\n RCPDU_TOKEN_TEST_REQUEST = 142;\n RCPDU_TOKEN_TEST_CONFIRM = 143;\n\n // Registry PDU\n RCPDU_REG_REGISTER_KEY = 200;\n RCPDU_REG_UNREGISTER_KEY = 201;\n RCPDU_REG_REGISTER_ROSTER = 202;\n RCPDU_REG_REGISTER_TOKEN = 203;\n RCPDU_REG_REGISTER_PARAMETER = 204;\n RCPDU_REG_REGISTER_COUNTER = 205;\n RCPDU_REG_REGISTER_TABLE = 206;\n RCPDU_REG_REGISTER_CACHE = 207;\n RCPDU_REG_REGISTER_OBJ = 208;\n RCPDU_REG_UNREGISTER_OBJ = 209;\n RCPDU_REG_UPDATE_OBJ = 210;\n RCPDU_REG_ADAPTER = 211;\n RCPDU_REG_CLEANUP_NODE = 212;\n RCPDU_REG_REGISTER_QUEUE = 213;\n\n // Registry Obj update PDU\n RCPDU_REG_TABLE_INSERT_PDU = 230;\n RCPDU_REG_TABLE_DELETE_PDU = 231;\n RCPDU_REG_TABLE_UPDATE_PDU = 232;\n RCPDU_REG_ROSTER_INSERT_PDU = 240;\n RCPDU_REG_ROSTER_DELETE_PDU = 241;\n RCPDU_REG_ROSTER_UPDATE_PDU = 242;\n RCPDU_REG_PARAMETER_UPDATE_PDU = 250;\n RCPDU_REG_QUEUE_INSERT_PDU = 255;\n RCPDU_REG_QUEUE_DELETE_PDU = 256;\n RCPDU_REG_QUEUE_UPDATE_PDU = 257;\n\n // data\n RCPDU_CONFERENCE_SEND_DATA_REQUEST = 259;\n RCPDU_VIDEO_SEND_DATA_REQUEST = 260;\n RCPDU_AUDIO_SEND_DATA_REQUEST = 261;\n RCPDU_GIFT_SEND_DATA_REQUEST = 262;\n RCPDU_CHAT_SEND_DATA_REQUEST = 263;\n RCPDU_VOTING_POLL_RECORD = 265;\n\n // Registry resource request or response PDU\n RCPDU_REG_REQUEST_OBJ = 290;\n RCPDU_REG_RESPONSE_OBJ = 291;\n RCPDU_REG_COUNTER_REQUEST_PDU = 292;\n RCPDU_REG_COUNTER_RESPONSE_PDU = 293;\n\n // Index exchange\n RCPDU_INDEX_ADAPTER = 300;\n RCPDU_INDEX_SERVER_USERS = 301;\n RCPDU_INDEX_CONFERENCE_USER_JOINED = 302;\n RCPDU_INDEX_CONFERENCE_USER_EXITED = 303;\n RCPDU_INDEX_CONFERENCE_USERS = 304;\n}\n\nenum RCPduNodeType_E {\n NT_TERMINAL = 0;\n NT_MULTIPORT_TERMINAL = 1;\n NT_MCU = 2;\n}\n\nenum RCPduReason_E {\n RSN_USERINITIATED = 0;\n RSN_DISCONNECTED = 1;\n RSN_SUPER_LEFT = 2;\n}\n\nenum RCPduResult_E {\n RET_SUCCESS = 0;\n RET_USER_REJECTED = 1;\n RET_INVALID_CONFERENCE = 2;\n RET_INVALID_PASSWORD = 3;\n RET_INVALID_CONVENER_PASSWORD = 4;\n RET_CHALLENGE_RESPONSE_REQUIRED = 5;\n RET_INVALID_CHALLENGE_RESPONSE = 6;\n RET_NO_CONNECTION = 7;\n RET_FULL_CAPACITY = 8;\n}\n\nenum RCPduNodeCategory_E {\n NC_CONVENTIONAL = 0;\n NC_COUNTED = 1;\n NC_ANONYMOUS = 2;\n}\n\nmessage RCConferenceDescriptorPdu {\n required uint32 id = 1;\n required bytes name = 2;\n optional bytes description = 3;\n //optional string net_address = 4;\n optional uint32 mode = 4;\n optional string password = 5;\n optional uint32 capacity = 6;\n optional bytes user_data = 7;\n}\n\nmessage RCNodeRecordPdu {\n required uint32 id = 1;\n optional uint32 superior_node = 2;\n required RCPduNodeType_E type = 3;\n required string name = 4;\n required uint32 capability = 5;\n optional string net_address = 6;\n optional RCPduNodeCategory_E category = 7;\n}\n\nmessage RCApplicationRecordPdu {\n required uint32 id = 1; // session id\n required string name = 2;\n required string tag = 3;\n repeated uint32 channel_ids = 4 [packed = true];\n optional uint32 capability = 5;\n}\n\n//reg.proto\n\noption optimize_for = LITE_RUNTIME;\nmessage RCRegistryRegisterKeyPdu {\n required RCPduType_E type = 1 [default = RCPDU_REG_REGISTER_KEY];\n required uint32 id = 2;\n required string name = 3;\n required string tag = 4;\n optional bytes user_data = 5;\n}\n\nmessage RCRegistryUnregisterKeyPdu {\n optional RCPduType_E type = 1 [default = RCPDU_REG_UNREGISTER_KEY];\n required uint32 key_id = 2;\n}\n\nmessage RCRegistryRegisterObjPdu {\n optional RCPduType_E type = 1;\n required uint32 obj_id = 2;\n required string name = 3;\n required string tag = 4;\n optional uint32 owner = 5;\n optional bytes user_data = 6;\n}\n\nmessage RCRegistryUnregisterObjPdu {\n optional RCPduType_E type = 1 [default = RCPDU_REG_UNREGISTER_OBJ];\n required uint32 obj_id = 2;\n}\n\nmessage RCRegistryUpdateObjPdu {\n optional RCPduType_E type = 1 [default = RCPDU_REG_UPDATE_OBJ];\n required RCPduType_E sub_type = 2;\n required uint32 obj_id = 3;\n required bytes user_data = 4;\n}\n\nmessage RCAdapterItemPdu {\n required RCPduType_E type = 1;\n required bytes item_data = 2;\n}\n\n// adapter pdu that used to package a list of pdu.\nmessage RCAdapterPdu {\n optional RCPduType_E type = 1 [default = RCPDU_REG_ADAPTER];\n repeated RCAdapterItemPdu item = 2;\n}\n\n// table operation pdu\nmessage RCRegistryTableItemPdu {\n required uint32 item_idx = 1;\n required uint32 owner = 2;\n required bytes item_data = 3;\n optional uint32 register_obj_id=4;\n}\n\nmessage RCRegistryTableInsertItemPdu {\n optional RCPduType_E type = 1 [default = RCPDU_REG_TABLE_INSERT_PDU];\n repeated RCRegistryTableItemPdu items = 2;\n}\n\nmessage RCRegistryTableDeleteItemPdu {\n optional RCPduType_E type = 1 [default = RCPDU_REG_TABLE_DELETE_PDU];\n repeated uint32 item_idx = 2;\n}\n\nmessage RCRegistryTableUpdateItemPdu {\n optional RCPduType_E type = 1 [default = RCPDU_REG_TABLE_UPDATE_PDU];\n repeated RCRegistryTableItemPdu items = 2;\n}\n\n// roster operation pdu\nmessage RCRegistryRosterItemPdu {\n required uint32 node_id = 1;\n required bytes node_data = 2;\n}\nmessage RCRegistryWBItemPdu {\n required uint32 node_id = 1;\n required bytes node_data = 2;\n}\nmessage RCRegistryRosterInsertItemPdu {\n optional RCPduType_E type = 1 [default = RCPDU_REG_ROSTER_INSERT_PDU];\n repeated RCRegistryRosterItemPdu items = 2;\n}\n\nmessage RCRegistryRosterDeleteItemPdu {\n optional RCPduType_E type = 1 [default = RCPDU_REG_ROSTER_DELETE_PDU];\n required uint32 node_id = 2;\n}\n\nmessage RCRegistryRosterUpdateItemPdu {\n optional RCPduType_E type = 1 [default = RCPDU_REG_ROSTER_UPDATE_PDU];\n repeated RCRegistryRosterItemPdu items = 2;\n}\n\n//message RCCleanupNodePdu\n//{\n// optional RCPduType_E type = 1 [default = RCPDU_REG_CLEANUP_NODE];\n// required uint32 node_id = 2;\n//}\n\n// parameter operation pdu\nmessage RCRegistryParameterUpdatePdu {\n optional RCPduType_E type = 1 [default = RCPDU_REG_PARAMETER_UPDATE_PDU];\n required uint32 value = 2 [default = 0];\n optional uint32 begin_bit = 3 [default = 31];\n optional uint32 end_bit = 4;\n}\n\n// queue operation pdu\nmessage RCRegistryQueueItemPdu {\n required uint32 owner = 1;\n required uint32 item_id = 2;\n optional bytes item_data = 3;\n optional uint32 item_idx = 4;\n}\n\nmessage RCRegstryQueueInsertItemPdu {\n optional RCPduType_E type = 1 [default = RCPDU_REG_QUEUE_INSERT_PDU];\n repeated RCRegistryQueueItemPdu items = 2;\n}\n\nmessage RCRegistryQueueDeleteItemPdu {\n optional RCPduType_E type = 1 [default = RCPDU_REG_QUEUE_DELETE_PDU];\n required uint32 item_id = 2;\n}\n\nmessage RCRegistryQueueUpdateItemPdu {\n optional RCPduType_E type = 1 [default = RCPDU_REG_QUEUE_UPDATE_PDU];\n repeated RCRegistryQueueItemPdu items = 2;\n}\n\nmessage RCRegistryRequestObjPdu {\n optional RCPduType_E type = 1 [default = RCPDU_REG_REQUEST_OBJ];\n required RCPduType_E sub_type = 2;\n required uint32 obj_id = 3;\n required bytes user_data = 4;\n}\n\nmessage RCRegistryResponseObjPdu {\n optional RCPduType_E type = 1 [default = RCPDU_REG_RESPONSE_OBJ];\n required RCPduType_E sub_type = 2;\n required uint32 obj_id = 3;\n required bytes user_data = 4;\n}\n\nmessage RCRegistryCounterRequestPdu {\n optional RCPduType_E type = 1 [default = RCPDU_REG_COUNTER_REQUEST_PDU];\n required uint32 count = 2;\n}\n\nmessage RCRegistryCounterResponsePdu {\n optional RCPduType_E type = 1 [default = RCPDU_REG_COUNTER_RESPONSE_PDU];\n required uint32 start = 2;\n required uint32 end = 3;\n}\n\n// mcs\noption optimize_for = LITE_RUNTIME;\n\n// Session management\nmessage RCSessionJoinRequestPdu {\n required RCPduType_E type = 1 [default = RCPDU_SESSION_JOIN_REQUEST];\n required uint32 id = 2;\n required string name = 3;\n required string tag = 4;\n optional bytes session_data = 5; //\u805A\u5408\u5728\u4E00\u8D77\u7684registry\u4FE1\u606F\n}\n\nmessage RCSessionJoinResponsePdu {\n optional RCPduType_E type = 1 [default = RCPDU_SESSION_JOIN_RESPONSE];\n required uint32 id = 2;\n optional bytes response_data = 3;\n}\n\n// Channel management\nmessage RCChannelGrabRequestPdu {\n optional RCPduType_E type = 1 [default = RCPDU_CHANNEL_GRAB_REQUEST];\n required uint32 initiator = 2;\n required uint32 channel_id = 3;\n}\n\nmessage RCChannelGrabResponsePdu {\n optional RCPduType_E type = 1 [default = RCPDU_CHANNEL_GRAB_RESPONSE];\n required uint32 initiator = 2;\n required uint32 requested_channel_id = 3;\n required RCPduResult_E result = 4;\n optional uint32 channel_id = 5;\n}\n\nmessage RCChannelGrabIndicationPdu {\n optional RCPduType_E type = 1 [default = RCPDU_CHANNEL_GRAB_INDICATION];\n required uint32 initiator = 2;\n optional uint32 channel_id = 3;\n}\n\nmessage RCChannelJoinRequestPdu {\n required RCPduType_E type = 1 [default = RCPDU_CHANNEL_JOIN_REQUEST];\n required uint32 initiator = 2;\n required uint32 channel_id = 3;\n}\n\nmessage RCChannelJoinResponsePdu {\n optional RCPduType_E type = 1 [default = RCPDU_CHANNEL_JOIN_RESPONSE];\n required uint32 initiator = 2;\n required uint32 requested_channel_id = 3;\n required RCPduResult_E result = 4;\n}\n\nmessage RCChannelLeaveRequestPdu {\n optional RCPduType_E type = 1 [default = RCPDU_CHANNEL_LEAVE_REQUEST];\n required uint32 initiator = 2;\n repeated uint32 channel_ids = 3 [packed = true];\n}\n\nmessage RCChannelReleaseRequestPdu {\n optional RCPduType_E type = 1 [default = RCPDU_CHANNEL_RELEASE_REQUEST];\n required uint32 initiator = 2;\n required uint32 channel_id = 3;\n}\n\nmessage RCChannelReleaseIndicationPdu {\n optional RCPduType_E type = 1\n [default = RCPDU_CHANNEL_RELEASE_INDICATION];\n required uint32 initiator = 2;\n required uint32 channel_id = 3;\n}\n\n// Data transfer\nmessage RCSendDataPdu {\n required RCPduType_E type = 1 [default = RCPDU_SEND_DATA_REQUEST];\n required RCPduType_E sub_type = 2;\n required uint32 initiator = 3;\n required uint32 conf_id = 4;\n required uint32 session_id = 5;\n required uint32 channel_id = 6;\n required bool upward = 7;\n required bool reliability = 8;\n required RCPduPriority_E priority = 9;\n required bytes data = 10;\n optional uint32 peer = 11;\n optional RCPduSegment_E seg = 12;\n optional uint32 total_size = 13;\n optional uint32 site_id = 14;\n optional string user_id = 15;\n optional string user_name = 16;\n optional string user_role = 17;\n optional string device_type = 18;\n optional string site = 19;\n}\n\n// Token management\nmessage RCTokenGrabRequestPdu {\n optional RCPduType_E type = 1 [default = RCPDU_TOKEN_GRAB_REQUEST];\n required uint32 initiator = 2;\n required uint32 token_id = 3;\n}\n\nmessage RCTokenGrabConfirmPdu {\n optional RCPduType_E type = 1 [default = RCPDU_TOKEN_GRAB_CONFIRM];\n required uint32 initiator = 2;\n required uint32 token_id = 3;\n required RCPduResult_E result = 4;\n required RCPduTokenStatus_E status = 5;\n}\n\nmessage RCTokenInhibitRequestPdu {\n optional RCPduType_E type = 1 [default = RCPDU_TOKEN_INHIBIT_REQUEST];\n required uint32 initiator = 2;\n required uint32 token_id = 3;\n}\n\nmessage RCTokenInhibitConfirmPdu {\n optional RCPduType_E type = 1 [default = RCPDU_TOKEN_INHIBIT_CONFIRM];\n required uint32 initiator = 2;\n required uint32 token_id = 3;\n required RCPduResult_E result = 4;\n required RCPduTokenStatus_E status = 5;\n}\n\nmessage RCTokenGiveRequestPdu {\n optional RCPduType_E type = 1 [default = RCPDU_TOKEN_GIVE_REQUEST];\n required uint32 initiator = 2;\n required uint32 token_id = 3;\n required uint64 recipient = 4;\n}\n\nmessage RCTokenGiveIndicationPdu {\n optional RCPduType_E type = 1 [default = RCPDU_TOKEN_GIVE_INDICATION];\n required uint32 initiator = 2;\n required uint32 token_id = 3;\n required uint64 recipient = 4;\n}\n\nmessage RCTokenGiveResponsePdu {\n optional RCPduType_E type = 1 [default = RCPDU_TOKEN_GIVE_RESPONSE];\n required uint32 token_id = 2;\n required uint64 recipient = 3;\n required RCPduResult_E result = 4;\n}\n\nmessage RCTokenGiveConfirmPdu {\n optional RCPduType_E type = 1 [default = RCPDU_TOKEN_GIVE_CONFIRM];\n required uint32 token_id = 2;\n required uint64 recipient = 3;\n required RCPduResult_E result = 4;\n required RCPduTokenStatus_E status = 5;\n}\n\nmessage RCTokenPleaseRequestPdu {\n optional RCPduType_E type = 1 [default = RCPDU_TOKEN_PLEASE_REQUEST];\n required uint32 initiator = 2;\n required uint32 token_id = 3;\n}\n\nmessage RCTokenPleaseIndicationPdu {\n optional RCPduType_E type = 1 [default = RCPDU_TOKEN_PLEASE_INDICATION];\n required uint32 initiator = 2;\n required uint32 token_id = 3;\n}\n\nmessage RCTokenReleaseRequestPdu {\n optional RCPduType_E type = 1 [default = RCPDU_TOKEN_RELEASE_REQUEST];\n required uint32 initiator = 2;\n required uint32 token_id = 3;\n}\n\nmessage RCTokenReleaseConfirmPdu {\n optional RCPduType_E type = 1 [default = RCPDU_TOKEN_TEST_REQUEST];\n required uint32 initiator = 2;\n required uint32 token_id = 3;\n required RCPduResult_E result = 4;\n required RCPduTokenStatus_E status = 5;\n}\n\nmessage RCTokenTestRequestPdu {\n optional RCPduType_E type = 1 [default = RCPDU_TOKEN_TEST_REQUEST];\n required uint32 initiator = 2;\n required uint32 token_id = 3;\n}\n\nmessage RCTokenTestConfirmPdu {\n optional RCPduType_E type = 1 [default = RCPDU_TOKEN_TEST_CONFIRM];\n required uint32 initiator = 2;\n required uint32 token_id = 3;\n required RCPduTokenStatus_E status = 4;\n}\n\n//gcc.proto\n\noption optimize_for = LITE_RUNTIME;\nmessage RCConferenceJoinRequestPdu {\n required RCPduType_E type = 1 [default = RCPDU_CONFERENCE_JOIN_REQUEST];\n required uint32 initiator = 2;\n required RCPduNodeType_E node_type = 3;\n required RCConferenceDescriptorPdu conf_desc = 4;\n}\n\nmessage RCConferenceJoinResponsePdu {\n optional RCPduType_E type = 1 [default = RCPDU_CONFERENCE_JOIN_RESPONSE];\n required uint32 conf_id = 2;\n required RCPduResult_E result = 3;\n optional RCConferenceDescriptorPdu conf_desc = 4;\n}\n\nmessage RCConferenceInviteRequestPdu {\n optional RCPduType_E type = 1 [default = RCPDU_CONFERENCE_INVITE_REQUEST];\n required uint32 initiator = 2;\n required RCConferenceDescriptorPdu conf_desc = 3;\n}\n\nmessage RCConferenceInviteResponsePdu {\n optional RCPduType_E type = 1\n [default = RCPDU_CONFERENCE_INVITE_RESPONSE];\n required RCPduResult_E result = 2;\n optional bytes user_data = 3;\n}\n\nmessage RCConferenceLockRequestPdu {\n optional RCPduType_E type = 1 [default = RCPDU_CONFERENCE_LOCK_REQUEST];\n}\n\nmessage RCConferenceLockResponsePdu {\n optional RCPduType_E type = 1 [default = RCPDU_CONFERENCE_LOCK_RESPONSE];\n required RCPduResult_E result = 2;\n}\n\nmessage RCConferenceLockIndicationPdu {\n optional RCPduType_E type = 1\n [default = RCPDU_CONFERENCE_LOCK_INDICATION];\n}\n\nmessage RCConferenceUnlockRequestPdu {\n optional RCPduType_E type = 1 [default = RCPDU_CONFERENCE_UNLOCK_REQUEST];\n}\n\nmessage RCConferenceUnlockResponsePdu {\n optional RCPduType_E type = 1\n [default = RCPDU_CONFERENCE_UNLOCK_RESPONSE];\n required RCPduResult_E result = 2;\n}\n\nmessage RCConferenceUnlockIndicationPdu {\n optional RCPduType_E type = 1\n [default = RCPDU_CONFERENCE_UNLOCK_INDICATION];\n}\n\nmessage RCConferenceLeaveRequestPdu {\n optional RCPduType_E type = 1 [default = RCPDU_CONFERENCE_LEAVE_REQUEST];\n required RCPduReason_E reason = 2;\n}\n\nmessage RCConferenceTerminateRequestPdu {\n optional RCPduType_E type = 1\n [default = RCPDU_CONFERENCE_TERMINATE_REQUEST];\n required RCPduReason_E reason = 2;\n}\n\nmessage RCConferenceTerminateResponsePdu {\n optional RCPduType_E type = 1\n [default = RCPDU_CONFERENCE_TERMINATE_RESPONSE];\n required RCPduResult_E result = 2;\n}\n\nmessage RCConferenceTerminateIndicationPdu { // MCS_Uniform_Send_Data on GCC_Broadcast_Channel\n optional RCPduType_E type = 1\n [default = RCPDU_CONFERENCE_TERMINATE_INDICATION];\n required RCPduReason_E reason = 2;\n}\n\nmessage RCConferenceEjectUserRequestPdu { // MCS_Send_Data on Node ID Channel of Top GCC\n optional RCPduType_E type = 1\n [default = RCPDU_CONFERENCE_EJECT_USER_REQUEST];\n required uint32 ejected_node_id = 2;\n required RCPduReason_E reason = 3;\n}\n\nmessage RCConferenceEjectUserResponsePdu { // MCS_Send_Data on Node ID Channel of requester\n optional RCPduType_E type = 1\n [default = RCPDU_CONFERENCE_EJECT_USER_RESPONSE];\n required uint32 ejected_node_id = 2;\n required RCPduResult_E result = 3;\n}\n\nmessage RCConferenceEjectUserIndicationPdu { // MCS_Uniform_Send_Data on GCC_Broadcast_Channel\n optional RCPduType_E type = 1\n [default = RCPDU_CONFERENCE_EJECT_USER_INDICATION];\n required uint32 ejected_node_id = 2;\n required RCPduReason_E reason = 3;\n}\n\nmessage RCRosterUpdateIndicationPdu { // MCS_Send_Data on Node ID Channel or\n// MCS_Uniform_Send_Data on GCC_Broadcast_Channel\n optional RCPduType_E type = 1 [default = RCPDU_ROSTER_UPDATE_INDICATION];\n required bool full_refresh = 2; // Conference Roster and all\n repeated RCNodeRecordPdu node_record = 3;\n repeated RCApplicationRecordPdu app_record = 4;\n}\n\nmessage RCRegistryUpdateRequestPdu { // MCS_Send_Data on Node ID Channel of Top GCC\n optional RCPduType_E type = 1 [default = RCPDU_REGISTRY_UPDATE_REQUEST];\n required uint32 key_id = 2;\n required uint32 obj_id = 3;\n required bytes user_data = 4;\n}\n\nmessage RCRegistryUpdateIndicationPdu { // MCS_Send_Data on Node ID Channel of Top GCC\n optional RCPduType_E type = 1 [default = RCPDU_REGISTRY_UPDATE_RESPONSE];\n required uint32 key_id = 2;\n required uint32 obj_id = 3;\n required bytes user_data = 4;\n}\n\nmessage RCRegistryUpdateResponsePdu { // MCS_Send_Data on Node ID Channel of requester\n optional RCPduType_E type = 1 [default = RCPDU_REGISTRY_UPDATE_INDICATION];\n required uint32 key_id = 2;\n required uint32 obj_id = 3;\n required RCPduResult_E result = 4;\n}\n\nmessage RCFunctionNotSupportedResponsePdu {\n optional RCPduType_E type = 1\n [default = RCPDU_FUNCTION_NOT_SUPPORTED_RESPONSE];\n required uint32 request_pdu_id = 2;\n}\n\n//ape.proto\n\noption optimize_for = LITE_RUNTIME;\nmessage RCConferenceSendDataRequestPdu {\n optional uint32 initiator = 1;\n optional uint32 peer = 2;\n required bool is_public = 3;\n required bytes user_data = 4;\n}\n\nmessage RCChatSendDataRequestPdu {\n optional uint32 initiator = 1;\n optional uint32 peer = 2;\n required bool is_public = 3;\n required bytes user_data = 4;\n required string from_role = 5;\n required bytes from_name = 6;\n}\n\nmessage RCDocSendDataRequestPdu {\n required uint32 id = 1;\n required string doc_type = 2;\n required string uri = 3;\n optional uint32 owner = 4;\n optional uint32 from = 5;\n optional string name = 6;\n optional uint32 cur_page_no = 7;\n optional uint32 cur_H = 8;\n optional uint32 cur_V = 9;\n optional uint32 scale = 10;\n optional uint32 page_num = 11;\n}\nmessage RCDocSendDataModelPdu {\n required uint32 item_idx=1;//\u552F\u4E00\u6807\u8BC6\n required uint32 owner=2;\n optional uint32 from=3;\n optional uint32 cur_page_no=4;\n optional uint32 page_num =5;\n optional string file_type=6;\n optional string creat_user_id=7;//\u521B\u5EFA\u6587\u6863userid\n optional string relative_url=8;//\u6587\u6863\u76F8\u5BF9\u5730\u5740\n optional string url =9;//\u6587\u6863\u5730\u5740\n optional uint32 cur_V=10;\n optional uint32 cur_H=11;\n optional uint32 scale=12;\n optional bool visible=13;\n optional uint32 action=14;//0\uFF0C\u65E0\u64CD\u4F5C\uFF0C 1\u7FFB\u9875\u30012.\u663E\u793A/\u9690\u85CF\n optional string doc_id=15;//\u6587\u6863\u5728\u670D\u52A1\u5668\u6570\u636E\u5E93\u4E2D\u7684\u552F\u4E00id\n optional string file_name=16;//\u6587\u6863\u7684\u540D\u5B57\n optional string dynamic_TS=17;//\"dynamicTransferStatic\": \"0\"\n optional string md5=18;//md5\n\n}\nmessage RCGiftSendDataRequestPdu {\n optional uint32 initiator = 1;\n required uint32 peer = 2;\n required uint32 index = 3;\n required uint32 num = 4;\n optional bytes user_data = 5;\n}\n\nmessage RCAudioSendDataRequestPdu {\n optional uint32 initiator = 1;\n required bytes user_data = 2;\n}\n\nmessage RCVideoSendDataRequestPdu {\n optional uint32 initiator = 1;\n required bool key_frame = 2;\n required uint32 sequence_id = 3;\n required uint32 slice_id = 4;\n required bytes user_data = 5;\n}\n\nmessage RCAudioChannelInfoRecordPdu {\n required uint32 status = 1;\n required uint32 device_id = 2;\n required uint32 framerate = 3;\n required uint32 bitrate = 4;\n required uint32 codec = 5;\n}\n\nmessage RCVideoChannelInfoRecordPdu {\n optional uint32 status = 1;\n optional uint32 device_id = 2;\n optional uint32 width = 3;\n optional uint32 height = 4;\n optional uint32 framerate = 5;\n optional uint32 bitrate = 6;\n optional uint32 codec = 7;\n optional string peer_id = 8;\n optional string url = 9;\n optional uint32 type = 10;\n optional string shamlive = 11;\n optional uint32 livetype = 12;\n optional uint32 releaseGrab = 13;\n optional string curTime = 14;\n}\n\nmessage RCAudioDeviceInfoRecordPdu {\n required uint32 device_id = 1;\n required string device_name = 2;\n}\n\nmessage RCVideoDeviceInfoRecordPdu {\n required uint32 device_id = 1;\n required string device_name = 2;\n}\n\nmessage RCNodeInfoRecordPdu {\n required uint32 node_id = 1;\n required string name = 2;\n required uint32 role = 3;\n required uint32 level = 4;\n repeated RCAudioDeviceInfoRecordPdu audio_records = 5;\n repeated RCVideoDeviceInfoRecordPdu video_records = 6;\n optional uint32 status = 7;\n optional bytes user_data = 8;\n optional string user_id = 9;\n optional uint32 handUpTime = 10;\n optional uint32 deviceType = 11;\n optional uint32 mobileDirection = 12;\n}\n\nmessage RCVotingPollSettingsPdu {\n required bool timer = 1;\n optional uint32 time_limit = 2;\n optional uint32 total_score = 3;\n}\n\nmessage RCVotingPollResultPdu {\n required string title = 1;\n required string content = 2;\n optional uint32 score = 3;\n}\n\nmessage RCVotingPollQuestionPdu {\n required uint32 index = 1;\n required uint32 type = 2;\n required string title = 3;\n repeated string options = 4;\n optional uint32 score = 5;\n optional uint32 time_limit = 6;\n optional string restrict_input = 7;\n optional uint32 char_limit = 8;\n optional string answer = 9;\n repeated uint32 selections = 10;\n repeated string responses = 11;\n}\n\nmessage RCVotingPollRecordPdu {\n required RCVotingPollSettingsPdu settings = 1;\n required string title = 2;\n repeated RCVotingPollResultPdu results = 3;\n repeated RCVotingPollQuestionPdu questions = 4;\n}\n\nmessage RCNodeInfoUserDataPdu {\n optional string qq = 1;\n optional string skype = 2;\n optional string mobile = 3;\n}\nmessage RCTabUpdateDataRequestPdu {\n optional uint32 id = 1;\n optional bytes action = 2;\n optional uint32 uncomprLen =3;\n}\n\nmessage RCWhiteBoardDataModel {\n required uint32 type= 1;//\u767D\u677F\u7C7B\u578B\n required uint32 itemIdx= 2;//itemIdx \u6BCF\u4E00\u6B21\u7ED8\u5236\u7684\u552F\u4E00\u6807\u8BC6\n required uint32 initiator=3; //\u7ED8\u5236\u6765\u81EA\u8C01\n required uint32 parentId=4; //\u7236\u7EA7\u7684id\n required uint32 curPage= 5;//\u9875\u7801\n optional string pointGroup=6; //\u5750\u6807\u70B9\u96C6\u6570\u7EC4\u7684JSON\u5B57\u7B26\u4E32\n optional string color=7 [default = \"#000000\"]; //\u989C\u8272\n optional uint32 thickness= 8 ;//\u7EBF\u6761\u7C97\u7EC6\n optional uint32 radius= 9;//\u56ED\u7684\u534A\u5F84\n optional uint32 fontSize= 10;//\u5B57\u4F53\u5927\u5C0F\n optional string fontName= 11;//\u5B57\u4F53\u540D\u79F0\n optional string text= 12;//\u6587\u672C\u5185\u5BB9\n optional bytes data = 13;//\u6682\u65F6\u9884\u7559\u7684\u53C2\u6570\n}\nmessage RCClassSendDataModelPdu {\n optional uint32 class_status= 1;//\u5F53\u524D\u8BFE\u5802\u72B6\u6001 //0:\u672A\u5F00\u59CB\uFF0C1\uFF0C\u5F00\u59CB\uFF0C2\uFF0C\u6682\u505C\n optional uint32 class_timestamp= 2;//\u76EE\u524D\u7528\u8FD9\u4E2A\u53D8\u91CF\u6765\u8BB0\u5F55\u65F6\u95F4 flash\u7528\u7684\u8FD9\u4E2A\n optional uint32 item_idx=3;\n optional uint32 from=4;\n}\n\n//end\n";
14265 exports.default = _default; 14257 exports.default = _default;
14266 ; 14258 ;
14267 14259
@@ -14490,6 +14482,10 @@ return /******/ (function(modules) { // webpackBootstrap @@ -14490,6 +14482,10 @@ return /******/ (function(modules) { // webpackBootstrap
14490 14482
14491 var _GlobalConfig2 = _interopRequireDefault(_GlobalConfig); 14483 var _GlobalConfig2 = _interopRequireDefault(_GlobalConfig);
14492 14484
  14485 + var _EngineUtils = __webpack_require__(34);
  14486 +
  14487 + var _EngineUtils2 = _interopRequireDefault(_EngineUtils);
  14488 +
14493 function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } 14489 function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
14494 14490
14495 function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } 14491 function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
@@ -14512,6 +14508,7 @@ return /******/ (function(modules) { // webpackBootstrap @@ -14512,6 +14508,7 @@ return /******/ (function(modules) { // webpackBootstrap
14512 // ////////////////////////////////////////////////////////////////////////////// 14508 // //////////////////////////////////////////////////////////////////////////////
14513 14509
14514 var loger = _Loger2.default.getLoger('ConferApe'); 14510 var loger = _Loger2.default.getLoger('ConferApe');
  14511 + var itemIdx = 0; //table插入新数据的计数id,目前用时间戳
14515 14512
14516 var ConferApe = function (_Ape) { 14513 var ConferApe = function (_Ape) {
14517 _inherits(ConferApe, _Ape); 14514 _inherits(ConferApe, _Ape);
@@ -14626,25 +14623,133 @@ return /******/ (function(modules) { // webpackBootstrap @@ -14626,25 +14623,133 @@ return /******/ (function(modules) { // webpackBootstrap
14626 14623
14627 this.sendUniform(adapterPdu, true); 14624 this.sendUniform(adapterPdu, true);
14628 } 14625 }
  14626 +
  14627 + //更新会议信息
  14628 +
  14629 + }, {
  14630 + key: 'sendUpdaterClassInfo',
  14631 + value: function sendUpdaterClassInfo(_param) {
  14632 + loger.log('sendUpdaterClassInfo----------');
  14633 + if (_param == null || _EngineUtils2.default.isEmptyObject(_param)) {
  14634 + loger.log('sendUpdaterClassInfo,参数错误');
  14635 + this._emit(_MessageTypes2.default.MCU_ERROR, _MessageTypes2.default.ERR_APE_INTERFACE_PARAM_WRONG);
  14636 + return;
  14637 + }
  14638 + itemIdx = _param.itemIdx;
  14639 + var whiteBoardModelPdu = this.packPdu(_param, itemIdx);
  14640 + console.log(whiteBoardModelPdu);
  14641 +
  14642 + if (whiteBoardModelPdu == null) {
  14643 + loger.log('sendUpdaterClassInfo,参数错误');
  14644 + this._emit(_MessageTypes2.default.MCU_ERROR, _MessageTypes2.default.ERR_APE_INTERFACE_PARAM_WRONG);
  14645 + return;
  14646 + }
  14647 +
  14648 + var tableItemPdu = new _pdus2.default['RCRegistryTableItemPdu']();
  14649 + tableItemPdu.itemIdx = itemIdx;
  14650 + tableItemPdu.owner = 0; //收到flash的是这个值,不清楚先写固定
  14651 + tableItemPdu.registerObjId = _ApeConsts2.default.CONFERENCE_OBJ_TABLE_ID;
  14652 + tableItemPdu.itemData = whiteBoardModelPdu.toArrayBuffer();
  14653 +
  14654 + //updater
  14655 + var whiteBoardUpdateItem = new _pdus2.default['RCRegistryTableUpdateItemPdu']();
  14656 + //optional RCPduType_E type = 1 [default = RCPDU_REG_TABLE_UPDATE_PDU];
  14657 + //repeated RCRegistryTableItemPdu items = 2;
  14658 + whiteBoardUpdateItem.type = _pdus2.default.RCPDU_REG_TABLE_UPDATE_PDU; //
  14659 + whiteBoardUpdateItem.items.push(tableItemPdu);
  14660 +
  14661 + var updateObjPdu = new _pdus2.default['RCRegistryUpdateObjPdu']();
  14662 + updateObjPdu.objId = _ApeConsts2.default.CONFERENCE_OBJ_TABLE_ID;
  14663 + updateObjPdu.subType = whiteBoardUpdateItem.type;
  14664 + updateObjPdu.userData = whiteBoardUpdateItem.toArrayBuffer();
  14665 +
  14666 + //同步
  14667 + var adapterItemPdu = new _pdus2.default['RCAdapterItemPdu']();
  14668 + adapterItemPdu.type = _pdus2.default.RCPDU_REG_UPDATE_OBJ;
  14669 + adapterItemPdu.itemData = updateObjPdu.toArrayBuffer();
  14670 +
  14671 + var adapterPdu = new _pdus2.default['RCAdapterPdu']();
  14672 + adapterPdu.type = _pdus2.default.RCPDU_REG_ADAPTER;
  14673 + adapterPdu.item.push(adapterItemPdu);
  14674 +
  14675 + console.log("会议发送更新数据============");
  14676 + this.sendUniform(adapterPdu, true);
  14677 + }
  14678 +
  14679 + ///////白板数据的封包和解包/////////////////////////////////////////
  14680 +
  14681 + }, {
  14682 + key: 'packPdu',
  14683 + value: function packPdu(_param, _itemIdx) {
  14684 + loger.log("会议===packPdu ");
  14685 + //验证坐标点集合数组是否合法
  14686 + if (_param == null || _itemIdx == null) {
  14687 + this._emit(_MessageTypes2.default.MCU_ERROR, _MessageTypes2.default.ERR_APE_INTERFACE_PARAM_WRONG);
  14688 + return null;
  14689 + }
  14690 +
  14691 + /*
  14692 + optional uint32 class_status= 1;//当前课堂状态 //0:未开始,1,开始,2,暂停
  14693 + optional string class_timestamp= 2;//目前用这个变量来记录时间 flash用的这个
  14694 + optional item_idx=3;
  14695 + optional from=4;
  14696 + */
  14697 + //判断type类型,根据type设置不同的参数
  14698 + var modelPdu = new _pdus2.default['RCClassSendDataModelPdu']();
  14699 + modelPdu.itemIdx = _itemIdx;
  14700 + modelPdu.owner = _GlobalConfig2.default.nodeId;
  14701 + modelPdu.from = _GlobalConfig2.default.nodeId;
  14702 + modelPdu.classStatus = 2;
  14703 + modelPdu.classTimestamp = 32532532;
  14704 +
  14705 + console.log(modelPdu);
  14706 + return modelPdu;
  14707 + }
  14708 + }, {
  14709 + key: 'unPackPdu',
  14710 + value: function unPackPdu(owner, itemIdx, itemData) {
  14711 + loger.log("会议===unPackPdu ");
  14712 + if (owner == null || itemIdx == null || itemData == null) {
  14713 + this._emit(_MessageTypes2.default.MCU_ERROR, _MessageTypes2.default.ERR_APE_INTERFACE_PARAM_WRONG);
  14714 + return null;
  14715 + }
  14716 +
  14717 + try {
  14718 + var docModelPdu = _pdus2.default['RCClassSendDataModelPdu'].decode(itemData);
  14719 + return docModelPdu;
  14720 + } catch (err) {
  14721 + loger.log("会议收到数据 unPackPdu Pdu解析错误,itemIdx=" + itemIdx + " err:" + err.message);
  14722 + }
  14723 + return null;
  14724 + }
  14725 +
  14726 + /////收到消息处理/////////////////////////////////////////////////////////////////////////////////
  14727 +
14629 }, { 14728 }, {
14630 key: 'tableUpdateHandler', 14729 key: 'tableUpdateHandler',
14631 value: function tableUpdateHandler(owner, itemIdx, itemData) { 14730 value: function tableUpdateHandler(owner, itemIdx, itemData) {
14632 try { 14731 try {
14633 - var tabUpdatePdu = _pdus2.default["RCTabUpdateDataRequestPdu"].decode(itemData);  
14634 -  
14635 - var uncompressedBytes = new _zlib.Zlib.Inflate(tabUpdatePdu.action.compact().view).decompress();  
14636 - var tabInfo = _utf2.default.getStringFromBytes(uncompressedBytes);  
14637 - var tabTypeMatches = tabInfo.match(/<TabType>(.+)<\/TabType>/);  
14638 - loger.log("更新列表数据 tableUpdateHandler", "owner:" + owner, "itemIdx:" + itemIdx, "tabInfo:", tabInfo);  
14639 - if (tabTypeMatches.length > 1 && tabTypeMatches[1] == 'show.docsharing') {  
14640 - if (tabInfo.match(/<visible>(.+)<\/visible>/)[1] == 'true') {  
14641 - this.activeDocId = tabInfo.match(/<TabID>(.+)<\/TabID>/)[1];  
14642 - this._emit(_MessageTypes2.default.DOC_SWITCH, this.activeDocId);  
14643 - }  
14644 - } 14732 + var model = this.unPackPdu(owner, itemIdx, itemData);
  14733 + loger.log('tableUpdateHandler', model);
14645 } catch (e) { 14734 } catch (e) {
14646 - loger.warn('ConferApe table update got exception.'); 14735 + loger.warn('ConferApe table update got exception. itemIdx', itemIdx);
14647 } 14736 }
  14737 +
  14738 + /* try {
  14739 + let tabUpdatePdu = pdu["RCTabUpdateDataRequestPdu"].decode(itemData);
  14740 + const uncompressedBytes = new Zlib.Inflate(tabUpdatePdu.action.compact().view).decompress();
  14741 + let tabInfo = UTF8.getStringFromBytes(uncompressedBytes);
  14742 + let tabTypeMatches = tabInfo.match(/<TabType>(.+)<\/TabType>/);
  14743 + loger.log("更新列表数据 tableUpdateHandler","owner:"+owner, "itemIdx:"+itemIdx,"tabInfo:",tabInfo);
  14744 + if (tabTypeMatches.length > 1 && tabTypeMatches[1] == 'show.docsharing') {
  14745 + if (tabInfo.match(/<visible>(.+)<\/visible>/)[1] == 'true') {
  14746 + this.activeDocId = tabInfo.match(/<TabID>(.+)<\/TabID>/)[1];
  14747 + this._emit(MessageTypes.DOC_SWITCH, this.activeDocId);
  14748 + }
  14749 + }
  14750 + } catch (e) {
  14751 + loger.warn('ConferApe table update got exception. itemIdx',itemIdx);
  14752 + }*/
14648 } 14753 }
14649 }, { 14754 }, {
14650 key: 'rosterInsertHandler', 14755 key: 'rosterInsertHandler',
@@ -14724,6 +14829,8 @@ return /******/ (function(modules) { // webpackBootstrap @@ -14724,6 +14829,8 @@ return /******/ (function(modules) { // webpackBootstrap
14724 14829
14725 __REACT_HOT_LOADER__.register(loger, 'loger', 'D:/work/McuClient/src/apes/ConferApe.js'); 14830 __REACT_HOT_LOADER__.register(loger, 'loger', 'D:/work/McuClient/src/apes/ConferApe.js');
14726 14831
  14832 + __REACT_HOT_LOADER__.register(itemIdx, 'itemIdx', 'D:/work/McuClient/src/apes/ConferApe.js');
  14833 +
14727 __REACT_HOT_LOADER__.register(ConferApe, 'ConferApe', 'D:/work/McuClient/src/apes/ConferApe.js'); 14834 __REACT_HOT_LOADER__.register(ConferApe, 'ConferApe', 'D:/work/McuClient/src/apes/ConferApe.js');
14728 14835
14729 __REACT_HOT_LOADER__.register(_default, 'default', 'D:/work/McuClient/src/apes/ConferApe.js'); 14836 __REACT_HOT_LOADER__.register(_default, 'default', 'D:/work/McuClient/src/apes/ConferApe.js');
@@ -15644,6 +15751,88 @@ return /******/ (function(modules) { // webpackBootstrap @@ -15644,6 +15751,88 @@ return /******/ (function(modules) { // webpackBootstrap
15644 /* 34 */ 15751 /* 34 */
15645 /***/ function(module, exports) { 15752 /***/ function(module, exports) {
15646 15753
  15754 + "use strict";
  15755 +
  15756 + Object.defineProperty(exports, "__esModule", {
  15757 + value: true
  15758 + });
  15759 +
  15760 + var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
  15761 +
  15762 + function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
  15763 +
  15764 + /**
  15765 + * Created by hoopoe8 on 2017/1/8.
  15766 + */
  15767 +
  15768 + var EngineUtils = function () {
  15769 + function EngineUtils() {
  15770 + _classCallCheck(this, EngineUtils);
  15771 + }
  15772 +
  15773 + _createClass(EngineUtils, null, [{
  15774 + key: "isEmptyObject",
  15775 + value: function isEmptyObject(O) {
  15776 + for (var x in O) {
  15777 + return false;
  15778 + }
  15779 + return true;
  15780 + }
  15781 + }, {
  15782 + key: "arrayToJsonString",
  15783 + value: function arrayToJsonString(_param) {
  15784 + try {
  15785 + return JSON.stringify(_param);
  15786 + } catch (err) {
  15787 + console.log("arrayToJsonString error:" + err.message);
  15788 + }
  15789 + return null;
  15790 + }
  15791 + }, {
  15792 + key: "arrayFromJsonString",
  15793 + value: function arrayFromJsonString(_param) {
  15794 + try {
  15795 + return JSON.parse(_param);
  15796 + } catch (err) {
  15797 + console.log("arrayFromJsonString error:" + err.message);
  15798 + }
  15799 + return null;
  15800 + }
  15801 +
  15802 + //生成时间戳随 保证唯一
  15803 +
  15804 + }, {
  15805 + key: "creatTimestamp",
  15806 + value: function creatTimestamp() {
  15807 + var time = new Date().getTime();
  15808 + var timestamp = time % 1000000000; //time后9位
  15809 + return timestamp;
  15810 + }
  15811 + }]);
  15812 +
  15813 + return EngineUtils;
  15814 + }();
  15815 +
  15816 + var _default = EngineUtils;
  15817 + exports.default = _default;
  15818 + ;
  15819 +
  15820 + var _temp = function () {
  15821 + if (typeof __REACT_HOT_LOADER__ === 'undefined') {
  15822 + return;
  15823 + }
  15824 +
  15825 + __REACT_HOT_LOADER__.register(EngineUtils, "EngineUtils", "D:/work/McuClient/src/EngineUtils.js");
  15826 +
  15827 + __REACT_HOT_LOADER__.register(_default, "default", "D:/work/McuClient/src/EngineUtils.js");
  15828 + }();
  15829 +
  15830 + ;
  15831 +
  15832 +/***/ },
  15833 +/* 35 */
  15834 +/***/ function(module, exports) {
  15835 +
15647 'use strict' 15836 'use strict'
15648 15837
15649 exports.byteLength = byteLength 15838 exports.byteLength = byteLength
@@ -15761,88 +15950,6 @@ return /******/ (function(modules) { // webpackBootstrap @@ -15761,88 +15950,6 @@ return /******/ (function(modules) { // webpackBootstrap
15761 15950
15762 15951
15763 /***/ }, 15952 /***/ },
15764 -/* 35 */  
15765 -/***/ function(module, exports) {  
15766 -  
15767 - "use strict";  
15768 -  
15769 - Object.defineProperty(exports, "__esModule", {  
15770 - value: true  
15771 - });  
15772 -  
15773 - var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();  
15774 -  
15775 - function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }  
15776 -  
15777 - /**  
15778 - * Created by hoopoe8 on 2017/1/8.  
15779 - */  
15780 -  
15781 - var EngineUtils = function () {  
15782 - function EngineUtils() {  
15783 - _classCallCheck(this, EngineUtils);  
15784 - }  
15785 -  
15786 - _createClass(EngineUtils, null, [{  
15787 - key: "isEmptyObject",  
15788 - value: function isEmptyObject(O) {  
15789 - for (var x in O) {  
15790 - return false;  
15791 - }  
15792 - return true;  
15793 - }  
15794 - }, {  
15795 - key: "arrayToJsonString",  
15796 - value: function arrayToJsonString(_param) {  
15797 - try {  
15798 - return JSON.stringify(_param);  
15799 - } catch (err) {  
15800 - console.log("arrayToJsonString error:" + err.message);  
15801 - }  
15802 - return null;  
15803 - }  
15804 - }, {  
15805 - key: "arrayFromJsonString",  
15806 - value: function arrayFromJsonString(_param) {  
15807 - try {  
15808 - return JSON.parse(_param);  
15809 - } catch (err) {  
15810 - console.log("arrayFromJsonString error:" + err.message);  
15811 - }  
15812 - return null;  
15813 - }  
15814 -  
15815 - //生成时间戳随 保证唯一  
15816 -  
15817 - }, {  
15818 - key: "creatTimestamp",  
15819 - value: function creatTimestamp() {  
15820 - var time = new Date().getTime();  
15821 - var timestamp = time % 1000000000; //time后9位  
15822 - return timestamp;  
15823 - }  
15824 - }]);  
15825 -  
15826 - return EngineUtils;  
15827 - }();  
15828 -  
15829 - var _default = EngineUtils;  
15830 - exports.default = _default;  
15831 - ;  
15832 -  
15833 - var _temp = function () {  
15834 - if (typeof __REACT_HOT_LOADER__ === 'undefined') {  
15835 - return;  
15836 - }  
15837 -  
15838 - __REACT_HOT_LOADER__.register(EngineUtils, "EngineUtils", "D:/work/McuClient/src/EngineUtils.js");  
15839 -  
15840 - __REACT_HOT_LOADER__.register(_default, "default", "D:/work/McuClient/src/EngineUtils.js");  
15841 - }();  
15842 -  
15843 - ;  
15844 -  
15845 -/***/ },  
15846 /* 36 */ 15953 /* 36 */
15847 /***/ function(module, exports, __webpack_require__) { 15954 /***/ function(module, exports, __webpack_require__) {
15848 15955
@@ -15874,7 +15981,7 @@ return /******/ (function(modules) { // webpackBootstrap @@ -15874,7 +15981,7 @@ return /******/ (function(modules) { // webpackBootstrap
15874 15981
15875 var _MessageTypes2 = _interopRequireDefault(_MessageTypes); 15982 var _MessageTypes2 = _interopRequireDefault(_MessageTypes);
15876 15983
15877 - var _EngineUtils = __webpack_require__(35); 15984 + var _EngineUtils = __webpack_require__(34);
15878 15985
15879 var _EngineUtils2 = _interopRequireDefault(_EngineUtils); 15986 var _EngineUtils2 = _interopRequireDefault(_EngineUtils);
15880 15987
@@ -16226,7 +16333,7 @@ return /******/ (function(modules) { // webpackBootstrap @@ -16226,7 +16333,7 @@ return /******/ (function(modules) { // webpackBootstrap
16226 16333
16227 var _GlobalConfig2 = _interopRequireDefault(_GlobalConfig); 16334 var _GlobalConfig2 = _interopRequireDefault(_GlobalConfig);
16228 16335
16229 - var _EngineUtils = __webpack_require__(35); 16336 + var _EngineUtils = __webpack_require__(34);
16230 16337
16231 var _EngineUtils2 = _interopRequireDefault(_EngineUtils); 16338 var _EngineUtils2 = _interopRequireDefault(_EngineUtils);
16232 16339
@@ -16698,7 +16805,7 @@ return /******/ (function(modules) { // webpackBootstrap @@ -16698,7 +16805,7 @@ return /******/ (function(modules) { // webpackBootstrap
16698 16805
16699 var _GlobalConfig2 = _interopRequireDefault(_GlobalConfig); 16806 var _GlobalConfig2 = _interopRequireDefault(_GlobalConfig);
16700 16807
16701 - var _EngineUtils = __webpack_require__(35); 16808 + var _EngineUtils = __webpack_require__(34);
16702 16809
16703 var _EngineUtils2 = _interopRequireDefault(_EngineUtils); 16810 var _EngineUtils2 = _interopRequireDefault(_EngineUtils);
16704 16811
@@ -97,6 +97,7 @@ export default class MessageEntrance extends Emiter { @@ -97,6 +97,7 @@ export default class MessageEntrance extends Emiter {
97 this.leaveClass=this._leaveClass; 97 this.leaveClass=this._leaveClass;
98 this.getMcuClientStatus=this._getMcuClientStatus; 98 this.getMcuClientStatus=this._getMcuClientStatus;
99 this.getClassDetail=this._getClassDetail; 99 this.getClassDetail=this._getClassDetail;
  100 + this.sendUpdaterClass=this._sendUpdaterClass;
100 101
101 //chatApe 102 //chatApe
102 this.sendChatMsg=this._sendChatMsg; 103 this.sendChatMsg=this._sendChatMsg;
@@ -431,6 +432,8 @@ export default class MessageEntrance extends Emiter { @@ -431,6 +432,8 @@ export default class MessageEntrance extends Emiter {
431 // } 432 // }
432 //} 433 //}
433 434
  435 +
  436 + //ConferApe
434 // 参会处理 437 // 参会处理
435 conferenceHandler(msg_type) { 438 conferenceHandler(msg_type) {
436 var msg = { 439 var msg = {
@@ -439,7 +442,15 @@ export default class MessageEntrance extends Emiter { @@ -439,7 +442,15 @@ export default class MessageEntrance extends Emiter {
439 }; 442 };
440 this._emit(msg.type, msg); 443 this._emit(msg.type, msg);
441 } 444 }
  445 + //更新会议数据
  446 + _sendUpdaterClass(_param){
  447 + if(_confer_ape){
  448 + _confer_ape.sendUpdaterClassInfo(_param);
  449 + }
  450 + }
  451 +
442 452
  453 + //ChatApe
443 // 发送聊天消息 454 // 发送聊天消息
444 _sendChatMsg(_messageInfo) { 455 _sendChatMsg(_messageInfo) {
445 if(_messageInfo===null||EngineUtils.isEmptyObject(_messageInfo)){ 456 if(_messageInfo===null||EngineUtils.isEmptyObject(_messageInfo)){
@@ -21,9 +21,10 @@ import { Zlib } from 'zlibjs/bin/zlib.min'; @@ -21,9 +21,10 @@ import { Zlib } from 'zlibjs/bin/zlib.min';
21 import UTF8 from 'utf-8'; 21 import UTF8 from 'utf-8';
22 import Loger from 'Loger'; 22 import Loger from 'Loger';
23 import GlobalConfig from 'GlobalConfig'; 23 import GlobalConfig from 'GlobalConfig';
  24 +import EngineUtils from 'EngineUtils';
24 25
25 let loger = Loger.getLoger('ConferApe'); 26 let loger = Loger.getLoger('ConferApe');
26 - 27 +let itemIdx=0;//table插入新数据的计数id,目前用时间戳
27 class ConferApe extends Ape { 28 class ConferApe extends Ape {
28 constructor() { 29 constructor() {
29 super( 30 super(
@@ -137,10 +138,114 @@ class ConferApe extends Ape { @@ -137,10 +138,114 @@ class ConferApe extends Ape {
137 this.sendUniform(adapterPdu, true); 138 this.sendUniform(adapterPdu, true);
138 } 139 }
139 140
  141 + //更新会议信息
  142 + sendUpdaterClassInfo(_param){
  143 + loger.log('sendUpdaterClassInfo----------');
  144 + if(_param==null||EngineUtils.isEmptyObject(_param)){
  145 + loger.log('sendUpdaterClassInfo,参数错误');
  146 + this._emit(MessageTypes.MCU_ERROR,MessageTypes.ERR_APE_INTERFACE_PARAM_WRONG);
  147 + return ;
  148 + }
  149 + itemIdx=_param.itemIdx;
  150 + let whiteBoardModelPdu = this.packPdu(_param,itemIdx);
  151 + console.log(whiteBoardModelPdu);
  152 +
  153 + if(whiteBoardModelPdu==null){
  154 + loger.log('sendUpdaterClassInfo,参数错误');
  155 + this._emit(MessageTypes.MCU_ERROR,MessageTypes.ERR_APE_INTERFACE_PARAM_WRONG);
  156 + return ;
  157 + }
  158 +
  159 + let tableItemPdu = new pdu['RCRegistryTableItemPdu'];
  160 + tableItemPdu.itemIdx=itemIdx;
  161 + tableItemPdu.owner = 0;//收到flash的是这个值,不清楚先写固定
  162 + tableItemPdu.registerObjId=ApeConsts.CONFERENCE_OBJ_TABLE_ID;
  163 + tableItemPdu.itemData =whiteBoardModelPdu.toArrayBuffer();
  164 +
  165 +
  166 + //updater
  167 + let whiteBoardUpdateItem = new pdu['RCRegistryTableUpdateItemPdu'];
  168 + //optional RCPduType_E type = 1 [default = RCPDU_REG_TABLE_UPDATE_PDU];
  169 + //repeated RCRegistryTableItemPdu items = 2;
  170 + whiteBoardUpdateItem.type = pdu.RCPDU_REG_TABLE_UPDATE_PDU;//
  171 + whiteBoardUpdateItem.items.push(tableItemPdu);
  172 +
  173 +
  174 + let updateObjPdu = new pdu['RCRegistryUpdateObjPdu'];
  175 + updateObjPdu.objId = ApeConsts.CONFERENCE_OBJ_TABLE_ID;
  176 + updateObjPdu.subType = whiteBoardUpdateItem.type;
  177 + updateObjPdu.userData = whiteBoardUpdateItem.toArrayBuffer();
  178 +
  179 + //同步
  180 + let adapterItemPdu = new pdu['RCAdapterItemPdu'];
  181 + adapterItemPdu.type = pdu.RCPDU_REG_UPDATE_OBJ;
  182 + adapterItemPdu.itemData = updateObjPdu.toArrayBuffer();
  183 +
  184 + let adapterPdu = new pdu['RCAdapterPdu'];
  185 + adapterPdu.type = pdu.RCPDU_REG_ADAPTER;
  186 + adapterPdu.item.push(adapterItemPdu);
  187 +
  188 + console.log("会议发送更新数据============");
  189 + this.sendUniform(adapterPdu,true);
  190 + }
  191 +
  192 +
  193 +
  194 + ///////白板数据的封包和解包/////////////////////////////////////////
  195 + packPdu(_param,_itemIdx){
  196 + loger.log("会议===packPdu ");
  197 + //验证坐标点集合数组是否合法
  198 + if(_param==null||_itemIdx==null){
  199 + this._emit(MessageTypes.MCU_ERROR,MessageTypes.ERR_APE_INTERFACE_PARAM_WRONG);
  200 + return null;
  201 + }
  202 +
  203 + /*
  204 + optional uint32 class_status= 1;//当前课堂状态 //0:未开始,1,开始,2,暂停
  205 + optional string class_timestamp= 2;//目前用这个变量来记录时间 flash用的这个
  206 + optional item_idx=3;
  207 + optional from=4;
  208 + */
  209 + //判断type类型,根据type设置不同的参数
  210 + let modelPdu =new pdu['RCClassSendDataModelPdu'];
  211 + modelPdu.itemIdx=_itemIdx;
  212 + modelPdu.owner=GlobalConfig.nodeId;
  213 + modelPdu.from=GlobalConfig.nodeId;
  214 + modelPdu.classStatus =2;
  215 + modelPdu.classTimestamp=32532532;
  216 +
  217 + console.log(modelPdu);
  218 + return modelPdu;
  219 + }
  220 +
  221 + unPackPdu(owner, itemIdx,itemData){
  222 + loger.log("会议===unPackPdu ");
  223 + if(owner==null||itemIdx==null||itemData==null){
  224 + this._emit(MessageTypes.MCU_ERROR,MessageTypes.ERR_APE_INTERFACE_PARAM_WRONG);
  225 + return null;
  226 + }
  227 +
  228 + try{
  229 + let docModelPdu= pdu['RCClassSendDataModelPdu'].decode(itemData);
  230 + return docModelPdu;
  231 + }catch (err){
  232 + loger.log("会议收到数据 unPackPdu Pdu解析错误,itemIdx="+itemIdx+" err:"+err.message);
  233 + }
  234 + return null;
  235 + }
  236 +
  237 +
  238 + /////收到消息处理/////////////////////////////////////////////////////////////////////////////////
140 tableUpdateHandler(owner, itemIdx, itemData) { 239 tableUpdateHandler(owner, itemIdx, itemData) {
141 try { 240 try {
142 - let tabUpdatePdu = pdu["RCTabUpdateDataRequestPdu"].decode(itemData); 241 + let model=this.unPackPdu(owner, itemIdx,itemData);
  242 + loger.log('tableUpdateHandler',model);
  243 + } catch (e) {
  244 + loger.warn('ConferApe table update got exception. itemIdx',itemIdx);
  245 + }
143 246
  247 +/* try {
  248 + let tabUpdatePdu = pdu["RCTabUpdateDataRequestPdu"].decode(itemData);
144 const uncompressedBytes = new Zlib.Inflate(tabUpdatePdu.action.compact().view).decompress(); 249 const uncompressedBytes = new Zlib.Inflate(tabUpdatePdu.action.compact().view).decompress();
145 let tabInfo = UTF8.getStringFromBytes(uncompressedBytes); 250 let tabInfo = UTF8.getStringFromBytes(uncompressedBytes);
146 let tabTypeMatches = tabInfo.match(/<TabType>(.+)<\/TabType>/); 251 let tabTypeMatches = tabInfo.match(/<TabType>(.+)<\/TabType>/);
@@ -152,8 +257,8 @@ class ConferApe extends Ape { @@ -152,8 +257,8 @@ class ConferApe extends Ape {
152 } 257 }
153 } 258 }
154 } catch (e) { 259 } catch (e) {
155 - loger.warn('ConferApe table update got exception.');  
156 - } 260 + loger.warn('ConferApe table update got exception. itemIdx',itemIdx);
  261 + }*/
157 } 262 }
158 263
159 264
@@ -864,7 +864,12 @@ message RCWhiteBoardDataModel { @@ -864,7 +864,12 @@ message RCWhiteBoardDataModel {
864 optional string text= 12;//文本内容 864 optional string text= 12;//文本内容
865 optional bytes data = 13;//暂时预留的参数 865 optional bytes data = 13;//暂时预留的参数
866 } 866 }
867 - 867 +message RCClassSendDataModelPdu {
  868 + optional uint32 class_status= 1;//当前课堂状态 //0:未开始,1,开始,2,暂停
  869 + optional uint32 class_timestamp= 2;//目前用这个变量来记录时间 flash用的这个
  870 + optional uint32 item_idx=3;
  871 + optional uint32 from=4;
  872 +}
868 873
869 //end 874 //end
870 `; 875 `;