mirror of
https://github.com/Ardour/ardour.git
synced 2025-12-24 07:27:44 +01:00
WS: properly support MIDI strips
This commit is contained in:
parent
dd833c89b9
commit
9ee828b47b
8 changed files with 154 additions and 54 deletions
|
|
@ -19,7 +19,8 @@
|
|||
import ArdourClient from '/shared/ardour.js';
|
||||
import { createRootContainer, Container, Dialog, Label, Button, Toggle,
|
||||
DiscreteKnob, LinearKnob, LogKnob, PanKnob,
|
||||
StripGainFader, StripMeter } from './tkwidget.js';
|
||||
AudioStripGainFader, MidiStripGainFader,
|
||||
AudioStripMeter, MidiStripMeter } from './tkwidget.js';
|
||||
|
||||
(() => {
|
||||
|
||||
|
|
@ -95,6 +96,10 @@ import { createRootContainer, Container, Dialog, Label, Button, Toggle,
|
|||
plugins.callback = () => openPlugins (strip);
|
||||
}
|
||||
|
||||
if (strip.isMidi || strip.isVca) {
|
||||
plugins.element.style.visibility = 'hidden';
|
||||
}
|
||||
|
||||
const pan = new PanKnob();
|
||||
pan.appendTo(container);
|
||||
|
||||
|
|
@ -114,11 +119,11 @@ import { createRootContainer, Container, Dialog, Label, Button, Toggle,
|
|||
meterFader.classList.add('strip-meter-fader');
|
||||
meterFader.appendTo(container);
|
||||
|
||||
const gain = new StripGainFader();
|
||||
const gain = strip.isMidi ? new MidiStripGainFader : new AudioStripGainFader();
|
||||
gain.appendTo(meterFader);
|
||||
gain.bindTo(strip, 'gain');
|
||||
|
||||
const meter = new StripMeter();
|
||||
const meter = strip.isMidi ? new MidiStripMeter() : new AudioStripMeter();
|
||||
meter.appendTo(meterFader);
|
||||
meter.bindTo(strip, 'meter');
|
||||
|
||||
|
|
|
|||
|
|
@ -27,7 +27,7 @@ export async function createRootContainer () {
|
|||
return root;
|
||||
}
|
||||
|
||||
class Widget extends BaseWidget {
|
||||
class TkWidget extends BaseWidget {
|
||||
|
||||
constructor (tk) {
|
||||
super();
|
||||
|
|
@ -40,19 +40,7 @@ class Widget extends BaseWidget {
|
|||
|
||||
}
|
||||
|
||||
export class Label extends Widget {
|
||||
|
||||
constructor () {
|
||||
super(new TK.Label());
|
||||
}
|
||||
|
||||
set text (text) {
|
||||
this.tk.set('label', text);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
class Control extends BaseControl {
|
||||
class TkControl extends BaseControl {
|
||||
|
||||
constructor (tk) {
|
||||
super();
|
||||
|
|
@ -65,7 +53,7 @@ class Control extends BaseControl {
|
|||
|
||||
}
|
||||
|
||||
class RangeControl extends Control {
|
||||
class TkRangeControl extends TkControl {
|
||||
|
||||
constructor (tk) {
|
||||
super(tk);
|
||||
|
|
@ -91,7 +79,7 @@ class RangeControl extends Control {
|
|||
|
||||
}
|
||||
|
||||
class Knob extends RangeControl {
|
||||
class TkKnob extends TkRangeControl {
|
||||
|
||||
constructor (options) {
|
||||
super(new TK.Knob(options));
|
||||
|
|
@ -99,6 +87,38 @@ class Knob extends RangeControl {
|
|||
|
||||
}
|
||||
|
||||
class TkFader extends TkRangeControl {
|
||||
|
||||
constructor (options) {
|
||||
super(new TK.Fader(options));
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
class TkMeter extends TkRangeControl {
|
||||
|
||||
constructor (options) {
|
||||
super(new TK.LevelMeter(options));
|
||||
}
|
||||
|
||||
set value (val) {
|
||||
this.tk.set('value', val);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
export class Label extends TkWidget {
|
||||
|
||||
constructor () {
|
||||
super(new TK.Label());
|
||||
}
|
||||
|
||||
set text (text) {
|
||||
this.tk.set('label', text);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
export class Container extends BaseContainer {
|
||||
|
||||
constructor () {
|
||||
|
|
@ -161,7 +181,7 @@ export class Dialog extends BaseDialog {
|
|||
|
||||
}
|
||||
|
||||
export class Button extends Control {
|
||||
export class Button extends TkControl {
|
||||
|
||||
constructor () {
|
||||
super(new TK.Button());
|
||||
|
|
@ -180,7 +200,7 @@ export class Button extends Control {
|
|||
|
||||
}
|
||||
|
||||
export class Toggle extends Control {
|
||||
export class Toggle extends TkControl {
|
||||
|
||||
constructor () {
|
||||
super(new TK.Toggle());
|
||||
|
|
@ -207,36 +227,59 @@ export class Toggle extends Control {
|
|||
|
||||
}
|
||||
|
||||
export class StripGainFader extends RangeControl {
|
||||
export class AudioStripGainFader extends TkFader {
|
||||
|
||||
constructor () {
|
||||
super(new TK.Fader({
|
||||
super({
|
||||
scale: 'decibel',
|
||||
labels: TK.FORMAT("%d"),
|
||||
min: -58.0,
|
||||
max: 6.0
|
||||
}));
|
||||
});
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
export class StripMeter extends RangeControl {
|
||||
export class MidiStripGainFader extends TkFader {
|
||||
|
||||
constructor () {
|
||||
super(new TK.LevelMeter({
|
||||
super({
|
||||
scale: 'linear',
|
||||
labels: TK.FORMAT("%d"),
|
||||
min: 0,
|
||||
max: 127
|
||||
});
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
export class AudioStripMeter extends TkMeter {
|
||||
|
||||
constructor () {
|
||||
super({
|
||||
show_scale: false,
|
||||
scale: 'decibel',
|
||||
min: -58.0,
|
||||
max: 6.0
|
||||
}));
|
||||
}
|
||||
|
||||
set value (val) {
|
||||
this.tk.set('value', val);
|
||||
});
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
export class LinearKnob extends Knob {
|
||||
export class MidiStripMeter extends TkMeter {
|
||||
|
||||
constructor () {
|
||||
super({
|
||||
show_scale: false,
|
||||
scale: 'linear',
|
||||
min: 0,
|
||||
max: 127
|
||||
});
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
export class LinearKnob extends TkKnob {
|
||||
|
||||
constructor (min, max) {
|
||||
super({
|
||||
|
|
@ -252,7 +295,7 @@ export class LinearKnob extends Knob {
|
|||
|
||||
}
|
||||
|
||||
export class LogKnob extends Knob {
|
||||
export class LogKnob extends TkKnob {
|
||||
|
||||
constructor (min, max) {
|
||||
super({
|
||||
|
|
@ -268,7 +311,7 @@ export class LogKnob extends Knob {
|
|||
|
||||
}
|
||||
|
||||
export class DiscreteKnob extends Knob {
|
||||
export class DiscreteKnob extends TkKnob {
|
||||
|
||||
constructor (min, max, step) {
|
||||
super({
|
||||
|
|
@ -285,7 +328,7 @@ export class DiscreteKnob extends Knob {
|
|||
|
||||
}
|
||||
|
||||
export class PanKnob extends Knob {
|
||||
export class PanKnob extends TkKnob {
|
||||
|
||||
constructor () {
|
||||
super({
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue