const ZOOMSDKMOD_GeneralSetting = require('./zoom_setting_general.js');
const ZOOMSDKMOD_RecordingSetting = require('./zoom_setting_recording.js')
const ZOOMSDKMOD_VideoSetting = require('./zoom_setting_video.js');
const ZOOMSDKMOD_AudioSetting = require('./zoom_setting_audio.js');
const ZoomSettingUIMOD = require('./zoom_setting_ui_ctrl.js');
const ZoomSettingStatisticMOD = require('./zoom_setting_statistic_ctrl.js');
const ZoomSettingAccessibilityMOD = require('./zoom_setting_accessibility_ctrl.js');
const messages = require('./electron_sdk_pb.js');
let ZoomGeneralSetting;
let ZoomVideoSetting;
let ZoomAudioSetting;
let ZoomRecordingSetting;
let ZoomSettingUICtrl;
let ZoomSettingStatisticCtrl;
let ZoomSettingAccessibilityCtrl;
/**
*@module
*/
var ZoomSetting = (function () {
var instance;
/**
* mode: Zoom SDK Settings Service Init
* @param {Object} addon zoom sdk module
* @return {ZoomSetting}
*/
function init(opts) {
var clientOpts = opts || {};
// Private methods and variables
var _addon = clientOpts.addon.GetSetObj() || null
return {
/** mode: Show The Setting Dlg
* @param {String} hParent parent setting handle (require hexadecimal)
* @param {String} left setting dlg left pos
* @param {String} top setting dlg top pos
* @param {String} hSettingWnd Setting Wnd (require hexadecimal)
* @param {Boolean} bShow show or not
* @return {ZoomSDKError}
*/
SettingUI_ShowTheSettingDlg: function (opts) {
if (_addon) {
let clientOpts = opts || {}
clientOpts.addon = _addon
let hParent = clientOpts.hParent || '0'
let top = clientOpts.top || '0'
let left = clientOpts.left || '0'
let hSettingWnd = clientOpts.hSettingWnd || '0'
let bShow = clientOpts.bShow || true
try {
let ShowSettingDlgParams = new messages.ShowSettingDlgParams();
ShowSettingDlgParams.setHparent(hParent);
ShowSettingDlgParams.setLeft(left);
ShowSettingDlgParams.setTop(top);
ShowSettingDlgParams.setHsettingwnd(hSettingWnd);
ShowSettingDlgParams.setBshow(bShow);
let bytes = ShowSettingDlgParams.serializeBinary();
return _addon.ShowSettingDlg(bytes);
} catch (error) {
return ZoomSDKError.SDKERR_INVALID_PARAMETER;
}
}
return ZOOMSDKMOD_4Setting.ZoomSDKError.SDKERR_UNINITIALIZE
},
/** mode: Hide Setting Dlg
*/
SettingUI_HideSettingDlg: function () {
if (_addon) {
return _addon.HideSettingDlg();
}
return ZOOMSDKMOD_4Setting.ZoomSDKError.SDKERR_UNINITIALIZE;
},
GetGeneralSetting: function (opts) {
if (_addon) {
let clientOpts = opts || {};
clientOpts.addon = _addon;
if (!ZoomGeneralSetting) {
ZoomGeneralSetting = ZOOMSDKMOD_GeneralSetting.ZoomGeneralSetting.getInstance(clientOpts);
}
return ZoomGeneralSetting;
}
return null;
},
GetVideoSetting: function (opts) {
if (_addon) {
let clientOpts = opts || {}
clientOpts.addon = _addon
if (!ZoomVideoSetting) {
ZoomVideoSetting = ZOOMSDKMOD_VideoSetting.ZoomVideoSetting.getInstance(clientOpts);
}
return ZoomVideoSetting;
}
return null;
},
GetAudioSetting : function (opts) {
if (_addon) {
let clientOpts = opts || {};
clientOpts.addon = _addon;
if (!ZoomAudioSetting) {
ZoomAudioSetting = ZOOMSDKMOD_AudioSetting.ZoomAudioSetting.getInstance(clientOpts);
}
return ZoomAudioSetting;
}
return null;
},
GetRecordingSetting: function (opts) {
if (_addon) {
let clientOpts = opts || {};
clientOpts.addon = _addon;
if (!ZoomRecordingSetting) {
ZoomRecordingSetting = ZOOMSDKMOD_RecordingSetting.ZoomRecordingSetting.getInstance(clientOpts);
}
return ZoomRecordingSetting;
}
return null;
},
GetSettingUICtrl: function (opts) {
if (_addon) {
let clientOpts = opts || {};
clientOpts.addon = _addon;
if (!ZoomSettingUICtrl) {
ZoomSettingUICtrl = ZoomSettingUIMOD.ZoomSettingUICtrl.getInstance(clientOpts);
}
return ZoomSettingUICtrl;
}
return null;
},
GetSettingStatisticCtrl: function (opts) {
if (_addon) {
let clientOpts = opts || {};
clientOpts.addon = _addon;
if (!ZoomSettingStatisticCtrl) {
ZoomSettingStatisticCtrl = ZoomSettingStatisticMOD.ZoomSettingStatisticCtrl.getInstance(clientOpts);
}
return ZoomSettingStatisticCtrl;
}
return null;
},
GetSettingAccessibilityCtrl: function (opts) {
if (_addon) {
let clientOpts = opts || {};
clientOpts.addon = _addon;
if (!ZoomSettingAccessibilityCtrl) {
ZoomSettingAccessibilityCtrl = ZoomSettingAccessibilityMOD.ZoomSettingAccessibilityCtrl.getInstance(clientOpts);
}
return ZoomSettingAccessibilityCtrl;
}
return null;
}
};
};
return {
/**
* mode: Get Zoom SDK Setting Service Module
* @return {ZoomSetting}
*/
getInstance: function (opts) {
if (!instance) {
instance = init(opts);
}
return instance;
}
};
})();
module.exports = {
ZoomSetting: ZoomSetting
}