@joergmittaglawo/dmvconfig
Version:
DMV Configuration scripts for Lawo V__matrix Distributed Multiviewers.
91 lines (90 loc) • 3.4 kB
JavaScript
;
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;