50 void set_levels(
float primary,
float secondary)
override {
58 std::vector<canvas::Color> gradient)
override {
74 void update(
float raw_peak,
float raw_rms,
float dt);
85 return ballistics_.display_rms;
88 return ballistics_.display_peak;
96 return ballistics_.held_peak;
105 void set_source(std::shared_ptr<MeterSource> source,
int channel = 0) {
126 gradient_stops_ = std::move(stops);
130 background_color_ =
c;
131 has_skin_background_ =
true;
135 gradient_stops_.clear();
136 has_skin_background_ =
false;
137 bar_fill_ratio_ = 1.0f;
147 bar_fill_ratio_ = std::clamp(
r, 0.05f, 1.0f);
151 return bar_fill_ratio_;
154 return gradient_stops_.size() >= 2;
157 return has_skin_background_;
160 return gradient_stops_;
163 return background_color_;
178 void on_meter_frame(
const MeterFrame& frame,
float dt)
override;
185 float current_rms_ = 0;
186 float current_peak_ = 0;
188 std::vector<canvas::Color> gradient_stops_;
190 bool has_skin_background_ =
false;
191 float bar_fill_ratio_ = 1.0f;
238 void set_series(
const float* values, std::size_t count)
override {
252 void set_thumbnail(std::shared_ptr<const pulp::audio::WaveformOverview> thumb,
253 uint32_t channel =
static_cast<uint32_t
>(-1));
254 [[deprecated(
"set_thumbnail(const WaveformOverview*) is borrowed; prefer shared_ptr overload "
255 "or set_thumbnail_borrowed()")]]
257 uint32_t channel =
static_cast<uint32_t
>(-1));
262 uint32_t channel =
static_cast<uint32_t
>(-1));
266 return thumbnail_ !=
nullptr;
273 return samples_.size();
277 return "WaveformView";
285 return preview_shape_;
289 trigger_mode_ = mode;
292 return trigger_mode_;
303 void apply_trigger();
305 std::vector<float> samples_;
309 std::shared_ptr<const pulp::audio::WaveformOverview> thumbnail_owner_;
311 std::vector<float> thumbnail_min_max_;
312 std::vector<float> thumbnail_envelope_;
313 uint32_t thumbnail_channel_ =
static_cast<uint32_t
>(-1);
328 void set_bins(
const float* values, std::size_t count)
override {
337 return "SpectrumView";
357 std::vector<float> bins_;
359 float min_db_ = -80.0f;
360 float max_db_ = 0.0f;
Definition canvas.hpp:240
Interface for accessible values (sliders, knobs, progress bars).
Definition accessibility.hpp:16
Definition data_display.hpp:47
Lets a widget describe itself to the component inspector (ViewInspector) and to view-core's layout an...
Definition inspector_facts.hpp:15
Generic level, series and bin display seams owned by view-core.
Definition data_display.hpp:24
Orientation
Definition data_display.hpp:26
@ horizontal
Definition data_display.hpp:26
Meter()
Definition audio_widgets.hpp:23
void set_levels(float primary, float secondary) override
Definition audio_widgets.hpp:50
Orientation orientation() const
Definition audio_widgets.hpp:79
float held_peak() const
Definition audio_widgets.hpp:95
double get_minimum_value() const override
Minimum value.
Definition audio_widgets.hpp:34
bool has_source() const
Definition audio_widgets.hpp:108
void set_bar_fill_ratio(float r)
Definition audio_widgets.hpp:146
Orientation
Definition audio_widgets.hpp:21
@ horizontal
Definition audio_widgets.hpp:21
@ vertical
Definition audio_widgets.hpp:21
void set_level_render_style(WidgetRenderStyle s) override
Definition audio_widgets.hpp:69
float bar_fill_ratio() const
Definition audio_widgets.hpp:150
void paint(canvas::Canvas &canvas) override
void set_skin_gradient(std::vector< canvas::Color > stops)
Definition audio_widgets.hpp:125
void set_level_bar_ratio(float ratio) override
Definition audio_widgets.hpp:66
const std::vector< canvas::Color > & skin_gradient() const
Definition audio_widgets.hpp:159
void set_level_fill(std::optional< canvas::Color > background, std::vector< canvas::Color > gradient) override
Installs a fill gradient (stops low to high).
Definition audio_widgets.hpp:57
void set_orientation(Orientation o)
Definition audio_widgets.hpp:76
void set_current_value(double) override
Set the value (if editable).
Definition audio_widgets.hpp:33
float display_rms() const
Definition audio_widgets.hpp:84
void set_level_orientation(LevelDisplay::Orientation o) override
Definition audio_widgets.hpp:53
void set_source(std::shared_ptr< MeterSource > source, int channel=0)
Definition audio_widgets.hpp:105
void inspector_facts(std::vector< InspectorFacts::Fact > &out) const override
bool has_skin_gradient() const
Definition audio_widgets.hpp:153
bool has_skin_background_color() const
Definition audio_widgets.hpp:156
int source_channel() const
Definition audio_widgets.hpp:111
void clear_level_fill() override
Definition audio_widgets.hpp:63
double get_maximum_value() const override
Maximum value.
Definition audio_widgets.hpp:37
std::string_view inspector_type_name() const override
Definition audio_widgets.hpp:91
void update(float raw_peak, float raw_rms, float dt)
canvas::Color skin_background_color() const
Definition audio_widgets.hpp:162
WidgetRenderStyle render_style() const
Definition audio_widgets.hpp:44
void set_skin_background_color(canvas::Color c)
Definition audio_widgets.hpp:129
void set_level(float rms, float peak)
double get_current_value() const override
Current value as a number.
Definition audio_widgets.hpp:30
std::optional< canvas::Color > gradient_color_at(float t) const
float display_peak() const
Definition audio_widgets.hpp:87
void set_render_style(WidgetRenderStyle s)
Definition audio_widgets.hpp:41
void clear_skin()
Definition audio_widgets.hpp:134
Definition data_display.hpp:39
void paint(canvas::Canvas &canvas) override
std::string_view inspector_type_name() const override
Definition audio_widgets.hpp:336
void set_spectrum(std::vector< float > magnitudes_db)
void set_bins(const float *values, std::size_t count) override
Values use the producer's convention for units.
Definition audio_widgets.hpp:328
void set_range(float min_db, float max_db)
Definition audio_widgets.hpp:349
Style style() const
Definition audio_widgets.hpp:344
void set_style(Style s)
Definition audio_widgets.hpp:341
void inspector_facts(std::vector< InspectorFacts::Fact > &out) const override
size_t bin_count() const
Definition audio_widgets.hpp:332
void set_spectrum(const float *magnitudes_db, size_t bin_count)
Style
Definition audio_widgets.hpp:321
@ bars
Definition audio_widgets.hpp:321
@ line
Definition audio_widgets.hpp:321
@ filled
Definition audio_widgets.hpp:321
bool has_meter_source() const
void request_repaint()
Request that this view's host invalidate and schedule a repaint.
@ meter
Definition view.hpp:989
void set_meter_source(std::shared_ptr< MeterSource > source, int channel=0)
Bind a MeterSource.
int meter_source_channel() const
void set_access_role(AccessRole role)
Definition view.hpp:995
virtual void on_meter_snapshot_changed()
meter_frame() changed: repaint this view (a live binding alone does not composite).
Definition view.hpp:598
Definition analyzer_provider.hpp:12
Definition affine_transform.hpp:24
Hover-cursor tracking for platform window hosts.
Definition fwd.hpp:27
@ s
Definition input_events.hpp:41
@ c
Definition input_events.hpp:39
@ r
Definition input_events.hpp:41
@ o
Definition input_events.hpp:40
@ t
Definition input_events.hpp:41
WidgetRenderStyle
Rendering style for widgets.
Definition data_display.hpp:20
@ standard
Definition data_display.hpp:20
Definition audio_bridge.hpp:23
A single multi-channel meter reading.
Definition value_source.hpp:39
Source-compatible spelling of <pulp/dataplane/audio_bridge.hpp>.