mirror of
https://gitlab.com/asus-linux/asusctl.git
synced 2026-01-22 17:33:19 +01:00
234 lines
6.2 KiB
TypeScript
234 lines
6.2 KiB
TypeScript
/*
|
|
Generated by typeshare 1.7.0
|
|
*/
|
|
|
|
/** Represents the per-key raw USB packets */
|
|
export type UsbPackets = number[][];
|
|
|
|
/**
|
|
* A `UsbPackets` contains all data to change the full set of keyboard
|
|
* key colours individually.
|
|
*
|
|
* Each row of the internal array is a full HID packet that can be sent
|
|
* to the keyboard EC. One row controls one group of keys, these keys are not
|
|
* necessarily all on the same row of the keyboard, with some splitting between
|
|
* two rows.
|
|
*/
|
|
export interface LedUsbPackets {
|
|
/** The packet data used to send data to the USB keyboard */
|
|
usb_packets: UsbPackets;
|
|
/**
|
|
* Wether or not this packet collection is zoned. The determines which
|
|
* starting bytes are used and what the indexing is for lightbar RGB
|
|
* colours
|
|
*/
|
|
zoned: boolean;
|
|
}
|
|
|
|
export interface Colour {
|
|
r: number;
|
|
g: number;
|
|
b: number;
|
|
}
|
|
|
|
/** Enum of modes that convert to the actual number required by a USB HID packet */
|
|
export enum AuraModeNum {
|
|
Static = "Static",
|
|
Breathe = "Breathe",
|
|
Strobe = "Strobe",
|
|
Rainbow = "Rainbow",
|
|
Star = "Star",
|
|
Rain = "Rain",
|
|
Highlight = "Highlight",
|
|
Laser = "Laser",
|
|
Ripple = "Ripple",
|
|
Pulse = "Pulse",
|
|
Comet = "Comet",
|
|
Flash = "Flash",
|
|
}
|
|
|
|
/** Base effects have no zoning, while multizone is 1-4 */
|
|
export enum AuraZone {
|
|
/** Used if keyboard has no zones, or if setting all */
|
|
None = "None",
|
|
/** Leftmost zone */
|
|
Key1 = "Key1",
|
|
/** Zone after leftmost */
|
|
Key2 = "Key2",
|
|
/** Zone second from right */
|
|
Key3 = "Key3",
|
|
/** Rightmost zone */
|
|
Key4 = "Key4",
|
|
/** Logo on the lid (or elsewhere?) */
|
|
Logo = "Logo",
|
|
/** The left part of a lightbar (typically on the front of laptop) */
|
|
BarLeft = "BarLeft",
|
|
/** The right part of a lightbar */
|
|
BarRight = "BarRight",
|
|
}
|
|
|
|
export enum Speed {
|
|
Low = "Low",
|
|
Med = "Med",
|
|
High = "High",
|
|
}
|
|
|
|
/**
|
|
* Used for Rainbow mode.
|
|
*
|
|
* Enum corresponds to the required integer value
|
|
*/
|
|
export enum Direction {
|
|
Right = "Right",
|
|
Left = "Left",
|
|
Up = "Up",
|
|
Down = "Down",
|
|
}
|
|
|
|
/**
|
|
* Default factory modes structure. This easily converts to an USB HID packet
|
|
* with:
|
|
* ```rust
|
|
* // let bytes: [u8; LED_MSG_LEN] = mode.into();
|
|
* ```
|
|
*/
|
|
export interface AuraEffect {
|
|
/** The effect type */
|
|
mode: AuraModeNum;
|
|
/** `AuraZone::None` for no zone or zoneless keyboards */
|
|
zone: AuraZone;
|
|
/** Primary colour for all modes */
|
|
colour1: Colour;
|
|
/** Secondary colour in some modes like Breathing or Stars */
|
|
colour2: Colour;
|
|
/** One of three speeds for modes that support speed (most that animate) */
|
|
speed: Speed;
|
|
/** Up, down, left, right. Only Rainbow mode seems to use this */
|
|
direction: Direction;
|
|
}
|
|
|
|
/** The powerr zones this laptop supports */
|
|
export enum PowerZones {
|
|
/** The logo on some laptop lids */
|
|
Logo = "Logo",
|
|
/** The full keyboard (not zones) */
|
|
Keyboard = "Keyboard",
|
|
/** The lightbar, typically on the front of the laptop */
|
|
Lightbar = "Lightbar",
|
|
/** The leds that may be placed around the edge of the laptop lid */
|
|
Lid = "Lid",
|
|
/** The led strip on the rear of some laptops */
|
|
RearGlow = "RearGlow",
|
|
}
|
|
|
|
export interface KbAuraPowerState {
|
|
zone: PowerZones;
|
|
boot: boolean;
|
|
awake: boolean;
|
|
sleep: boolean;
|
|
shutdown: boolean;
|
|
}
|
|
|
|
/**
|
|
* Track and control the Aura keyboard power state
|
|
*
|
|
* # Bits for newer 0x18c6, 0x19B6, 0x1a30, keyboard models
|
|
*
|
|
* | Byte 1 | Byte 2 | Byte 3 | Byte 4 | Label |
|
|
* |--------|---------|---------|---------|----------|
|
|
* |00000001| 00000000| 00000000| 00000000|boot_logo_|
|
|
* |00000010| 00000000| 00000000| 00000000|boot_keyb_|
|
|
* |00000100| 00000000| 00000000| 00000000|awake_logo|
|
|
* |00001000| 00000000| 00000000| 00000000|awake_keyb|
|
|
* |00010000| 00000000| 00000000| 00000000|sleep_logo|
|
|
* |00100000| 00000000| 00000000| 00000000|sleep_keyb|
|
|
* |01000000| 00000000| 00000000| 00000000|shut_logo_|
|
|
* |10000000| 00000000| 00000000| 00000000|shut_keyb_|
|
|
* |00000000| 00000010| 00000000| 00000000|boot_bar__|
|
|
* |00000000| 00000100| 00000000| 00000000|awake_bar_|
|
|
* |00000000| 00001000| 00000000| 00000000|sleep_bar_|
|
|
* |00000000| 00010000| 00000000| 00000000|shut_bar__|
|
|
* |00000000| 00000000| 00000001| 00000000|boot_lid__|
|
|
* |00000000| 00000000| 00000010| 00000000|awkae_lid_|
|
|
* |00000000| 00000000| 00000100| 00000000|sleep_lid_|
|
|
* |00000000| 00000000| 00001000| 00000000|shut_lid__|
|
|
* |00000000| 00000000| 00000000| 00000001|boot_rear_|
|
|
* |00000000| 00000000| 00000000| 00000010|awake_rear|
|
|
* |00000000| 00000000| 00000000| 00000100|sleep_rear|
|
|
* |00000000| 00000000| 00000000| 00001000|shut_rear_|
|
|
*/
|
|
export interface AuraPower {
|
|
keyboard: KbAuraPowerState;
|
|
logo: KbAuraPowerState;
|
|
lightbar: KbAuraPowerState;
|
|
lid: KbAuraPowerState;
|
|
rear_glow: KbAuraPowerState;
|
|
}
|
|
|
|
export enum AuraDevTuf {
|
|
Boot = "Boot",
|
|
Awake = "Awake",
|
|
Sleep = "Sleep",
|
|
Keyboard = "Keyboard",
|
|
}
|
|
|
|
/**
|
|
* # Bits for older 0x1866 keyboard model
|
|
*
|
|
* Keybord and Lightbar require Awake, Boot and Sleep apply to both
|
|
* Keybord and Lightbar regardless of if either are enabled (or Awake is
|
|
* enabled)
|
|
*
|
|
* | Byte 1 | Byte 2 | Byte 3 | function | hex |
|
|
* |------------|------------|------------|----------|----------|
|
|
* | 0000, 0000 | 0000, 0000 | 0000, 0010 | Awake | 00,00,02 |
|
|
* | 0000, 1000 | 0000, 0000 | 0000, 0000 | Keyboard | 08,00,00 |
|
|
* | 0000, 0100 | 0000, 0101 | 0000, 0000 | Lightbar | 04,05,00 |
|
|
* | 1100, 0011 | 0001, 0010 | 0000, 1001 | Boot/Sht | c3,12,09 |
|
|
* | 0011, 0000 | 0000, 1000 | 0000, 0100 | Sleep | 30,08,04 |
|
|
* | 1111, 1111 | 0001, 1111 | 0000, 1111 | all on | |
|
|
*/
|
|
export enum AuraDevRog1 {
|
|
Awake = "Awake",
|
|
Keyboard = "Keyboard",
|
|
Lightbar = "Lightbar",
|
|
Boot = "Boot",
|
|
Sleep = "Sleep",
|
|
}
|
|
|
|
/** This struct is intended as a helper to pass args to generic dbus interface */
|
|
export interface AuraPowerDev {
|
|
/**
|
|
* TUF laptops use a similar style of control to the older ROG devices but
|
|
* through WMI
|
|
*/
|
|
tuf: AuraDevTuf[];
|
|
/**
|
|
* Pre-0x19b6 devices use a different smaller scheme to the newer ROG
|
|
* devices
|
|
*/
|
|
old_rog: AuraDevRog1[];
|
|
/** ASUS standardised control scheme from 2020 onwards */
|
|
rog: AuraPower;
|
|
}
|
|
|
|
export enum LedBrightness {
|
|
Off = "Off",
|
|
Low = "Low",
|
|
Med = "Med",
|
|
High = "High",
|
|
}
|
|
|
|
export enum AuraDevice {
|
|
Tuf = "Tuf",
|
|
X1854 = "X1854",
|
|
X1869 = "X1869",
|
|
X1866 = "X1866",
|
|
X18c6 = "X18c6",
|
|
X19b6 = "X19b6",
|
|
X1a30 = "X1a30",
|
|
X1abe = "X1abe",
|
|
Unknown = "Unknown",
|
|
}
|
|
|