ROGCC: effect visuals. daemon: support TUF RGB

This commit is contained in:
Luke D. Jones
2022-08-02 14:25:27 +12:00
parent ba4589f986
commit 3e244d7d3d
17 changed files with 525 additions and 194 deletions

View File

@@ -14,12 +14,17 @@ impl<'a> RogApp<'a> {
supported,
states,
asus_dbus: dbus,
oscillator,
oscillator1,
oscillator2,
oscillator3,
oscillator_freq,
..
} = self;
let osc = oscillator.load(Ordering::SeqCst) as u32;
states.aura.nudge_wave(osc as u8);
let red = oscillator1.load(Ordering::SeqCst) as u32;
let green = oscillator2.load(Ordering::SeqCst) as u32;
let blue = oscillator3.load(Ordering::SeqCst) as u32;
states.aura.nudge_wave(red as u8, green as u8, blue as u8);
// let osc = c.0 * 255 / osc;
// dbg!(osc);
let c1 = states
@@ -39,29 +44,35 @@ impl<'a> RogApp<'a> {
let mut colour = Color32::from_rgb(c1.0, c1.1, c1.2);
if states.aura.current_mode == AuraModeNum::Pulse {
colour = Color32::from_rgb(
(osc * c1.0 as u32 / 100) as u8,
(osc * c1.1 as u32 / 100) as u8,
(osc * c1.2 as u32 / 100) as u8,
(red * c1.0 as u32 / 100) as u8,
(red * c1.1 as u32 / 100) as u8,
(red * c1.2 as u32 / 100) as u8,
);
} else if states.aura.current_mode == AuraModeNum::Breathe {
if self.oscillator_toggle.load(Ordering::SeqCst) {
colour = Color32::from_rgb(
(osc * c2.0 as u32 / 100) as u8,
(osc * c2.1 as u32 / 100) as u8,
(osc * c2.2 as u32 / 100) as u8,
(red * c2.0 as u32 / 100) as u8,
(red * c2.1 as u32 / 100) as u8,
(red * c2.2 as u32 / 100) as u8,
);
} else {
colour = Color32::from_rgb(
(osc * c1.0 as u32 / 100) as u8,
(osc * c1.1 as u32 / 100) as u8,
(osc * c1.2 as u32 / 100) as u8,
(red * c1.0 as u32 / 100) as u8,
(red * c1.1 as u32 / 100) as u8,
(red * c1.2 as u32 / 100) as u8,
);
}
} else if states.aura.current_mode == AuraModeNum::Strobe {
colour = Color32::from_rgb(
(red * 255 / 100) as u8,
(green * 255 / 100) as u8,
(blue * 255 / 100) as u8,
);
}
// TODO: animation of colour changes/periods/blending
egui::CentralPanel::default().show(ctx, |ui| {
aura_modes_group(supported, states, dbus, ui);
aura_modes_group(supported, states, oscillator_freq, dbus, ui);
keyboard(ui, &states.keyboard_layout, &mut states.aura, colour);
});