Support for G512LU

This commit is contained in:
Luke
2020-07-04 10:06:18 +12:00
parent e562428dbf
commit f870f0adf0
2 changed files with 53 additions and 11 deletions

View File

@@ -2,7 +2,7 @@ use crate::{config::Config, rogcore::RogCore};
use rog_client::{
aura_modes::{
AuraModes, BREATHING, COMET, FLASH, HIGHLIGHT, LASER, MULTISTATIC, PULSE, RAIN, RAINBOW,
RIPPLE, SINGLE, STAR, STROBE,
RGB, RIPPLE, SINGLE, STAR, STROBE,
},
error::AuraError,
};
@@ -10,6 +10,8 @@ use rog_client::{
use crate::virt_device::ConsumerKeys;
use log::{info, warn};
static HELP_ADDRESS: &str = "https://github.com/flukejones/rog-core";
pub(crate) fn match_laptop() -> LaptopBase {
for device in rusb::devices().unwrap().iter() {
let device_desc = device.device_descriptor().unwrap();
@@ -74,20 +76,36 @@ fn choose_1866_device(prod: u16) -> LaptopBase {
} else if board_name.starts_with("GX502") {
laptop.supported_modes = vec![
SINGLE, BREATHING, STROBE, RAINBOW, STAR, RAIN, HIGHLIGHT, LASER, RIPPLE, PULSE, COMET,
FLASH,
FLASH, RGB,
];
// GM501
} else if board_name.starts_with("GM501") {
laptop.supported_modes = vec![SINGLE, BREATHING, STROBE, RAINBOW];
// GX531, G531
} else if board_name.starts_with("GX531") || board_name.starts_with("G531") {
// G512LI & G712LI has 1 RGB zone which means per-key effect might work
// TODO: add specific supported mode for per-key effect
} else if board_name.starts_with("G512LI") || board_name.starts_with("G712LI") {
laptop.supported_modes = vec![SINGLE, BREATHING, STROBE, RAINBOW, PULSE];
// G712
} else if board_name.starts_with("G712") {
// GM501, GX531, G531, G512, G712 have 4-zone RGB
} else if board_name.starts_with("GM501")
|| board_name.starts_with("G512")
|| board_name.starts_with("G712")
|| board_name.starts_with("GX531")
|| board_name.starts_with("G531")
{
laptop.supported_modes = vec![SINGLE, BREATHING, STROBE, RAINBOW, PULSE, MULTISTATIC];
} else {
panic!(
"Unsupported laptop, please request support at\nhttps://github.com/flukejones/rog-core"
"Unsupported laptop, please request support at {}",
HELP_ADDRESS
);
}
if !laptop.supported_modes.is_empty() {
info!("Supported Keyboard LED modes are:");
for mode in &laptop.supported_modes {
let mode = <&str>::from(&<AuraModes>::from(*mode));
info!("- {}", mode);
}
info!(
"If these modes are incorrect or missing please request support at {}",
HELP_ADDRESS
);
}