UNPKG

wam-community

Version:

A collection of prebuilt Web Audio Modules ready for use

147 lines (106 loc) 158 kB
/* * ATTENTION: The "eval" devtool has been used (maybe by default in mode: "development"). * This devtool is neither made for production nor for readable output files. * It uses "eval()" calls to create a separate source file in the browser devtools. * If you are trying to read the output file, select a different devtool (https://webpack.js.org/configuration/devtool/) * or disable the default devtool with "devtool: false". * If you are looking for production-ready output files, see mode: "production" (https://webpack.js.org/configuration/mode/). */ /******/ var __webpack_modules__ = ({ /***/ "../../../node_modules/preact/dist/preact.module.js": /*!**********************************************************!*\ !*** ../../../node_modules/preact/dist/preact.module.js ***! \**********************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ Component: () => (/* binding */ _),\n/* harmony export */ Fragment: () => (/* binding */ d),\n/* harmony export */ cloneElement: () => (/* binding */ B),\n/* harmony export */ createContext: () => (/* binding */ D),\n/* harmony export */ createElement: () => (/* binding */ v),\n/* harmony export */ createRef: () => (/* binding */ p),\n/* harmony export */ h: () => (/* binding */ v),\n/* harmony export */ hydrate: () => (/* binding */ q),\n/* harmony export */ isValidElement: () => (/* binding */ i),\n/* harmony export */ options: () => (/* binding */ l),\n/* harmony export */ render: () => (/* binding */ S),\n/* harmony export */ toChildArray: () => (/* binding */ A)\n/* harmony export */ });\nvar n,l,u,i,t,o,r,f,e={},c=[],s=/acit|ex(?:s|g|n|p|$)|rph|grid|ows|mnc|ntw|ine[ch]|zoo|^ord|itera/i;function a(n,l){for(var u in l)n[u]=l[u];return n}function h(n){var l=n.parentNode;l&&l.removeChild(n)}function v(l,u,i){var t,o,r,f={};for(r in u)\"key\"==r?t=u[r]:\"ref\"==r?o=u[r]:f[r]=u[r];if(arguments.length>2&&(f.children=arguments.length>3?n.call(arguments,2):i),\"function\"==typeof l&&null!=l.defaultProps)for(r in l.defaultProps)void 0===f[r]&&(f[r]=l.defaultProps[r]);return y(l,f,t,o,null)}function y(n,i,t,o,r){var f={type:n,props:i,key:t,ref:o,__k:null,__:null,__b:0,__e:null,__d:void 0,__c:null,__h:null,constructor:void 0,__v:null==r?++u:r};return null!=l.vnode&&l.vnode(f),f}function p(){return{current:null}}function d(n){return n.children}function _(n,l){this.props=n,this.context=l}function k(n,l){if(null==l)return n.__?k(n.__,n.__.__k.indexOf(n)+1):null;for(var u;l<n.__k.length;l++)if(null!=(u=n.__k[l])&&null!=u.__e)return u.__e;return\"function\"==typeof n.type?k(n):null}function b(n){var l,u;if(null!=(n=n.__)&&null!=n.__c){for(n.__e=n.__c.base=null,l=0;l<n.__k.length;l++)if(null!=(u=n.__k[l])&&null!=u.__e){n.__e=n.__c.base=u.__e;break}return b(n)}}function m(n){(!n.__d&&(n.__d=!0)&&t.push(n)&&!g.__r++||r!==l.debounceRendering)&&((r=l.debounceRendering)||o)(g)}function g(){for(var n;g.__r=t.length;)n=t.sort(function(n,l){return n.__v.__b-l.__v.__b}),t=[],n.some(function(n){var l,u,i,t,o,r;n.__d&&(o=(t=(l=n).__v).__e,(r=l.__P)&&(u=[],(i=a({},t)).__v=t.__v+1,j(r,t,i,l.__n,void 0!==r.ownerSVGElement,null!=t.__h?[o]:null,u,null==o?k(t):o,t.__h),z(u,t),t.__e!=o&&b(t)))})}function w(n,l,u,i,t,o,r,f,s,a){var h,v,p,_,b,m,g,w=i&&i.__k||c,A=w.length;for(u.__k=[],h=0;h<l.length;h++)if(null!=(_=u.__k[h]=null==(_=l[h])||\"boolean\"==typeof _?null:\"string\"==typeof _||\"number\"==typeof _||\"bigint\"==typeof _?y(null,_,null,null,_):Array.isArray(_)?y(d,{children:_},null,null,null):_.__b>0?y(_.type,_.props,_.key,null,_.__v):_)){if(_.__=u,_.__b=u.__b+1,null===(p=w[h])||p&&_.key==p.key&&_.type===p.type)w[h]=void 0;else for(v=0;v<A;v++){if((p=w[v])&&_.key==p.key&&_.type===p.type){w[v]=void 0;break}p=null}j(n,_,p=p||e,t,o,r,f,s,a),b=_.__e,(v=_.ref)&&p.ref!=v&&(g||(g=[]),p.ref&&g.push(p.ref,null,_),g.push(v,_.__c||b,_)),null!=b?(null==m&&(m=b),\"function\"==typeof _.type&&null!=_.__k&&_.__k===p.__k?_.__d=s=x(_,s,n):s=P(n,_,p,w,b,s),a||\"option\"!==u.type?\"function\"==typeof u.type&&(u.__d=s):n.value=\"\"):s&&p.__e==s&&s.parentNode!=n&&(s=k(p))}for(u.__e=m,h=A;h--;)null!=w[h]&&(\"function\"==typeof u.type&&null!=w[h].__e&&w[h].__e==u.__d&&(u.__d=k(i,h+1)),N(w[h],w[h]));if(g)for(h=0;h<g.length;h++)M(g[h],g[++h],g[++h])}function x(n,l,u){var i,t;for(i=0;i<n.__k.length;i++)(t=n.__k[i])&&(t.__=n,l=\"function\"==typeof t.type?x(t,l,u):P(u,t,t,n.__k,t.__e,l));return l}function A(n,l){return l=l||[],null==n||\"boolean\"==typeof n||(Array.isArray(n)?n.some(function(n){A(n,l)}):l.push(n)),l}function P(n,l,u,i,t,o){var r,f,e;if(void 0!==l.__d)r=l.__d,l.__d=void 0;else if(null==u||t!=o||null==t.parentNode)n:if(null==o||o.parentNode!==n)n.appendChild(t),r=null;else{for(f=o,e=0;(f=f.nextSibling)&&e<i.length;e+=2)if(f==t)break n;n.insertBefore(t,o),r=o}return void 0!==r?r:t.nextSibling}function C(n,l,u,i,t){var o;for(o in u)\"children\"===o||\"key\"===o||o in l||H(n,o,null,u[o],i);for(o in l)t&&\"function\"!=typeof l[o]||\"children\"===o||\"key\"===o||\"value\"===o||\"checked\"===o||u[o]===l[o]||H(n,o,l[o],u[o],i)}function $(n,l,u){\"-\"===l[0]?n.setProperty(l,u):n[l]=null==u?\"\":\"number\"!=typeof u||s.test(l)?u:u+\"px\"}function H(n,l,u,i,t){var o;n:if(\"style\"===l)if(\"string\"==typeof u)n.style.cssText=u;else{if(\"string\"==typeof i&&(n.style.cssText=i=\"\"),i)for(l in i)u&&l in u||$(n.style,l,\"\");if(u)for(l in u)i&&u[l]===i[l]||$(n.style,l,u[l])}else if(\"o\"===l[0]&&\"n\"===l[1])o=l!==(l=l.replace(/Capture$/,\"\")),l=l.toLowerCase()in n?l.toLowerCase().slice(2):l.slice(2),n.l||(n.l={}),n.l[l+o]=u,u?i||n.addEventListener(l,o?T:I,o):n.removeEventListener(l,o?T:I,o);else if(\"dangerouslySetInnerHTML\"!==l){if(t)l=l.replace(/xlink[H:h]/,\"h\").replace(/sName$/,\"s\");else if(\"href\"!==l&&\"list\"!==l&&\"form\"!==l&&\"tabIndex\"!==l&&\"download\"!==l&&l in n)try{n[l]=null==u?\"\":u;break n}catch(n){}\"function\"==typeof u||(null!=u&&(!1!==u||\"a\"===l[0]&&\"r\"===l[1])?n.setAttribute(l,u):n.removeAttribute(l))}}function I(n){this.l[n.type+!1](l.event?l.event(n):n)}function T(n){this.l[n.type+!0](l.event?l.event(n):n)}function j(n,u,i,t,o,r,f,e,c){var s,h,v,y,p,k,b,m,g,x,A,P=u.type;if(void 0!==u.constructor)return null;null!=i.__h&&(c=i.__h,e=u.__e=i.__e,u.__h=null,r=[e]),(s=l.__b)&&s(u);try{n:if(\"function\"==typeof P){if(m=u.props,g=(s=P.contextType)&&t[s.__c],x=s?g?g.props.value:s.__:t,i.__c?b=(h=u.__c=i.__c).__=h.__E:(\"prototype\"in P&&P.prototype.render?u.__c=h=new P(m,x):(u.__c=h=new _(m,x),h.constructor=P,h.render=O),g&&g.sub(h),h.props=m,h.state||(h.state={}),h.context=x,h.__n=t,v=h.__d=!0,h.__h=[]),null==h.__s&&(h.__s=h.state),null!=P.getDerivedStateFromProps&&(h.__s==h.state&&(h.__s=a({},h.__s)),a(h.__s,P.getDerivedStateFromProps(m,h.__s))),y=h.props,p=h.state,v)null==P.getDerivedStateFromProps&&null!=h.componentWillMount&&h.componentWillMount(),null!=h.componentDidMount&&h.__h.push(h.componentDidMount);else{if(null==P.getDerivedStateFromProps&&m!==y&&null!=h.componentWillReceiveProps&&h.componentWillReceiveProps(m,x),!h.__e&&null!=h.shouldComponentUpdate&&!1===h.shouldComponentUpdate(m,h.__s,x)||u.__v===i.__v){h.props=m,h.state=h.__s,u.__v!==i.__v&&(h.__d=!1),h.__v=u,u.__e=i.__e,u.__k=i.__k,u.__k.forEach(function(n){n&&(n.__=u)}),h.__h.length&&f.push(h);break n}null!=h.componentWillUpdate&&h.componentWillUpdate(m,h.__s,x),null!=h.componentDidUpdate&&h.__h.push(function(){h.componentDidUpdate(y,p,k)})}h.context=x,h.props=m,h.state=h.__s,(s=l.__r)&&s(u),h.__d=!1,h.__v=u,h.__P=n,s=h.render(h.props,h.state,h.context),h.state=h.__s,null!=h.getChildContext&&(t=a(a({},t),h.getChildContext())),v||null==h.getSnapshotBeforeUpdate||(k=h.getSnapshotBeforeUpdate(y,p)),A=null!=s&&s.type===d&&null==s.key?s.props.children:s,w(n,Array.isArray(A)?A:[A],u,i,t,o,r,f,e,c),h.base=u.__e,u.__h=null,h.__h.length&&f.push(h),b&&(h.__E=h.__=null),h.__e=!1}else null==r&&u.__v===i.__v?(u.__k=i.__k,u.__e=i.__e):u.__e=L(i.__e,u,i,t,o,r,f,c);(s=l.diffed)&&s(u)}catch(n){u.__v=null,(c||null!=r)&&(u.__e=e,u.__h=!!c,r[r.indexOf(e)]=null),l.__e(n,u,i)}}function z(n,u){l.__c&&l.__c(u,n),n.some(function(u){try{n=u.__h,u.__h=[],n.some(function(n){n.call(u)})}catch(n){l.__e(n,u.__v)}})}function L(l,u,i,t,o,r,f,c){var s,a,v,y=i.props,p=u.props,d=u.type,_=0;if(\"svg\"===d&&(o=!0),null!=r)for(;_<r.length;_++)if((s=r[_])&&(s===l||(d?s.localName==d:3==s.nodeType))){l=s,r[_]=null;break}if(null==l){if(null===d)return document.createTextNode(p);l=o?document.createElementNS(\"http://www.w3.org/2000/svg\",d):document.createElement(d,p.is&&p),r=null,c=!1}if(null===d)y===p||c&&l.data===p||(l.data=p);else{if(r=r&&n.call(l.childNodes),a=(y=i.props||e).dangerouslySetInnerHTML,v=p.dangerouslySetInnerHTML,!c){if(null!=r)for(y={},_=0;_<l.attributes.length;_++)y[l.attributes[_].name]=l.attributes[_].value;(v||a)&&(v&&(a&&v.__html==a.__html||v.__html===l.innerHTML)||(l.innerHTML=v&&v.__html||\"\"))}if(C(l,p,y,o,c),v)u.__k=[];else if(_=u.props.children,w(l,Array.isArray(_)?_:[_],u,i,t,o&&\"foreignObject\"!==d,r,f,r?r[0]:i.__k&&k(i,0),c),null!=r)for(_=r.length;_--;)null!=r[_]&&h(r[_]);c||(\"value\"in p&&void 0!==(_=p.value)&&(_!==l.value||\"progress\"===d&&!_)&&H(l,\"value\",_,y.value,!1),\"checked\"in p&&void 0!==(_=p.checked)&&_!==l.checked&&H(l,\"checked\",_,y.checked,!1))}return l}function M(n,u,i){try{\"function\"==typeof n?n(u):n.current=u}catch(n){l.__e(n,i)}}function N(n,u,i){var t,o;if(l.unmount&&l.unmount(n),(t=n.ref)&&(t.current&&t.current!==n.__e||M(t,null,u)),null!=(t=n.__c)){if(t.componentWillUnmount)try{t.componentWillUnmount()}catch(n){l.__e(n,u)}t.base=t.__P=null}if(t=n.__k)for(o=0;o<t.length;o++)t[o]&&N(t[o],u,\"function\"!=typeof n.type);i||null==n.__e||h(n.__e),n.__e=n.__d=void 0}function O(n,l,u){return this.constructor(n,u)}function S(u,i,t){var o,r,f;l.__&&l.__(u,i),r=(o=\"function\"==typeof t)?null:t&&t.__k||i.__k,f=[],j(i,u=(!o&&t||i).__k=v(d,null,[u]),r||e,e,void 0!==i.ownerSVGElement,!o&&t?[t]:r?null:i.firstChild?n.call(i.childNodes):null,f,!o&&t?t:r?r.__e:i.firstChild,o),z(f,u)}function q(n,l){S(n,l,q)}function B(l,u,i){var t,o,r,f=a({},l.props);for(r in u)\"key\"==r?t=u[r]:\"ref\"==r?o=u[r]:f[r]=u[r];return arguments.length>2&&(f.children=arguments.length>3?n.call(arguments,2):i),y(l.type,f,t||l.key,o||l.ref,null)}function D(n,l){var u={__c:l=\"__cC\"+f++,__:n,Consumer:function(n,l){return n.children(l)},Provider:function(n){var u,i;return this.getChildContext||(u=[],(i={})[l]=this,this.getChildContext=function(){return i},this.shouldComponentUpdate=function(n){this.props.value!==n.value&&u.some(m)},this.sub=function(n){u.push(n);var l=n.componentWillUnmount;n.componentWillUnmount=function(){u.splice(u.indexOf(n),1),l&&l.call(n)}}),n.children}};return u.Provider.__=u.Consumer.contextType=u}n=c.slice,l={__e:function(n,l){for(var u,i,t;l=l.__;)if((u=l.__c)&&!u.__)try{if((i=u.constructor)&&null!=i.getDerivedStateFromError&&(u.setState(i.getDerivedStateFromError(n)),t=u.__d),null!=u.componentDidCatch&&(u.componentDidCatch(n),t=u.__d),t)return u.__E=u}catch(l){n=l}throw n}},u=0,i=function(n){return null!=n&&void 0===n.constructor},_.prototype.setState=function(n,l){var u;u=null!=this.__s&&this.__s!==this.state?this.__s:this.__s=a({},this.state),\"function\"==typeof n&&(n=n(a({},u),this.props)),n&&a(u,n),null!=n&&this.__v&&(l&&this.__h.push(l),m(this))},_.prototype.forceUpdate=function(n){this.__v&&(this.__e=!0,n&&this.__h.push(n),m(this))},_.prototype.render=d,t=[],o=\"function\"==typeof Promise?Promise.prototype.then.bind(Promise.resolve()):setTimeout,g.__r=0,f=0;\n//# sourceMappingURL=preact.module.js.map\n\n\n//# sourceURL=webpack://audio-input-wam/../../../node_modules/preact/dist/preact.module.js?"); /***/ }), /***/ "./node_modules/css-loader/dist/runtime/api.js": /*!*****************************************************!*\ !*** ./node_modules/css-loader/dist/runtime/api.js ***! \*****************************************************/ /***/ ((module) => { eval("\n\n/*\n MIT License http://www.opensource.org/licenses/mit-license.php\n Author Tobias Koppers @sokra\n*/\nmodule.exports = function (cssWithMappingToString) {\n var list = []; // return the list of modules as css string\n\n list.toString = function toString() {\n return this.map(function (item) {\n var content = \"\";\n var needLayer = typeof item[5] !== \"undefined\";\n\n if (item[4]) {\n content += \"@supports (\".concat(item[4], \") {\");\n }\n\n if (item[2]) {\n content += \"@media \".concat(item[2], \" {\");\n }\n\n if (needLayer) {\n content += \"@layer\".concat(item[5].length > 0 ? \" \".concat(item[5]) : \"\", \" {\");\n }\n\n content += cssWithMappingToString(item);\n\n if (needLayer) {\n content += \"}\";\n }\n\n if (item[2]) {\n content += \"}\";\n }\n\n if (item[4]) {\n content += \"}\";\n }\n\n return content;\n }).join(\"\");\n }; // import a list of modules into the list\n\n\n list.i = function i(modules, media, dedupe, supports, layer) {\n if (typeof modules === \"string\") {\n modules = [[null, modules, undefined]];\n }\n\n var alreadyImportedModules = {};\n\n if (dedupe) {\n for (var k = 0; k < this.length; k++) {\n var id = this[k][0];\n\n if (id != null) {\n alreadyImportedModules[id] = true;\n }\n }\n }\n\n for (var _k = 0; _k < modules.length; _k++) {\n var item = [].concat(modules[_k]);\n\n if (dedupe && alreadyImportedModules[item[0]]) {\n continue;\n }\n\n if (typeof layer !== \"undefined\") {\n if (typeof item[5] === \"undefined\") {\n item[5] = layer;\n } else {\n item[1] = \"@layer\".concat(item[5].length > 0 ? \" \".concat(item[5]) : \"\", \" {\").concat(item[1], \"}\");\n item[5] = layer;\n }\n }\n\n if (media) {\n if (!item[2]) {\n item[2] = media;\n } else {\n item[1] = \"@media \".concat(item[2], \" {\").concat(item[1], \"}\");\n item[2] = media;\n }\n }\n\n if (supports) {\n if (!item[4]) {\n item[4] = \"\".concat(supports);\n } else {\n item[1] = \"@supports (\".concat(item[4], \") {\").concat(item[1], \"}\");\n item[4] = supports;\n }\n }\n\n list.push(item);\n }\n };\n\n return list;\n};\n\n//# sourceURL=webpack://audio-input-wam/./node_modules/css-loader/dist/runtime/api.js?"); /***/ }), /***/ "./node_modules/css-loader/dist/runtime/noSourceMaps.js": /*!**************************************************************!*\ !*** ./node_modules/css-loader/dist/runtime/noSourceMaps.js ***! \**************************************************************/ /***/ ((module) => { eval("\n\nmodule.exports = function (i) {\n return i[1];\n};\n\n//# sourceURL=webpack://audio-input-wam/./node_modules/css-loader/dist/runtime/noSourceMaps.js?"); /***/ }), /***/ "./src/views/AudioInputView.scss": /*!***************************************!*\ !*** ./src/views/AudioInputView.scss ***! \***************************************/ /***/ ((module, __webpack_exports__, __webpack_require__) => { eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../node_modules/css-loader/dist/runtime/noSourceMaps.js */ \"./node_modules/css-loader/dist/runtime/noSourceMaps.js\");\n/* harmony import */ var _node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../node_modules/css-loader/dist/runtime/api.js */ \"./node_modules/css-loader/dist/runtime/api.js\");\n/* harmony import */ var _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__);\n// Imports\n\n\nvar ___CSS_LOADER_EXPORT___ = _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default()((_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default()));\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".xcHc9ld8fP529Cl32i9Q {\\n display: flex;\\n flex-direction: row;\\n padding: 8px;\\n background-color: gray;\\n width: 100%;\\n color: var(--var-PrimaryText, black);\\n font-family: var(--var-FontFamily, system-ui, -apple-system, \\\"Segoe UI\\\", Roboto, \\\"Helvetica Neue\\\", \\\"Noto Sans\\\", \\\"Liberation Sans\\\", Arial, sans-serif, \\\"Apple Color Emoji\\\", \\\"Segoe UI Emoji\\\", \\\"Segoe UI Symbol\\\", \\\"Noto Color Emoji\\\");\\n}\", \"\"]);\n// Exports\n___CSS_LOADER_EXPORT___.locals = {\n\t\"AudioInputMain\": \"xcHc9ld8fP529Cl32i9Q\"\n};\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (___CSS_LOADER_EXPORT___);\n\n\n//# sourceURL=webpack://audio-input-wam/./src/views/AudioInputView.scss?"); /***/ }), /***/ "./src/ChannelCounter.ts": /*!*******************************!*\ !*** ./src/ChannelCounter.ts ***! \*******************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ ChannelCounter: () => (/* binding */ ChannelCounter)\n/* harmony export */ });\nvar __awaiter = (undefined && undefined.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nfunction addAudioWorklet(context, proc) {\n var f = `data:text/javascript,${encodeURI(proc.toString())};\n try {registerProcessor(\"${proc.name}\",${proc.name}) } catch (e) { }`;\n return context.audioWorklet.addModule(f);\n}\nclass AudioWorkletProcessor {\n}\nclass ChannelCountProcessor extends AudioWorkletProcessor {\n constructor(options) {\n super(options);\n this.channelCount = 0;\n this.channels = [];\n this.port.onmessage = (ev) => {\n if (ev.data.action == \"channels\") {\n this.channels = ev.data.channels;\n }\n };\n }\n process(inputs, outputs, parameters) {\n if (inputs.length == 0) {\n return true;\n }\n if (inputs[0].length != this.channelCount && inputs[0].length > 0) {\n this.channelCount = inputs[0].length;\n this.port.postMessage({ action: \"count\", count: this.channelCount });\n }\n if (outputs.length == 0) {\n return true;\n }\n for (let i = 0; i < outputs[0].length; i++) {\n if (i < this.channels.length && this.channels[i] < inputs[0].length) {\n for (let k = 0; k < outputs[0][i].length; k++) {\n outputs[0][i][k] = inputs[0][this.channels[i]][k];\n }\n }\n }\n return true;\n }\n}\nclass ChannelCounter {\n constructor(context) {\n this.context = context;\n }\n register() {\n return __awaiter(this, void 0, void 0, function* () {\n yield addAudioWorklet(this.context, ChannelCountProcessor);\n });\n }\n createOutput(stereo) {\n if (!!this.channelCounter) {\n if (this.stereo == stereo) {\n return;\n }\n this.channelCounter.disconnect();\n }\n this.stereo = stereo;\n this.channelCounter = new AudioWorkletNode(this.context, 'ChannelCountProcessor', {\n numberOfInputs: 1,\n numberOfOutputs: 1,\n outputChannelCount: [stereo ? 2 : 1]\n });\n this.channelCounter.port.onmessage = (ev) => {\n if (ev.data.action == \"count\") {\n if (ev.data.count != this.count) {\n if (this.callback) {\n this.count = ev.data.count;\n this.callback();\n }\n }\n }\n };\n }\n setChannels(channels) {\n this.channelCounter.port.postMessage({\n action: \"channels\",\n channels\n });\n }\n}\n\n\n//# sourceURL=webpack://audio-input-wam/./src/ChannelCounter.ts?"); /***/ }), /***/ "./src/Node.ts": /*!*********************!*\ !*** ./src/Node.ts ***! \*********************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ AudioInputNode)\n/* harmony export */ });\n/* harmony import */ var _webaudiomodules_sdk_parammgr__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @webaudiomodules/sdk-parammgr */ \"../../../node_modules/@webaudiomodules/sdk-parammgr/dist/index.js\");\n/* harmony import */ var _ChannelCounter__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./ChannelCounter */ \"./src/ChannelCounter.ts\");\nvar __awaiter = (undefined && undefined.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\n\n\nclass AudioInputNode extends _webaudiomodules_sdk_parammgr__WEBPACK_IMPORTED_MODULE_0__.CompositeAudioNode {\n constructor(audioContext, baseUrl, options = {}) {\n super(audioContext, options);\n this._wamNode = undefined;\n this.state = {};\n this.generateChannelOptions();\n this.createNodes();\n }\n createNodes() {\n return __awaiter(this, void 0, void 0, function* () {\n let ctx = this.context;\n if (!navigator.mediaDevices) {\n throw new Error(\"browser does not support navigator.mediaDevices\");\n }\n try {\n let stream = yield navigator.mediaDevices.getUserMedia({\n audio: {\n latency: { ideal: 0.003 },\n },\n video: false,\n });\n this.stream = stream;\n }\n catch (e) {\n console.log(\"getUserMedia failed: \", e);\n }\n if (!this.stream) {\n return;\n }\n console.log(\"stream is \", this.stream);\n console.log(\"tracks are \", this.stream.getAudioTracks());\n for (let t of this.stream.getAudioTracks()) {\n let constraints = t.getConstraints();\n constraints.autoGainControl = false;\n constraints.echoCancellation = false;\n constraints.noiseSuppression = false;\n yield t.applyConstraints(constraints);\n console.log(\"After applying, constraints are \", t.getConstraints());\n }\n this.streamNode = ctx.createMediaStreamSource(this.stream);\n console.log(\"AudioContext base latency is: \", ctx.baseLatency);\n console.log(\"AudioContext output latency is: \", ctx.outputLatency);\n console.log(\"streamNode has \", this.streamNode.numberOfInputs, \" inputs and \", this.streamNode.numberOfOutputs, \" outputs\");\n let channelCounter = new _ChannelCounter__WEBPACK_IMPORTED_MODULE_1__.ChannelCounter(ctx);\n this.channelCounter = channelCounter;\n yield channelCounter.register();\n this._input = this.context.createGain();\n this._output = this.context.createGain();\n this.channelCounter.callback = () => {\n this.updateFromState();\n };\n this.channelMapIndex = -1;\n this.updateFromState();\n });\n }\n generateChannelOptions() {\n var _a;\n let count = (_a = this.channelCounter) === null || _a === void 0 ? void 0 : _a.count;\n let existingChannelSelection;\n if (!count) {\n count = 2;\n this.channelMapIndex = -1;\n }\n else {\n if (this.channelMapIndex >= 0 && this.channelMapIndex < this.channelMapOptions.length) {\n existingChannelSelection = this.channelMapOptions[this.channelMapIndex];\n }\n }\n let defaultIndex = 0;\n let results = [];\n for (let i = 0; i < count; i++) {\n results.push([i]);\n if (existingChannelSelection && existingChannelSelection.length == 1 && existingChannelSelection[0] == i) {\n this.channelMapIndex = i;\n }\n }\n if (count > 1) {\n defaultIndex = results.length;\n for (let i = 0; i < count; i += 2) {\n results.push([i, i + 1]);\n if (existingChannelSelection && existingChannelSelection.length == 2 && existingChannelSelection[0] == i) {\n this.channelMapIndex = i;\n }\n }\n }\n this.channelMapOptions = results;\n if (this.channelMapIndex >= results.length || this.channelMapIndex < 0) {\n this.channelMapIndex = defaultIndex;\n }\n }\n updateFromState() {\n this.streamNode.disconnect();\n this.generateChannelOptions();\n let channels = this.channelMapOptions[this.channelMapIndex];\n this.channelCounter.createOutput(channels.length > 1);\n this.channelCounter.setChannels(channels);\n this.streamNode.connect(this.channelCounter.channelCounter);\n this.channelCounter.channelCounter.connect(this._output);\n if (this.callback) {\n this.callback();\n }\n }\n get paramMgr() {\n return this._wamNode;\n }\n setup(paramMgr) {\n this._wamNode = paramMgr;\n }\n}\n\n\n//# sourceURL=webpack://audio-input-wam/./src/Node.ts?"); /***/ }), /***/ "./src/StereoVUMeter.tsx": /*!*******************************!*\ !*** ./src/StereoVUMeter.tsx ***! \*******************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ StereoVUMeter: () => (/* binding */ StereoVUMeter)\n/* harmony export */ });\n/* harmony import */ var preact__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! preact */ \"../../../node_modules/preact/dist/preact.module.js\");\n/* harmony import */ var _VUMeter__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./VUMeter */ \"./src/VUMeter.tsx\");\n\n\nclass StereoVUMeter extends preact__WEBPACK_IMPORTED_MODULE_0__.Component {\n componentWillMount() {\n this.node = this.props.node.context.createChannelSplitter(this.props.node.channelCount);\n this.props.node.connect(this.node);\n }\n render() {\n (0,preact__WEBPACK_IMPORTED_MODULE_0__.h)(\"div\", {});\n let width = this.props.width / 2;\n var index = 1;\n if (this.props.node.channelCount == 1) {\n index = 0;\n }\n return (0,preact__WEBPACK_IMPORTED_MODULE_0__.h)(\"div\", { style: \"display: flex; flex-direction: row;\" },\n (0,preact__WEBPACK_IMPORTED_MODULE_0__.h)(\"div\", { style: \"padding-right: 1px;\" },\n (0,preact__WEBPACK_IMPORTED_MODULE_0__.h)(_VUMeter__WEBPACK_IMPORTED_MODULE_1__.VUMeter, { height: this.props.height, width: width, node: this.node, channelIndex: 0 })),\n (0,preact__WEBPACK_IMPORTED_MODULE_0__.h)(_VUMeter__WEBPACK_IMPORTED_MODULE_1__.VUMeter, { height: this.props.height, width: width, node: this.node, channelIndex: index }));\n }\n}\nStereoVUMeter.defaultProps = {\n width: 15,\n height: 120,\n};\n\n\n//# sourceURL=webpack://audio-input-wam/./src/StereoVUMeter.tsx?"); /***/ }), /***/ "./src/VUMeter.tsx": /*!*************************!*\ !*** ./src/VUMeter.tsx ***! \*************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ VUMeter: () => (/* binding */ VUMeter)\n/* harmony export */ });\n/* harmony import */ var preact__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! preact */ \"../../../node_modules/preact/dist/preact.module.js\");\n\nclass VUMeter extends preact__WEBPACK_IMPORTED_MODULE_0__.Component {\n constructor() {\n super();\n this.lastValue = 0;\n this.animationFrame = this.animationFrame.bind(this);\n this.scheduleAnimationFrame = this.scheduleAnimationFrame.bind(this);\n }\n componentDidMount() {\n this.analyser = this.props.node.context.createAnalyser();\n this.analyser.smoothingTimeConstant = 0.85;\n this.analyser.fftSize = 1024;\n this.bufferLength = this.analyser.frequencyBinCount;\n this.dataArray = new Uint8Array(this.bufferLength);\n if (this.props.channelIndex) {\n this.props.node.connect(this.analyser, this.props.channelIndex);\n }\n else {\n this.props.node.connect(this.analyser);\n }\n }\n componentWillUnmount() {\n this.analyser.disconnect();\n if (this.animationRequest != undefined) {\n window.cancelAnimationFrame(this.animationRequest);\n this.animationRequest = undefined;\n }\n }\n cancelAnimation() {\n if (this.animationTimeout != undefined) {\n window.clearTimeout(this.animationTimeout);\n this.animationTimeout = undefined;\n }\n if (this.animationRequest != undefined) {\n window.cancelAnimationFrame(this.animationRequest);\n this.animationRequest = undefined;\n }\n }\n scheduleAnimation() {\n this.animationTimeout = window.setTimeout(this.scheduleAnimationFrame, 30);\n }\n scheduleAnimationFrame() {\n this.animationRequest = window.requestAnimationFrame(this.animationFrame);\n }\n calculateValue() {\n this.analyser.getByteTimeDomainData(this.dataArray);\n const max = Math.max.apply(null, this.dataArray);\n const min = Math.min.apply(null, this.dataArray);\n let amp = max - min;\n amp /= 240;\n var db = 20 * (Math.log(amp) / Math.log(10));\n if (db < -60) {\n db = -60;\n }\n if (db > +6) {\n db = 6;\n }\n return db;\n }\n animationFrame() {\n if (!this.analyser) {\n this.scheduleAnimation();\n return;\n }\n if (!this.canvas) {\n return;\n }\n let newValue = this.calculateValue();\n if (newValue > this.lastValue) {\n this.lastValue = newValue;\n }\n else {\n this.lastValue = this.lastValue - 3.0;\n this.lastValue = (newValue > this.lastValue) ? newValue : this.lastValue;\n }\n let percent = (this.lastValue + 60) / 66;\n let length = (this.props.height * percent);\n let position = this.props.height - length;\n let fill = newValue > 0.99 ? \"red\" : \"green\";\n this.canvas.beginPath();\n this.canvas.rect(0, 0, this.props.width, this.props.height);\n this.canvas.fillStyle = 'rgb(0,0,0)';\n this.canvas.fill();\n this.canvas.beginPath();\n this.canvas.rect(0, position, this.props.width, length);\n this.canvas.fillStyle = fill;\n this.canvas.fill();\n this.scheduleAnimation();\n }\n setup(ref) {\n if (ref == null) {\n return;\n }\n if (this.ref == ref) {\n return;\n }\n this.ref = ref;\n ref.innerHTML = \"\";\n this.canvas = ref.getContext('2d');\n if (!this.canvas) {\n return;\n }\n this.ref.setAttribute('width', `${this.props.width}px`);\n this.ref.setAttribute('height', `${this.props.height}`);\n this.animationFrame();\n }\n render() {\n (0,preact__WEBPACK_IMPORTED_MODULE_0__.h)(\"div\", {});\n return (0,preact__WEBPACK_IMPORTED_MODULE_0__.h)(\"div\", { class: \"component-wrapper\" },\n (0,preact__WEBPACK_IMPORTED_MODULE_0__.h)(\"canvas\", { ref: (ref) => this.setup(ref) }));\n }\n}\nVUMeter.defaultProps = {\n width: 15,\n height: 120,\n};\n\n\n//# sourceURL=webpack://audio-input-wam/./src/VUMeter.tsx?"); /***/ }), /***/ "./src/index.tsx": /*!***********************!*\ !*** ./src/index.tsx ***! \***********************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ AudioInputModule)\n/* harmony export */ });\n/* harmony import */ var _webaudiomodules_sdk__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @webaudiomodules/sdk */ \"../../../node_modules/@webaudiomodules/sdk/dist/index.js\");\n/* harmony import */ var _webaudiomodules_sdk_parammgr__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @webaudiomodules/sdk-parammgr */ \"../../../node_modules/@webaudiomodules/sdk-parammgr/dist/index.js\");\n/* harmony import */ var preact__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! preact */ \"../../../node_modules/preact/dist/preact.module.js\");\n/* harmony import */ var _shared_getBaseUrl__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../shared/getBaseUrl */ \"../shared/getBaseUrl.tsx\");\n/* harmony import */ var _views_AudioInputView__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./views/AudioInputView */ \"./src/views/AudioInputView.tsx\");\n/* harmony import */ var _Node__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./Node */ \"./src/Node.ts\");\n/* harmony import */ var _views_AudioInputView_scss__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./views/AudioInputView.scss */ \"./src/views/AudioInputView.scss\");\n/* harmony import */ var _shared_insertStyle__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../../shared/insertStyle */ \"../shared/insertStyle.ts\");\nvar __awaiter = (undefined && undefined.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\n\n\n\n\n\n\n\n\nclass AudioInputModule extends _webaudiomodules_sdk__WEBPACK_IMPORTED_MODULE_0__.WebAudioModule {\n constructor() {\n super(...arguments);\n this._baseURL = (0,_shared_getBaseUrl__WEBPACK_IMPORTED_MODULE_3__.getBaseUrl)(new URL('.', __webpack_require__.p));\n this._descriptorUrl = `${this._baseURL}/descriptor.json`;\n }\n _loadDescriptor() {\n return __awaiter(this, void 0, void 0, function* () {\n const url = this._descriptorUrl;\n if (!url)\n throw new TypeError('Descriptor not found');\n const response = yield fetch(url);\n const descriptor = yield response.json();\n Object.assign(this._descriptor, descriptor);\n return descriptor;\n });\n }\n initialize(state) {\n const _super = Object.create(null, {\n initialize: { get: () => super.initialize }\n });\n return __awaiter(this, void 0, void 0, function* () {\n yield this._loadDescriptor();\n return _super.initialize.call(this, state);\n });\n }\n createAudioNode(initialState) {\n return __awaiter(this, void 0, void 0, function* () {\n const synthNode = new _Node__WEBPACK_IMPORTED_MODULE_5__[\"default\"](this.audioContext, this._baseURL);\n const paramMgrNode = yield _webaudiomodules_sdk_parammgr__WEBPACK_IMPORTED_MODULE_1__.ParamMgrFactory.create(this, {});\n synthNode.setup(paramMgrNode);\n if (initialState)\n synthNode.setState(initialState);\n return synthNode;\n });\n }\n createGui() {\n return __awaiter(this, void 0, void 0, function* () {\n const div = document.createElement('div');\n (0,preact__WEBPACK_IMPORTED_MODULE_2__.h)(\"div\", {});\n div.setAttribute(\"style\", \"height: 100%; width: 100%; display: flex; flex: 1;\");\n div.setAttribute(\"width\", \"320\");\n div.setAttribute(\"height\", \"240\");\n var shadow = div.attachShadow({ mode: 'open' });\n (0,_shared_insertStyle__WEBPACK_IMPORTED_MODULE_7__.insertStyle)(shadow, _views_AudioInputView_scss__WEBPACK_IMPORTED_MODULE_6__[\"default\"].toString());\n (0,preact__WEBPACK_IMPORTED_MODULE_2__.render)((0,preact__WEBPACK_IMPORTED_MODULE_2__.h)(_views_AudioInputView__WEBPACK_IMPORTED_MODULE_4__.AudioInputView, { plugin: this }), shadow);\n return div;\n });\n }\n destroyGui(el) {\n (0,preact__WEBPACK_IMPORTED_MODULE_2__.render)(null, el.shadowRoot);\n }\n}\n\n\n//# sourceURL=webpack://audio-input-wam/./src/index.tsx?"); /***/ }), /***/ "./src/views/AudioInputView.tsx": /*!**************************************!*\ !*** ./src/views/AudioInputView.tsx ***! \**************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ AudioInputView: () => (/* binding */ AudioInputView)\n/* harmony export */ });\n/* harmony import */ var preact__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! preact */ \"../../../node_modules/preact/dist/preact.module.js\");\n/* harmony import */ var _shared_ui_Select__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../../shared/ui/Select */ \"../shared/ui/Select.tsx\");\n/* harmony import */ var _StereoVUMeter__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../StereoVUMeter */ \"./src/StereoVUMeter.tsx\");\n/* harmony import */ var _VUMeter__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../VUMeter */ \"./src/VUMeter.tsx\");\n/* harmony import */ var _AudioInputView_scss__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./AudioInputView.scss */ \"./src/views/AudioInputView.scss\");\n\n\n\n\n\nlet styles = _AudioInputView_scss__WEBPACK_IMPORTED_MODULE_4__[\"default\"].locals;\nclass AudioInputView extends preact__WEBPACK_IMPORTED_MODULE_0__.Component {\n constructor() {\n super();\n }\n componentDidMount() {\n this.props.plugin.audioNode.callback = () => {\n this.forceUpdate();\n };\n }\n componentWillUnmount() {\n this.props.plugin.audioNode.callback = undefined;\n }\n selectChannels(index) {\n this.props.plugin.audioNode.channelMapIndex = parseInt(index);\n this.props.plugin.audioNode.updateFromState();\n }\n render() {\n (0,preact__WEBPACK_IMPORTED_MODULE_0__.h)(\"div\", {});\n let node = this.props.plugin.audioNode;\n if (!node || !node.stream) {\n return (0,preact__WEBPACK_IMPORTED_MODULE_0__.h)(\"div\", null, \"Audio device not opened.\");\n }\n let tracks = node.stream.getAudioTracks().map(t => (0,preact__WEBPACK_IMPORTED_MODULE_0__.h)(\"div\", null, t.label));\n let meter;\n if (this.props.plugin.audioNode.channelCounter) {\n if (this.props.plugin.audioNode.channelCounter.stereo) {\n meter = (0,preact__WEBPACK_IMPORTED_MODULE_0__.h)(_StereoVUMeter__WEBPACK_IMPORTED_MODULE_2__.StereoVUMeter, { node: this.props.plugin._audioNode.channelCounter.channelCounter, width: 40, height: 200 });\n }\n else {\n meter = (0,preact__WEBPACK_IMPORTED_MODULE_0__.h)(_VUMeter__WEBPACK_IMPORTED_MODULE_3__.VUMeter, { node: this.props.plugin._audioNode.channelCounter.channelCounter, width: 20, height: 200 });\n }\n }\n let audioNode = this.props.plugin.audioNode;\n let channelSelectOptions = audioNode.channelMapOptions.map(c => c.map(i => i + 1).join(\" / \"));\n return (0,preact__WEBPACK_IMPORTED_MODULE_0__.h)(\"div\", { class: styles.AudioInputMain },\n (0,preact__WEBPACK_IMPORTED_MODULE_0__.h)(\"div\", null, meter),\n (0,preact__WEBPACK_IMPORTED_MODULE_0__.h)(\"div\", { style: \"margin: 10px;\" },\n tracks,\n (0,preact__WEBPACK_IMPORTED_MODULE_0__.h)(\"br\", null),\n (0,preact__WEBPACK_IMPORTED_MODULE_0__.h)(_shared_ui_Select__WEBPACK_IMPORTED_MODULE_1__.Select, { label: \"Input\", value: () => this.props.plugin.audioNode.channelMapIndex, options: channelSelectOptions, onChange: (i) => this.selectChannels(i) })));\n }\n}\n\n\n//# sourceURL=webpack://audio-input-wam/./src/views/AudioInputView.tsx?"); /***/ }), /***/ "../shared/getBaseUrl.tsx": /*!********************************!*\ !*** ../shared/getBaseUrl.tsx ***! \********************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ getBaseUrl: () => (/* binding */ getBaseUrl)\n/* harmony export */ });\nconst getBaseUrl = (relativeURL) => {\n const baseURL = relativeURL.href.substring(0, relativeURL.href.lastIndexOf('/'));\n return baseURL;\n};\n\n\n//# sourceURL=webpack://audio-input-wam/../shared/getBaseUrl.tsx?"); /***/ }), /***/ "../shared/insertStyle.ts": /*!********************************!*\ !*** ../shared/insertStyle.ts ***! \********************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ insertStyle: () => (/* binding */ insertStyle)\n/* harmony export */ });\nfunction insertStyle(shadow, style) {\n const el = document.createElement('style');\n el.textContent = style;\n shadow.appendChild(el);\n}\n\n\n//# sourceURL=webpack://audio-input-wam/../shared/insertStyle.ts?"); /***/ }), /***/ "../shared/ui/Select.tsx": /*!*******************************!*\ !*** ../shared/ui/Select.tsx ***! \*******************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ Select: () => (/* binding */ Select)\n/* harmony export */ });\n/* harmony import */ var preact__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! preact */ \"../../../node_modules/preact/dist/preact.module.js\");\n\nclass Select extends preact__WEBPACK_IMPORTED_MODULE_0__.Component {\n constructor() {\n super();\n this.lastRenderedValue = \"-1\";\n this.animationFrame = this.animationFrame.bind(this);\n this.scheduleFrame = this.scheduleFrame.bind(this);\n this.scheduleAnimation = this.scheduleAnimation.bind(this);\n }\n onChange(e) {\n if (this.props.onChange) {\n this.props.onChange(e.target.value);\n }\n }\n cancelAnimation() {\n if (this.animationTimeout != undefined) {\n window.clearTimeout(this.animationTimeout);\n this.animationTimeout = undefined;\n }\n if (this.animationRequest != undefined) {\n window.cancelAnimationFrame(this.animationRequest);\n this.animationRequest = undefined;\n }\n }\n scheduleAnimation() {\n this.animationTimeout = window.setTimeout(this.scheduleFrame, 100);\n }\n scheduleFrame() {\n this.animationRequest = window.requestAnimationFrame(this.animationFrame);\n }\n componentWillUnmount() {\n this.cancelAnimation();\n }\n animationFrame() {\n let newValue = this.props.value();\n if (this.lastRenderedValue == newValue) {\n this.scheduleAnimation();\n return;\n }\n this.lastRenderedValue = newValue;\n for (let option of this.select.options) {\n option.selected = (option.value == newValue);\n }\n this.scheduleAnimation();\n }\n setup(ref) {\n if (ref == null) {\n return;\n }\n if (ref == this.ref && this.sameArray(this.props.options, this.renderedOptions) && this.sameArray(this.props.values, this.renderedValues)) {\n return;\n }\n this.ref = ref;\n ref.innerHTML = \"\";\n if (this.props.value === undefined || this.props.value === null) {\n throw `Select with label ${this.props.label} values ${this.props.values} has null value`;\n }\n if (!this.select) {\n this.select = document.createElement(\"select\");\n this.select.addEventListener(\"change\", e => this.onChange(e));\n }\n else {\n while (this.select.firstChild) {\n this.select.removeChild(this.select.firstChild);\n }\n try {\n this.ref.removeChild(this.select);\n }\n catch (e) {\n }\n }\n this.ref.appendChild(this.select);\n this.props.options.forEach((name, index) => {\n let option = document.createElement(\"option\");\n option.text = name;\n option.value = (this.props.values) ? this.props.values[index].toString() : index.toString();\n this.select.appendChild(option);\n });\n this.lastRenderedValue = \"-1\";\n this.renderedOptions = this.props.options;\n this.renderedValues = this.props.values;\n this.cancelAnimation();\n this.animationFrame();\n }\n render() {\n (0,preact__WEBPACK_IMPORTED_MODULE_0__.h)(\"div\", {});\n let style = this.props.style ? this.props.style : \"\";\n return (0,preact__WEBPACK_IMPORTED_MODULE_0__.h)(\"div\", { class: \"ComponentWrapper\", style: style },\n this.props.label && (0,preact__WEBPACK_IMPORTED_MODULE_0__.h)(\"label\", null, this.props.label),\n (0,preact__WEBPACK_IMPORTED_MODULE_0__.h)(\"div\", { ref: (e) => this.setup(e), style: \"color: black;\", class: \"ComponentSelect\" }));\n }\n sameArray(lhs, rhs) {\n if (lhs === undefined && rhs === undefined) {\n return true;\n }\n if (lhs === undefined || rhs === undefined) {\n return false;\n }\n return (lhs.length == rhs.length && lhs.every((l, i) => l == rhs[i]));\n }\n}\n\n\n//# sourceURL=webpack://audio-input-wam/../shared/ui/Select.tsx?"); /***/ }), /***/ "../../../node_modules/@webaudiomodules/sdk-parammgr/dist/index.js": /*!*************************************************************************!*\ !*** ../../../node_modules/@webaudiomodules/sdk-parammgr/dist/index.js ***! \*************************************************************************/ /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ CompositeAudioNode: () => (/* binding */ CompositeAudioNode),\n/* harmony export */ ParamMgrFactory: () => (/* binding */ ParamMgrFactory)\n/* harmony export */ });\nvar __defProp = Object.defineProperty;\nvar __defProps = Object.defineProperties;\nva