cables_dev/cables/src/core/core_port_switch.js
-
- import { Port } from "./core_port.js";
-
-
- class SwitchPort extends Port
- {
- constructor(__parent, name, type, uiAttribs, indexPort)
- {
- super(__parent, name, type, uiAttribs);
-
- this.get = () =>
- {
- let s = super.get();
-
- if (CABLES.UI)
- {
- if (
- s === "" ||
- s === null ||
- s === undefined ||
- (uiAttribs.values && uiAttribs.values.indexOf(String(s)) === -1)
- )
- {
- this.op.setUiError("invalidswitch", "Invalid Value [" + this.name + "]: \"" + s + "\"", 1);
- }
- else this.op.setUiError("invalidswitch", null);
- }
-
- if (s === null || s === undefined)s = "";
-
- return s;
- };
-
- this.indexPort = indexPort;
- this.indexPort.set = (value) =>
- {
- const values = uiAttribs.values;
-
- if (!values)
- {
- // console.log("switch port has no values", this);
- return;
- }
-
- let intValue = Math.floor(value);
-
- intValue = Math.min(intValue, values.length - 1);
- intValue = Math.max(intValue, 0);
-
- this.indexPort.setValue(intValue);
- this.set(values[intValue]);
-
- if (this.op.patch.isEditorMode() && performance.now() - (this.lastTime || 0) > 100 && window.gui && gui.patchView.isCurrentOp(this.op))
- {
- gui.opParams.show(this.op);
- this.lastTime = performance.now();
- }
- };
- }
-
- setUiAttribs(attribs)
- {
- const hidePort = attribs.hidePort;
- attribs.hidePort = true;
- super.setUiAttribs(attribs);
- if (typeof hidePort !== "undefined")
- {
- this.indexPort.setUiAttribs({ hidePort });
- }
- }
- }
-
- export { SwitchPort };