MCPcopy Index your code
hub / github.com/RizeCrime/linuxblaster_control / eq_features

Function eq_features

src/app.rs:203–271  ·  view source on GitHub ↗
(blaster: &BlasterXG6, ui: &mut egui::Ui)

Source from the content-addressed store, hash-verified

201}
202
203fn eq_features(blaster: &BlasterXG6, ui: &mut egui::Ui) {
204 let eq_bands: Vec<_> = FeatureId::EQ_ALL
205 .iter()
206 .map(|&id| blaster.feature(id))
207 .collect();
208
209 ui.vertical_centered_justified(|ui| {
210 ui.horizontal(|ui| {
211 if ui.button(RichText::new("Select AutoEq Profile").color(Color32::GRAY)).clicked() {
212 *AUTOEQ_MODAL.lock().unwrap() = true;
213 }
214 });
215
216 ui.separator();
217
218 Grid::new("eq_grid").show(ui, |ui| {
219 for band in &eq_bands {
220 let mut value = band.value();
221 let clean_name =
222 band.id.display_name().strip_prefix("EQ ").unwrap_or(band.id.display_name());
223 let clean_name =
224 clean_name.split('-').next().unwrap_or(clean_name);
225
226 ui.vertical_centered_justified(|ui| {
227 ui.add_sized(
228 [ui.available_width(), 24.0],
229 egui::Label::new(
230 RichText::new(clean_name).color(Color32::GRAY),
231 ),
232 );
233 });
234
235 let drag_value = ui.add(drag_value!(
236 &mut value,
237 suffix = " dB",
238 decimals = 1,
239 step = 0.1,
240 range = -12.0..=12.0
241 ));
242 let slider = ui.add(slider!(
243 &mut value,
244 vertical = false,
245 decimals = 1,
246 step = 0.1,
247 range = -12.0..=12.0
248 ));
249
250 // do not simplify this.
251 // only `.changed()` will trigger even when the slider modifies itself
252 // for example when it rounds the number (which is necessary for the GUI)
253 if (drag_value.changed() || slider.changed())
254 // to get the behavior I want, this is sadly necessary
255 && (drag_value.dragged()
256 || drag_value.drag_stopped()
257 || drag_value.lost_focus()
258 || slider.dragged()
259 || slider.drag_stopped())
260 {

Callers 1

sbx_paneFunction · 0.85

Calls 4

featureMethod · 0.80
valueMethod · 0.80
display_nameMethod · 0.80
set_featureMethod · 0.80

Tested by

no test coverage detected