UNPKG

@salutejs/jazz-sdk-electron-plugins

Version:

Jazz SDK electron plugins

2 lines (1 loc) 2.03 kB
"use strict";var e=require("@salutejs/jazz-sdk-electron/preload"),t=require("electron"),a=require("rx-effects"),r=require("rxjs");const s="jazz-sdk-desktop-capturer-ipc-channel",o="jazz-sdk-ask-display-media-stream",n="jazz-sdk-capturer-sources-event";function c(){const c=a.createScope(),i=c.createController((()=>function(t){const{ipcRenderer:c}=t,i=a.createScope(),p=e.createEventBus();let d;const u=e=>{d=e,p({type:"askDisplayMediaStream"})};c.on(o,u),i.add((()=>{c.off(o,u)}));const y=(e,t)=>{p(t)};return c.on(n,y),i.add((()=>{c.off(n,y)})),{capturerSourcesStartProcess:async e=>{const t={payload:e,type:"capturerSourcesStartProcess"};return(await c.invoke(s,t)).payload},capturerSourcesFinishProcess:async()=>(await c.invoke(s,{type:"capturerSourcesFinishProcess"})).payload,getDesktopCapturerSources:async e=>{const t={payload:e,type:"getDesktopCapturerSources"};return(await c.invoke(s,t)).payload},askForMediaAccess:async e=>{const t={payload:{type:e},type:"askForMediaAccess"};return(await c.invoke(s,t)).payload},getMediaAccessStatus:async e=>{const t={payload:{type:e},type:"getMediaAccessStatus"};return(await c.invoke(s,t)).payload},openSystemSettings:async e=>{const t={payload:{key:e},type:"systemSettings"};return(await c.invoke(s,t)).payload},replyDisplayMediaStream:(e,t=!1)=>{const a={source:e,audio:t};d?.sender.send("jazz-sdk-reply-display-media-stream",a),d=void 0},osInfo:async()=>(await c.invoke(s,{type:"osInfo"})).payload,subscribe:(e,t)=>{const a=p.event$.pipe(r.filter((t=>t.type===e))).subscribe((e=>{t("payload"in e?e.payload:void 0)}));return()=>a.unsubscribe()},once:(e,t)=>{const a=p.event$.pipe(r.filter((t=>t.type===e)),r.take(1)).subscribe((e=>{t("payload"in e?e.payload:void 0)}));return()=>a.unsubscribe()},destroy:()=>{i.destroy()}}}({ipcRenderer:t.ipcRenderer}))),p={ipcMain:i};return t.contextBridge.exposeInMainWorld("jazz-sdk-desktop-capturer-bridge",p),{destroy:c.destroy}}exports.desktopCapturerPlugin=function(){return e.createModule({name:"DesktopCapturerPlugin",factory:c})};