mirror of
https://gitlab.com/asus-linux/asusctl.git
synced 2026-02-06 00:15:04 +01:00
Improve per-key LED. Add extra example
- Small fixes to use all keys on GX502
This commit is contained in:
43
aura/examples/iterate-keys.rs
Normal file
43
aura/examples/iterate-keys.rs
Normal file
@@ -0,0 +1,43 @@
|
||||
use rog_aura::{AuraDbusWriter, GX502Layout, Key, KeyColourArray, KeyLayout};
|
||||
|
||||
fn main() -> Result<(), Box<dyn std::error::Error>> {
|
||||
let mut writer = AuraDbusWriter::new()?;
|
||||
|
||||
let mut key_colours = KeyColourArray::new();
|
||||
let layout = GX502Layout::default();
|
||||
|
||||
writer.init_effect()?;
|
||||
let rows = layout.get_rows();
|
||||
loop {
|
||||
for (r, row) in rows.iter().enumerate() {
|
||||
for (k, key) in row.iter().enumerate() {
|
||||
*key_colours.key(*key).0 = 254;
|
||||
// Last key of previous row
|
||||
if k == 0 {
|
||||
if r == 0 {
|
||||
let k = &rows[rows.len() - 1][rows[rows.len() - 1].len() - 1];
|
||||
*key_colours.key(*k).0 = 0;
|
||||
} else {
|
||||
let k = &rows[r - 1][rows[r - 1].len() - 1];
|
||||
*key_colours.key(*k).0 = 0;
|
||||
}
|
||||
} else {
|
||||
let k = &rows[r][k - 1];
|
||||
*key_colours.key(*k).0 = 0;
|
||||
}
|
||||
*key_colours.key(Key::Up).0 = 255;
|
||||
*key_colours.key(Key::Left).0 = 255;
|
||||
*key_colours.key(Key::Right).0 = 255;
|
||||
*key_colours.key(Key::Down).0 = 255;
|
||||
|
||||
*key_colours.key(Key::W).0 = 255;
|
||||
*key_colours.key(Key::A).0 = 255;
|
||||
*key_colours.key(Key::S).0 = 255;
|
||||
*key_colours.key(Key::D).0 = 255;
|
||||
|
||||
writer.write_colour_block(&key_colours)?;
|
||||
std::thread::sleep(std::time::Duration::from_millis(100));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -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(());
|
||||
}
|
||||
}
|
||||
|
||||
36
aura/examples/pulser.rs
Normal file
36
aura/examples/pulser.rs
Normal file
@@ -0,0 +1,36 @@
|
||||
use rog_aura::{AuraDbusWriter, GX502Layout, Key, KeyColourArray, KeyLayout};
|
||||
use std::ops::Sub;
|
||||
|
||||
fn main() -> Result<(), Box<dyn std::error::Error>> {
|
||||
let mut writer = AuraDbusWriter::new()?;
|
||||
|
||||
let mut key_colours = KeyColourArray::new();
|
||||
let layout = GX502Layout::default();
|
||||
|
||||
writer.init_effect()?;
|
||||
let rows = layout.get_rows();
|
||||
|
||||
let mut fade = 50;
|
||||
let mut flip = false;
|
||||
loop {
|
||||
for row in rows {
|
||||
for (k, key) in row.iter().enumerate() {
|
||||
*key_colours.key(*key).1 = 255 / fade / (k + 1) as u8;
|
||||
}
|
||||
}
|
||||
|
||||
writer.write_colour_block(&key_colours)?;
|
||||
|
||||
if flip {
|
||||
if fade > 1 {
|
||||
fade -= 1;
|
||||
} else {
|
||||
flip = !flip;
|
||||
}
|
||||
} else if fade < 50 {
|
||||
fade += 1;
|
||||
} else {
|
||||
flip = !flip;
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user