made set_effect functions use rgb struct

This commit is contained in:
vextrixes committed 2026-06-06 16:05:46 +02:00
1 parent 07477e9d58
commit 856a7965b9
4 files changed
+46 -129

No files matched your search

-1
View File
@@ -1,4 +1,3 @@
extern crate hidapi;
mod constants; mod constants;
pub mod error; pub mod error;
pub mod wrapper; pub mod wrapper;
+1
View File
@@ -1,3 +1,4 @@
#[derive(Default)]
pub struct Rgb { pub struct Rgb {
pub red: u8, pub red: u8,
pub green: u8, pub green: u8,
+43 -126
View File
@@ -1,6 +1,7 @@
use crate::Effects; use crate::Effects;
use crate::HidWrapperError; use crate::HidWrapperError;
use crate::Keymap; use crate::Keymap;
use crate::Rgb;
use crate::hid_wrapper::HidWrapper; use crate::hid_wrapper::HidWrapper;
pub struct RGBController { pub struct RGBController {
@@ -8,8 +9,6 @@ pub struct RGBController {
} }
impl Default for RGBController { impl Default for RGBController {
/// Makes a new instance of HidWrapper (No shit Sherlock)
///
/// # Panics /// # Panics
/// if ```HidWrapperError::HidApiError``` is returned from new() /// if ```HidWrapperError::HidApiError``` is returned from new()
fn default() -> Self { fn default() -> Self {
@@ -21,8 +20,6 @@ impl Default for RGBController {
} }
impl RGBController { impl RGBController {
/// Makes a new instance of HidWrapper (No shit Sherlock)
///
/// # Errors /// # Errors
/// ```HidWrapperError::HidApiError``` /// ```HidWrapperError::HidApiError```
pub fn new() -> Result<RGBController, HidWrapperError> { pub fn new() -> Result<RGBController, HidWrapperError> {
@@ -210,9 +207,7 @@ impl RGBController {
pub fn set_effect( pub fn set_effect(
&mut self, &mut self,
effect: Effects, effect: Effects,
red: u8, rgb: Rgb,
green: u8,
blue: u8,
full_color: bool, full_color: bool,
brightness: u8, brightness: u8,
speed: u8, speed: u8,
@@ -236,9 +231,9 @@ impl RGBController {
self.hid_wrapper.send_report(&[ self.hid_wrapper.send_report(&[
effect.to_u8(), effect.to_u8(),
red, rgb.red,
green, rgb.green,
blue, rgb.blue,
0, 0,
0, 0,
0, 0,
@@ -262,17 +257,13 @@ impl RGBController {
pub fn set_static_effect( pub fn set_static_effect(
&mut self, &mut self,
red: u8, rgb: Rgb,
green: u8,
blue: u8,
brightness: u8, brightness: u8,
full_color: Option<bool>, full_color: Option<bool>,
) -> Result<(), HidWrapperError> { ) -> Result<(), HidWrapperError> {
self.set_effect( self.set_effect(
Effects::Static, Effects::Static,
red, rgb,
green,
blue,
full_color.unwrap_or(false), full_color.unwrap_or(false),
brightness, brightness,
1, 1,
@@ -283,18 +274,14 @@ impl RGBController {
pub fn set_single_off_effect( pub fn set_single_off_effect(
&mut self, &mut self,
red: u8, rgb: Rgb,
green: u8,
blue: u8,
brightness: u8, brightness: u8,
speed: u8, speed: u8,
full_color: Option<bool>, full_color: Option<bool>,
) -> Result<(), HidWrapperError> { ) -> Result<(), HidWrapperError> {
self.set_effect( self.set_effect(
Effects::SingleOff, Effects::SingleOff,
red, rgb,
green,
blue,
full_color.unwrap_or(false), full_color.unwrap_or(false),
brightness, brightness,
speed, speed,
@@ -305,18 +292,14 @@ impl RGBController {
pub fn set_single_on_effect( pub fn set_single_on_effect(
&mut self, &mut self,
red: u8, rgb: Rgb,
green: u8,
blue: u8,
brightness: u8, brightness: u8,
speed: u8, speed: u8,
full_color: Option<bool>, full_color: Option<bool>,
) -> Result<(), HidWrapperError> { ) -> Result<(), HidWrapperError> {
self.set_effect( self.set_effect(
Effects::SingleOn, Effects::SingleOn,
red, rgb,
green,
blue,
full_color.unwrap_or(false), full_color.unwrap_or(false),
brightness, brightness,
speed, speed,
@@ -327,18 +310,14 @@ impl RGBController {
pub fn set_glittering_effect( pub fn set_glittering_effect(
&mut self, &mut self,
red: u8, rgb: Rgb,
green: u8,
blue: u8,
brightness: u8, brightness: u8,
speed: u8, speed: u8,
full_color: Option<bool>, full_color: Option<bool>,
) -> Result<(), HidWrapperError> { ) -> Result<(), HidWrapperError> {
self.set_effect( self.set_effect(
Effects::Glittering, Effects::Glittering,
red, rgb,
green,
blue,
full_color.unwrap_or(false), full_color.unwrap_or(false),
brightness, brightness,
speed, speed,
@@ -349,18 +328,14 @@ impl RGBController {
pub fn set_rain_effect( pub fn set_rain_effect(
&mut self, &mut self,
red: u8, rgb: Rgb,
green: u8,
blue: u8,
brightness: u8, brightness: u8,
speed: u8, speed: u8,
full_color: Option<bool>, full_color: Option<bool>,
) -> Result<(), HidWrapperError> { ) -> Result<(), HidWrapperError> {
self.set_effect( self.set_effect(
Effects::Rain, Effects::Rain,
red, rgb,
green,
blue,
full_color.unwrap_or(false), full_color.unwrap_or(false),
brightness, brightness,
speed, speed,
@@ -371,18 +346,14 @@ impl RGBController {
pub fn set_colorful_effect( pub fn set_colorful_effect(
&mut self, &mut self,
red: u8, rgb: Rgb,
green: u8,
blue: u8,
brightness: u8, brightness: u8,
speed: u8, speed: u8,
full_color: Option<bool>, full_color: Option<bool>,
) -> Result<(), HidWrapperError> { ) -> Result<(), HidWrapperError> {
self.set_effect( self.set_effect(
Effects::Colorful, Effects::Colorful,
red, rgb,
green,
blue,
full_color.unwrap_or(false), full_color.unwrap_or(false),
brightness, brightness,
speed, speed,
@@ -393,18 +364,14 @@ impl RGBController {
pub fn set_breath_effect( pub fn set_breath_effect(
&mut self, &mut self,
red: u8, rgb: Rgb,
green: u8,
blue: u8,
brightness: u8, brightness: u8,
speed: u8, speed: u8,
full_color: Option<bool>, full_color: Option<bool>,
) -> Result<(), HidWrapperError> { ) -> Result<(), HidWrapperError> {
self.set_effect( self.set_effect(
Effects::Breath, Effects::Breath,
red, rgb,
green,
blue,
full_color.unwrap_or(false), full_color.unwrap_or(false),
brightness, brightness,
speed, speed,
@@ -420,9 +387,7 @@ impl RGBController {
) -> Result<(), HidWrapperError> { ) -> Result<(), HidWrapperError> {
self.set_effect( self.set_effect(
Effects::Spectrum, Effects::Spectrum,
0, Rgb::default(),
0,
0,
false, false,
brightness, brightness,
speed, speed,
@@ -433,18 +398,14 @@ impl RGBController {
pub fn set_centrifugal_wave_effect( pub fn set_centrifugal_wave_effect(
&mut self, &mut self,
red: u8, rgb: Rgb,
green: u8,
blue: u8,
brightness: u8, brightness: u8,
speed: u8, speed: u8,
full_color: Option<bool>, full_color: Option<bool>,
) -> Result<(), HidWrapperError> { ) -> Result<(), HidWrapperError> {
self.set_effect( self.set_effect(
Effects::CentrifugalWave, Effects::CentrifugalWave,
red, rgb,
green,
blue,
full_color.unwrap_or(false), full_color.unwrap_or(false),
brightness, brightness,
speed, speed,
@@ -453,12 +414,9 @@ impl RGBController {
) )
} }
#[allow(clippy::too_many_arguments)]
pub fn set_vertical_wave_effect( pub fn set_vertical_wave_effect(
&mut self, &mut self,
red: u8, rgb: Rgb,
green: u8,
blue: u8,
brightness: u8, brightness: u8,
speed: u8, speed: u8,
direction: u8, direction: u8,
@@ -466,9 +424,7 @@ impl RGBController {
) -> Result<(), HidWrapperError> { ) -> Result<(), HidWrapperError> {
self.set_effect( self.set_effect(
Effects::VerticalWave, Effects::VerticalWave,
red, rgb,
green,
blue,
full_color.unwrap_or(false), full_color.unwrap_or(false),
brightness, brightness,
speed, speed,
@@ -477,12 +433,9 @@ impl RGBController {
) )
} }
#[allow(clippy::too_many_arguments)]
pub fn set_horizontal_wave_effect( pub fn set_horizontal_wave_effect(
&mut self, &mut self,
red: u8, rgb: Rgb,
green: u8,
blue: u8,
brightness: u8, brightness: u8,
speed: u8, speed: u8,
direction: u8, direction: u8,
@@ -490,9 +443,7 @@ impl RGBController {
) -> Result<(), HidWrapperError> { ) -> Result<(), HidWrapperError> {
self.set_effect( self.set_effect(
Effects::HorizontalWave, Effects::HorizontalWave,
red, rgb,
green,
blue,
full_color.unwrap_or(false), full_color.unwrap_or(false),
brightness, brightness,
speed, speed,
@@ -503,18 +454,14 @@ impl RGBController {
pub fn set_rotating_effect( pub fn set_rotating_effect(
&mut self, &mut self,
red: u8, rgb: Rgb,
green: u8,
blue: u8,
brightness: u8, brightness: u8,
speed: u8, speed: u8,
full_color: Option<bool>, full_color: Option<bool>,
) -> Result<(), HidWrapperError> { ) -> Result<(), HidWrapperError> {
self.set_effect( self.set_effect(
Effects::Rotating, Effects::Rotating,
red, rgb,
green,
blue,
full_color.unwrap_or(false), full_color.unwrap_or(false),
brightness, brightness,
speed, speed,
@@ -525,18 +472,14 @@ impl RGBController {
pub fn set_explosion_effect( pub fn set_explosion_effect(
&mut self, &mut self,
red: u8, rgb: Rgb,
green: u8,
blue: u8,
brightness: u8, brightness: u8,
speed: u8, speed: u8,
full_color: Option<bool>, full_color: Option<bool>,
) -> Result<(), HidWrapperError> { ) -> Result<(), HidWrapperError> {
self.set_effect( self.set_effect(
Effects::Explosion, Effects::Explosion,
red, rgb,
green,
blue,
full_color.unwrap_or(false), full_color.unwrap_or(false),
brightness, brightness,
speed, speed,
@@ -547,18 +490,14 @@ impl RGBController {
pub fn set_launch_effect( pub fn set_launch_effect(
&mut self, &mut self,
red: u8, rgb: Rgb,
green: u8,
blue: u8,
brightness: u8, brightness: u8,
speed: u8, speed: u8,
full_color: Option<bool>, full_color: Option<bool>,
) -> Result<(), HidWrapperError> { ) -> Result<(), HidWrapperError> {
self.set_effect( self.set_effect(
Effects::Launch, Effects::Launch,
red, rgb,
green,
blue,
full_color.unwrap_or(false), full_color.unwrap_or(false),
brightness, brightness,
speed, speed,
@@ -569,18 +508,14 @@ impl RGBController {
pub fn set_ripples_effect( pub fn set_ripples_effect(
&mut self, &mut self,
red: u8, rgb: Rgb,
green: u8,
blue: u8,
brightness: u8, brightness: u8,
speed: u8, speed: u8,
full_color: Option<bool>, full_color: Option<bool>,
) -> Result<(), HidWrapperError> { ) -> Result<(), HidWrapperError> {
self.set_effect( self.set_effect(
Effects::Ripples, Effects::Ripples,
red, rgb,
green,
blue,
full_color.unwrap_or(false), full_color.unwrap_or(false),
brightness, brightness,
speed, speed,
@@ -591,18 +526,14 @@ impl RGBController {
pub fn set_snake_effect( pub fn set_snake_effect(
&mut self, &mut self,
red: u8, rgb: Rgb,
green: u8,
blue: u8,
brightness: u8, brightness: u8,
speed: u8, speed: u8,
full_color: Option<bool>, full_color: Option<bool>,
) -> Result<(), HidWrapperError> { ) -> Result<(), HidWrapperError> {
self.set_effect( self.set_effect(
Effects::Snake, Effects::Snake,
red, rgb,
green,
blue,
full_color.unwrap_or(false), full_color.unwrap_or(false),
brightness, brightness,
speed, speed,
@@ -613,18 +544,14 @@ impl RGBController {
pub fn set_pulse_effect( pub fn set_pulse_effect(
&mut self, &mut self,
red: u8, rgb: Rgb,
green: u8,
blue: u8,
brightness: u8, brightness: u8,
speed: u8, speed: u8,
full_color: Option<bool>, full_color: Option<bool>,
) -> Result<(), HidWrapperError> { ) -> Result<(), HidWrapperError> {
self.set_effect( self.set_effect(
Effects::Pulse, Effects::Pulse,
red, rgb,
green,
blue,
full_color.unwrap_or(false), full_color.unwrap_or(false),
brightness, brightness,
speed, speed,
@@ -635,18 +562,14 @@ impl RGBController {
pub fn set_tilt_effect( pub fn set_tilt_effect(
&mut self, &mut self,
red: u8, rgb: Rgb,
green: u8,
blue: u8,
brightness: u8, brightness: u8,
speed: u8, speed: u8,
full_color: Option<bool>, full_color: Option<bool>,
) -> Result<(), HidWrapperError> { ) -> Result<(), HidWrapperError> {
self.set_effect( self.set_effect(
Effects::Tilt, Effects::Tilt,
red, rgb,
green,
blue,
full_color.unwrap_or(false), full_color.unwrap_or(false),
brightness, brightness,
speed, speed,
@@ -657,18 +580,14 @@ impl RGBController {
pub fn set_shuttle_effect( pub fn set_shuttle_effect(
&mut self, &mut self,
red: u8, rgb: Rgb,
green: u8,
blue: u8,
brightness: u8, brightness: u8,
speed: u8, speed: u8,
full_color: Option<bool>, full_color: Option<bool>,
) -> Result<(), HidWrapperError> { ) -> Result<(), HidWrapperError> {
self.set_effect( self.set_effect(
Effects::Shuttle, Effects::Shuttle,
red, rgb,
green,
blue,
full_color.unwrap_or(false), full_color.unwrap_or(false),
brightness, brightness,
speed, speed,
@@ -684,9 +603,7 @@ impl RGBController {
) -> Result<(), HidWrapperError> { ) -> Result<(), HidWrapperError> {
self.set_effect( self.set_effect(
Effects::StaticPerKey, Effects::StaticPerKey,
0, Rgb::default(),
0,
0,
false, false,
brightness, brightness,
1, 1,
+2 -2
View File
@@ -248,6 +248,6 @@ impl Keymap {
impl Keymap { impl Keymap {
pub fn map(&self) -> [[u8; 3]; 144] { pub fn map(&self) -> [[u8; 3]; 144] {
self.map.clone() self.map
} }
} }