UNPKG

voicemeeter-connector

Version:
3 lines (2 loc) 6.6 kB
import e from"koffi";import t from"winreg";var r,n,o,i,a=/*#__PURE__*/function(){function o(){var e=this;this.isInitialised=!1,this.isConnected=!1,this.outputDevices=[],this.inputDevices=[],this.version="",this.type=void 0,this.eventPool=[],this.stringParameters=["Label","FadeTo","FadeBy","AppGain","AppMute","name","ip"],this.connect=function(){if(!e.isInitialised)throw new Error("Await the initialisation before connect");if(!e.isConnected){if(0===r.VBVMR_Login())return e.isConnected=!0,e.type=e.getVoicemeeterType(),e.version=e.getVoicemeeterVersion(),void setInterval(e.checkPropertyChange,10);throw e.isConnected=!1,new Error("Connection failed")}},this.disconnect=function(){if(!e.isConnected)throw new Error("Not connected ");try{if(0===r.VBVMR_Logout())return void(e.isConnected=!1);throw new Error("Disconnect failed")}catch(e){throw new Error("Disconnect failed")}},this.updateDeviceList=function(){if(!e.isConnected)throw new Error("Not connected ");e.outputDevices=[],e.inputDevices=[];for(var t=r.VBVMR_Output_GetDeviceNumber(),n=0;n<t;n++){var o=Buffer.alloc(256),i=Buffer.alloc(256),a=[0];r.VBVMR_Output_GetDeviceDescA(n,a,i,o),e.outputDevices.push({name:i.toString().replace(/\u0000+$/g,""),hardwareId:o.toString().replace(/\u0000+$/g,""),type:a[0]})}for(var c=r.VBVMR_Input_GetDeviceNumber(),u=0;u<c;u++){var s=Buffer.alloc(256),l=Buffer.alloc(256),_=[0];r.VBVMR_Input_GetDeviceDescA(u,_,l,s),e.inputDevices.push({name:l.toString().replace(/\u0000+$/g,""),hardwareId:s.toString().replace(/\u0000+$/g,""),type:_[0]})}},this.isParametersDirty=function(){return r.VBVMR_IsParametersDirty()},this.getBusParameter=function(t,r){return e.getParameter("Bus",t,r)},this.getStripParameter=function(t,r){return e.getParameter("Strip",t,r)},this.setStripParameter=function(t,r,n){return e.setParameter("Strip",t,r,n)},this.setBusParameter=function(t,r,n){return e.setParameter("Bus",t,r,n)},this.attachChangeEvent=function(t){e.eventPool.push(t)},this.getOption=function(t){if(!e.isConnected)throw new Error("Not correct connected ");if(e.stringParameters.some(function(e){return t.includes(e)})){var n=Buffer.alloc(512);return r.VBVMR_GetParameterStringA(t,n),String.fromCharCode.apply(null,n).split("").filter(function(e){return"\0"!==e}).join("")}var o=[0];return r.VBVMR_GetParameterFloat(t,o),o[0]},this.setOption=function(e){var t=Buffer.alloc(e.length+1);return t.fill(0).write(e),r.VBVMR_SetParameters(t),new Promise(function(e){return setTimeout(e,200)})},this.checkPropertyChange=function(){1===e.isParametersDirty()&&e.eventPool.forEach(function(e){e()})},this.getVoicemeeterType=function(){var e=[0];if(0!==r.VBVMR_GetVoicemeeterType(e))throw new Error("running failed");switch(e[0]){case 1:return"voicemeeter";case 2:return"voicemeeterBanana";case 3:return"voicemeeterPotato";default:throw new Error("Voicemeeter seems not to be installed")}},this.getVoicemeeterVersion=function(){var e=[0];if(0!==r.VBVMR_GetVoicemeeterVersion(e))throw new Error("running failed");return((4278190080&e[0])>>24)+"."+((16711680&e[0])>>16)+"."+((65280&e[0])>>8)+"."+(255&e[0])},this.getParameter=function(t,r,n){return e.getOption(t+"["+r+"]."+n)},this.setParameter=function(t,r,n,o){if(!e.isConnected)throw new Error("Not connected ");return e.setOption(t+"["+r+"]."+n+"="+o+";")},this.getLevel=function(e,t){var n=[0];return r.VBVMR_GetLevel(e,t,n),n[0]}}var i;return o.init=function(){try{return Promise.resolve(function(){try{var e=new t({hive:t.HKLM,key:"\\SOFTWARE\\WOW6432Node\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\VB:Voicemeeter {17359A74-1236-5467}"});return Promise.resolve(new Promise(function(t){e.values(function(e,r){if(e)throw new Error(e);var n=r.find(function(e){return"UninstallString"===e.name}).value,o=n.lastIndexOf("\\");t(n.slice(0,o))})}))}catch(e){return Promise.reject(e)}}()).then(function(t){return new Promise(function(i){n||(n=new o);var a=e.load(t+"/VoicemeeterRemote64.dll");r={VBVMR_Login:a.func("long __stdcall VBVMR_Login(void)"),VBVMR_Logout:a.func("long __stdcall VBVMR_Logout(void)"),VBVMR_RunVoicemeeter:a.func("long __stdcall VBVMR_RunVoicemeeter(long mode)"),VBVMR_IsParametersDirty:a.func("long __stdcall VBVMR_IsParametersDirty(void)"),VBVMR_GetLevel:a.func("long __stdcall VBVMR_GetLevel(long type, long channel, _Out_ float* value)"),VBVMR_GetParameterFloat:a.func("long __stdcall VBVMR_GetParameterFloat(const char* param, _Out_ float* value)"),VBVMR_GetParameterStringA:a.func("long __stdcall VBVMR_GetParameterStringA(const char* param, _Out_ char* value)"),VBVMR_SetParameters:a.func("long __stdcall VBVMR_SetParameters(const char* param)"),VBVMR_Output_GetDeviceNumber:a.func("long __stdcall VBVMR_Output_GetDeviceNumber(void)"),VBVMR_Output_GetDeviceDescA:a.func("long __stdcall VBVMR_Output_GetDeviceDescA(long index, _Out_ long* type, _Out_ char* name, _Out_ char* hardwareId)"),VBVMR_Input_GetDeviceNumber:a.func("long __stdcall VBVMR_Input_GetDeviceNumber(void)"),VBVMR_Input_GetDeviceDescA:a.func("long __stdcall VBVMR_Input_GetDeviceDescA(long index, long* type, char* name, char* hardwareId)"),VBVMR_GetVoicemeeterType:a.func("long __stdcall VBVMR_GetVoicemeeterType(_Out_ long* type)"),VBVMR_GetVoicemeeterVersion:a.func("long __stdcall VBVMR_GetVoicemeeterVersion(_Out_ long* version)")},n.isInitialised=!0,i(n)})})}catch(e){return Promise.reject(e)}},(i=[{key:"$outputDevices",get:function(){return this.outputDevices}},{key:"$inputDevices",get:function(){return this.inputDevices}},{key:"$version",get:function(){return this.version}},{key:"$type",get:function(){return this.type}}])&&function(e,t){for(var r=0;r<t.length;r++){var n=t[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}(o.prototype,i),o}();!function(e){e.Mono="Mono",e.Mute="Mute",e.Solo="Solo",e.MC="MC",e.Gain="Gain",e.Pan_x="Pan_x",e.Pan_y="Pan_y",e.Color_x="Color_x",e.Color_y="Color_y",e.fx_x="fx_x",e.fx_y="fx_y",e.Audibility="Audibility",e.Comp="Comp",e.Gate="Gate",e.EqGain1="EqGain1",e.EqGain2="EqGain2",e.EqGain3="EqGain3",e.Label="Label",e.A1="A1",e.A2="A2",e.A3="A3",e.A4="A4",e.A5="A5",e.B1="B1",e.B2="B2",e.B3="B3",e.FadeTo="FadeTo"}(o||(o={})),function(e){e.Mono="Mono",e.Mute="Mute",e.EQ="EQ.on",e.Gain="Gain",e.NormalMode="mode.normal",e.AmixMode="mode.Amix",e.BmixMode="mode.Bmix",e.RepeatMode="mode.Repeat",e.CompositeMode="mode.Composite",e.FadeTo="FadeTo",e.Label="Label"}(i||(i={}));var c={__proto__:null},u=i,s={strip:0,bus:1},l=o;export{u as BusProperties,s as InterfaceTypes,l as StripProperties,a as Voicemeeter,c as types}; //# sourceMappingURL=index.module.js.map