[ui] sliders update ui (while playing)
This commit is contained in:
parent
c3adc2be38
commit
2c17c57580
3 changed files with 25 additions and 20 deletions
|
@ -4,15 +4,6 @@ namespace Amuencha
|
||||||
{
|
{
|
||||||
void Analyser::operator()(halp::tick t)
|
void Analyser::operator()(halp::tick t)
|
||||||
{
|
{
|
||||||
if (inputs.min != previous_min ||
|
|
||||||
inputs.max != previous_max)
|
|
||||||
{
|
|
||||||
send_message(processor_to_ui{.min = inputs.min,
|
|
||||||
.max = inputs.max});
|
|
||||||
previous_min = inputs.min;
|
|
||||||
previous_max = inputs.max;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Process the input buffer
|
// Process the input buffer
|
||||||
auto* in = inputs.audio[0];
|
auto* in = inputs.audio[0];
|
||||||
|
|
||||||
|
|
|
@ -20,8 +20,22 @@ public:
|
||||||
struct ins
|
struct ins
|
||||||
{
|
{
|
||||||
halp::fixed_audio_bus<"Input", double, 1> audio;
|
halp::fixed_audio_bus<"Input", double, 1> audio;
|
||||||
halp::hslider_i32<"Min", halp::range{.min = 0, .max = 127, .init = 24}> min;
|
struct : halp::hslider_i32<"Min", halp::range{.min = 0, .max = 127, .init = 24}>
|
||||||
halp::hslider_i32<"Max", halp::range{.min = 0, .max = 127, .init = 72}> max;
|
{
|
||||||
|
void update(Analyser& self)
|
||||||
|
{
|
||||||
|
self.send_message({.min = this->value, .max = self.inputs.max.value});
|
||||||
|
}
|
||||||
|
} min;
|
||||||
|
struct : halp::hslider_i32<"Min", halp::range{.min = 0, .max = 127, .init = 72}>
|
||||||
|
{
|
||||||
|
void update(Analyser& self)
|
||||||
|
{
|
||||||
|
self.send_message({.min = self.inputs.min.value, .max = this->value});
|
||||||
|
}
|
||||||
|
} max;
|
||||||
|
// halp::hslider_i32<"Min", halp::range{.min = 0, .max = 127, .init = 24}> min;
|
||||||
|
// halp::hslider_i32<"Max", halp::range{.min = 0, .max = 127, .init = 72}> max;
|
||||||
} inputs;
|
} inputs;
|
||||||
|
|
||||||
// This one will be memcpy'd as it is a trivial type
|
// This one will be memcpy'd as it is a trivial type
|
||||||
|
@ -52,9 +66,6 @@ public:
|
||||||
|
|
||||||
// UI is defined in another file to keep things clear.
|
// UI is defined in another file to keep things clear.
|
||||||
struct ui;
|
struct ui;
|
||||||
|
|
||||||
private:
|
|
||||||
double previous_min{24}, previous_max{72};
|
|
||||||
};
|
};
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -99,18 +99,21 @@ void Amuencha::SpiralDisplay::power_handler(int ID, const std::vector<float> &re
|
||||||
// reassigned frequencies are never too far off the original
|
// reassigned frequencies are never too far off the original
|
||||||
//if (rf>display_bins[idx] && rf<display_bins[idx+1]) ri = idx;
|
//if (rf>display_bins[idx] && rf<display_bins[idx+1]) ri = idx;
|
||||||
//else...
|
//else...
|
||||||
while (rf<display_bins[ri])
|
while (rf < display_bins[ri])
|
||||||
{
|
{
|
||||||
--ri;
|
--ri;
|
||||||
if (ri==-1) break;
|
if (ri == -1) break;
|
||||||
}
|
}
|
||||||
if (ri==-1) continue; // ignore this frequency, it is below display min
|
|
||||||
while (rf>display_bins[ri+1])
|
if (ri == -1) continue; // ignore this frequency, it is below display min
|
||||||
|
|
||||||
|
while (rf > display_bins[ri+1])
|
||||||
{
|
{
|
||||||
++ri;
|
++ri;
|
||||||
if (ri==nidx) break;
|
if (ri == nidx) break;
|
||||||
}
|
}
|
||||||
if (ri==nidx) continue; // ignore this frequency, it is above display max
|
|
||||||
|
if (ri == nidx) continue; // ignore this frequency, it is above display max
|
||||||
|
|
||||||
// Normalization:
|
// Normalization:
|
||||||
// - for a given frequency, the sine/window size dependency was already
|
// - for a given frequency, the sine/window size dependency was already
|
||||||
|
|
Loading…
Add table
Reference in a new issue