UNPKG

application-loopback

Version:
2 lines 1.81 kB
var e=Object.create,t=Object.defineProperty,n=Object.getOwnPropertyDescriptor,r=Object.getOwnPropertyNames,i=Object.getPrototypeOf,a=Object.prototype.hasOwnProperty,o=(e,i,o,s)=>{if(i&&typeof i==`object`||typeof i==`function`)for(var c=r(i),l=0,u=c.length,d;l<u;l++)d=c[l],!a.call(e,d)&&d!==o&&t(e,d,{get:(e=>i[e]).bind(null,d),enumerable:!(s=n(i,d))||s.enumerable});return e},s=(n,r,a)=>(a=n==null?{}:e(i(n)),o(r||!n||!n.__esModule?t(a,`default`,{value:n,enumerable:!0}):a,n));const c=s(require(`node:child_process`)),l=s(require(`node:os`)),u=s(require(`node:path`));if((0,l.platform)()!==`win32`||(0,l.arch)()!==`x64`)throw Error(`This package is currently only available for Windows 10 x64 and later`);let d=u.default.resolve(__dirname,`../`,`bin`);function f(e){d=e}function p(){return u.default.resolve(d,`${(0,l.platform)()}-${(0,l.arch)()}`,`ApplicationLoopback.exe`)}function m(){return u.default.resolve(d,`${(0,l.platform)()}-${(0,l.arch)()}`,`ProcessList.exe`)}async function h(){let e=(0,c.spawn)(m(),{detached:!0,stdio:`pipe`});return e.stdout.setEncoding(`utf8`),new Promise(t=>{let n=[];e.stdout.on(`data`,e=>n.push(...e.split(` `).map(e=>{let[t,n]=e.replace(`\r`,``).split(`;`);if(t&&n)return{processId:t,title:n}}).filter(e=>e!==void 0))),e.stdout.on(`close`,()=>{t(n)})})}const g=new Map;function _(e,t){if(g.has(e))throw Error(`An audio capture with process id of ${e} is already started`);let n=(0,c.spawn)(`${u.default.resolve(__dirname,p())}`,[e],{detached:!0,stdio:`pipe`});return g.set(e,n),n.stdout.on(`data`,e=>{t.onData?.(e)}),e}function v(e){let t=g.get(e);return t?(t.kill(),g.delete(e),!0):!1}exports.getActiveWindowProcessIds=h,exports.getLoopbackBinaryPath=p,exports.getProcessListBinaryPath=m,exports.setExecutablesRoot=f,exports.startAudioCapture=_,exports.stopAudioCapture=v;