UNPKG

@tencentcloud/roomkit-electron-vue3

Version:

<h1 align="center"> TUIRoomKit</h1> Conference (TUIRoomKit) is a product suitable for multi-person audio and video conversation scenarios such as business meetings, webinars, and online education. By integrating this product, you can add room management,

187 lines (186 loc) 5.81 kB
"use strict"; Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: "Module" } }); const AdvancedBeauty = require("../../type/AdvancedBeauty.js"); const usePluginConfig = require("./usePluginConfig.js"); const usePlugin = require("./usePlugin.js"); const Vue = require("vue"); const virtualBackgroundImages = Vue.ref([]); const beautyConfigs = Vue.reactive(/* @__PURE__ */ new Map()); const beautyLicenseInfo = { panelLevel: AdvancedBeauty.AdvancedBeautyPanelLevel.S1_00, licenseUrl: "", licenseKey: "" }; function setAdvancedBeautyLicenseInfo(licenseInfo) { beautyLicenseInfo.panelLevel = licenseInfo.panelLevel; beautyLicenseInfo.licenseUrl = licenseInfo.licenseUrl; beautyLicenseInfo.licenseKey = licenseInfo.licenseKey; usePlugin.plugin.initPlugin(licenseInfo.licenseUrl, licenseInfo.licenseKey); } function setVirtualBackgroundImages(images) { virtualBackgroundImages.value = images; } function setAdvancedBeauty(type, config) { const newConfig = { ...config }; if (newConfig.effectKey.length === 0) { clearBeautyConfigsByBeautyKey(type, newConfig.beautyPanelKey); } else { cacheBeautyConfigs(type, newConfig); } } function cacheBeautyConfigs(type, config) { var _a; let configArray = (_a = beautyConfigs.get(type)) == null ? void 0 : _a.get(config.beautyPanelKey); if (configArray) { if (isReplaceConfig(type)) { configArray.length = 0; configArray.push(config); } else { let needToAdd = true; configArray.forEach((cachedConfig) => { if (config.effectKey === cachedConfig.effectKey) { cachedConfig.effectValue = config.effectValue; needToAdd = false; } }); if (needToAdd) { configArray.push(config); } } } else { let panelMap = beautyConfigs.get(type); if (!panelMap) { panelMap = /* @__PURE__ */ new Map(); beautyConfigs.set(type, panelMap); } configArray = []; configArray.push(config); panelMap.set(config.beautyPanelKey, configArray); } clearConflictBeautyConfigs(type); setBeauty(type, config); } function clearConflictBeautyConfigs(type) { const conflictBeauty = [ AdvancedBeauty.AdvancedBeautyType.motion, AdvancedBeauty.AdvancedBeautyType.virtualBackground, AdvancedBeauty.AdvancedBeautyType.advancedMakeup ]; if (!conflictBeauty.includes(type)) { return; } conflictBeauty.forEach((beautyType) => { var _a; if (beautyType !== type) { const configArray = (_a = beautyConfigs.get(beautyType)) == null ? void 0 : _a.get(beautyType); if (configArray) { configArray.length = 0; } } }); } function clearBeautyConfigsByBeautyKey(type, beautyKey) { var _a; clearConflictBeautyConfigs(type); const configArray = (_a = beautyConfigs.get(type)) == null ? void 0 : _a.get(beautyKey); if (configArray) { configArray == null ? void 0 : configArray.forEach((config) => { config.effectValue = 0; setBeauty(type, config); }); } } function isReplaceConfig(type) { switch (type) { case AdvancedBeauty.AdvancedBeautyType.basicBeauty: case AdvancedBeauty.AdvancedBeautyType.makeup: case AdvancedBeauty.AdvancedBeautyType.advancedMakeup: case AdvancedBeauty.AdvancedBeautyType.filters: case AdvancedBeauty.AdvancedBeautyType.motion: case AdvancedBeauty.AdvancedBeautyType.virtualBackground: return true; default: return false; } } function setBeauty(type, config) { const beautySetting = [ { category: getBeautyCategory(type), effKey: config.effectKey, effValue: config.effectValue, resPath: generateResourcePath(type, config), bgPath: config.backgroundPath } ]; const param = JSON.stringify({ beautySetting }); usePlugin.plugin.setParameter(param); } function generateResourcePath(type, config) { if (config.resourcePath && type !== AdvancedBeauty.AdvancedBeautyType.makeup) { return usePluginConfig.getResourcePath() + config.resourcePath; } return config.resourcePath; } function clearBeautySetting() { const beautySetting = []; beautyConfigs.forEach((configPanel, type) => { configPanel.forEach((configs) => { configs.forEach((config) => { if (config.effectValue !== 0) { const setting = { category: getBeautyCategory(type), effKey: config.effectKey, effValue: 0, resPath: generateResourcePath(type, config), bgPath: config.backgroundPath }; beautySetting.push(setting); } }); }); }); if (beautySetting.length > 0) { const param = JSON.stringify({ beautySetting }); usePlugin.plugin.setParameter(param); } beautyConfigs.clear(); usePlugin.plugin.clearBeautyEffect(); } function getBeautyCategory(type) { switch (type) { case AdvancedBeauty.AdvancedBeautyType.basicBeauty: case AdvancedBeauty.AdvancedBeautyType.advancedBeauty: case AdvancedBeauty.AdvancedBeautyType.imageQuality: case AdvancedBeauty.AdvancedBeautyType.makeup: return 0; case AdvancedBeauty.AdvancedBeautyType.bodyBeauty: return 1; case AdvancedBeauty.AdvancedBeautyType.filters: return 2; case AdvancedBeauty.AdvancedBeautyType.motion: return 3; case AdvancedBeauty.AdvancedBeautyType.virtualBackground: return 4; case AdvancedBeauty.AdvancedBeautyType.advancedMakeup: return 5; default: return -1; } } function useAdvancedBeautyState() { return { beautyConfigs, beautyLicenseInfo, virtualBackgroundImages, setAdvancedBeautyLicenseInfo, setAdvancedBeauty, clearBeautySetting, setVirtualBackgroundImages }; } exports.default = useAdvancedBeautyState;