podchat-browser
Version:
Javascript SDK to use POD's Chat Service - Browser Only
197 lines (171 loc) • 6.49 kB
JavaScript
;
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports["default"] = void 0;
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
var _errorHandler = require("../errorHandler");
var _constants = require("../constants");
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2["default"])(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
function SharedData(app) {
var callStopQueue = {
callStarted: false
},
callClientType = {
WEB: 1,
ANDROID: 2,
DESKTOP: 3
},
callTypes = {
'VOICE': 0x0,
'VIDEO': 0x1
},
joinCallParams = {
cameraPaused: false
};
var sharedVariables = {
globalCallRequestTimeout: null,
// callTurnIp: null,
useInternalTurnAddress: null,
useCustomTurnAddress: false,
callTurnIp: null,
callDivId: null,
callAudioTagClassName: null,
callVideoTagClassName: null,
callVideoMinWidth: null,
callVideoMinHeight: null,
requestedCallId: null,
acceptedCallId: null,
currentCallId: null,
callNoAnswerTimeout: null,
callStreamCloseTimeout: null,
asyncClient: null,
callOptions: null,
startScreenShareParams: {
quality: 3
},
deviceManager: null,
audioCtx: null
};
function audioCtx() {
if (!sharedVariables.audioCtx) sharedVariables.audioCtx = new (window.AudioContext || window.webkitAudioContext)();
return sharedVariables.audioCtx;
}
function endCall(params, callback) {
var _app$call$currentCall;
app.sdkParams.consoleLogging && console.log('[SDK][endCall] called...');
var endCallData = {
chatMessageVOType: _constants.chatMessageVOTypes.END_CALL_REQUEST,
typeCode: params.typeCode,
//params.typeCode,
pushMsgType: 3,
token: app.sdkParams.token
};
if (params) {
if (typeof +params.callId === 'number' && params.callId > 0) {
endCallData.subjectId = +params.callId;
} else {
app.errorHandler.raiseError(_errorHandler.errorList.INVALID_CALLID, callback, true, {});
return;
}
} else {
app.chatEvents.fireEvent('error', {
code: 999,
message: '[SDK] No params have been sent to End the call!'
});
return;
}
if ((_app$call$currentCall = app.call.currentCall()) !== null && _app$call$currentCall !== void 0 && _app$call$currentCall.callServerController().isJanus()) {
app.callsManager.removeItem(endCallData.subjectId);
}
return app.messenger.sendMessage(endCallData, {
onResult: function onResult(result) {
callback && callback(result);
}
});
}
function endScreenShare(params, callback) {
var cCall = app.callsManager.get(app.callsManager.currentCallId());
if (!cCall) {
// app.errorHandler.raiseError(errorList.INVALID_CALLID, callback, true, {});
app.errorHandler.raiseError(app.errorHandler.getFilledErrorObject(_objectSpread(_objectSpread({}, _errorHandler.errorList.INVALID_CALLID), {}, {
replacements: ['endScreenShare']
})), callback, true, {});
return;
}
var sendData = {
chatMessageVOType: _constants.chatMessageVOTypes.END_SCREEN_SHARE,
typeCode: params.typeCode,
//params.typeCode,
pushMsgType: 3,
token: app.sdkParams.token,
subjectId: app.callsManager.currentCallId()
};
if (!sendData.subjectId) {
// cCall.raiseCallError(errorList.INVALID_CALLID, callback, true, {});
app.errorHandler.raiseCallError(app.errorHandler.getFilledErrorObject(_objectSpread(_objectSpread({}, _errorHandler.errorList.INVALID_CALLID), {}, {
replacements: ['endScreenShare']
})), callback, true);
return;
}
if (!cCall.screenShareInfo.isStarted()) {
cCall.raiseCallError(_errorHandler.errorList.SCREENSHARE_NOT_STARTED, callback, true);
return;
} else {
cCall.users().removeItem("screenShare");
}
if (!cCall.screenShareInfo.iAmOwner()) {
cCall.raiseCallError(_errorHandler.errorList.NOT_SCREENSHARE_OWNER, callback, true);
return;
}
return app.messenger.sendMessage(sendData, {
onResult: function onResult(result) {
callback && callback(result);
}
});
}
function calculateScreenSize(_ref) {
var _ref$quality = _ref.quality,
quality = _ref$quality === void 0 ? 3 : _ref$quality;
var screenSize = window.screen,
qualities = [{
width: Math.round(screenSize.width / 3),
height: Math.round(window.screen.height / 3)
}, {
width: Math.round(screenSize.width / 2),
height: Math.round(screenSize.height / 2)
}, {
width: screenSize.width,
height: screenSize.height
}, {
width: Math.round(screenSize.width * 1.6),
height: Math.round(screenSize.height * 1.6)
}],
selectedQuality = quality ? +quality - 1 : 3,
qualityObj = qualities[selectedQuality];
return qualityObj;
}
function currentCall() {
return app.callsManager.get(app.callsManager.currentCallId());
}
function currentCallMyUser() {
return currentCall().users().get(app.store.user.get().id);
}
return {
calculateScreenSize: calculateScreenSize,
currentCallMyUser: currentCallMyUser,
callStopQueue: callStopQueue,
sharedVariables: sharedVariables,
callClientType: callClientType,
callTypes: callTypes,
joinCallParams: joinCallParams,
endScreenShare: endScreenShare,
currentCall: currentCall,
endCall: endCall,
audioCtx: audioCtx
};
}
var _default = SharedData;
exports["default"] = _default;