UNPKG

@salutejs/jazz-sdk-electron-plugins

Version:

Jazz SDK electron plugins

2 lines (1 loc) 2.52 kB
import{createEventBus as e,createModule as t}from"@salutejs/jazz-sdk-electron/preload";import{contextBridge as o,ipcRenderer as r}from"electron";import{createScope as n}from"rx-effects";import{filter as s,take as a}from"rxjs";const i="jazz-sdk-desktop-capturer-ipc-channel",c="jazz-sdk-ask-display-media-stream",d="jazz-sdk-capturer-sources-event";function p(e,t,o,r){return new(o||(o=Promise))((function(t,n){function s(e){try{i(r.next(e))}catch(e){n(e)}}function a(e){try{i(r.throw(e))}catch(e){n(e)}}function i(e){var r;e.done?t(e.value):(r=e.value,r instanceof o?r:new o((function(e){e(r)}))).then(s,a)}i((r=r.apply(e,[])).next())}))}function u(){return t({name:"DesktopCapturerPlugin",factory:y})}function y(){const t=n(),u=t.createController((()=>function(t){const{ipcRenderer:o}=t,r=n(),u=e();let y;const l=e=>{y=e,u({type:"askDisplayMediaStream"})};o.on(c,l),r.add((()=>{o.off(c,l)}));const f=(e,t)=>{u(t)};return o.on(d,f),r.add((()=>{o.off(d,f)})),{capturerSourcesStartProcess:e=>p(this,0,void 0,(function*(){const t={payload:e,type:"capturerSourcesStartProcess"};return(yield o.invoke(i,t)).payload})),capturerSourcesFinishProcess:()=>p(this,0,void 0,(function*(){return(yield o.invoke(i,{type:"capturerSourcesFinishProcess"})).payload})),getDesktopCapturerSources:e=>p(this,0,void 0,(function*(){const t={payload:e,type:"getDesktopCapturerSources"};return(yield o.invoke(i,t)).payload})),askForMediaAccess:e=>p(this,0,void 0,(function*(){const t={payload:{type:e},type:"askForMediaAccess"};return(yield o.invoke(i,t)).payload})),getMediaAccessStatus:e=>p(this,0,void 0,(function*(){const t={payload:{type:e},type:"getMediaAccessStatus"};return(yield o.invoke(i,t)).payload})),openSystemSettings:e=>p(this,0,void 0,(function*(){const t={payload:{key:e},type:"systemSettings"};return(yield o.invoke(i,t)).payload})),replyDisplayMediaStream:(e,t=!1)=>{const o={source:e,audio:t};null==y||y.sender.send("jazz-sdk-reply-display-media-stream",o),y=void 0},osInfo:()=>p(this,0,void 0,(function*(){return(yield o.invoke(i,{type:"osInfo"})).payload})),subscribe:(e,t)=>{const o=u.event$.pipe(s((t=>t.type===e))).subscribe((e=>{t("payload"in e?e.payload:void 0)}));return()=>o.unsubscribe()},once:(e,t)=>{const o=u.event$.pipe(s((t=>t.type===e)),a(1)).subscribe((e=>{t("payload"in e?e.payload:void 0)}));return()=>o.unsubscribe()},destroy:()=>{r.destroy()}}}({ipcRenderer:r}))),y={ipcMain:u};return o.exposeInMainWorld("jazz-sdk-desktop-capturer-bridge",y),{destroy:t.destroy}}export{u as desktopCapturerPlugin};