Created a preset struct
This commit is contained in:
7 files changed
+86
-43
No files matched your search
+1
-1
@@ -1,4 +1,4 @@
|
||||
#[derive(Default)]
|
||||
#[derive(Default, PartialEq, Debug)]
|
||||
pub struct Color {
|
||||
pub red: u8,
|
||||
pub green: u8,
|
||||
|
||||
@@ -11,6 +11,7 @@ pub use rgb_controller::effect_info::{
|
||||
DirectionPolicy, EFFECTS, EffectInfo, HorizontalDirections, VerticalDirections,
|
||||
};
|
||||
pub use rgb_controller::effects::Effects;
|
||||
pub use rgb_controller::preset::Preset;
|
||||
|
||||
#[cfg(feature = "access_hid_wrapper")]
|
||||
pub use hid_wrapper::HidWrapper;
|
||||
@@ -1,3 +1,4 @@
|
||||
pub mod controller;
|
||||
pub mod effect_info;
|
||||
pub mod effects;
|
||||
pub mod preset;
|
||||
@@ -2,8 +2,8 @@ use crate::Color;
|
||||
use crate::Effects;
|
||||
use crate::HidWrapperError;
|
||||
use crate::Keymap;
|
||||
use crate::Preset;
|
||||
use crate::hid_wrapper::HidWrapper;
|
||||
use crate::rgb_controller::effects::Effect;
|
||||
|
||||
pub struct RGBController {
|
||||
hid_wrapper: HidWrapper,
|
||||
@@ -225,7 +225,7 @@ impl RGBController {
|
||||
speed: u8,
|
||||
direction: u8,
|
||||
keymap: Option<[[u8; 3]; 144]>,
|
||||
) -> Result<Effect, HidWrapperError> {
|
||||
) -> Result<Preset, HidWrapperError> {
|
||||
self.hid_wrapper.open_device()?;
|
||||
|
||||
self.prepare_device()?;
|
||||
@@ -264,7 +264,7 @@ impl RGBController {
|
||||
|
||||
self.hid_wrapper.close_device();
|
||||
|
||||
Ok(Effect {
|
||||
Ok(Preset {
|
||||
effect,
|
||||
color,
|
||||
full_color,
|
||||
@@ -280,7 +280,7 @@ impl RGBController {
|
||||
color: Color,
|
||||
brightness: u8,
|
||||
full_color: Option<bool>,
|
||||
) -> Result<Effect, HidWrapperError> {
|
||||
) -> Result<Preset, HidWrapperError> {
|
||||
self.set_effect(
|
||||
Effects::Static,
|
||||
color,
|
||||
@@ -298,7 +298,7 @@ impl RGBController {
|
||||
brightness: u8,
|
||||
speed: u8,
|
||||
full_color: Option<bool>,
|
||||
) -> Result<Effect, HidWrapperError> {
|
||||
) -> Result<Preset, HidWrapperError> {
|
||||
self.set_effect(
|
||||
Effects::SingleOff,
|
||||
color,
|
||||
@@ -316,7 +316,7 @@ impl RGBController {
|
||||
brightness: u8,
|
||||
speed: u8,
|
||||
full_color: Option<bool>,
|
||||
) -> Result<Effect, HidWrapperError> {
|
||||
) -> Result<Preset, HidWrapperError> {
|
||||
self.set_effect(
|
||||
Effects::SingleOn,
|
||||
color,
|
||||
@@ -334,7 +334,7 @@ impl RGBController {
|
||||
brightness: u8,
|
||||
speed: u8,
|
||||
full_color: Option<bool>,
|
||||
) -> Result<Effect, HidWrapperError> {
|
||||
) -> Result<Preset, HidWrapperError> {
|
||||
self.set_effect(
|
||||
Effects::Glittering,
|
||||
color,
|
||||
@@ -352,7 +352,7 @@ impl RGBController {
|
||||
brightness: u8,
|
||||
speed: u8,
|
||||
full_color: Option<bool>,
|
||||
) -> Result<Effect, HidWrapperError> {
|
||||
) -> Result<Preset, HidWrapperError> {
|
||||
self.set_effect(
|
||||
Effects::Rain,
|
||||
color,
|
||||
@@ -368,7 +368,7 @@ impl RGBController {
|
||||
&mut self,
|
||||
brightness: u8,
|
||||
speed: u8,
|
||||
) -> Result<Effect, HidWrapperError> {
|
||||
) -> Result<Preset, HidWrapperError> {
|
||||
self.set_effect(
|
||||
Effects::Colorful,
|
||||
Color::default(),
|
||||
@@ -386,7 +386,7 @@ impl RGBController {
|
||||
brightness: u8,
|
||||
speed: u8,
|
||||
full_color: Option<bool>,
|
||||
) -> Result<Effect, HidWrapperError> {
|
||||
) -> Result<Preset, HidWrapperError> {
|
||||
self.set_effect(
|
||||
Effects::Breath,
|
||||
color,
|
||||
@@ -402,7 +402,7 @@ impl RGBController {
|
||||
&mut self,
|
||||
brightness: u8,
|
||||
speed: u8,
|
||||
) -> Result<Effect, HidWrapperError> {
|
||||
) -> Result<Preset, HidWrapperError> {
|
||||
self.set_effect(
|
||||
Effects::Spectrum,
|
||||
Color::default(),
|
||||
@@ -420,7 +420,7 @@ impl RGBController {
|
||||
brightness: u8,
|
||||
speed: u8,
|
||||
full_color: Option<bool>,
|
||||
) -> Result<Effect, HidWrapperError> {
|
||||
) -> Result<Preset, HidWrapperError> {
|
||||
self.set_effect(
|
||||
Effects::CentrifugalWave,
|
||||
color,
|
||||
@@ -439,7 +439,7 @@ impl RGBController {
|
||||
speed: u8,
|
||||
direction: u8,
|
||||
full_color: Option<bool>,
|
||||
) -> Result<Effect, HidWrapperError> {
|
||||
) -> Result<Preset, HidWrapperError> {
|
||||
self.set_effect(
|
||||
Effects::VerticalWave,
|
||||
color,
|
||||
@@ -458,7 +458,7 @@ impl RGBController {
|
||||
speed: u8,
|
||||
direction: u8,
|
||||
full_color: Option<bool>,
|
||||
) -> Result<Effect, HidWrapperError> {
|
||||
) -> Result<Preset, HidWrapperError> {
|
||||
self.set_effect(
|
||||
Effects::HorizontalWave,
|
||||
color,
|
||||
@@ -476,7 +476,7 @@ impl RGBController {
|
||||
brightness: u8,
|
||||
speed: u8,
|
||||
full_color: Option<bool>,
|
||||
) -> Result<Effect, HidWrapperError> {
|
||||
) -> Result<Preset, HidWrapperError> {
|
||||
self.set_effect(
|
||||
Effects::Rotating,
|
||||
color,
|
||||
@@ -494,7 +494,7 @@ impl RGBController {
|
||||
brightness: u8,
|
||||
speed: u8,
|
||||
full_color: Option<bool>,
|
||||
) -> Result<Effect, HidWrapperError> {
|
||||
) -> Result<Preset, HidWrapperError> {
|
||||
self.set_effect(
|
||||
Effects::Explosion,
|
||||
color,
|
||||
@@ -512,7 +512,7 @@ impl RGBController {
|
||||
brightness: u8,
|
||||
speed: u8,
|
||||
full_color: Option<bool>,
|
||||
) -> Result<Effect, HidWrapperError> {
|
||||
) -> Result<Preset, HidWrapperError> {
|
||||
self.set_effect(
|
||||
Effects::Launch,
|
||||
color,
|
||||
@@ -530,7 +530,7 @@ impl RGBController {
|
||||
brightness: u8,
|
||||
speed: u8,
|
||||
full_color: Option<bool>,
|
||||
) -> Result<Effect, HidWrapperError> {
|
||||
) -> Result<Preset, HidWrapperError> {
|
||||
self.set_effect(
|
||||
Effects::Ripples,
|
||||
color,
|
||||
@@ -548,7 +548,7 @@ impl RGBController {
|
||||
brightness: u8,
|
||||
speed: u8,
|
||||
full_color: Option<bool>,
|
||||
) -> Result<Effect, HidWrapperError> {
|
||||
) -> Result<Preset, HidWrapperError> {
|
||||
self.set_effect(
|
||||
Effects::Snake,
|
||||
color,
|
||||
@@ -566,7 +566,7 @@ impl RGBController {
|
||||
brightness: u8,
|
||||
speed: u8,
|
||||
full_color: Option<bool>,
|
||||
) -> Result<Effect, HidWrapperError> {
|
||||
) -> Result<Preset, HidWrapperError> {
|
||||
self.set_effect(
|
||||
Effects::Pulse,
|
||||
color,
|
||||
@@ -584,7 +584,7 @@ impl RGBController {
|
||||
brightness: u8,
|
||||
speed: u8,
|
||||
full_color: Option<bool>,
|
||||
) -> Result<Effect, HidWrapperError> {
|
||||
) -> Result<Preset, HidWrapperError> {
|
||||
self.set_effect(
|
||||
Effects::Tilt,
|
||||
color,
|
||||
@@ -602,7 +602,7 @@ impl RGBController {
|
||||
brightness: u8,
|
||||
speed: u8,
|
||||
full_color: Option<bool>,
|
||||
) -> Result<Effect, HidWrapperError> {
|
||||
) -> Result<Preset, HidWrapperError> {
|
||||
self.set_effect(
|
||||
Effects::Shuttle,
|
||||
color,
|
||||
@@ -618,7 +618,7 @@ impl RGBController {
|
||||
&mut self,
|
||||
brightness: u8,
|
||||
keymap: Keymap,
|
||||
) -> Result<Effect, HidWrapperError> {
|
||||
) -> Result<Preset, HidWrapperError> {
|
||||
self.set_effect(
|
||||
Effects::StaticPerKey,
|
||||
Color::default(),
|
||||
|
||||
@@ -1,15 +1,17 @@
|
||||
use crate::Effects;
|
||||
|
||||
#[derive(Clone)]
|
||||
pub struct EffectInfo<'a> {
|
||||
name: &'a str,
|
||||
effect: Effects,
|
||||
can_set_color: bool,
|
||||
can_set_speed: bool,
|
||||
can_set_direction: DirectionPolicy,
|
||||
can_set_full_color: bool,
|
||||
requires_keymap: bool,
|
||||
pub name: &'a str,
|
||||
pub effect: Effects,
|
||||
pub can_set_color: bool,
|
||||
pub can_set_speed: bool,
|
||||
pub can_set_direction: DirectionPolicy,
|
||||
pub can_set_full_color: bool,
|
||||
pub requires_keymap: bool,
|
||||
}
|
||||
|
||||
#[derive(PartialEq, Clone)]
|
||||
pub enum DirectionPolicy {
|
||||
None,
|
||||
Horizontal01,
|
||||
|
||||
@@ -4,10 +4,10 @@ use Effects::{
|
||||
VerticalWave,
|
||||
};
|
||||
|
||||
use crate::Color;
|
||||
|
||||
/// Effects of the keyboard
|
||||
#[derive(Clone, Default, PartialEq, Debug)]
|
||||
pub enum Effects {
|
||||
#[default]
|
||||
Static,
|
||||
SingleOn,
|
||||
SingleOff,
|
||||
@@ -83,13 +83,3 @@ impl Effects {
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
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]>,
|
||||
}
|
||||
@@ -0,0 +1,49 @@
|
||||
use crate::Color;
|
||||
use crate::Effects;
|
||||
|
||||
#[derive(PartialEq, Debug)]
|
||||
pub struct Preset {
|
||||
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]>,
|
||||
}
|
||||
|
||||
impl Preset {
|
||||
pub fn new(
|
||||
effect: Effects,
|
||||
color: Color,
|
||||
full_color: bool,
|
||||
brightness: u8,
|
||||
speed: u8,
|
||||
direction: u8,
|
||||
keymap: Option<[[u8; 3]; 144]>,
|
||||
) -> Self {
|
||||
Self {
|
||||
effect,
|
||||
color,
|
||||
full_color,
|
||||
brightness: brightness.clamp(0, 16),
|
||||
speed: speed.clamp(1, 16),
|
||||
direction: direction.clamp(0, 3),
|
||||
keymap,
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
impl Default for Preset {
|
||||
fn default() -> Self {
|
||||
Self::new(
|
||||
Default::default(),
|
||||
Default::default(),
|
||||
Default::default(),
|
||||
Default::default(),
|
||||
Default::default(),
|
||||
Default::default(),
|
||||
Default::default(),
|
||||
)
|
||||
}
|
||||
}
|
||||
Reference in new issue
Block a user