UNPKG

@joergmittaglawo/dmvconfig

Version:

DMV Configuration scripts for Lawo V__matrix Distributed Multiviewers.

91 lines (90 loc) 3.4 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.All = exports.CrossbarAsNamedTableRow = exports.Crossbar = exports.lower = exports.lift = void 0; const VScript = require("vscript"); const _Video = require("./Video"); exports.lift = { Crossbar: (kwl, socket) => kwl ? (new Crossbar(new VScript.Subtree(socket, kwl))) : null, CrossbarOutputs: (kwl, socket) => kwl ? (new CrossbarOutputs(new VScript.Subtree(socket, kwl))) : null, CrossbarInputs: (kwl, socket) => kwl ? (new CrossbarInputs(new VScript.Subtree(socket, kwl))) : null }; exports.lower = { Crossbar: (ref) => ref ? ref.raw.kwl : null, CrossbarOutputs: (ref) => ref ? ref.raw.kwl : null, CrossbarInputs: (ref) => ref ? ref.raw.kwl : null }; class CrossbarInputs { constructor(raw) { this.raw = raw; } get num_channels() { return new VScript.rwKeyword(this, "num_channels"); } get source() { return new VScript.duplexKeyword(this, "source", { lift: _Video.lift.Essence, lower: _Video.lower.Essence }); } } class CrossbarInputsAsTableRow extends CrossbarInputs { constructor(raw_row, enclosing_table) { super(new VScript.Subtree(raw_row.socket, raw_row.kwl)); this.enclosing_table = enclosing_table; this.index = raw_row.index; } } class CrossbarOutputs { constructor(raw) { this.raw = raw; } get num_channels() { return new VScript.rwKeyword(this, "num_channels"); } get xbar() { return new VScript.rwKeyword(this, "xbar"); } get output() { return new _Video.Essence(this.raw.find("output")); } } class CrossbarOutputsAsTableRow extends CrossbarOutputs { constructor(raw_row, enclosing_table) { super(new VScript.Subtree(raw_row.socket, raw_row.kwl)); this.enclosing_table = enclosing_table; this.index = raw_row.index; } } class Crossbar { constructor(raw) { this.raw = raw; } get num_inputs() { return new VScript.rwKeyword(this, "num_inputs"); } get num_outputs() { return new VScript.rwKeyword(this, "num_outputs"); } get inputs() { return new VScript.StronglyTypedTable(new VScript.Table(this.raw.socket, this.raw.full_kwl("inputs")), (row, enclosing_table) => new CrossbarInputsAsTableRow(row, enclosing_table)); } get outputs() { return new VScript.StronglyTypedTable(new VScript.Table(this.raw.socket, this.raw.full_kwl("outputs")), (row, enclosing_table) => new CrossbarOutputsAsTableRow(row, enclosing_table)); } } exports.Crossbar = Crossbar; class CrossbarAsNamedTableRow extends Crossbar { constructor(raw_row, enclosing_table) { super(new VScript.Subtree(raw_row.socket, raw_row.kwl)); this.raw_row = raw_row; this.enclosing_table = enclosing_table; this.index = raw_row.index; } async rename(name, opts) { await this.raw_row.rename(name, opts); } async delete(opts) { await this.raw_row.delete(opts); } } exports.CrossbarAsNamedTableRow = CrossbarAsNamedTableRow; class All { constructor(raw) { this.raw = raw; } get pool() { return new VScript.StronglyTypedNamedTable(new VScript.NamedTable(this.raw.socket, this.raw.full_kwl("pool")), (row, enclosing_table) => new CrossbarAsNamedTableRow(row, enclosing_table)); } } exports.All = All;