ui: the node editor offers the de-noise node and persists its window
The form gains a `median samples` row, shown only for `DeNoise`; the corner row widens to anything that reads `fc` (`math_op_uses_fc()`) while `q` stays band-pass-only, and the wiring row keeps its place at the end so the form's order is unchanged for every existing op. The session format gains a thirteenth field, `med_n`, after `y`. A twelve-field node -- a file written before this node existed -- still loads, with `med_n` left at the struct's default, which is what such a file meant; the reader's `return number(...) && ...` chain had to become a guarded sequence so the thirteenth field could be read conditionally. The math probe enables the channel it builds its graphs from, the same self-sufficiency rule the noise and measurement probes already follow: `enable_all_probe` ends by switching one signal off, and with `sine` gone the graphs landed on `square`, changing a documented line for reasons unrelated to the math. Readings: `[math-probe] 2 math channels on 'sine' and 'noise'`, `pane add: 'math3' sources 'sine'`, `graph edit: stored_slots 31000 -> 32000`, `dialog build: nodes=2, output after add=1` and the rest of the suite unchanged; no `Gtk-CRITICAL`.
This commit is contained in:
1 parent
1bde8809dd
commit
5c2c221777
5 files changed
+41
-7
No files matched your search
@@ -281,6 +281,16 @@ gboolean eventzoom_probe(gpointer user) {
|
||||
gboolean math_probe(gpointer user) {
|
||||
App* a = static_cast<App*>(user);
|
||||
if (a->window == nullptr) return G_SOURCE_REMOVE;
|
||||
// The channel the graphs are built from is enabled *here*, for the reason the noise and measurement
|
||||
// probes give: `enable_all_probe` finishes by switching one signal off, and with `sine` gone the graphs
|
||||
// land on `square`, which turns the documented "2 math channels on 'sine' and 'noise'" into a different
|
||||
// line for reasons that have nothing to do with the math.
|
||||
{
|
||||
const std::vector<SignalInfo>& signals = a->model->signals();
|
||||
for (std::size_t i = 0; i < signals.size(); ++i) {
|
||||
if (signals[i].name == "sine") a->model->set_signal_enabled(i, true);
|
||||
}
|
||||
}
|
||||
std::string name;
|
||||
std::string late_name;
|
||||
{
|
||||
|
||||
Reference in new issue
Block a user