mirror of
https://gitlab.com/asus-linux/asusctl.git
synced 2026-02-06 00:15:04 +01:00
Complete building
This commit is contained in:
@@ -79,8 +79,8 @@ panic = "abort"
|
||||
codegen-units = 1
|
||||
|
||||
[profile.dev]
|
||||
debug = true
|
||||
opt-level = 1
|
||||
codegen-units = 16
|
||||
|
||||
[profile.bench]
|
||||
debug = false
|
||||
|
||||
@@ -14,8 +14,7 @@ use rog_anime::usb::get_anime_type;
|
||||
use rog_anime::{AnimTime, AnimeDataBuffer, AnimeDiagonal, AnimeGif, AnimeImage, AnimeType, Vec2};
|
||||
use rog_aura::aura_detection::PowerZones;
|
||||
use rog_aura::keyboard::{AuraPowerState, LaptopAuraPower};
|
||||
use rog_aura::usb::AuraDevice;
|
||||
use rog_aura::{self, AuraEffect};
|
||||
use rog_aura::{self, AuraDeviceType, AuraEffect};
|
||||
use rog_dbus::zbus_anime::AnimeProxyBlocking;
|
||||
use rog_dbus::zbus_aura::AuraProxyBlocking;
|
||||
use rog_dbus::zbus_fan_curves::FanCurvesProxyBlocking;
|
||||
@@ -189,19 +188,19 @@ fn do_parsed(
|
||||
.first()
|
||||
.unwrap()
|
||||
.device_type()
|
||||
.unwrap_or(AuraDevice::Unknown)
|
||||
.unwrap_or(AuraDeviceType::Unknown)
|
||||
} else {
|
||||
AuraDevice::Unknown
|
||||
AuraDeviceType::Unknown
|
||||
};
|
||||
let commands: Vec<String> = cmdlist.lines().map(|s| s.to_owned()).collect();
|
||||
for command in commands.iter().filter(|command| {
|
||||
if !dev_type.is_old_style()
|
||||
&& !dev_type.is_tuf_style()
|
||||
if !dev_type.is_old_laptop()
|
||||
&& !dev_type.is_tuf_laptop()
|
||||
&& command.trim().starts_with("led-pow-1")
|
||||
{
|
||||
return false;
|
||||
}
|
||||
if !dev_type.is_new_style() && command.trim().starts_with("led-pow-2") {
|
||||
if !dev_type.is_new_laptop() && command.trim().starts_with("led-pow-2") {
|
||||
return false;
|
||||
}
|
||||
true
|
||||
@@ -566,7 +565,7 @@ fn handle_led_power1(
|
||||
) -> Result<(), Box<dyn std::error::Error>> {
|
||||
for aura in aura {
|
||||
let dev_type = aura.device_type()?;
|
||||
if !dev_type.is_old_style() && !dev_type.is_tuf_style() {
|
||||
if !dev_type.is_old_laptop() && !dev_type.is_tuf_laptop() {
|
||||
println!("This option applies only to keyboards 2021+");
|
||||
}
|
||||
|
||||
@@ -583,7 +582,7 @@ fn handle_led_power1(
|
||||
return Ok(());
|
||||
}
|
||||
|
||||
if dev_type.is_old_style() || dev_type.is_tuf_style() {
|
||||
if dev_type.is_old_laptop() || dev_type.is_tuf_laptop() {
|
||||
handle_led_power_1_do_1866(aura, power)?;
|
||||
return Ok(());
|
||||
}
|
||||
@@ -625,7 +624,7 @@ fn handle_led_power2(
|
||||
) -> Result<(), Box<dyn std::error::Error>> {
|
||||
for aura in aura {
|
||||
let dev_type = aura.device_type()?;
|
||||
if !dev_type.is_new_style() {
|
||||
if !dev_type.is_new_laptop() {
|
||||
println!("This option applies only to keyboards 2021+");
|
||||
continue;
|
||||
}
|
||||
|
||||
@@ -1,11 +1,12 @@
|
||||
use std::collections::BTreeMap;
|
||||
|
||||
use config_traits::{StdConfig, StdConfigLoad};
|
||||
use log::{debug, info};
|
||||
use log::{debug, info, warn};
|
||||
use rog_aura::aura_detection::LaptopLedData;
|
||||
use rog_aura::keyboard::{LaptopAuraPower, LaptopAuraType};
|
||||
use rog_aura::usb::AuraDevice;
|
||||
use rog_aura::{AuraEffect, AuraModeNum, AuraZone, Direction, LedBrightness, Speed, GRADIENT};
|
||||
use rog_aura::keyboard::LaptopAuraPower;
|
||||
use rog_aura::{
|
||||
AuraDeviceType, AuraEffect, AuraModeNum, AuraZone, Direction, LedBrightness, Speed, GRADIENT,
|
||||
};
|
||||
use serde_derive::{Deserialize, Serialize};
|
||||
|
||||
#[derive(Deserialize, Serialize, Default, Debug, Clone)]
|
||||
@@ -20,14 +21,6 @@ pub struct AuraConfig {
|
||||
pub enabled: LaptopAuraPower,
|
||||
}
|
||||
|
||||
impl AuraConfig {
|
||||
/// Detect the keyboard type and load from default DB if data available
|
||||
pub fn new_with(prod_id: AuraDevice) -> Self {
|
||||
info!("Setting up AuraConfig for {prod_id:?}");
|
||||
Self::from_default_support(prod_id, &LaptopLedData::get_data())
|
||||
}
|
||||
}
|
||||
|
||||
impl StdConfig for AuraConfig {
|
||||
/// Detect the keyboard type and load from default DB if data available
|
||||
fn new() -> Self {
|
||||
@@ -49,17 +42,18 @@ impl StdConfig for AuraConfig {
|
||||
impl StdConfigLoad for AuraConfig {}
|
||||
|
||||
impl AuraConfig {
|
||||
pub fn from_default_support(prod_id: AuraDevice, support_data: &LaptopLedData) -> Self {
|
||||
/// Detect the keyboard type and load from default DB if data available
|
||||
pub fn new(prod_id: &str) -> Self {
|
||||
info!("Setting up AuraConfig for {prod_id:?}");
|
||||
// create a default config here
|
||||
let enabled = if prod_id.is_new_style() {
|
||||
LaptopAuraPower::new(LaptopAuraType::New, support_data)
|
||||
} else if prod_id.is_tuf_style() {
|
||||
LaptopAuraPower::new(LaptopAuraType::Tuf, support_data)
|
||||
} else {
|
||||
LaptopAuraPower::new(LaptopAuraType::Old, support_data)
|
||||
};
|
||||
let device_type = AuraDeviceType::from(&*prod_id);
|
||||
if device_type == AuraDeviceType::Unknown {
|
||||
warn!("idProduct:{prod_id:?} is unknown");
|
||||
}
|
||||
let support_data = LaptopLedData::get_data();
|
||||
let enabled = LaptopAuraPower::new(device_type, &support_data);
|
||||
let mut config = AuraConfig {
|
||||
config_name: format!("aura_{prod_id:?}.ron"),
|
||||
config_name: format!("aura_{prod_id}.ron"),
|
||||
brightness: LedBrightness::Med,
|
||||
current_mode: AuraModeNum::Static,
|
||||
builtins: BTreeMap::new(),
|
||||
@@ -139,16 +133,13 @@ impl AuraConfig {
|
||||
|
||||
#[cfg(test)]
|
||||
mod tests {
|
||||
use rog_aura::aura_detection::LaptopLedData;
|
||||
use rog_aura::usb::AuraDevice;
|
||||
use rog_aura::{AuraEffect, AuraModeNum, AuraZone, Colour};
|
||||
|
||||
use super::AuraConfig;
|
||||
|
||||
#[test]
|
||||
fn set_multizone_4key_config() {
|
||||
let mut config =
|
||||
AuraConfig::from_default_support(AuraDevice::X19b6, &LaptopLedData::default());
|
||||
let mut config = AuraConfig::new("19b6");
|
||||
|
||||
let effect = AuraEffect {
|
||||
colour1: Colour {
|
||||
@@ -238,8 +229,7 @@ mod tests {
|
||||
|
||||
#[test]
|
||||
fn set_multizone_multimode_config() {
|
||||
let mut config =
|
||||
AuraConfig::from_default_support(AuraDevice::X19b6, &LaptopLedData::default());
|
||||
let mut config = AuraConfig::new("19b6");
|
||||
|
||||
let effect = AuraEffect {
|
||||
zone: AuraZone::Key1,
|
||||
|
||||
@@ -5,8 +5,10 @@ use inotify::Inotify;
|
||||
use log::{debug, info, warn};
|
||||
use rog_aura::aura_detection::LaptopLedData;
|
||||
use rog_aura::keyboard::{LedUsbPackets, UsbPackets};
|
||||
use rog_aura::usb::{AuraDevice, LED_APPLY, LED_SET};
|
||||
use rog_aura::{AuraEffect, Direction, LedBrightness, Speed, GRADIENT, LED_MSG_LEN};
|
||||
use rog_aura::usb::{LED_APPLY, LED_SET};
|
||||
use rog_aura::{
|
||||
AuraDeviceType, AuraEffect, Direction, LedBrightness, Speed, GRADIENT, LED_MSG_LEN,
|
||||
};
|
||||
use rog_platform::hid_raw::HidRaw;
|
||||
use rog_platform::keyboard_led::KeyboardLed;
|
||||
use zbus::zvariant::OwnedObjectPath;
|
||||
@@ -50,7 +52,7 @@ impl LEDNode {
|
||||
|
||||
/// Individual controller for one Aura device
|
||||
pub struct CtrlKbdLed {
|
||||
pub led_prod: AuraDevice,
|
||||
pub led_type: AuraDeviceType,
|
||||
pub led_node: LEDNode,
|
||||
pub supported_data: LaptopLedData, // TODO: is storing this really required?
|
||||
pub per_key_mode_active: bool,
|
||||
@@ -92,10 +94,11 @@ impl CtrlKbdLed {
|
||||
}
|
||||
// Device is something like 002, while its parent is the MCU
|
||||
// Think of it like the device is an endpoint of the USB device attached
|
||||
let mut aura_dev = AuraDevice::Unknown;
|
||||
let mut prod_id = String::new();
|
||||
if let Some(usb_id) = usb_device.attribute_value("idProduct") {
|
||||
aura_dev = AuraDevice::from(usb_id.to_str().unwrap());
|
||||
if aura_dev == AuraDevice::Unknown || found.contains(&aura_dev) {
|
||||
prod_id = usb_id.to_string_lossy().to_string();
|
||||
let aura_dev = AuraDeviceType::from(prod_id.as_str());
|
||||
if aura_dev == AuraDeviceType::Unknown || found.contains(&aura_dev) {
|
||||
log::debug!("Unknown or invalid device: {usb_id:?}, skipping");
|
||||
continue;
|
||||
}
|
||||
@@ -112,7 +115,7 @@ impl CtrlKbdLed {
|
||||
let dbus_path = dbus_path_for_dev(&usb_device).unwrap_or_default();
|
||||
let dev = HidRaw::from_device(end_point)?;
|
||||
let mut dev = Self::from_hidraw(dev, dbus_path, data)?;
|
||||
dev.config = Self::init_config(aura_dev, data);
|
||||
dev.config = Self::init_config(&prod_id, data);
|
||||
devices.push(dev);
|
||||
}
|
||||
}
|
||||
@@ -130,8 +133,8 @@ impl CtrlKbdLed {
|
||||
data: &LaptopLedData,
|
||||
) -> Result<Self, RogError> {
|
||||
let rgb_led = KeyboardLed::new()?;
|
||||
let prod_id = AuraDevice::from(device.prod_id());
|
||||
if prod_id == AuraDevice::Unknown {
|
||||
let prod_id = AuraDeviceType::from(device.prod_id());
|
||||
if prod_id == AuraDeviceType::Unknown {
|
||||
log::error!("{} is AuraDevice::Unknown", device.prod_id());
|
||||
return Err(RogError::NoAuraNode);
|
||||
}
|
||||
@@ -140,7 +143,7 @@ impl CtrlKbdLed {
|
||||
// let config = Self::init_config(prod_id, data);
|
||||
|
||||
let ctrl = CtrlKbdLed {
|
||||
led_prod: prod_id,
|
||||
led_type: prod_id,
|
||||
led_node: LEDNode::Rog(rgb_led, device),
|
||||
supported_data: data.clone(),
|
||||
per_key_mode_active: false,
|
||||
@@ -150,9 +153,9 @@ impl CtrlKbdLed {
|
||||
Ok(ctrl)
|
||||
}
|
||||
|
||||
pub fn init_config(prod_id: AuraDevice, supported_basic_modes: &LaptopLedData) -> AuraConfig {
|
||||
pub fn init_config(prod_id: &str, supported_basic_modes: &LaptopLedData) -> AuraConfig {
|
||||
// New loads data from the DB also
|
||||
let mut config_init = AuraConfig::new_with(prod_id);
|
||||
let mut config_init = AuraConfig::new(prod_id);
|
||||
// config_init.set_filename(prod_id);
|
||||
let mut config_loaded = config_init.clone().load();
|
||||
// update the initialised data with what we loaded from disk
|
||||
@@ -198,7 +201,7 @@ impl CtrlKbdLed {
|
||||
// pwr[4] as u8]; platform.set_kbd_rgb_state(&buf)?;
|
||||
// }
|
||||
} else if let LEDNode::Rog(_, hid_raw) = &self.led_node {
|
||||
let bytes = self.config.enabled.to_bytes(self.led_prod.into());
|
||||
let bytes = self.config.enabled.to_bytes(self.led_type.into());
|
||||
let message = [0x5d, 0xbd, 0x01, bytes[0], bytes[1], bytes[2], bytes[3]];
|
||||
|
||||
hid_raw.write_bytes(&message)?;
|
||||
@@ -344,8 +347,7 @@ impl CtrlKbdLed {
|
||||
#[cfg(test)]
|
||||
mod tests {
|
||||
use rog_aura::aura_detection::{LaptopLedData, PowerZones};
|
||||
use rog_aura::usb::AuraDevice;
|
||||
use rog_aura::{AuraModeNum, AuraZone};
|
||||
use rog_aura::{AuraDeviceType, AuraModeNum, AuraZone};
|
||||
use rog_platform::hid_raw::HidRaw;
|
||||
use rog_platform::keyboard_led::KeyboardLed;
|
||||
use zbus::zvariant::OwnedObjectPath;
|
||||
@@ -358,7 +360,7 @@ mod tests {
|
||||
#[ignore = "Unable to run in CI as the HIDRAW device is required"]
|
||||
fn create_multizone_if_no_config() {
|
||||
// Checking to ensure set_mode errors when unsupported modes are tried
|
||||
let config = AuraConfig::from_default_support(AuraDevice::X19b6, &LaptopLedData::default());
|
||||
let config = AuraConfig::new("19b6");
|
||||
let supported_basic_modes = LaptopLedData {
|
||||
board_name: String::new(),
|
||||
layout_name: "ga401".to_owned(),
|
||||
@@ -368,11 +370,8 @@ mod tests {
|
||||
power_zones: vec![PowerZones::Keyboard, PowerZones::RearGlow],
|
||||
};
|
||||
let mut controller = CtrlKbdLed {
|
||||
led_prod: AuraDevice::X19b6,
|
||||
led_node: LEDNode::Rog(
|
||||
KeyboardLed::default(),
|
||||
HidRaw::new(AuraDevice::X19b6.into()).unwrap(),
|
||||
),
|
||||
led_type: AuraDeviceType::LaptopPost2021,
|
||||
led_node: LEDNode::Rog(KeyboardLed::default(), HidRaw::new("19b6").unwrap()),
|
||||
supported_data: supported_basic_modes,
|
||||
per_key_mode_active: false,
|
||||
config,
|
||||
@@ -401,7 +400,7 @@ mod tests {
|
||||
// TODO: use sim device
|
||||
fn next_mode_create_multizone_if_no_config() {
|
||||
// Checking to ensure set_mode errors when unsupported modes are tried
|
||||
let config = AuraConfig::from_default_support(AuraDevice::X19b6, &LaptopLedData::default());
|
||||
let config = AuraConfig::new("19b6");
|
||||
let supported_basic_modes = LaptopLedData {
|
||||
board_name: String::new(),
|
||||
layout_name: "ga401".to_owned(),
|
||||
@@ -411,11 +410,8 @@ mod tests {
|
||||
power_zones: vec![PowerZones::Keyboard, PowerZones::RearGlow],
|
||||
};
|
||||
let mut controller = CtrlKbdLed {
|
||||
led_prod: AuraDevice::X19b6,
|
||||
led_node: LEDNode::Rog(
|
||||
KeyboardLed::default(),
|
||||
HidRaw::new(AuraDevice::X19b6.into()).unwrap(),
|
||||
),
|
||||
led_type: AuraDeviceType::LaptopPost2021,
|
||||
led_node: LEDNode::Rog(KeyboardLed::default(), HidRaw::new("19b6").unwrap()),
|
||||
supported_data: supported_basic_modes,
|
||||
per_key_mode_active: false,
|
||||
config,
|
||||
|
||||
@@ -9,7 +9,7 @@ use std::collections::HashSet;
|
||||
use log::{debug, error, info, warn};
|
||||
use mio::{Events, Interest, Poll, Token};
|
||||
use rog_aura::aura_detection::LaptopLedData;
|
||||
use rog_aura::usb::AuraDevice;
|
||||
use rog_aura::AuraDeviceType;
|
||||
use rog_platform::hid_raw::HidRaw;
|
||||
use tokio::task::spawn_blocking;
|
||||
use udev::{Device, MonitorBuilder};
|
||||
@@ -86,8 +86,8 @@ impl AuraManager {
|
||||
continue;
|
||||
};
|
||||
|
||||
let aura_device = AuraDevice::from(&*id_product);
|
||||
if aura_device == AuraDevice::Unknown {
|
||||
let aura_device = AuraDeviceType::from(&*id_product);
|
||||
if aura_device == AuraDeviceType::Unknown {
|
||||
warn!("idProduct:{id_product:?} is unknown, not using");
|
||||
continue;
|
||||
}
|
||||
@@ -135,7 +135,7 @@ impl AuraManager {
|
||||
if let Ok(mut ctrl) =
|
||||
CtrlKbdLed::from_hidraw(raw, path.clone(), &data)
|
||||
{
|
||||
ctrl.config = CtrlKbdLed::init_config(aura_device, &data);
|
||||
ctrl.config = CtrlKbdLed::init_config(&id_product, &data);
|
||||
interfaces.insert(path.clone());
|
||||
info!("AuraManager starting device at: {dev_node:?}, {path:?}");
|
||||
let sig_ctx = CtrlAuraZbus::signal_context(&conn_copy)?;
|
||||
|
||||
@@ -5,8 +5,7 @@ use config_traits::StdConfig;
|
||||
use log::{debug, error, info, warn};
|
||||
use rog_aura::aura_detection::PowerZones;
|
||||
use rog_aura::keyboard::{LaptopAuraPower, UsbPackets};
|
||||
use rog_aura::usb::AuraDevice;
|
||||
use rog_aura::{AuraEffect, AuraModeNum, AuraZone, LedBrightness};
|
||||
use rog_aura::{AuraDeviceType, AuraEffect, AuraModeNum, AuraZone, LedBrightness};
|
||||
use zbus::export::futures_util::lock::{Mutex, MutexGuard};
|
||||
use zbus::export::futures_util::StreamExt;
|
||||
use zbus::fdo::Error as ZbErr;
|
||||
@@ -43,9 +42,9 @@ impl CtrlAuraZbus {
|
||||
impl CtrlAuraZbus {
|
||||
/// Return the device type for this Aura keyboard
|
||||
#[zbus(property)]
|
||||
async fn device_type(&self) -> AuraDevice {
|
||||
async fn device_type(&self) -> AuraDeviceType {
|
||||
let ctrl = self.0.lock().await;
|
||||
ctrl.led_prod
|
||||
ctrl.led_type
|
||||
}
|
||||
|
||||
/// Return the current LED brightness
|
||||
|
||||
@@ -5,21 +5,10 @@ use typeshare::typeshare;
|
||||
use zbus::zvariant::{OwnedValue, Type, Value};
|
||||
|
||||
use crate::keyboard::AdvancedAuraType;
|
||||
use crate::usb::AuraDevice;
|
||||
use crate::{AuraModeNum, AuraZone};
|
||||
|
||||
pub const ASUS_LED_MODE_CONF: &str = "/usr/share/asusd/aura_support.ron";
|
||||
pub const ASUS_LED_MODE_USER_CONF: &str = "/etc/asusd/asusd_user_ledmodes.ron";
|
||||
pub const ASUS_KEYBOARD_DEVICES: [AuraDevice; 8] = [
|
||||
AuraDevice::Tuf,
|
||||
AuraDevice::X1854,
|
||||
AuraDevice::X1869,
|
||||
AuraDevice::X1866,
|
||||
AuraDevice::X18c6,
|
||||
AuraDevice::X19b6,
|
||||
AuraDevice::X1a30,
|
||||
AuraDevice::X1abe,
|
||||
];
|
||||
|
||||
#[derive(Debug, Default, Clone, PartialEq, Eq, Deserialize, Serialize)]
|
||||
pub struct LedSupportFile(Vec<LaptopLedData>);
|
||||
|
||||
@@ -3,55 +3,14 @@
|
||||
use std::fmt::Debug;
|
||||
use std::ops::{BitAnd, BitOr};
|
||||
|
||||
use log::warn;
|
||||
use serde::{Deserialize, Serialize};
|
||||
use typeshare::typeshare;
|
||||
#[cfg(feature = "dbus")]
|
||||
use zbus::zvariant::{OwnedValue, Type, Value};
|
||||
|
||||
use crate::aura_detection::{LaptopLedData, PowerZones};
|
||||
use crate::usb::AuraDevice;
|
||||
|
||||
// Possible API:
|
||||
// # Common parts:
|
||||
// - boot
|
||||
// - awake
|
||||
// - sleep
|
||||
// ## New only
|
||||
// - shutdown
|
||||
//
|
||||
// ## Only only
|
||||
// - keyboard
|
||||
// - lightbar
|
||||
// ## TUF only
|
||||
// - keyboard
|
||||
//
|
||||
// # New has parts:
|
||||
// - keyboard
|
||||
// - lightbar
|
||||
// - logo
|
||||
// - lid
|
||||
// - rear_glow
|
||||
|
||||
#[typeshare]
|
||||
#[cfg_attr(feature = "dbus", derive(Type, Value, OwnedValue))]
|
||||
#[derive(Clone, Copy, Debug, PartialEq, Eq, Serialize, Deserialize)]
|
||||
pub enum LaptopAuraType {
|
||||
New = 0,
|
||||
Old = 1,
|
||||
Tuf = 2,
|
||||
}
|
||||
|
||||
impl From<AuraDevice> for LaptopAuraType {
|
||||
fn from(value: AuraDevice) -> Self {
|
||||
if value.is_old_style() {
|
||||
Self::Old
|
||||
} else if value.is_tuf_style() {
|
||||
Self::Tuf
|
||||
} else {
|
||||
Self::New
|
||||
}
|
||||
}
|
||||
}
|
||||
use crate::AuraDeviceType;
|
||||
|
||||
/// Meaning of this struct depends on the laptop generation.
|
||||
/// - 2021+, the struct is a single zone with 4 states
|
||||
@@ -225,45 +184,53 @@ impl LaptopAuraPower {
|
||||
}
|
||||
|
||||
// TODO: use support data to setup correct zones
|
||||
pub fn new(aura_type: LaptopAuraType, _support_data: &LaptopLedData) -> Self {
|
||||
pub fn new(aura_type: AuraDeviceType, support_data: &LaptopLedData) -> Self {
|
||||
match aura_type {
|
||||
LaptopAuraType::New => {
|
||||
AuraDeviceType::Unknown | AuraDeviceType::LaptopPost2021 => {
|
||||
let mut states = Vec::new();
|
||||
for zone in [
|
||||
PowerZones::Keyboard,
|
||||
PowerZones::Lid,
|
||||
PowerZones::Lightbar,
|
||||
PowerZones::Logo,
|
||||
PowerZones::RearGlow,
|
||||
] {
|
||||
states.push(AuraPowerState::default_for(zone))
|
||||
for zone in support_data.power_zones.iter() {
|
||||
states.push(AuraPowerState::default_for(*zone))
|
||||
}
|
||||
Self { states }
|
||||
}
|
||||
LaptopAuraType::Old => Self {
|
||||
states: vec![AuraPowerState::default_for(PowerZones::KeyboardAndLightbar)],
|
||||
},
|
||||
LaptopAuraType::Tuf => Self {
|
||||
AuraDeviceType::LaptopPre2021 => {
|
||||
if support_data.power_zones.contains(&PowerZones::Lightbar) {
|
||||
Self {
|
||||
states: vec![AuraPowerState::default_for(PowerZones::KeyboardAndLightbar)],
|
||||
}
|
||||
} else {
|
||||
Self {
|
||||
states: vec![AuraPowerState::default_for(PowerZones::Keyboard)],
|
||||
}
|
||||
}
|
||||
}
|
||||
AuraDeviceType::LaptopTuf => Self {
|
||||
states: vec![AuraPowerState::default_for(PowerZones::Keyboard)],
|
||||
},
|
||||
AuraDeviceType::ScsiExtDisk => todo!(),
|
||||
}
|
||||
}
|
||||
|
||||
pub fn to_bytes(&self, aura_type: LaptopAuraType) -> Vec<u8> {
|
||||
pub fn to_bytes(&self, aura_type: AuraDeviceType) -> Vec<u8> {
|
||||
match aura_type {
|
||||
LaptopAuraType::New => self.new_to_bytes(),
|
||||
LaptopAuraType::Old => self
|
||||
AuraDeviceType::LaptopPost2021 => self.new_to_bytes(),
|
||||
AuraDeviceType::LaptopPre2021 => self
|
||||
.states
|
||||
.first()
|
||||
.cloned()
|
||||
.unwrap_or_default()
|
||||
.old_to_bytes(),
|
||||
LaptopAuraType::Tuf => self
|
||||
AuraDeviceType::LaptopTuf => self
|
||||
.states
|
||||
.first()
|
||||
.cloned()
|
||||
.unwrap_or_default()
|
||||
.tuf_to_bytes(),
|
||||
AuraDeviceType::Unknown => {
|
||||
warn!("Trying to create bytes for an unknown device");
|
||||
self.new_to_bytes()
|
||||
}
|
||||
AuraDeviceType::ScsiExtDisk => todo!(),
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -310,7 +277,8 @@ impl From<OldAuraPower> for u32 {
|
||||
#[cfg(test)]
|
||||
mod test {
|
||||
use crate::aura_detection::{LaptopLedData, PowerZones};
|
||||
use crate::keyboard::{AuraPowerState, LaptopAuraPower, LaptopAuraType};
|
||||
use crate::keyboard::{AuraPowerState, LaptopAuraPower};
|
||||
use crate::AuraDeviceType;
|
||||
|
||||
#[test]
|
||||
fn check_0x1866_control_bytes() {
|
||||
@@ -374,7 +342,7 @@ mod test {
|
||||
#[test]
|
||||
fn check_0x19b6_control_bytes_binary_rep() {
|
||||
fn to_binary_string(power: &LaptopAuraPower) -> String {
|
||||
let bytes = power.to_bytes(LaptopAuraType::New);
|
||||
let bytes = power.to_bytes(AuraDeviceType::LaptopPost2021);
|
||||
format!(
|
||||
"{:08b}, {:08b}, {:08b}, {:08b}",
|
||||
bytes[0], bytes[1], bytes[2], bytes[3]
|
||||
@@ -547,7 +515,7 @@ mod test {
|
||||
assert_eq!(shut_rear_, "00000000, 00000000, 00000000, 00001000");
|
||||
|
||||
// All on
|
||||
let byte1 = LaptopAuraPower::new(LaptopAuraType::New, &LaptopLedData::default());
|
||||
let byte1 = LaptopAuraPower::new(AuraDeviceType::LaptopPost2021, &LaptopLedData::default());
|
||||
let out = to_binary_string(&byte1);
|
||||
assert_eq!(out, "11111111, 00011110, 00001111, 00001111");
|
||||
}
|
||||
|
||||
@@ -3,6 +3,13 @@
|
||||
// TODO: Traits for writing aura_sync
|
||||
// TODO: separate keyboard and laptop parts?
|
||||
|
||||
use std::fmt::Debug;
|
||||
|
||||
use serde::{Deserialize, Serialize};
|
||||
use typeshare::typeshare;
|
||||
#[cfg(feature = "dbus")]
|
||||
use zbus::zvariant::{OwnedValue, Type, Value};
|
||||
|
||||
/// A container of images/grids/gifs/pauses which can be iterated over to
|
||||
/// generate cool effects
|
||||
pub mod effects;
|
||||
@@ -56,3 +63,45 @@ pub const ORANGE: Colour = Colour {
|
||||
b: 0x00,
|
||||
};
|
||||
pub const GRADIENT: [Colour; 7] = [RED, VIOLET, BLUE, TEAL, GREEN, YELLOW, ORANGE];
|
||||
|
||||
#[typeshare]
|
||||
#[cfg_attr(feature = "dbus", derive(Type, Value, OwnedValue))]
|
||||
#[derive(Clone, Copy, Debug, Default, PartialEq, Eq, Hash, Serialize, Deserialize)]
|
||||
pub enum AuraDeviceType {
|
||||
/// Most new laptops
|
||||
#[default]
|
||||
LaptopPost2021 = 0,
|
||||
LaptopPre2021 = 1,
|
||||
LaptopTuf = 2,
|
||||
ScsiExtDisk = 3,
|
||||
Unknown = 255,
|
||||
}
|
||||
|
||||
impl AuraDeviceType {
|
||||
pub fn is_old_laptop(&self) -> bool {
|
||||
*self == Self::LaptopPre2021
|
||||
}
|
||||
|
||||
pub fn is_tuf_laptop(&self) -> bool {
|
||||
*self == Self::LaptopTuf
|
||||
}
|
||||
|
||||
pub fn is_new_laptop(&self) -> bool {
|
||||
*self == Self::LaptopPost2021
|
||||
}
|
||||
|
||||
pub fn is_scsi(&self) -> bool {
|
||||
*self == Self::ScsiExtDisk
|
||||
}
|
||||
}
|
||||
|
||||
impl From<&str> for AuraDeviceType {
|
||||
fn from(s: &str) -> Self {
|
||||
match s.to_lowercase().trim_start_matches("0x") {
|
||||
"tuf" => AuraDeviceType::LaptopTuf,
|
||||
"1932" => AuraDeviceType::ScsiExtDisk,
|
||||
"1866" | "18c6" | "1869" | "1854" => Self::LaptopPre2021,
|
||||
_ => Self::LaptopPost2021,
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,10 +1,3 @@
|
||||
use std::fmt::Debug;
|
||||
|
||||
use serde::{Deserialize, Serialize};
|
||||
use typeshare::typeshare;
|
||||
#[cfg(feature = "dbus")]
|
||||
use zbus::zvariant::{OwnedValue, Type, Value};
|
||||
|
||||
// Only these two packets must be 17 bytes
|
||||
pub const LED_APPLY: [u8; 17] = [0x5d, 0xb4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0];
|
||||
pub const LED_SET: [u8; 17] = [0x5d, 0xb5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0];
|
||||
@@ -15,92 +8,3 @@ pub const fn aura_brightness_bytes(brightness: u8) -> [u8; 17] {
|
||||
0x5a, 0xba, 0xc5, 0xc4, brightness, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
]
|
||||
}
|
||||
|
||||
#[typeshare]
|
||||
#[cfg_attr(
|
||||
feature = "dbus",
|
||||
derive(Type, Value, OwnedValue),
|
||||
zvariant(signature = "s")
|
||||
)]
|
||||
#[derive(Copy, Clone, PartialEq, Eq, Hash, Serialize, Deserialize, Default)]
|
||||
pub enum AuraDevice {
|
||||
Tuf = 0,
|
||||
X1854 = 1,
|
||||
X1869 = 2,
|
||||
/// Pre-2020 laptops
|
||||
X1866 = 3,
|
||||
/// Z13 lightbar
|
||||
X18c6 = 4,
|
||||
/// Most modern laptops
|
||||
#[default]
|
||||
X19b6 = 5,
|
||||
X1a30 = 6,
|
||||
/// The ROG Ally
|
||||
X1abe = 7,
|
||||
Unknown = 99,
|
||||
}
|
||||
|
||||
impl AuraDevice {
|
||||
pub fn is_tuf_style(&self) -> bool {
|
||||
matches!(self, AuraDevice::Tuf)
|
||||
}
|
||||
|
||||
pub fn is_old_style(&self) -> bool {
|
||||
matches!(
|
||||
self,
|
||||
AuraDevice::X1854 | AuraDevice::X1869 | AuraDevice::X1866 | AuraDevice::X1abe
|
||||
)
|
||||
}
|
||||
|
||||
pub fn is_new_style(&self) -> bool {
|
||||
!self.is_old_style() && !self.is_tuf_style()
|
||||
}
|
||||
}
|
||||
|
||||
impl From<AuraDevice> for &str {
|
||||
fn from(a: AuraDevice) -> Self {
|
||||
match a {
|
||||
AuraDevice::Tuf => "tuf",
|
||||
AuraDevice::X1854 => "1854",
|
||||
AuraDevice::X1869 => "1869",
|
||||
AuraDevice::X1866 => "1866",
|
||||
AuraDevice::X18c6 => "18c6",
|
||||
AuraDevice::X19b6 => "19b6",
|
||||
AuraDevice::X1a30 => "1a30",
|
||||
AuraDevice::X1abe => "1abe",
|
||||
AuraDevice::Unknown => "unknown",
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
impl From<&str> for AuraDevice {
|
||||
fn from(s: &str) -> Self {
|
||||
match s.to_lowercase().as_str() {
|
||||
"tuf" => AuraDevice::Tuf,
|
||||
"1866" | "0x1866" => AuraDevice::X1866,
|
||||
"18c6" | "0x18c6" => AuraDevice::X18c6,
|
||||
"1869" | "0x1869" => AuraDevice::X1869,
|
||||
"1854" | "0x1854" => AuraDevice::X1854,
|
||||
"19b6" | "0x19b6" => AuraDevice::X19b6,
|
||||
"1a30" | "0x1a30" => AuraDevice::X1a30,
|
||||
"1abe" | "0x1abe" => AuraDevice::X1abe,
|
||||
_ => AuraDevice::Unknown,
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
impl Debug for AuraDevice {
|
||||
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
|
||||
match self {
|
||||
Self::Tuf => write!(f, "Tuf"),
|
||||
Self::X1854 => write!(f, "0x1854"),
|
||||
Self::X1869 => write!(f, "0x1869"),
|
||||
Self::X1866 => write!(f, "0x1866"),
|
||||
Self::X18c6 => write!(f, "0x18c6"),
|
||||
Self::X19b6 => write!(f, "0x19B6"),
|
||||
Self::X1a30 => write!(f, "0x1A30"),
|
||||
Self::X1abe => write!(f, "0x1ABE"),
|
||||
Self::Unknown => write!(f, "Unknown"),
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,3 +1,7 @@
|
||||
use crate::slint_generatedMainWindow::{
|
||||
AuraPowerState as SlintAuraPowerState, LaptopAuraPower as SlintLaptopAuraPower,
|
||||
};
|
||||
|
||||
impl From<rog_aura::AuraEffect> for crate::slint_generatedMainWindow::AuraEffect {
|
||||
fn from(m: rog_aura::AuraEffect) -> Self {
|
||||
Self {
|
||||
@@ -47,58 +51,9 @@ impl From<crate::slint_generatedMainWindow::AuraEffect> for rog_aura::AuraEffect
|
||||
}
|
||||
|
||||
use rog_aura::aura_detection::PowerZones;
|
||||
use rog_aura::keyboard::{AuraPowerState, LaptopOldAuraPower, LaptopTufAuraPower};
|
||||
use rog_aura::usb::AuraPowerDev;
|
||||
use rog_aura::keyboard::{AuraPowerState, LaptopAuraPower};
|
||||
use slint::{Model, ModelRc, RgbaColor};
|
||||
|
||||
use crate::slint_generatedMainWindow::AuraDevTuf as SlintAuraDevTuf;
|
||||
impl From<LaptopTufAuraPower> for SlintAuraDevTuf {
|
||||
fn from(value: LaptopTufAuraPower) -> Self {
|
||||
match value {
|
||||
LaptopTufAuraPower::Boot => SlintAuraDevTuf::Boot,
|
||||
LaptopTufAuraPower::Awake => SlintAuraDevTuf::Awake,
|
||||
LaptopTufAuraPower::Sleep => SlintAuraDevTuf::Sleep,
|
||||
LaptopTufAuraPower::Keyboard => SlintAuraDevTuf::Keyboard,
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
impl From<SlintAuraDevTuf> for LaptopTufAuraPower {
|
||||
fn from(value: SlintAuraDevTuf) -> Self {
|
||||
match value {
|
||||
SlintAuraDevTuf::Boot => LaptopTufAuraPower::Boot,
|
||||
SlintAuraDevTuf::Awake => LaptopTufAuraPower::Awake,
|
||||
SlintAuraDevTuf::Sleep => LaptopTufAuraPower::Sleep,
|
||||
SlintAuraDevTuf::Keyboard => LaptopTufAuraPower::Keyboard,
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
use crate::slint_generatedMainWindow::AuraDevRog1 as SlintAuraDevRog1;
|
||||
impl From<LaptopOldAuraPower> for SlintAuraDevRog1 {
|
||||
fn from(value: LaptopOldAuraPower) -> Self {
|
||||
match value {
|
||||
LaptopOldAuraPower::Awake => SlintAuraDevRog1::Awake,
|
||||
LaptopOldAuraPower::Keyboard => SlintAuraDevRog1::Keyboard,
|
||||
LaptopOldAuraPower::Lightbar => SlintAuraDevRog1::Lightbar,
|
||||
LaptopOldAuraPower::Boot => SlintAuraDevRog1::Boot,
|
||||
LaptopOldAuraPower::Sleep => SlintAuraDevRog1::Sleep,
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
impl From<SlintAuraDevRog1> for LaptopOldAuraPower {
|
||||
fn from(value: SlintAuraDevRog1) -> Self {
|
||||
match value {
|
||||
SlintAuraDevRog1::Awake => LaptopOldAuraPower::Awake,
|
||||
SlintAuraDevRog1::Keyboard => LaptopOldAuraPower::Keyboard,
|
||||
SlintAuraDevRog1::Lightbar => LaptopOldAuraPower::Lightbar,
|
||||
SlintAuraDevRog1::Boot => LaptopOldAuraPower::Boot,
|
||||
SlintAuraDevRog1::Sleep => LaptopOldAuraPower::Sleep,
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
use crate::slint_generatedMainWindow::PowerZones as SlintPowerZones;
|
||||
impl From<rog_aura::aura_detection::PowerZones> for SlintPowerZones {
|
||||
fn from(value: rog_aura::aura_detection::PowerZones) -> Self {
|
||||
@@ -121,117 +76,72 @@ impl From<SlintPowerZones> for rog_aura::aura_detection::PowerZones {
|
||||
SlintPowerZones::Lightbar => rog_aura::aura_detection::PowerZones::Lightbar,
|
||||
SlintPowerZones::Lid => rog_aura::aura_detection::PowerZones::Lid,
|
||||
SlintPowerZones::RearGlow => rog_aura::aura_detection::PowerZones::RearGlow,
|
||||
SlintPowerZones::KeyboardAndLightbar => {
|
||||
rog_aura::aura_detection::PowerZones::KeyboardAndLightbar
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
use crate::slint_generatedMainWindow::{
|
||||
AuraPower as SlintAuraPower, KbAuraPowerState as SlintKbAuraPowerState,
|
||||
};
|
||||
impl From<rog_aura::keyboard::LaptopAuraPower> for SlintAuraPower {
|
||||
fn from(value: rog_aura::keyboard::LaptopAuraPower) -> Self {
|
||||
impl From<SlintAuraPowerState> for AuraPowerState {
|
||||
fn from(value: SlintAuraPowerState) -> Self {
|
||||
Self {
|
||||
keyboard: SlintKbAuraPowerState {
|
||||
awake: value.keyboard.awake,
|
||||
boot: value.keyboard.boot,
|
||||
shutdown: value.keyboard.shutdown,
|
||||
sleep: value.keyboard.sleep,
|
||||
},
|
||||
lid: SlintKbAuraPowerState {
|
||||
awake: value.lid.awake,
|
||||
boot: value.lid.boot,
|
||||
shutdown: value.lid.shutdown,
|
||||
sleep: value.lid.sleep,
|
||||
},
|
||||
lightbar: SlintKbAuraPowerState {
|
||||
awake: value.lightbar.awake,
|
||||
boot: value.lightbar.boot,
|
||||
shutdown: value.lightbar.shutdown,
|
||||
sleep: value.lightbar.sleep,
|
||||
},
|
||||
logo: SlintKbAuraPowerState {
|
||||
awake: value.logo.awake,
|
||||
boot: value.logo.boot,
|
||||
shutdown: value.logo.shutdown,
|
||||
sleep: value.logo.sleep,
|
||||
},
|
||||
rear_glow: SlintKbAuraPowerState {
|
||||
awake: value.rear_glow.awake,
|
||||
boot: value.rear_glow.boot,
|
||||
shutdown: value.rear_glow.shutdown,
|
||||
sleep: value.rear_glow.sleep,
|
||||
},
|
||||
zone: value.zone.into(),
|
||||
boot: value.boot.into(),
|
||||
awake: value.awake.into(),
|
||||
sleep: value.sleep.into(),
|
||||
shutdown: value.shutdown.into(),
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
impl From<SlintAuraPower> for rog_aura::keyboard::LaptopAuraPower {
|
||||
fn from(value: SlintAuraPower) -> Self {
|
||||
Self {
|
||||
keyboard: AuraPowerState {
|
||||
awake: value.keyboard.awake,
|
||||
boot: value.keyboard.boot,
|
||||
shutdown: value.keyboard.shutdown,
|
||||
sleep: value.keyboard.sleep,
|
||||
},
|
||||
lid: AuraPowerState {
|
||||
awake: value.lid.awake,
|
||||
boot: value.lid.boot,
|
||||
shutdown: value.lid.shutdown,
|
||||
sleep: value.lid.sleep,
|
||||
},
|
||||
lightbar: AuraPowerState {
|
||||
awake: value.lightbar.awake,
|
||||
boot: value.lightbar.boot,
|
||||
shutdown: value.lightbar.shutdown,
|
||||
sleep: value.lightbar.sleep,
|
||||
},
|
||||
logo: AuraPowerState {
|
||||
awake: value.logo.awake,
|
||||
boot: value.logo.boot,
|
||||
shutdown: value.logo.shutdown,
|
||||
sleep: value.logo.sleep,
|
||||
},
|
||||
rear_glow: AuraPowerState {
|
||||
awake: value.rear_glow.awake,
|
||||
boot: value.rear_glow.boot,
|
||||
shutdown: value.rear_glow.shutdown,
|
||||
sleep: value.rear_glow.sleep,
|
||||
},
|
||||
impl From<AuraPowerState> for SlintAuraPowerState {
|
||||
fn from(value: AuraPowerState) -> Self {
|
||||
let zone = value.zone.into();
|
||||
SlintAuraPowerState {
|
||||
boot: value.boot.into(),
|
||||
awake: value.awake.into(),
|
||||
sleep: value.sleep.into(),
|
||||
shutdown: value.shutdown.into(),
|
||||
zone,
|
||||
zone_name_idx: zone as i32,
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
use crate::slint_generatedMainWindow::AuraPowerDev as SlintAuraPowerDev;
|
||||
impl From<AuraPowerDev> for SlintAuraPowerDev {
|
||||
fn from(value: AuraPowerDev) -> Self {
|
||||
let tuf: Vec<SlintAuraDevTuf> = value
|
||||
.tuf
|
||||
impl From<&AuraPowerState> for SlintAuraPowerState {
|
||||
fn from(value: &AuraPowerState) -> Self {
|
||||
let zone = value.zone.into();
|
||||
SlintAuraPowerState {
|
||||
boot: value.boot.into(),
|
||||
awake: value.awake.into(),
|
||||
sleep: value.sleep.into(),
|
||||
shutdown: value.shutdown.into(),
|
||||
zone,
|
||||
zone_name_idx: zone as i32,
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
impl From<SlintLaptopAuraPower> for rog_aura::keyboard::LaptopAuraPower {
|
||||
fn from(value: SlintLaptopAuraPower) -> Self {
|
||||
let mut states = Vec::new();
|
||||
for state in value.states.iter() {
|
||||
states.push(state.into());
|
||||
}
|
||||
Self { states }
|
||||
}
|
||||
}
|
||||
|
||||
impl From<LaptopAuraPower> for SlintLaptopAuraPower {
|
||||
fn from(value: LaptopAuraPower) -> Self {
|
||||
let converted: Vec<SlintAuraPowerState> = value
|
||||
.states
|
||||
.iter()
|
||||
.map(|n| SlintAuraDevTuf::from(*n))
|
||||
.collect();
|
||||
let old_rog: Vec<SlintAuraDevRog1> = value
|
||||
.old_rog
|
||||
.iter()
|
||||
.map(|n| SlintAuraDevRog1::from(*n))
|
||||
.map(|s| SlintAuraPowerState::from(s))
|
||||
.collect();
|
||||
Self {
|
||||
tuf: ModelRc::from(tuf.as_slice()),
|
||||
old_rog: ModelRc::from(old_rog.as_slice()),
|
||||
rog: value.rog.into(),
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
impl From<SlintAuraPowerDev> for AuraPowerDev {
|
||||
fn from(value: SlintAuraPowerDev) -> Self {
|
||||
let tuf: Vec<LaptopTufAuraPower> = value.tuf.iter().map(LaptopTufAuraPower::from).collect();
|
||||
let old_rog: Vec<LaptopOldAuraPower> =
|
||||
value.old_rog.iter().map(LaptopOldAuraPower::from).collect();
|
||||
Self {
|
||||
tuf,
|
||||
old_rog,
|
||||
rog: value.rog.into(),
|
||||
states: ModelRc::from(converted.as_slice()),
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -169,8 +169,8 @@ pub fn setup_aura_page(ui: &MainWindow, _states: Arc<Mutex<Config>>) {
|
||||
let power: LaptopAuraPower = power.into();
|
||||
tokio::spawn(async move {
|
||||
show_toast(
|
||||
"Anime builtin animations changed".into(),
|
||||
"Failed to set Anime builtin animations".into(),
|
||||
"Aura power settings changed".into(),
|
||||
"Failed to set Aura power settings".into(),
|
||||
handle_copy,
|
||||
proxy_copy.set_led_power(power).await,
|
||||
);
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"POT-Creation-Date: 2024-04-08 09:19+0000\n"
|
||||
"POT-Creation-Date: 2024-04-09 06:25+0000\n"
|
||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
@@ -12,6 +12,46 @@ msgstr ""
|
||||
"Language: \n"
|
||||
"Plural-Forms: nplurals=1; plural=0;\n"
|
||||
|
||||
#: rog-control-center/ui/main_window.slint:50
|
||||
msgctxt "MainWindow"
|
||||
msgid "ROG"
|
||||
msgstr ""
|
||||
|
||||
#: rog-control-center/ui/main_window.slint:52
|
||||
msgctxt "Menu1"
|
||||
msgid "System Control"
|
||||
msgstr ""
|
||||
|
||||
#: rog-control-center/ui/main_window.slint:53
|
||||
msgctxt "Menu2"
|
||||
msgid "Keyboard Aura"
|
||||
msgstr ""
|
||||
|
||||
#: rog-control-center/ui/main_window.slint:54
|
||||
msgctxt "Menu3"
|
||||
msgid "AniMe Matrix"
|
||||
msgstr ""
|
||||
|
||||
#: rog-control-center/ui/main_window.slint:55
|
||||
msgctxt "Menu4"
|
||||
msgid "Fan Curves"
|
||||
msgstr ""
|
||||
|
||||
#: rog-control-center/ui/main_window.slint:56
|
||||
msgctxt "Menu5"
|
||||
msgid "App Settings"
|
||||
msgstr ""
|
||||
|
||||
#: rog-control-center/ui/main_window.slint:57
|
||||
msgctxt "Menu6"
|
||||
msgid "About"
|
||||
msgstr ""
|
||||
|
||||
#: rog-control-center/ui/main_window.slint:69
|
||||
msgctxt "MainWindow"
|
||||
msgid "Quit"
|
||||
msgstr ""
|
||||
|
||||
#: rog-control-center/ui/pages/anime.slint:6
|
||||
msgctxt "Anime Brightness"
|
||||
msgid "Off"
|
||||
@@ -157,6 +197,51 @@ msgctxt "PageAppSettings"
|
||||
msgid "Enable change notifications"
|
||||
msgstr ""
|
||||
|
||||
#: rog-control-center/ui/pages/aura.slint:27
|
||||
msgctxt "PageAura"
|
||||
msgid "Brightness"
|
||||
msgstr ""
|
||||
|
||||
#: rog-control-center/ui/pages/aura.slint:38
|
||||
msgctxt "PageAura"
|
||||
msgid "Aura mode"
|
||||
msgstr ""
|
||||
|
||||
#: rog-control-center/ui/pages/aura.slint:56
|
||||
msgctxt "PageAura"
|
||||
msgid "Colour 1"
|
||||
msgstr ""
|
||||
|
||||
#: rog-control-center/ui/pages/aura.slint:82
|
||||
msgctxt "PageAura"
|
||||
msgid "Colour 2"
|
||||
msgstr ""
|
||||
|
||||
#: rog-control-center/ui/pages/aura.slint:114
|
||||
msgctxt "PageAura"
|
||||
msgid "Zone"
|
||||
msgstr ""
|
||||
|
||||
#: rog-control-center/ui/pages/aura.slint:137
|
||||
msgctxt "PageAura"
|
||||
msgid "Direction"
|
||||
msgstr ""
|
||||
|
||||
#: rog-control-center/ui/pages/aura.slint:159
|
||||
msgctxt "PageAura"
|
||||
msgid "Speed"
|
||||
msgstr ""
|
||||
|
||||
#: rog-control-center/ui/pages/aura.slint:180
|
||||
msgctxt "PageAura"
|
||||
msgid "Power Settings"
|
||||
msgstr ""
|
||||
|
||||
#: rog-control-center/ui/pages/aura.slint:211
|
||||
msgctxt "PageAura"
|
||||
msgid "Keyboard"
|
||||
msgstr ""
|
||||
|
||||
#: rog-control-center/ui/pages/fans.slint:27
|
||||
msgctxt "FanTab"
|
||||
msgid "This fan is not avilable on this machine"
|
||||
@@ -362,89 +447,164 @@ msgctxt "PageSystem"
|
||||
msgid "Throttle Policy on AC"
|
||||
msgstr ""
|
||||
|
||||
#: rog-control-center/ui/pages/aura.slint:27
|
||||
msgctxt "PageAura"
|
||||
msgid "Brightness"
|
||||
#: rog-control-center/ui/types/aura_types.slint:45
|
||||
msgctxt "Aura brightness"
|
||||
msgid "Off"
|
||||
msgstr ""
|
||||
|
||||
#: rog-control-center/ui/pages/aura.slint:38
|
||||
msgctxt "PageAura"
|
||||
msgid "Aura mode"
|
||||
#: rog-control-center/ui/types/aura_types.slint:46
|
||||
msgctxt "Aura brightness"
|
||||
msgid "Low"
|
||||
msgstr ""
|
||||
|
||||
#: rog-control-center/ui/pages/aura.slint:56
|
||||
msgctxt "PageAura"
|
||||
msgid "Colour 1"
|
||||
#: rog-control-center/ui/types/aura_types.slint:47
|
||||
msgctxt "Aura brightness"
|
||||
msgid "Med"
|
||||
msgstr ""
|
||||
|
||||
#: rog-control-center/ui/pages/aura.slint:82
|
||||
msgctxt "PageAura"
|
||||
msgid "Colour 2"
|
||||
#: rog-control-center/ui/types/aura_types.slint:48
|
||||
msgctxt "Aura brightness"
|
||||
msgid "High"
|
||||
msgstr ""
|
||||
|
||||
#: rog-control-center/ui/pages/aura.slint:114
|
||||
msgctxt "PageAura"
|
||||
msgid "Zone"
|
||||
#: rog-control-center/ui/types/aura_types.slint:53 rog-control-center/ui/types/aura_types.slint:68
|
||||
msgctxt "Basic aura mode"
|
||||
msgid "Static"
|
||||
msgstr ""
|
||||
|
||||
#: rog-control-center/ui/pages/aura.slint:137
|
||||
msgctxt "PageAura"
|
||||
msgid "Direction"
|
||||
#: rog-control-center/ui/types/aura_types.slint:54 rog-control-center/ui/types/aura_types.slint:69
|
||||
msgctxt "Basic aura mode"
|
||||
msgid "Breathe"
|
||||
msgstr ""
|
||||
|
||||
#: rog-control-center/ui/pages/aura.slint:159
|
||||
msgctxt "PageAura"
|
||||
msgid "Speed"
|
||||
#: rog-control-center/ui/types/aura_types.slint:55 rog-control-center/ui/types/aura_types.slint:70
|
||||
msgctxt "Basic aura mode"
|
||||
msgid "Strobe"
|
||||
msgstr ""
|
||||
|
||||
#: rog-control-center/ui/pages/aura.slint:180
|
||||
msgctxt "PageAura"
|
||||
msgid "Power Settings"
|
||||
#: rog-control-center/ui/types/aura_types.slint:56
|
||||
msgctxt "Basic aura mode"
|
||||
msgid "Rainbow"
|
||||
msgstr ""
|
||||
|
||||
#: rog-control-center/ui/pages/aura.slint:211 rog-control-center/ui/pages/aura.slint:369 rog-control-center/ui/pages/aura.slint:434
|
||||
msgctxt "PageAura"
|
||||
msgid "Keyboard"
|
||||
#: rog-control-center/ui/types/aura_types.slint:57
|
||||
msgctxt "Basic aura mode"
|
||||
msgid "Star"
|
||||
msgstr ""
|
||||
|
||||
#: rog-control-center/ui/pages/aura.slint:235
|
||||
msgctxt "PageAura"
|
||||
msgid "Lid Logo"
|
||||
#: rog-control-center/ui/types/aura_types.slint:58
|
||||
msgctxt "Basic aura mode"
|
||||
msgid "Rain"
|
||||
msgstr ""
|
||||
|
||||
#: rog-control-center/ui/pages/aura.slint:259
|
||||
msgctxt "PageAura"
|
||||
msgid "Lightbar"
|
||||
#: rog-control-center/ui/types/aura_types.slint:59
|
||||
msgctxt "Basic aura mode"
|
||||
msgid "Highlight"
|
||||
msgstr ""
|
||||
|
||||
#: rog-control-center/ui/pages/aura.slint:283
|
||||
msgctxt "PageAura"
|
||||
msgid "Lid Zone"
|
||||
#: rog-control-center/ui/types/aura_types.slint:60
|
||||
msgctxt "Basic aura mode"
|
||||
msgid "Laser"
|
||||
msgstr ""
|
||||
|
||||
#: rog-control-center/ui/pages/aura.slint:307
|
||||
msgctxt "PageAura"
|
||||
msgid "Rear Glow"
|
||||
#: rog-control-center/ui/types/aura_types.slint:61
|
||||
msgctxt "Basic aura mode"
|
||||
msgid "Ripple"
|
||||
msgstr ""
|
||||
|
||||
#: rog-control-center/ui/pages/aura.slint:375 rog-control-center/ui/pages/aura.slint:440
|
||||
msgctxt "PageAura"
|
||||
msgid "Boot"
|
||||
#: rog-control-center/ui/types/aura_types.slint:62
|
||||
msgctxt "Basic aura mode"
|
||||
msgid "Nothing"
|
||||
msgstr ""
|
||||
|
||||
#: rog-control-center/ui/pages/aura.slint:380 rog-control-center/ui/pages/aura.slint:445
|
||||
msgctxt "PageAura"
|
||||
msgid "Awake"
|
||||
#: rog-control-center/ui/types/aura_types.slint:63
|
||||
msgctxt "Basic aura mode"
|
||||
msgid "Pulse"
|
||||
msgstr ""
|
||||
|
||||
#: rog-control-center/ui/pages/aura.slint:385 rog-control-center/ui/pages/aura.slint:450
|
||||
msgctxt "PageAura"
|
||||
msgid "Sleep"
|
||||
#: rog-control-center/ui/types/aura_types.slint:64
|
||||
msgctxt "Basic aura mode"
|
||||
msgid "Comet"
|
||||
msgstr ""
|
||||
|
||||
#: rog-control-center/ui/pages/aura.slint:390 rog-control-center/ui/pages/aura.slint:455
|
||||
msgctxt "PageAura"
|
||||
msgid "Shutdown"
|
||||
#: rog-control-center/ui/types/aura_types.slint:65
|
||||
msgctxt "Basic aura mode"
|
||||
msgid "Flash"
|
||||
msgstr ""
|
||||
|
||||
#: rog-control-center/ui/types/aura_types.slint:77
|
||||
msgctxt "Aura zone"
|
||||
msgid "None"
|
||||
msgstr ""
|
||||
|
||||
#: rog-control-center/ui/types/aura_types.slint:78
|
||||
msgctxt "Aura zone"
|
||||
msgid "Key1"
|
||||
msgstr ""
|
||||
|
||||
#: rog-control-center/ui/types/aura_types.slint:79
|
||||
msgctxt "Aura zone"
|
||||
msgid "Key2"
|
||||
msgstr ""
|
||||
|
||||
#: rog-control-center/ui/types/aura_types.slint:80
|
||||
msgctxt "Aura zone"
|
||||
msgid "Key3"
|
||||
msgstr ""
|
||||
|
||||
#: rog-control-center/ui/types/aura_types.slint:81
|
||||
msgctxt "Aura zone"
|
||||
msgid "Key4"
|
||||
msgstr ""
|
||||
|
||||
#: rog-control-center/ui/types/aura_types.slint:82
|
||||
msgctxt "Aura zone"
|
||||
msgid "Logo"
|
||||
msgstr ""
|
||||
|
||||
#: rog-control-center/ui/types/aura_types.slint:83
|
||||
msgctxt "Aura zone"
|
||||
msgid "Lightbar Left"
|
||||
msgstr ""
|
||||
|
||||
#: rog-control-center/ui/types/aura_types.slint:84
|
||||
msgctxt "Aura zone"
|
||||
msgid "Lightbar Right"
|
||||
msgstr ""
|
||||
|
||||
#: rog-control-center/ui/types/aura_types.slint:88
|
||||
msgctxt "Aura direction"
|
||||
msgid "Right"
|
||||
msgstr ""
|
||||
|
||||
#: rog-control-center/ui/types/aura_types.slint:89
|
||||
msgctxt "Aura direction"
|
||||
msgid "Left"
|
||||
msgstr ""
|
||||
|
||||
#: rog-control-center/ui/types/aura_types.slint:90
|
||||
msgctxt "Aura direction"
|
||||
msgid "Up"
|
||||
msgstr ""
|
||||
|
||||
#: rog-control-center/ui/types/aura_types.slint:91
|
||||
msgctxt "Aura direction"
|
||||
msgid "Down"
|
||||
msgstr ""
|
||||
|
||||
#: rog-control-center/ui/types/aura_types.slint:95
|
||||
msgctxt "Aura speed"
|
||||
msgid "Low"
|
||||
msgstr ""
|
||||
|
||||
#: rog-control-center/ui/types/aura_types.slint:96
|
||||
msgctxt "Aura speed"
|
||||
msgid "Medium"
|
||||
msgstr ""
|
||||
|
||||
#: rog-control-center/ui/types/aura_types.slint:97
|
||||
msgctxt "Aura speed"
|
||||
msgid "High"
|
||||
msgstr ""
|
||||
|
||||
#: rog-control-center/ui/widgets/aura_power.slint:32
|
||||
@@ -467,203 +627,3 @@ msgctxt "AuraPowerGroup"
|
||||
msgid "Shutdown"
|
||||
msgstr ""
|
||||
|
||||
#: rog-control-center/ui/types/aura_types.slint:68
|
||||
msgctxt "Aura brightness"
|
||||
msgid "Off"
|
||||
msgstr ""
|
||||
|
||||
#: rog-control-center/ui/types/aura_types.slint:69
|
||||
msgctxt "Aura brightness"
|
||||
msgid "Low"
|
||||
msgstr ""
|
||||
|
||||
#: rog-control-center/ui/types/aura_types.slint:70
|
||||
msgctxt "Aura brightness"
|
||||
msgid "Med"
|
||||
msgstr ""
|
||||
|
||||
#: rog-control-center/ui/types/aura_types.slint:71
|
||||
msgctxt "Aura brightness"
|
||||
msgid "High"
|
||||
msgstr ""
|
||||
|
||||
#: rog-control-center/ui/types/aura_types.slint:76 rog-control-center/ui/types/aura_types.slint:91
|
||||
msgctxt "Basic aura mode"
|
||||
msgid "Static"
|
||||
msgstr ""
|
||||
|
||||
#: rog-control-center/ui/types/aura_types.slint:77 rog-control-center/ui/types/aura_types.slint:92
|
||||
msgctxt "Basic aura mode"
|
||||
msgid "Breathe"
|
||||
msgstr ""
|
||||
|
||||
#: rog-control-center/ui/types/aura_types.slint:78 rog-control-center/ui/types/aura_types.slint:93
|
||||
msgctxt "Basic aura mode"
|
||||
msgid "Strobe"
|
||||
msgstr ""
|
||||
|
||||
#: rog-control-center/ui/types/aura_types.slint:79
|
||||
msgctxt "Basic aura mode"
|
||||
msgid "Rainbow"
|
||||
msgstr ""
|
||||
|
||||
#: rog-control-center/ui/types/aura_types.slint:80
|
||||
msgctxt "Basic aura mode"
|
||||
msgid "Star"
|
||||
msgstr ""
|
||||
|
||||
#: rog-control-center/ui/types/aura_types.slint:81
|
||||
msgctxt "Basic aura mode"
|
||||
msgid "Rain"
|
||||
msgstr ""
|
||||
|
||||
#: rog-control-center/ui/types/aura_types.slint:82
|
||||
msgctxt "Basic aura mode"
|
||||
msgid "Highlight"
|
||||
msgstr ""
|
||||
|
||||
#: rog-control-center/ui/types/aura_types.slint:83
|
||||
msgctxt "Basic aura mode"
|
||||
msgid "Laser"
|
||||
msgstr ""
|
||||
|
||||
#: rog-control-center/ui/types/aura_types.slint:84
|
||||
msgctxt "Basic aura mode"
|
||||
msgid "Ripple"
|
||||
msgstr ""
|
||||
|
||||
#: rog-control-center/ui/types/aura_types.slint:85
|
||||
msgctxt "Basic aura mode"
|
||||
msgid "Nothing"
|
||||
msgstr ""
|
||||
|
||||
#: rog-control-center/ui/types/aura_types.slint:86
|
||||
msgctxt "Basic aura mode"
|
||||
msgid "Pulse"
|
||||
msgstr ""
|
||||
|
||||
#: rog-control-center/ui/types/aura_types.slint:87
|
||||
msgctxt "Basic aura mode"
|
||||
msgid "Comet"
|
||||
msgstr ""
|
||||
|
||||
#: rog-control-center/ui/types/aura_types.slint:88
|
||||
msgctxt "Basic aura mode"
|
||||
msgid "Flash"
|
||||
msgstr ""
|
||||
|
||||
#: rog-control-center/ui/types/aura_types.slint:100
|
||||
msgctxt "Aura zone"
|
||||
msgid "None"
|
||||
msgstr ""
|
||||
|
||||
#: rog-control-center/ui/types/aura_types.slint:101
|
||||
msgctxt "Aura zone"
|
||||
msgid "Key1"
|
||||
msgstr ""
|
||||
|
||||
#: rog-control-center/ui/types/aura_types.slint:102
|
||||
msgctxt "Aura zone"
|
||||
msgid "Key2"
|
||||
msgstr ""
|
||||
|
||||
#: rog-control-center/ui/types/aura_types.slint:103
|
||||
msgctxt "Aura zone"
|
||||
msgid "Key3"
|
||||
msgstr ""
|
||||
|
||||
#: rog-control-center/ui/types/aura_types.slint:104
|
||||
msgctxt "Aura zone"
|
||||
msgid "Key4"
|
||||
msgstr ""
|
||||
|
||||
#: rog-control-center/ui/types/aura_types.slint:105
|
||||
msgctxt "Aura zone"
|
||||
msgid "Logo"
|
||||
msgstr ""
|
||||
|
||||
#: rog-control-center/ui/types/aura_types.slint:106
|
||||
msgctxt "Aura zone"
|
||||
msgid "Lightbar Left"
|
||||
msgstr ""
|
||||
|
||||
#: rog-control-center/ui/types/aura_types.slint:107
|
||||
msgctxt "Aura zone"
|
||||
msgid "Lightbar Right"
|
||||
msgstr ""
|
||||
|
||||
#: rog-control-center/ui/types/aura_types.slint:111
|
||||
msgctxt "Aura direction"
|
||||
msgid "Right"
|
||||
msgstr ""
|
||||
|
||||
#: rog-control-center/ui/types/aura_types.slint:112
|
||||
msgctxt "Aura direction"
|
||||
msgid "Left"
|
||||
msgstr ""
|
||||
|
||||
#: rog-control-center/ui/types/aura_types.slint:113
|
||||
msgctxt "Aura direction"
|
||||
msgid "Up"
|
||||
msgstr ""
|
||||
|
||||
#: rog-control-center/ui/types/aura_types.slint:114
|
||||
msgctxt "Aura direction"
|
||||
msgid "Down"
|
||||
msgstr ""
|
||||
|
||||
#: rog-control-center/ui/types/aura_types.slint:118
|
||||
msgctxt "Aura speed"
|
||||
msgid "Low"
|
||||
msgstr ""
|
||||
|
||||
#: rog-control-center/ui/types/aura_types.slint:119
|
||||
msgctxt "Aura speed"
|
||||
msgid "Medium"
|
||||
msgstr ""
|
||||
|
||||
#: rog-control-center/ui/types/aura_types.slint:120
|
||||
msgctxt "Aura speed"
|
||||
msgid "High"
|
||||
msgstr ""
|
||||
|
||||
#: rog-control-center/ui/main_window.slint:50
|
||||
msgctxt "MainWindow"
|
||||
msgid "ROG"
|
||||
msgstr ""
|
||||
|
||||
#: rog-control-center/ui/main_window.slint:52
|
||||
msgctxt "Menu1"
|
||||
msgid "System Control"
|
||||
msgstr ""
|
||||
|
||||
#: rog-control-center/ui/main_window.slint:53
|
||||
msgctxt "Menu2"
|
||||
msgid "Keyboard Aura"
|
||||
msgstr ""
|
||||
|
||||
#: rog-control-center/ui/main_window.slint:54
|
||||
msgctxt "Menu3"
|
||||
msgid "AniMe Matrix"
|
||||
msgstr ""
|
||||
|
||||
#: rog-control-center/ui/main_window.slint:55
|
||||
msgctxt "Menu4"
|
||||
msgid "Fan Curves"
|
||||
msgstr ""
|
||||
|
||||
#: rog-control-center/ui/main_window.slint:56
|
||||
msgctxt "Menu5"
|
||||
msgid "App Settings"
|
||||
msgstr ""
|
||||
|
||||
#: rog-control-center/ui/main_window.slint:57
|
||||
msgctxt "Menu6"
|
||||
msgid "About"
|
||||
msgstr ""
|
||||
|
||||
#: rog-control-center/ui/main_window.slint:69
|
||||
msgctxt "MainWindow"
|
||||
msgid "Quit"
|
||||
msgstr ""
|
||||
|
||||
|
||||
@@ -10,8 +10,8 @@ import { Node } from "widgets/graph.slint";
|
||||
export { Node }
|
||||
import { FanPageData, FanType, Profile } from "types/fan_types.slint";
|
||||
export { FanPageData, FanType, Profile }
|
||||
import { AuraPageData, AuraDevType, AuraDevTuf, AuraDevRog1, PowerZones, KbAuraPowerState, AuraPowerDev, AuraEffect } from "types/aura_types.slint";
|
||||
export { AuraPageData, AuraDevType, AuraDevTuf, AuraDevRog1, PowerZones, KbAuraPowerState, AuraPowerDev, AuraEffect }
|
||||
import { AuraPageData, AuraDevType, LaptopAuraPower, AuraPowerState, PowerZones, AuraEffect } from "types/aura_types.slint";
|
||||
export { AuraPageData, AuraDevType, LaptopAuraPower, AuraPowerState, PowerZones, AuraEffect }
|
||||
import { PageAppSettings, AppSettingsPageData } from "pages/app_settings.slint";
|
||||
|
||||
export { AppSize, AvailableSystemProperties, SystemPageData, AnimePageData, AppSettingsPageData }
|
||||
|
||||
@@ -2,7 +2,7 @@ import { SystemDropdown, RogItem, SystemToggle, SystemToggleVert } from "../widg
|
||||
import { Palette, Button, ComboBox, VerticalBox, GroupBox } from "std-widgets.slint";
|
||||
import { StyleMetrics, Slider, HorizontalBox, TextEdit, SpinBox, LineEdit, ScrollView } from "std-widgets.slint";
|
||||
import { ColourSlider } from "../widgets/colour_picker.slint";
|
||||
import { AuraPageData, AuraDevType, AuraDevTuf, AuraDevRog1, PowerZones, KbAuraPowerState, AuraPowerDev, AuraEffect } from "../types/aura_types.slint";
|
||||
import { AuraPageData, AuraDevType, PowerZones, LaptopAuraPower, AuraEffect } from "../types/aura_types.slint";
|
||||
import { AuraPowerGroup } from "../widgets/aura_power.slint";
|
||||
|
||||
export component PageAura inherits Rectangle {
|
||||
@@ -206,268 +206,42 @@ export component PageAura inherits Rectangle {
|
||||
padding: 30px;
|
||||
padding-top: 10px;
|
||||
spacing: 10px;
|
||||
for power in AuraPageData.supported_power_zones: gr := HorizontalLayout {
|
||||
if power == PowerZones.Keyboard: zone1 := AuraPowerGroup {
|
||||
group-title: @tr("Keyboard");
|
||||
boot_checked: AuraPageData.led_power.rog.keyboard.boot;
|
||||
boot_toggled => {
|
||||
AuraPageData.led_power.rog.keyboard.boot = zone1.boot_checked;
|
||||
AuraPageData.set_led_power(AuraPageData.led_power);
|
||||
}
|
||||
awake_checked: AuraPageData.led_power.rog.keyboard.awake;
|
||||
awake_toggled => {
|
||||
AuraPageData.led_power.rog.keyboard.awake = zone1.awake_checked;
|
||||
AuraPageData.set_led_power(AuraPageData.led_power);
|
||||
}
|
||||
sleep_checked: AuraPageData.led_power.rog.keyboard.sleep;
|
||||
sleep_toggled => {
|
||||
AuraPageData.led_power.rog.keyboard.sleep = zone1.sleep_checked;
|
||||
AuraPageData.set_led_power(AuraPageData.led_power);
|
||||
}
|
||||
shutdown_checked: AuraPageData.led_power.rog.keyboard.shutdown;
|
||||
shutdown_toggled => {
|
||||
AuraPageData.led_power.rog.keyboard.shutdown = zone1.shutdown_checked;
|
||||
AuraPageData.set_led_power(AuraPageData.led_power);
|
||||
}
|
||||
}
|
||||
|
||||
if power == PowerZones.Logo: zone2 := AuraPowerGroup {
|
||||
group-title: @tr("Lid Logo");
|
||||
boot_checked: AuraPageData.led_power.rog.logo.boot;
|
||||
boot_toggled => {
|
||||
AuraPageData.led_power.rog.logo.boot = zone2.boot_checked;
|
||||
AuraPageData.set_led_power(AuraPageData.led_power);
|
||||
}
|
||||
awake_checked: AuraPageData.led_power.rog.logo.awake;
|
||||
awake_toggled => {
|
||||
AuraPageData.led_power.rog.logo.awake = zone2.awake_checked;
|
||||
AuraPageData.set_led_power(AuraPageData.led_power);
|
||||
}
|
||||
sleep_checked: AuraPageData.led_power.rog.logo.sleep;
|
||||
sleep_toggled => {
|
||||
AuraPageData.led_power.rog.logo.sleep = zone2.sleep_checked;
|
||||
AuraPageData.set_led_power(AuraPageData.led_power);
|
||||
}
|
||||
shutdown_checked: AuraPageData.led_power.rog.logo.shutdown;
|
||||
shutdown_toggled => {
|
||||
AuraPageData.led_power.rog.logo.shutdown = zone2.shutdown_checked;
|
||||
AuraPageData.set_led_power(AuraPageData.led_power);
|
||||
}
|
||||
for state[idx] in AuraPageData.led_power.states: zone := AuraPowerGroup {
|
||||
group-title: AuraPageData.power_zone_names[state.zone_name_idx];
|
||||
// TODO: use the zone name
|
||||
boot_checked: state.boot;
|
||||
boot_toggled => {
|
||||
AuraPageData.led_power.states[idx].boot = zone.boot_checked;
|
||||
AuraPageData.set_led_power(AuraPageData.led_power);
|
||||
}
|
||||
|
||||
if power == PowerZones.Lightbar: zone3 := AuraPowerGroup {
|
||||
group-title: @tr("Lightbar");
|
||||
boot_checked: AuraPageData.led_power.rog.lightbar.boot;
|
||||
boot_toggled => {
|
||||
AuraPageData.led_power.rog.lightbar.boot = zone3.boot_checked;
|
||||
AuraPageData.set_led_power(AuraPageData.led_power);
|
||||
}
|
||||
awake_checked: AuraPageData.led_power.rog.lightbar.awake;
|
||||
awake_toggled => {
|
||||
AuraPageData.led_power.rog.lightbar.awake = zone3.awake_checked;
|
||||
AuraPageData.set_led_power(AuraPageData.led_power);
|
||||
}
|
||||
sleep_checked: AuraPageData.led_power.rog.lightbar.sleep;
|
||||
sleep_toggled => {
|
||||
AuraPageData.led_power.rog.lightbar.sleep = zone3.sleep_checked;
|
||||
AuraPageData.set_led_power(AuraPageData.led_power);
|
||||
}
|
||||
shutdown_checked: AuraPageData.led_power.rog.lightbar.shutdown;
|
||||
shutdown_toggled => {
|
||||
AuraPageData.led_power.rog.lightbar.shutdown = zone3.shutdown_checked;
|
||||
AuraPageData.set_led_power(AuraPageData.led_power);
|
||||
}
|
||||
awake_checked: state.awake;
|
||||
awake_toggled => {
|
||||
AuraPageData.led_power.states[idx].awake = zone.awake_checked;
|
||||
AuraPageData.set_led_power(AuraPageData.led_power);
|
||||
}
|
||||
|
||||
if power == PowerZones.Lid: zone4 := AuraPowerGroup {
|
||||
group-title: @tr("Lid Zone");
|
||||
boot_checked: AuraPageData.led_power.rog.lid.boot;
|
||||
boot_toggled => {
|
||||
AuraPageData.led_power.rog.lid.boot = zone4.boot_checked;
|
||||
AuraPageData.set_led_power(AuraPageData.led_power);
|
||||
}
|
||||
awake_checked: AuraPageData.led_power.rog.lid.awake;
|
||||
awake_toggled => {
|
||||
AuraPageData.led_power.rog.lid.awake = zone4.awake_checked;
|
||||
AuraPageData.set_led_power(AuraPageData.led_power);
|
||||
}
|
||||
sleep_checked: AuraPageData.led_power.rog.lid.sleep;
|
||||
sleep_toggled => {
|
||||
AuraPageData.led_power.rog.lid.sleep = zone4.sleep_checked;
|
||||
AuraPageData.set_led_power(AuraPageData.led_power);
|
||||
}
|
||||
shutdown_checked: AuraPageData.led_power.rog.lid.shutdown;
|
||||
shutdown_toggled => {
|
||||
AuraPageData.led_power.rog.lid.shutdown = zone4.shutdown_checked;
|
||||
AuraPageData.set_led_power(AuraPageData.led_power);
|
||||
}
|
||||
sleep_checked: state.sleep;
|
||||
sleep_toggled => {
|
||||
AuraPageData.led_power.states[idx].sleep = zone.sleep_checked;
|
||||
AuraPageData.set_led_power(AuraPageData.led_power);
|
||||
}
|
||||
|
||||
if power == PowerZones.RearGlow: zone5 := AuraPowerGroup {
|
||||
group-title: @tr("Rear Glow");
|
||||
boot_checked: AuraPageData.led_power.rog.rear-glow.boot;
|
||||
boot_toggled => {
|
||||
AuraPageData.led_power.rog.rear-glow.boot = zone5.boot_checked;
|
||||
AuraPageData.set_led_power(AuraPageData.led_power);
|
||||
}
|
||||
awake_checked: AuraPageData.led_power.rog.rear-glow.awake;
|
||||
awake_toggled => {
|
||||
AuraPageData.led_power.rog.rear-glow.awake = zone5.awake_checked;
|
||||
AuraPageData.set_led_power(AuraPageData.led_power);
|
||||
}
|
||||
sleep_checked: AuraPageData.led_power.rog.rear-glow.sleep;
|
||||
sleep_toggled => {
|
||||
AuraPageData.led_power.rog.rear-glow.sleep = zone5.sleep_checked;
|
||||
AuraPageData.set_led_power(AuraPageData.led_power);
|
||||
}
|
||||
shutdown_checked: AuraPageData.led_power.rog.rear-glow.shutdown;
|
||||
shutdown_toggled => {
|
||||
AuraPageData.led_power.rog.rear-glow.shutdown = zone5.shutdown_checked;
|
||||
AuraPageData.set_led_power(AuraPageData.led_power);
|
||||
}
|
||||
shutdown_checked: state.shutdown;
|
||||
shutdown_toggled => {
|
||||
AuraPageData.led_power.states[idx].shutdown = zone.shutdown_checked;
|
||||
AuraPageData.set_led_power(AuraPageData.led_power);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Button {
|
||||
x: root.width - self.width - 6px;
|
||||
y: 6px;
|
||||
text: "X";
|
||||
height: 40px;
|
||||
clicked => {
|
||||
root.show_aura_power = false;
|
||||
root.show_fade_cover = false;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if root.show_aura_power && AuraPageData.aura_type == AuraDevType.Old: Rectangle {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
opacity: 1;
|
||||
ScrollView {
|
||||
VerticalLayout {
|
||||
padding: 30px;
|
||||
padding-top: 10px;
|
||||
spacing: 10px;
|
||||
|
||||
Text {
|
||||
text: "WIP: this is not complete and won't change keyboard state";
|
||||
Button {
|
||||
x: root.width - self.width - 6px;
|
||||
y: 6px;
|
||||
text: "X";
|
||||
height: 40px;
|
||||
clicked => {
|
||||
root.show_aura_power = false;
|
||||
root.show_fade_cover = false;
|
||||
}
|
||||
|
||||
Rectangle {
|
||||
border-radius: 20px;
|
||||
background: Palette.control-background;
|
||||
VerticalBox {
|
||||
spacing: 10px;
|
||||
alignment: LayoutAlignment.start;
|
||||
Text {
|
||||
font-size: 18px;
|
||||
color: Palette.control-foreground;
|
||||
horizontal-alignment: TextHorizontalAlignment.center;
|
||||
text: @tr("Keyboard");
|
||||
}
|
||||
|
||||
HorizontalBox {
|
||||
SystemToggleVert {
|
||||
max-height: 42px;
|
||||
text: @tr("Boot");
|
||||
}
|
||||
|
||||
SystemToggleVert {
|
||||
max-height: 42px;
|
||||
text: @tr("Awake");
|
||||
}
|
||||
|
||||
SystemToggleVert {
|
||||
max-height: 42px;
|
||||
text: @tr("Sleep");
|
||||
}
|
||||
|
||||
SystemToggleVert {
|
||||
max-height: 42px;
|
||||
text: @tr("Shutdown");
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Button {
|
||||
x: root.width - self.width - 6px;
|
||||
y: 6px;
|
||||
text: "X";
|
||||
height: 40px;
|
||||
clicked => {
|
||||
root.show_aura_power = false;
|
||||
root.show_fade_cover = false;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if root.show_aura_power && AuraPageData.aura_type == AuraDevType.Tuf: Rectangle {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
opacity: 1;
|
||||
ScrollView {
|
||||
VerticalLayout {
|
||||
padding: 30px;
|
||||
padding-top: 10px;
|
||||
spacing: 10px;
|
||||
|
||||
Text {
|
||||
text: "WIP: this is not complete and won't change keyboard state";
|
||||
}
|
||||
|
||||
Rectangle {
|
||||
border-radius: 20px;
|
||||
background: Palette.control-background;
|
||||
VerticalBox {
|
||||
spacing: 10px;
|
||||
alignment: LayoutAlignment.start;
|
||||
Text {
|
||||
font-size: 18px;
|
||||
color: Palette.control-foreground;
|
||||
horizontal-alignment: TextHorizontalAlignment.center;
|
||||
text: @tr("Keyboard");
|
||||
}
|
||||
|
||||
HorizontalBox {
|
||||
SystemToggleVert {
|
||||
max-height: 42px;
|
||||
text: @tr("Boot");
|
||||
}
|
||||
|
||||
SystemToggleVert {
|
||||
max-height: 42px;
|
||||
text: @tr("Awake");
|
||||
}
|
||||
|
||||
SystemToggleVert {
|
||||
max-height: 42px;
|
||||
text: @tr("Sleep");
|
||||
}
|
||||
|
||||
SystemToggleVert {
|
||||
max-height: 42px;
|
||||
text: @tr("Shutdown");
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Button {
|
||||
x: root.width - self.width - 6px;
|
||||
y: 6px;
|
||||
text: "X";
|
||||
height: 40px;
|
||||
clicked => {
|
||||
root.show_aura_power = false;
|
||||
root.show_fade_cover = false;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
export enum AuraDevType {
|
||||
Tuf,
|
||||
Old,
|
||||
New,
|
||||
Old,
|
||||
Tuf,
|
||||
}
|
||||
|
||||
export struct AuraEffect {
|
||||
@@ -19,51 +19,37 @@ export struct AuraEffect {
|
||||
direction: int,
|
||||
}
|
||||
|
||||
export enum AuraDevTuf {
|
||||
Boot,
|
||||
Awake,
|
||||
Sleep,
|
||||
Keyboard,
|
||||
}
|
||||
|
||||
export enum AuraDevRog1 {
|
||||
Awake,
|
||||
Keyboard,
|
||||
Lightbar,
|
||||
Boot,
|
||||
Sleep,
|
||||
}
|
||||
|
||||
export enum PowerZones {
|
||||
Logo,
|
||||
Keyboard,
|
||||
Lightbar,
|
||||
Lid,
|
||||
RearGlow,
|
||||
KeyboardAndLightbar
|
||||
}
|
||||
|
||||
export struct KbAuraPowerState {
|
||||
export struct AuraPowerState {
|
||||
zone: PowerZones,
|
||||
zone_name_idx: int,
|
||||
boot: bool,
|
||||
awake: bool,
|
||||
sleep: bool,
|
||||
shutdown: bool,
|
||||
}
|
||||
|
||||
export struct AuraPower {
|
||||
keyboard: KbAuraPowerState,
|
||||
logo: KbAuraPowerState,
|
||||
lightbar: KbAuraPowerState,
|
||||
lid: KbAuraPowerState,
|
||||
rear_glow: KbAuraPowerState,
|
||||
}
|
||||
|
||||
export struct AuraPowerDev {
|
||||
tuf: [AuraDevTuf],
|
||||
old_rog: [AuraDevRog1],
|
||||
rog: AuraPower,
|
||||
export struct LaptopAuraPower {
|
||||
states: [AuraPowerState],
|
||||
}
|
||||
|
||||
export global AuraPageData {
|
||||
in-out property <[string]> power_zone_names: [
|
||||
@tr("Aura power zone" => "Logo"),
|
||||
@tr("Aura power zone" => "Keyboard"),
|
||||
@tr("Aura power zone" => "Lightbar"),
|
||||
@tr("Aura power zone" => "Lid"),
|
||||
@tr("Aura power zone" => "Rear Glow"),
|
||||
@tr("Aura power zone" => "Keyboard and Lightbar"),
|
||||
];
|
||||
in-out property <[string]> brightness_names: [
|
||||
@tr("Aura brightness" => "Off"),
|
||||
@tr("Aura brightness" => "Low"),
|
||||
@@ -157,6 +143,14 @@ export global AuraPageData {
|
||||
PowerZones.Lightbar,
|
||||
PowerZones.Logo
|
||||
];
|
||||
in-out property <AuraPowerDev> led_power;
|
||||
callback set_led_power(AuraPowerDev);
|
||||
in-out property <LaptopAuraPower> led_power: {
|
||||
states: [{
|
||||
zone: PowerZones.Keyboard,
|
||||
boot: true,
|
||||
awake: true,
|
||||
sleep: true,
|
||||
shutdown: true,
|
||||
}]
|
||||
};
|
||||
callback set_led_power(LaptopAuraPower);
|
||||
}
|
||||
|
||||
@@ -24,8 +24,7 @@ use std::collections::BTreeMap;
|
||||
|
||||
use rog_aura::aura_detection::PowerZones;
|
||||
use rog_aura::keyboard::{LaptopAuraPower, UsbPackets};
|
||||
use rog_aura::usb::AuraDevice;
|
||||
use rog_aura::{AuraEffect, AuraModeNum, AuraZone, LedBrightness};
|
||||
use rog_aura::{AuraDeviceType, AuraEffect, AuraModeNum, AuraZone, LedBrightness};
|
||||
use zbus::blocking::Connection;
|
||||
use zbus::{proxy, Result};
|
||||
|
||||
@@ -51,7 +50,7 @@ trait Aura {
|
||||
|
||||
/// DeviceType property
|
||||
#[zbus(property)]
|
||||
fn device_type(&self) -> zbus::Result<AuraDevice>;
|
||||
fn device_type(&self) -> zbus::Result<AuraDeviceType>;
|
||||
|
||||
/// LedMode property
|
||||
#[zbus(property)]
|
||||
|
||||
@@ -1,23 +1,16 @@
|
||||
use std::error::Error;
|
||||
|
||||
use rog_aura::usb::AuraDevice;
|
||||
use rog_platform::hid_raw::HidRaw;
|
||||
|
||||
pub fn main() -> Result<(), Box<dyn Error>> {
|
||||
let mut usb_node = None;
|
||||
let prod = AuraDevice::X1abe;
|
||||
match HidRaw::new(prod.into()) {
|
||||
match HidRaw::new("1abe") {
|
||||
Ok(node) => {
|
||||
let id = node.prod_id().to_owned();
|
||||
usb_node = Some(node);
|
||||
println!(
|
||||
"Looked for keyboard controller 0x{}: Found",
|
||||
<&str>::from(prod)
|
||||
);
|
||||
println!("Looked for keyboard controller 0x{}: Found", id);
|
||||
}
|
||||
Err(err) => println!(
|
||||
"Looked for keyboard controller 0x{}: {err}",
|
||||
<&str>::from(prod)
|
||||
),
|
||||
Err(err) => println!("Looked for keyboard controller: {err}"),
|
||||
}
|
||||
|
||||
if usb_node.is_none() {
|
||||
|
||||
@@ -2,24 +2,17 @@ use std::error::Error;
|
||||
use std::thread::sleep;
|
||||
use std::time::Duration;
|
||||
|
||||
use rog_aura::usb::AuraDevice;
|
||||
use rog_platform::hid_raw::HidRaw;
|
||||
|
||||
pub fn main() -> Result<(), Box<dyn Error>> {
|
||||
let mut usb_node = None;
|
||||
let prod = AuraDevice::X1abe;
|
||||
match HidRaw::new(prod.into()) {
|
||||
match HidRaw::new("1abe") {
|
||||
Ok(node) => {
|
||||
let id = node.prod_id().to_owned();
|
||||
usb_node = Some(node);
|
||||
println!(
|
||||
"Looked for keyboard controller 0x{}: Found",
|
||||
<&str>::from(prod)
|
||||
);
|
||||
println!("Looked for keyboard controller 0x{}: Found", id);
|
||||
}
|
||||
Err(err) => println!(
|
||||
"Looked for keyboard controller 0x{}: {err}",
|
||||
<&str>::from(prod)
|
||||
),
|
||||
Err(err) => println!("Looked for keyboard controller: {err}"),
|
||||
}
|
||||
|
||||
if usb_node.is_none() {
|
||||
|
||||
@@ -1,23 +1,16 @@
|
||||
use std::error::Error;
|
||||
|
||||
use rog_aura::usb::AuraDevice;
|
||||
use rog_platform::hid_raw::HidRaw;
|
||||
|
||||
pub fn main() -> Result<(), Box<dyn Error>> {
|
||||
let mut usb_node = None;
|
||||
let prod = AuraDevice::X1abe;
|
||||
match HidRaw::new(prod.into()) {
|
||||
match HidRaw::new("1abe") {
|
||||
Ok(node) => {
|
||||
let id = node.prod_id().to_owned();
|
||||
usb_node = Some(node);
|
||||
println!(
|
||||
"Looked for keyboard controller 0x{}: Found",
|
||||
<&str>::from(prod)
|
||||
);
|
||||
println!("Looked for keyboard controller 0x{}: Found", id);
|
||||
}
|
||||
Err(err) => println!(
|
||||
"Looked for keyboard controller 0x{}: {err}",
|
||||
<&str>::from(prod)
|
||||
),
|
||||
Err(err) => println!("Looked for keyboard controller: {err}"),
|
||||
}
|
||||
|
||||
if usb_node.is_none() {
|
||||
|
||||
Reference in New Issue
Block a user