@joergmittaglawo/dmvconfig
Version:
DMV Configuration scripts for Lawo V__matrix Distributed Multiviewers.
149 lines (148 loc) • 5.26 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.Enums = exports.All = exports.BSLKAsNamedTableRow = exports.BSLK = exports.AutoFader = exports.lower = exports.lift = void 0;
const VScript = require("vscript");
const _Time = require("./Time");
const _Video = require("./Video");
exports.lift = {
BSLK: (kwl, socket) => kwl ? (new BSLK(new VScript.Subtree(socket, kwl))) : null,
BSLKMixer: (kwl, socket) => kwl ? (new BSLKMixer(new VScript.Subtree(socket, kwl))) : null,
BSLKLumaKeyer: (kwl, socket) => kwl ? (new BSLKLumaKeyer(new VScript.Subtree(socket, kwl))) : null,
AutoFader: (kwl, socket) => kwl ? (new AutoFader(new VScript.Subtree(socket, kwl))) : null,
AutoFaderTransition: (x, _) => { return x ? { target: x[0], time: x[1] } : null; }
};
exports.lower = {
BSLK: (ref) => ref ? ref.raw.kwl : null,
BSLKMixer: (ref) => ref ? ref.raw.kwl : null,
BSLKLumaKeyer: (ref) => ref ? ref.raw.kwl : null,
AutoFader: (ref) => ref ? ref.raw.kwl : null,
AutoFaderTransition: (x) => x ? [x.target, x.time] : null
};
class AutoFader {
constructor(raw) {
this.raw = raw;
}
get current() {
return new VScript.rKeyword(this, "current");
}
get transition() {
return new VScript.rwKeyword(this, "transition", { lift: exports.lift.AutoFaderTransition, lower: exports.lower.AutoFaderTransition });
}
}
exports.AutoFader = AutoFader;
class BSLKLumaKeyer {
constructor(raw) {
this.raw = raw;
}
get source() {
return new VScript.duplexKeyword(this, "source", { lift: _Video.lift.Essence, lower: _Video.lower.Essence });
}
/**
Luminance level at and below which everything is transparent
*/
get clip() {
return new VScript.rwKeyword(this, "clip");
}
/**
Luminance range above clip to reach full opacity
*/
get gain() {
return new VScript.rwKeyword(this, "gain");
}
/**
Invert the transparent / opaque ends of the output range
*/
get invert() {
return new VScript.rwKeyword(this, "invert");
}
get opacity() { return new AutoFader(this.raw.find("opacity")); }
}
class BSLKMixer {
constructor(raw) {
this.raw = raw;
}
/**
Color mixed in when the sum of fader0 and fader1 is below 1.0 in
MIXER_INDEPENDENT mode
*/
get fade_via() {
return new VScript.rwKeyword(this, "fade_via", { lift: _Video.lift.HSLCOLOUR, lower: _Video.lower.HSLCOLOUR });
}
/**
Which input is the ANC data and V sync source
*/
get anc_input() {
return new VScript.rKeyword(this, "anc_input");
}
/**
Fader value for crossfade in MIXER mode, or for source0 in
MIXER_INDEPENDENT mode
*/
get fader0() { return new AutoFader(this.raw.find("fader0")); }
/**
Fader value for for source1 in MIXER_INDEPENDENT mode, unused otherwise
*/
get fader1() { return new AutoFader(this.raw.find("fader1")); }
}
class BSLK {
constructor(raw) {
this.raw = raw;
}
get alert_level() {
return new VScript.rKeyword(this, "alert_level");
}
get source0() {
return new VScript.duplexKeyword(this, "source0", { lift: _Video.lift.Essence, lower: _Video.lower.Essence });
}
get source1() {
return new VScript.duplexKeyword(this, "source1", { lift: _Video.lift.Essence, lower: _Video.lower.Essence });
}
get t_src() {
return new VScript.duplexKeyword(this, "t_src", { lift: _Time.lift.Source, lower: _Time.lower.Source });
}
get phase_target() {
return new VScript.duplexKeyword(this, "phase_target");
}
get in_phase() {
return new VScript.rKeyword(this, "in_phase");
}
get phase_rst_counter() {
return new VScript.rKeyword(this, "phase_rst_counter");
}
get reserve_uhd_resources() {
return new VScript.duplexKeyword(this, "reserve_uhd_resources");
}
get hw_resources() {
return new VScript.rKeyword(this, "hw_resources");
}
get mode() {
return new VScript.rwKeyword(this, "mode");
}
get output() { return new _Video.Essence(this.raw.find("output")); }
get luma_keyer() { return new BSLKLumaKeyer(this.raw.find("luma_keyer")); }
get mixer() { return new BSLKMixer(this.raw.find("mixer")); }
}
exports.BSLK = BSLK;
class BSLKAsNamedTableRow extends BSLK {
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.BSLKAsNamedTableRow = BSLKAsNamedTableRow;
class All {
constructor(raw) {
this.raw = raw;
}
get bslk() {
return new VScript.StronglyTypedNamedTable(new VScript.NamedTable(this.raw.socket, this.raw.full_kwl("bslk")), (row, enclosing_table) => new BSLKAsNamedTableRow(row, enclosing_table));
}
}
exports.All = All;
exports.Enums = {
BSLKMode: ["MIXER", "MIXER_INDEPENDENT", "LUMA_KEYER", "LUMA_KEYER_ADDITIVE"]
};