Make set funcs return effect information

This commit is contained in:
vextrixes committed 2026-07-05 18:26:24 +02:00
1 parent 526ffa885e
commit 23fb6f662a
2 files changed
+44 -23

No files matched your search

+31 -22
View File
@@ -3,6 +3,7 @@ use crate::Effects;
use crate::HidWrapperError; use crate::HidWrapperError;
use crate::Keymap; use crate::Keymap;
use crate::hid_wrapper::HidWrapper; use crate::hid_wrapper::HidWrapper;
use crate::rgb_controller::effects::Effect;
pub struct RGBController { pub struct RGBController {
hid_wrapper: HidWrapper, hid_wrapper: HidWrapper,
@@ -224,7 +225,7 @@ impl RGBController {
speed: u8, speed: u8,
direction: u8, direction: u8,
keymap: Option<[[u8; 3]; 144]>, keymap: Option<[[u8; 3]; 144]>,
) -> Result<(), HidWrapperError> { ) -> Result<Effect, HidWrapperError> {
self.hid_wrapper.open_device()?; self.hid_wrapper.open_device()?;
self.prepare_device()?; self.prepare_device()?;
@@ -263,7 +264,15 @@ impl RGBController {
self.hid_wrapper.close_device(); self.hid_wrapper.close_device();
Ok(()) Ok(Effect {
effect,
color,
full_color,
brightness,
speed,
direction,
keymap,
})
} }
pub fn set_static_effect( pub fn set_static_effect(
@@ -271,7 +280,7 @@ impl RGBController {
color: Color, color: Color,
brightness: u8, brightness: u8,
full_color: Option<bool>, full_color: Option<bool>,
) -> Result<(), HidWrapperError> { ) -> Result<Effect, HidWrapperError> {
self.set_effect( self.set_effect(
Effects::Static, Effects::Static,
color, color,
@@ -289,7 +298,7 @@ impl RGBController {
brightness: u8, brightness: u8,
speed: u8, speed: u8,
full_color: Option<bool>, full_color: Option<bool>,
) -> Result<(), HidWrapperError> { ) -> Result<Effect, HidWrapperError> {
self.set_effect( self.set_effect(
Effects::SingleOff, Effects::SingleOff,
color, color,
@@ -307,7 +316,7 @@ impl RGBController {
brightness: u8, brightness: u8,
speed: u8, speed: u8,
full_color: Option<bool>, full_color: Option<bool>,
) -> Result<(), HidWrapperError> { ) -> Result<Effect, HidWrapperError> {
self.set_effect( self.set_effect(
Effects::SingleOn, Effects::SingleOn,
color, color,
@@ -325,7 +334,7 @@ impl RGBController {
brightness: u8, brightness: u8,
speed: u8, speed: u8,
full_color: Option<bool>, full_color: Option<bool>,
) -> Result<(), HidWrapperError> { ) -> Result<Effect, HidWrapperError> {
self.set_effect( self.set_effect(
Effects::Glittering, Effects::Glittering,
color, color,
@@ -343,7 +352,7 @@ impl RGBController {
brightness: u8, brightness: u8,
speed: u8, speed: u8,
full_color: Option<bool>, full_color: Option<bool>,
) -> Result<(), HidWrapperError> { ) -> Result<Effect, HidWrapperError> {
self.set_effect( self.set_effect(
Effects::Rain, Effects::Rain,
color, color,
@@ -359,7 +368,7 @@ impl RGBController {
&mut self, &mut self,
brightness: u8, brightness: u8,
speed: u8, speed: u8,
) -> Result<(), HidWrapperError> { ) -> Result<Effect, HidWrapperError> {
self.set_effect( self.set_effect(
Effects::Colorful, Effects::Colorful,
Color::default(), Color::default(),
@@ -377,7 +386,7 @@ impl RGBController {
brightness: u8, brightness: u8,
speed: u8, speed: u8,
full_color: Option<bool>, full_color: Option<bool>,
) -> Result<(), HidWrapperError> { ) -> Result<Effect, HidWrapperError> {
self.set_effect( self.set_effect(
Effects::Breath, Effects::Breath,
color, color,
@@ -393,7 +402,7 @@ impl RGBController {
&mut self, &mut self,
brightness: u8, brightness: u8,
speed: u8, speed: u8,
) -> Result<(), HidWrapperError> { ) -> Result<Effect, HidWrapperError> {
self.set_effect( self.set_effect(
Effects::Spectrum, Effects::Spectrum,
Color::default(), Color::default(),
@@ -411,7 +420,7 @@ impl RGBController {
brightness: u8, brightness: u8,
speed: u8, speed: u8,
full_color: Option<bool>, full_color: Option<bool>,
) -> Result<(), HidWrapperError> { ) -> Result<Effect, HidWrapperError> {
self.set_effect( self.set_effect(
Effects::CentrifugalWave, Effects::CentrifugalWave,
color, color,
@@ -430,7 +439,7 @@ impl RGBController {
speed: u8, speed: u8,
direction: u8, direction: u8,
full_color: Option<bool>, full_color: Option<bool>,
) -> Result<(), HidWrapperError> { ) -> Result<Effect, HidWrapperError> {
self.set_effect( self.set_effect(
Effects::VerticalWave, Effects::VerticalWave,
color, color,
@@ -449,7 +458,7 @@ impl RGBController {
speed: u8, speed: u8,
direction: u8, direction: u8,
full_color: Option<bool>, full_color: Option<bool>,
) -> Result<(), HidWrapperError> { ) -> Result<Effect, HidWrapperError> {
self.set_effect( self.set_effect(
Effects::HorizontalWave, Effects::HorizontalWave,
color, color,
@@ -467,7 +476,7 @@ impl RGBController {
brightness: u8, brightness: u8,
speed: u8, speed: u8,
full_color: Option<bool>, full_color: Option<bool>,
) -> Result<(), HidWrapperError> { ) -> Result<Effect, HidWrapperError> {
self.set_effect( self.set_effect(
Effects::Rotating, Effects::Rotating,
color, color,
@@ -485,7 +494,7 @@ impl RGBController {
brightness: u8, brightness: u8,
speed: u8, speed: u8,
full_color: Option<bool>, full_color: Option<bool>,
) -> Result<(), HidWrapperError> { ) -> Result<Effect, HidWrapperError> {
self.set_effect( self.set_effect(
Effects::Explosion, Effects::Explosion,
color, color,
@@ -503,7 +512,7 @@ impl RGBController {
brightness: u8, brightness: u8,
speed: u8, speed: u8,
full_color: Option<bool>, full_color: Option<bool>,
) -> Result<(), HidWrapperError> { ) -> Result<Effect, HidWrapperError> {
self.set_effect( self.set_effect(
Effects::Launch, Effects::Launch,
color, color,
@@ -521,7 +530,7 @@ impl RGBController {
brightness: u8, brightness: u8,
speed: u8, speed: u8,
full_color: Option<bool>, full_color: Option<bool>,
) -> Result<(), HidWrapperError> { ) -> Result<Effect, HidWrapperError> {
self.set_effect( self.set_effect(
Effects::Ripples, Effects::Ripples,
color, color,
@@ -539,7 +548,7 @@ impl RGBController {
brightness: u8, brightness: u8,
speed: u8, speed: u8,
full_color: Option<bool>, full_color: Option<bool>,
) -> Result<(), HidWrapperError> { ) -> Result<Effect, HidWrapperError> {
self.set_effect( self.set_effect(
Effects::Snake, Effects::Snake,
color, color,
@@ -557,7 +566,7 @@ impl RGBController {
brightness: u8, brightness: u8,
speed: u8, speed: u8,
full_color: Option<bool>, full_color: Option<bool>,
) -> Result<(), HidWrapperError> { ) -> Result<Effect, HidWrapperError> {
self.set_effect( self.set_effect(
Effects::Pulse, Effects::Pulse,
color, color,
@@ -575,7 +584,7 @@ impl RGBController {
brightness: u8, brightness: u8,
speed: u8, speed: u8,
full_color: Option<bool>, full_color: Option<bool>,
) -> Result<(), HidWrapperError> { ) -> Result<Effect, HidWrapperError> {
self.set_effect( self.set_effect(
Effects::Tilt, Effects::Tilt,
color, color,
@@ -593,7 +602,7 @@ impl RGBController {
brightness: u8, brightness: u8,
speed: u8, speed: u8,
full_color: Option<bool>, full_color: Option<bool>,
) -> Result<(), HidWrapperError> { ) -> Result<Effect, HidWrapperError> {
self.set_effect( self.set_effect(
Effects::Shuttle, Effects::Shuttle,
color, color,
@@ -609,7 +618,7 @@ impl RGBController {
&mut self, &mut self,
brightness: u8, brightness: u8,
keymap: Keymap, keymap: Keymap,
) -> Result<(), HidWrapperError> { ) -> Result<Effect, HidWrapperError> {
self.set_effect( self.set_effect(
Effects::StaticPerKey, Effects::StaticPerKey,
Color::default(), Color::default(),
+13 -1
View File
@@ -4,6 +4,8 @@ use Effects::{
VerticalWave, VerticalWave,
}; };
use crate::Color;
/// Effects of the keyboard /// Effects of the keyboard
pub enum Effects { pub enum Effects {
Static, Static,
@@ -77,7 +79,17 @@ impl Effects {
18 => Some(Tilt), 18 => Some(Tilt),
19 => Some(Shuttle), 19 => Some(Shuttle),
20 => Some(StaticPerKey), 20 => Some(StaticPerKey),
_ => None _ => None,
} }
} }
} }
pub struct Effect {
pub effect: Effects,
pub color: Color,
pub full_color: bool,
pub brightness: u8,
pub speed: u8,
pub direction: u8,
pub keymap: Option<[[u8; 3]; 144]>,
}