mirror of
https://gitlab.com/asus-linux/asusctl.git
synced 2026-02-06 00:15:04 +01:00
Compare commits
1 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 469d86bbc9 |
+1
-4
@@ -2,12 +2,9 @@
|
|||||||
|
|
||||||
## [Unreleased]
|
## [Unreleased]
|
||||||
|
|
||||||
### Changed
|
|
||||||
- Added support for TUF keyboard powerstate control
|
|
||||||
|
|
||||||
## [6.2.0]
|
## [6.2.0]
|
||||||
|
|
||||||
### Changed
|
## Changed
|
||||||
- Added aura support for FX607V: thanks @jomp16
|
- Added aura support for FX607V: thanks @jomp16
|
||||||
- Added testing support for G835LW
|
- Added testing support for G835LW
|
||||||
- Added support for GU605C models slash lighting: thanks @Otters
|
- Added support for GU605C models slash lighting: thanks @Otters
|
||||||
|
|||||||
@@ -71,13 +71,7 @@ impl AuraZbus {
|
|||||||
#[zbus(property)]
|
#[zbus(property)]
|
||||||
async fn set_brightness(&mut self, brightness: LedBrightness) -> Result<(), ZbErr> {
|
async fn set_brightness(&mut self, brightness: LedBrightness) -> Result<(), ZbErr> {
|
||||||
if let Some(bl) = self.0.backlight.as_ref() {
|
if let Some(bl) = self.0.backlight.as_ref() {
|
||||||
let res = bl.lock().await.set_brightness(brightness.into());
|
return Ok(bl.lock().await.set_brightness(brightness.into())?);
|
||||||
if res.is_ok() {
|
|
||||||
let mut config = self.0.config.lock().await;
|
|
||||||
config.brightness = brightness;
|
|
||||||
config.write();
|
|
||||||
}
|
|
||||||
return Ok(res?);
|
|
||||||
}
|
}
|
||||||
Err(ZbErr::Failed("No sysfs brightness control".to_string()))
|
Err(ZbErr::Failed("No sysfs brightness control".to_string()))
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -147,15 +147,6 @@ install -D -m 0644 LICENSE %{buildroot}%{_datadir}/asusctl/LICENSE
|
|||||||
|
|
||||||
desktop-file-validate %{buildroot}%{_datadir}/applications/rog-control-center.desktop
|
desktop-file-validate %{buildroot}%{_datadir}/applications/rog-control-center.desktop
|
||||||
|
|
||||||
%post
|
|
||||||
%systemd_post asusd.service
|
|
||||||
|
|
||||||
%preun
|
|
||||||
%systemd_preun asusd.service
|
|
||||||
|
|
||||||
%postun
|
|
||||||
%systemd_postun_with_restart asusd.service
|
|
||||||
|
|
||||||
%files
|
%files
|
||||||
%license LICENSE
|
%license LICENSE
|
||||||
%{_bindir}/asusd
|
%{_bindir}/asusd
|
||||||
|
|||||||
+14
-21
@@ -64,7 +64,7 @@ pub enum AnimeType {
|
|||||||
GA402,
|
GA402,
|
||||||
GU604,
|
GU604,
|
||||||
G635L,
|
G635L,
|
||||||
G835L,
|
G835LW,
|
||||||
#[default]
|
#[default]
|
||||||
Unsupported,
|
Unsupported,
|
||||||
}
|
}
|
||||||
@@ -73,21 +73,14 @@ impl FromStr for AnimeType {
|
|||||||
type Err = AnimeError;
|
type Err = AnimeError;
|
||||||
|
|
||||||
fn from_str(s: &str) -> std::result::Result<Self, Self::Err> {
|
fn from_str(s: &str) -> std::result::Result<Self, Self::Err> {
|
||||||
let dmi = s.to_uppercase();
|
Ok(match s.to_uppercase().as_str() {
|
||||||
|
"GA401" => Self::GA401,
|
||||||
if dmi.contains("GA401") {
|
"GA402" => Self::GA402,
|
||||||
return Ok(Self::GA401);
|
"GU604" => Self::GU604,
|
||||||
} else if dmi.contains("GA402") {
|
"G635L" => Self::G635L,
|
||||||
return Ok(Self::GA402);
|
"G835LW" => Self::G835LW,
|
||||||
} else if dmi.contains("GU604") {
|
_ => Self::Unsupported,
|
||||||
return Ok(Self::GU604);
|
})
|
||||||
} else if dmi.contains("G635L") {
|
|
||||||
return Ok(Self::G635L);
|
|
||||||
} else if dmi.contains("G835L") {
|
|
||||||
return Ok(Self::G835L);
|
|
||||||
}
|
|
||||||
|
|
||||||
Ok(Self::Unsupported)
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -111,7 +104,7 @@ impl AnimeType {
|
|||||||
pub fn width(&self) -> usize {
|
pub fn width(&self) -> usize {
|
||||||
match self {
|
match self {
|
||||||
AnimeType::GU604 => 70,
|
AnimeType::GU604 => 70,
|
||||||
AnimeType::G835L => 74,
|
AnimeType::G835LW => 74,
|
||||||
_ => 74,
|
_ => 74,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -121,7 +114,7 @@ impl AnimeType {
|
|||||||
match self {
|
match self {
|
||||||
AnimeType::GA401 => 36,
|
AnimeType::GA401 => 36,
|
||||||
AnimeType::GU604 => 43,
|
AnimeType::GU604 => 43,
|
||||||
AnimeType::G835L => 39,
|
AnimeType::G835LW => 39,
|
||||||
_ => 39,
|
_ => 39,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -131,7 +124,7 @@ impl AnimeType {
|
|||||||
match self {
|
match self {
|
||||||
AnimeType::GA401 => PANE_LEN * 2,
|
AnimeType::GA401 => PANE_LEN * 2,
|
||||||
AnimeType::GU604 => PANE_LEN * 3,
|
AnimeType::GU604 => PANE_LEN * 3,
|
||||||
AnimeType::G835L => PANE_LEN * 3,
|
AnimeType::G835LW => PANE_LEN * 3,
|
||||||
_ => PANE_LEN * 3,
|
_ => PANE_LEN * 3,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -199,7 +192,7 @@ impl TryFrom<AnimeDataBuffer> for AnimePacketType {
|
|||||||
AnimeType::GA402
|
AnimeType::GA402
|
||||||
| AnimeType::GU604
|
| AnimeType::GU604
|
||||||
| AnimeType::G635L
|
| AnimeType::G635L
|
||||||
| AnimeType::G835L
|
| AnimeType::G835LW
|
||||||
| AnimeType::Unsupported => {
|
| AnimeType::Unsupported => {
|
||||||
vec![[0; 640]; 3]
|
vec![[0; 640]; 3]
|
||||||
}
|
}
|
||||||
@@ -216,7 +209,7 @@ impl TryFrom<AnimeDataBuffer> for AnimePacketType {
|
|||||||
AnimeType::GA402
|
AnimeType::GA402
|
||||||
| AnimeType::GU604
|
| AnimeType::GU604
|
||||||
| AnimeType::G635L
|
| AnimeType::G635L
|
||||||
| AnimeType::G835L
|
| AnimeType::G835LW
|
||||||
| AnimeType::Unsupported
|
| AnimeType::Unsupported
|
||||||
) {
|
) {
|
||||||
buffers[2][..7].copy_from_slice(&USB_PREFIX3);
|
buffers[2][..7].copy_from_slice(&USB_PREFIX3);
|
||||||
|
|||||||
@@ -253,8 +253,6 @@ pub fn get_anime_type() -> AnimeType {
|
|||||||
AnimeType::GU604
|
AnimeType::GU604
|
||||||
} else if board_name.contains("G635L") {
|
} else if board_name.contains("G635L") {
|
||||||
AnimeType::G635L
|
AnimeType::G635L
|
||||||
} else if board_name.contains("G835L") {
|
|
||||||
AnimeType::G835L
|
|
||||||
} else {
|
} else {
|
||||||
AnimeType::Unsupported
|
AnimeType::Unsupported
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -38,16 +38,7 @@
|
|||||||
(
|
(
|
||||||
device_name: "FA617NS",
|
device_name: "FA617NS",
|
||||||
product_id: "",
|
product_id: "",
|
||||||
layout_name: "fa507",
|
layout_name: "fx505d",
|
||||||
basic_modes: [Static, Breathe, Pulse],
|
|
||||||
basic_zones: [],
|
|
||||||
advanced_type: r#None,
|
|
||||||
power_zones: [Keyboard],
|
|
||||||
),
|
|
||||||
(
|
|
||||||
device_name: "FA617NT",
|
|
||||||
product_id: "",
|
|
||||||
layout_name: "fa507",
|
|
||||||
basic_modes: [Static, Breathe, Pulse],
|
basic_modes: [Static, Breathe, Pulse],
|
||||||
basic_zones: [],
|
basic_zones: [],
|
||||||
advanced_type: r#None,
|
advanced_type: r#None,
|
||||||
@@ -56,16 +47,7 @@
|
|||||||
(
|
(
|
||||||
device_name: "FA617XS",
|
device_name: "FA617XS",
|
||||||
product_id: "",
|
product_id: "",
|
||||||
layout_name: "fa507",
|
layout_name: "fx505d",
|
||||||
basic_modes: [Static, Breathe, Pulse],
|
|
||||||
basic_zones: [],
|
|
||||||
advanced_type: r#None,
|
|
||||||
power_zones: [Keyboard],
|
|
||||||
),
|
|
||||||
(
|
|
||||||
device_name: "FA617XT",
|
|
||||||
product_id: "",
|
|
||||||
layout_name: "fa507",
|
|
||||||
basic_modes: [Static, Breathe, Pulse],
|
basic_modes: [Static, Breathe, Pulse],
|
||||||
basic_zones: [],
|
basic_zones: [],
|
||||||
advanced_type: r#None,
|
advanced_type: r#None,
|
||||||
@@ -314,15 +296,6 @@
|
|||||||
advanced_type: r#None,
|
advanced_type: r#None,
|
||||||
power_zones: [Keyboard, Lightbar],
|
power_zones: [Keyboard, Lightbar],
|
||||||
),
|
),
|
||||||
(
|
|
||||||
device_name: "G614JU",
|
|
||||||
product_id: "",
|
|
||||||
layout_name: "g634j-per-key",
|
|
||||||
basic_modes: [Static, Breathe, RainbowCycle, RainbowWave, Star, Rain, Highlight, Laser, Ripple, Pulse, Comet, Flash],
|
|
||||||
basic_zones: [],
|
|
||||||
advanced_type: PerKey,
|
|
||||||
power_zones: [Keyboard, Lightbar, Logo],
|
|
||||||
),
|
|
||||||
(
|
(
|
||||||
device_name: "G614JZ",
|
device_name: "G614JZ",
|
||||||
product_id: "",
|
product_id: "",
|
||||||
|
|||||||
@@ -168,24 +168,15 @@ pub fn setup_fan_curve_page(ui: &MainWindow, _config: Arc<Mutex<Config>>) {
|
|||||||
|
|
||||||
update_fan_data(handle, balanced, perf, quiet);
|
update_fan_data(handle, balanced, perf, quiet);
|
||||||
|
|
||||||
let choices_for_ui = platform_profile_choices.clone();
|
|
||||||
let handle_next1 = handle_copy.clone();
|
let handle_next1 = handle_copy.clone();
|
||||||
if let Err(e) = handle_copy.upgrade_in_event_loop(move |handle| {
|
if let Err(e) = handle_copy.upgrade_in_event_loop(move |handle| {
|
||||||
let global = handle.global::<FanPageData>();
|
let global = handle.global::<FanPageData>();
|
||||||
let fans1 = fans.clone();
|
let fans1 = fans.clone();
|
||||||
let choices = choices_for_ui.clone();
|
|
||||||
global.on_set_profile_default(move |profile| {
|
global.on_set_profile_default(move |profile| {
|
||||||
let fans = fans1.clone();
|
let fans = fans1.clone();
|
||||||
let handle_next = handle_next1.clone();
|
let handle_next = handle_next1.clone();
|
||||||
let choices = choices.clone();
|
|
||||||
tokio::spawn(async move {
|
tokio::spawn(async move {
|
||||||
let mut target: PlatformProfile = profile.into();
|
if fans.set_curves_to_defaults(profile.into()).await.is_err() {
|
||||||
if target == PlatformProfile::Quiet
|
|
||||||
&& !choices.contains(&PlatformProfile::Quiet)
|
|
||||||
{
|
|
||||||
target = PlatformProfile::LowPower;
|
|
||||||
}
|
|
||||||
if fans.set_curves_to_defaults(target).await.is_err() {
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
let Ok(balanced) = fans
|
let Ok(balanced) = fans
|
||||||
|
|||||||
@@ -40,10 +40,6 @@ pub fn setup_system_page(ui: &MainWindow, _config: Arc<Mutex<Config>>) {
|
|||||||
ui.global::<SystemPageData>().set_platform_profile(-1);
|
ui.global::<SystemPageData>().set_platform_profile(-1);
|
||||||
ui.global::<SystemPageData>().set_panel_overdrive(-1);
|
ui.global::<SystemPageData>().set_panel_overdrive(-1);
|
||||||
ui.global::<SystemPageData>().set_boot_sound(-1);
|
ui.global::<SystemPageData>().set_boot_sound(-1);
|
||||||
ui.global::<SystemPageData>().set_kbd_leds_awake(-1);
|
|
||||||
ui.global::<SystemPageData>().set_kbd_leds_sleep(-1);
|
|
||||||
ui.global::<SystemPageData>().set_kbd_leds_boot(-1);
|
|
||||||
ui.global::<SystemPageData>().set_kbd_leds_shutdown(-1);
|
|
||||||
ui.global::<SystemPageData>().set_screen_auto_brightness(-1);
|
ui.global::<SystemPageData>().set_screen_auto_brightness(-1);
|
||||||
ui.global::<SystemPageData>().set_mcu_powersave(-1);
|
ui.global::<SystemPageData>().set_mcu_powersave(-1);
|
||||||
ui.global::<SystemPageData>().set_mini_led_mode(-1);
|
ui.global::<SystemPageData>().set_mini_led_mode(-1);
|
||||||
@@ -673,26 +669,6 @@ pub fn setup_system_page_callbacks(ui: &MainWindow, _states: Arc<Mutex<Config>>)
|
|||||||
setup_callback!(boot_sound, handle, attr, i32);
|
setup_callback!(boot_sound, handle, attr, i32);
|
||||||
setup_external!(boot_sound, i32, handle, attr, value)
|
setup_external!(boot_sound, i32, handle, attr, value)
|
||||||
}
|
}
|
||||||
FirmwareAttribute::KbdLedsAwake => {
|
|
||||||
init_property!(kbd_leds_awake, handle, value, i32);
|
|
||||||
setup_callback!(kbd_leds_awake, handle, attr, i32);
|
|
||||||
setup_external!(kbd_leds_awake, i32, handle, attr, value)
|
|
||||||
}
|
|
||||||
FirmwareAttribute::KbdLedsSleep => {
|
|
||||||
init_property!(kbd_leds_sleep, handle, value, i32);
|
|
||||||
setup_callback!(kbd_leds_sleep, handle, attr, i32);
|
|
||||||
setup_external!(kbd_leds_sleep, i32, handle, attr, value)
|
|
||||||
}
|
|
||||||
FirmwareAttribute::KbdLedsBoot => {
|
|
||||||
init_property!(kbd_leds_boot, handle, value, i32);
|
|
||||||
setup_callback!(kbd_leds_boot, handle, attr, i32);
|
|
||||||
setup_external!(kbd_leds_boot, i32, handle, attr, value)
|
|
||||||
}
|
|
||||||
FirmwareAttribute::KbdLedsShutdown => {
|
|
||||||
init_property!(kbd_leds_shutdown, handle, value, i32);
|
|
||||||
setup_callback!(kbd_leds_shutdown, handle, attr, i32);
|
|
||||||
setup_external!(kbd_leds_shutdown, i32, handle, attr, value)
|
|
||||||
}
|
|
||||||
FirmwareAttribute::ScreenAutoBrightness => {
|
FirmwareAttribute::ScreenAutoBrightness => {
|
||||||
init_property!(screen_auto_brightness, handle, value, i32);
|
init_property!(screen_auto_brightness, handle, value, i32);
|
||||||
setup_callback!(screen_auto_brightness, handle, attr, i32);
|
setup_callback!(screen_auto_brightness, handle, attr, i32);
|
||||||
|
|||||||
@@ -51,14 +51,6 @@ export global SystemPageData {
|
|||||||
callback cb_panel_overdrive(int);
|
callback cb_panel_overdrive(int);
|
||||||
in-out property <int> boot_sound;
|
in-out property <int> boot_sound;
|
||||||
callback cb_boot_sound(int);
|
callback cb_boot_sound(int);
|
||||||
in-out property <int> kbd_leds_awake;
|
|
||||||
callback cb_kbd_leds_awake(int);
|
|
||||||
in-out property <int> kbd_leds_sleep;
|
|
||||||
callback cb_kbd_leds_sleep(int);
|
|
||||||
in-out property <int> kbd_leds_boot;
|
|
||||||
callback cb_kbd_leds_boot(int);
|
|
||||||
in-out property <int> kbd_leds_shutdown;
|
|
||||||
callback cb_kbd_leds_shutdown(int);
|
|
||||||
in-out property <int> screen_auto_brightness;
|
in-out property <int> screen_auto_brightness;
|
||||||
callback cb_screen_auto_brightness(int);
|
callback cb_screen_auto_brightness(int);
|
||||||
in-out property <int> mcu_powersave;
|
in-out property <int> mcu_powersave;
|
||||||
@@ -286,44 +278,6 @@ export component PageSystem inherits Rectangle {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
GroupBox {
|
|
||||||
title: @tr("Keyboard Power Management");
|
|
||||||
HorizontalLayout {
|
|
||||||
spacing: 10px;
|
|
||||||
if SystemPageData.kbd_leds_awake != -1: SystemToggleInt {
|
|
||||||
text: @tr("Keyboard Awake Effect");
|
|
||||||
checked_int <=> SystemPageData.kbd_leds_awake;
|
|
||||||
toggled => {
|
|
||||||
SystemPageData.cb_kbd_leds_awake(SystemPageData.kbd_leds_awake)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if SystemPageData.kbd_leds_sleep != -1: SystemToggleInt {
|
|
||||||
text: @tr("Keyboard Sleep Effect");
|
|
||||||
checked_int <=> SystemPageData.kbd_leds_sleep;
|
|
||||||
toggled => {
|
|
||||||
SystemPageData.cb_kbd_leds_sleep(SystemPageData.kbd_leds_sleep)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if SystemPageData.kbd_leds_boot != -1: SystemToggleInt {
|
|
||||||
text: @tr("Keyboard Boot Effect");
|
|
||||||
checked_int <=> SystemPageData.kbd_leds_boot;
|
|
||||||
toggled => {
|
|
||||||
SystemPageData.cb_kbd_leds_boot(SystemPageData.kbd_leds_boot)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if SystemPageData.kbd_leds_shutdown != -1: SystemToggleInt {
|
|
||||||
text: @tr("Keyboard Shutdown Effect");
|
|
||||||
checked_int <=> SystemPageData.kbd_leds_shutdown;
|
|
||||||
toggled => {
|
|
||||||
SystemPageData.cb_kbd_leds_shutdown(SystemPageData.kbd_leds_shutdown)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
HorizontalBox {
|
HorizontalBox {
|
||||||
padding: 0px;
|
padding: 0px;
|
||||||
spacing: 10px;
|
spacing: 10px;
|
||||||
|
|||||||
@@ -286,10 +286,6 @@ define_attribute_getters!(
|
|||||||
dgpu_tgp,
|
dgpu_tgp,
|
||||||
charge_mode,
|
charge_mode,
|
||||||
boot_sound,
|
boot_sound,
|
||||||
kbd_leds_awake,
|
|
||||||
kbd_leds_sleep,
|
|
||||||
kbd_leds_boot,
|
|
||||||
kbd_leds_shutdown,
|
|
||||||
mcu_powersave,
|
mcu_powersave,
|
||||||
panel_od,
|
panel_od,
|
||||||
panel_hd_mode,
|
panel_hd_mode,
|
||||||
@@ -346,10 +342,6 @@ pub enum FirmwareAttribute {
|
|||||||
PptEnabled = 24,
|
PptEnabled = 24,
|
||||||
None = 25,
|
None = 25,
|
||||||
ScreenAutoBrightness = 26,
|
ScreenAutoBrightness = 26,
|
||||||
KbdLedsAwake = 27,
|
|
||||||
KbdLedsSleep = 28,
|
|
||||||
KbdLedsBoot = 29,
|
|
||||||
KbdLedsShutdown = 30,
|
|
||||||
}
|
}
|
||||||
|
|
||||||
impl FirmwareAttribute {
|
impl FirmwareAttribute {
|
||||||
@@ -394,10 +386,6 @@ impl From<&str> for FirmwareAttribute {
|
|||||||
"nv_tgp" => Self::DgpuTgp,
|
"nv_tgp" => Self::DgpuTgp,
|
||||||
"charge_mode" => Self::ChargeMode,
|
"charge_mode" => Self::ChargeMode,
|
||||||
"boot_sound" => Self::BootSound,
|
"boot_sound" => Self::BootSound,
|
||||||
"kbd_leds_awake" => Self::KbdLedsAwake,
|
|
||||||
"kbd_leds_sleep" => Self::KbdLedsSleep,
|
|
||||||
"kbd_leds_boot" => Self::KbdLedsBoot,
|
|
||||||
"kbd_leds_shutdown" => Self::KbdLedsShutdown,
|
|
||||||
"mcu_powersave" => Self::McuPowersave,
|
"mcu_powersave" => Self::McuPowersave,
|
||||||
"panel_overdrive" => Self::PanelOverdrive,
|
"panel_overdrive" => Self::PanelOverdrive,
|
||||||
"panel_hd_mode" => Self::PanelHdMode,
|
"panel_hd_mode" => Self::PanelHdMode,
|
||||||
@@ -443,10 +431,6 @@ impl From<FirmwareAttribute> for &str {
|
|||||||
FirmwareAttribute::DgpuDisable => "dgpu_disable",
|
FirmwareAttribute::DgpuDisable => "dgpu_disable",
|
||||||
FirmwareAttribute::GpuMuxMode => "gpu_mux_mode",
|
FirmwareAttribute::GpuMuxMode => "gpu_mux_mode",
|
||||||
FirmwareAttribute::MiniLedMode => "mini_led_mode",
|
FirmwareAttribute::MiniLedMode => "mini_led_mode",
|
||||||
FirmwareAttribute::KbdLedsAwake => "kbd_leds_awake",
|
|
||||||
FirmwareAttribute::KbdLedsSleep => "kbd_leds_sleep",
|
|
||||||
FirmwareAttribute::KbdLedsBoot => "kbd_leds_boot",
|
|
||||||
FirmwareAttribute::KbdLedsShutdown => "kbd_leds_shutdown",
|
|
||||||
FirmwareAttribute::PendingReboot => "pending_reboot",
|
FirmwareAttribute::PendingReboot => "pending_reboot",
|
||||||
FirmwareAttribute::ScreenAutoBrightness => "screen_auto_brightness",
|
FirmwareAttribute::ScreenAutoBrightness => "screen_auto_brightness",
|
||||||
FirmwareAttribute::None => "none",
|
FirmwareAttribute::None => "none",
|
||||||
|
|||||||
@@ -86,7 +86,6 @@ impl FromStr for SlashType {
|
|||||||
#[cfg_attr(feature = "dbus", derive(Type, Value, OwnedValue))]
|
#[cfg_attr(feature = "dbus", derive(Type, Value, OwnedValue))]
|
||||||
#[derive(Debug, Default, PartialEq, Eq, Copy, Clone, Deserialize, Serialize)]
|
#[derive(Debug, Default, PartialEq, Eq, Copy, Clone, Deserialize, Serialize)]
|
||||||
pub enum SlashMode {
|
pub enum SlashMode {
|
||||||
Static = 0x06,
|
|
||||||
Bounce = 0x10,
|
Bounce = 0x10,
|
||||||
Slash = 0x12,
|
Slash = 0x12,
|
||||||
Loading = 0x13,
|
Loading = 0x13,
|
||||||
@@ -110,7 +109,6 @@ impl FromStr for SlashMode {
|
|||||||
|
|
||||||
fn from_str(s: &str) -> Result<Self, SlashError> {
|
fn from_str(s: &str) -> Result<Self, SlashError> {
|
||||||
match s {
|
match s {
|
||||||
"Static" => Ok(SlashMode::Static),
|
|
||||||
"Bounce" => Ok(SlashMode::Bounce),
|
"Bounce" => Ok(SlashMode::Bounce),
|
||||||
"Slash" => Ok(SlashMode::Slash),
|
"Slash" => Ok(SlashMode::Slash),
|
||||||
"Loading" => Ok(SlashMode::Loading),
|
"Loading" => Ok(SlashMode::Loading),
|
||||||
@@ -134,7 +132,6 @@ impl FromStr for SlashMode {
|
|||||||
impl Display for SlashMode {
|
impl Display for SlashMode {
|
||||||
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
|
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
|
||||||
let str = match &self {
|
let str = match &self {
|
||||||
SlashMode::Static => String::from("Static"),
|
|
||||||
SlashMode::Bounce => String::from("Bounce"),
|
SlashMode::Bounce => String::from("Bounce"),
|
||||||
SlashMode::Slash => String::from("Slash"),
|
SlashMode::Slash => String::from("Slash"),
|
||||||
SlashMode::Loading => String::from("Loading"),
|
SlashMode::Loading => String::from("Loading"),
|
||||||
@@ -156,9 +153,8 @@ impl Display for SlashMode {
|
|||||||
}
|
}
|
||||||
|
|
||||||
impl SlashMode {
|
impl SlashMode {
|
||||||
pub fn list() -> [String; 16] {
|
pub fn list() -> [String; 15] {
|
||||||
[
|
[
|
||||||
SlashMode::Static.to_string(),
|
|
||||||
SlashMode::Bounce.to_string(),
|
SlashMode::Bounce.to_string(),
|
||||||
SlashMode::Slash.to_string(),
|
SlashMode::Slash.to_string(),
|
||||||
SlashMode::Loading.to_string(),
|
SlashMode::Loading.to_string(),
|
||||||
|
|||||||
@@ -43,7 +43,7 @@ impl AniMatrix {
|
|||||||
vertical: 2,
|
vertical: 2,
|
||||||
horizontal: 5,
|
horizontal: 5,
|
||||||
},
|
},
|
||||||
AnimeType::GA402 | AnimeType::G635L | AnimeType::G835L | AnimeType::Unsupported => {
|
AnimeType::GA402 | AnimeType::G635L | AnimeType::G835LW | AnimeType::Unsupported => {
|
||||||
LedShape {
|
LedShape {
|
||||||
vertical: 2,
|
vertical: 2,
|
||||||
horizontal: 5,
|
horizontal: 5,
|
||||||
@@ -58,7 +58,7 @@ impl AniMatrix {
|
|||||||
// Do a hard mapping of each (derived from wireshardk captures)
|
// Do a hard mapping of each (derived from wireshardk captures)
|
||||||
let rows = match model {
|
let rows = match model {
|
||||||
AnimeType::GA401 => GA401.to_vec(),
|
AnimeType::GA401 => GA401.to_vec(),
|
||||||
AnimeType::GA402 | AnimeType::G635L | AnimeType::G835L | AnimeType::Unsupported => {
|
AnimeType::GA402 | AnimeType::G635L | AnimeType::G835LW | AnimeType::Unsupported => {
|
||||||
GA402.to_vec()
|
GA402.to_vec()
|
||||||
}
|
}
|
||||||
AnimeType::GU604 => GU604.to_vec(),
|
AnimeType::GU604 => GU604.to_vec(),
|
||||||
|
|||||||
Reference in New Issue
Block a user