@stringsync/vexml
Version:
MusicXML to Vexflow
27 lines (26 loc) • 1.08 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.HintDescriber = void 0;
const elementdescriber_1 = require("./elementdescriber");
class HintDescriber {
elementDescriber;
constructor(elementDescriber) {
this.elementDescriber = elementDescriber;
}
static noop() {
return new HintDescriber(elementdescriber_1.ElementDescriber.noop());
}
describe(hint) {
switch (hint.type) {
case 'start':
return `start(${this.elementDescriber.describe(hint.element)})`;
case 'stop':
return `stop(${this.elementDescriber.describe(hint.element)})`;
case 'retrigger':
return `retrigger(${this.elementDescriber.describe(hint.untriggerElement)}, ${this.elementDescriber.describe(hint.retriggerElement)})`;
case 'sustain':
return `sustain(${this.elementDescriber.describe(hint.previousElement)}, ${this.elementDescriber.describe(hint.currentElement)})`;
}
}
}
exports.HintDescriber = HintDescriber;