Improve per-key LED. Add extra example

- Small fixes to use all keys on GX502
This commit is contained in:
Luke
2020-05-05 17:10:16 +12:00
parent f11afdbc7d
commit 4d7bc77dff
10 changed files with 270 additions and 59 deletions

View File

@@ -3,37 +3,28 @@ use rog_aura::{AuraDbusWriter, Key, KeyColourArray};
fn main() -> Result<(), Box<dyn std::error::Error>> {
let mut writer = AuraDbusWriter::new()?;
let mut per_key_led = Vec::new();
let mut key_colours = KeyColourArray::new();
per_key_led.push(key_colours.clone());
for _ in 0..49 {
*key_colours.key(Key::ROG).0 += 3;
*key_colours.key(Key::L).0 += 3;
*key_colours.key(Key::I).0 += 3;
*key_colours.key(Key::N).0 += 3;
*key_colours.key(Key::U).0 += 3;
*key_colours.key(Key::X).0 += 3;
per_key_led.push(key_colours.clone());
}
for _ in 0..49 {
*key_colours.key(Key::ROG).0 -= 3;
*key_colours.key(Key::L).0 -= 3;
*key_colours.key(Key::I).0 -= 3;
*key_colours.key(Key::N).0 -= 3;
*key_colours.key(Key::U).0 -= 3;
*key_colours.key(Key::X).0 -= 3;
per_key_led.push(key_colours.clone());
}
writer.init_effect()?;
loop {
let now = std::time::Instant::now();
for group in &per_key_led {
writer.write_colour_block(group)?;
let count = 49;
for _ in 0..count {
*key_colours.key(Key::ROG).0 += 5;
*key_colours.key(Key::L).0 += 5;
*key_colours.key(Key::I).0 += 5;
*key_colours.key(Key::N).0 += 5;
*key_colours.key(Key::U).0 += 5;
*key_colours.key(Key::X).0 += 5;
writer.write_colour_block(&key_colours)?;
}
for _ in 0..count {
*key_colours.key(Key::ROG).0 -= 5;
*key_colours.key(Key::L).0 -= 5;
*key_colours.key(Key::I).0 -= 5;
*key_colours.key(Key::N).0 -= 5;
*key_colours.key(Key::U).0 -= 5;
*key_colours.key(Key::X).0 -= 5;
writer.write_colour_block(&key_colours)?;
}
dbg!(std::time::Instant::now().duration_since(now).as_millis());
//return Ok(());
}
}