Decouple the instrument reload from VST3 activation, and make the master meter's accumulate exact
This commit is contained in:
@@ -37,11 +37,14 @@ std::string tickLabel(int db) {
|
||||
}
|
||||
|
||||
// The MASTER column: dB scale in the label gutter, one or two bars, the held peak tick, and
|
||||
// the latched clip cap. `split` is waveformSurface's own lane decision — see master_meter.h.
|
||||
// the latched clip cap. `split` is the RESOLVED lane decision — see master_meter.h.
|
||||
void paintMeterColumn(LICE_IBitmap* bmp, const Rect& column, const MasterMeterUi& state,
|
||||
LaneSplit split) {
|
||||
if (column.width <= 0 || column.height <= 0) return;
|
||||
const MeterRects m = meterRects(column, split);
|
||||
// A column narrower than the interior needs yields all-empty rects, which under rect.h's
|
||||
// contract means suppressed — not a zero-height field to fill, tick twelve times and cap.
|
||||
if (m.field.empty()) return;
|
||||
fillSurface(bmp, toKitBox(m.field), Role::BgCell, InteractionState::Rest);
|
||||
|
||||
// Scale: a rule every 6 dB, numeralled every 12 with 0 dB heavier — the reference the
|
||||
@@ -60,8 +63,9 @@ void paintMeterColumn(LICE_IBitmap* bmp, const Rect& column, const MasterMeterUi
|
||||
}
|
||||
}
|
||||
|
||||
// The bars. A single-lane surface shows ONE bar off the louder channel: the two are the
|
||||
// same signal there (dual-mono), so two bars would be a duplicate rather than a reading.
|
||||
// The bars. A single-lane surface shows ONE bar folding both channels per field
|
||||
// (meterSingleLaneState) — the two are the same signal there (dual-mono), so two bars would
|
||||
// be a duplicate rather than a reading.
|
||||
const LICE_pixel barInk = toLice(roleColor(Role::AccentPrimary));
|
||||
const LICE_pixel holdInk = toLice(roleColor(Role::TextPrimary));
|
||||
const auto drawBar = [&](const Rect& bar, const instrument::engine::MeterState& ch) {
|
||||
|
||||
Reference in New Issue
Block a user