mirror of
https://github.com/libratbag/libratbag.git
synced 2026-11-07 23:23:52 +01:00
No-one reads anything longer than 140 char anymore, so let's move the DBus Interface description out. The average visitor to this site won't care. Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
97 lines
4.6 KiB
Markdown
97 lines
4.6 KiB
Markdown
The ratbagd DBus-Interface
|
|
--------------------------
|
|
|
|
Note: **the DBus interface is subject to change**
|
|
|
|
Interfaces:
|
|
- org.freedesktop.ratbag1.Manager
|
|
- org.freedesktop.ratbag1.Device
|
|
- org.freedesktop.ratbag1.Profile
|
|
- org.freedesktop.ratbag1.Resolution
|
|
- org.freedesktop.ratbag1.Button
|
|
- org.freedesktop.ratbag1.Led
|
|
|
|
The **org.freedesktop.ratbag1.Manager** interface provides:
|
|
- Properties:
|
|
- Devices -> array of object paths with interface Device
|
|
- Signals:
|
|
- DeviceNew -> new device available, carries object path
|
|
- DeviceRemoved -> device removed, carries object path
|
|
|
|
The **org.freedesktop.ratbag1.Device** interface provides:
|
|
- Properties:
|
|
- Id -> unique ID of this device
|
|
- Capabilities -> array of uints with the capabilities enum from libratbag
|
|
- Description -> device name
|
|
- Svg -> device SVG name (file only)
|
|
- SvgPath -> device SVG name (full absolute path)
|
|
- Profiles -> array of object paths with interface Profile
|
|
- ActiveProfile -> index of the currently active profile in Profiles
|
|
- Methods:
|
|
- GetProfileByIndex(uint) -> returns the object path for the given index
|
|
|
|
The **org.freedesktop.ratbag1.Profile** interface provides:
|
|
- Properties:
|
|
- Index -> index of the profile
|
|
- Resolutions -> array of object paths with interface Resolution
|
|
- Buttons -> array of object paths with interface Button
|
|
- Leds -> array of object paths with interface Led
|
|
- ActiveResolution -> index of the currently active resolution in Resolutions
|
|
- DefaultResolution -> index of the default resolution in Resolutions
|
|
- Methods:
|
|
- SetActive(void) -> set this profile to be the active profile
|
|
- GetResolutionByIndex(uint) -> returns the object path for the given index
|
|
- Signals:
|
|
- ActiveProfileChanged -> active profile changed, carries index of the new active profile
|
|
|
|
The **org.freedesktop.ratbag1.Resolution** interface provides:
|
|
- Properties:
|
|
- Index -> index of the resolution
|
|
- Capabilities -> array of uints with the capabilities enum from libratbag
|
|
- XResolution -> uint for the x resolution assigned to this entry
|
|
- YResolution -> uint for the y resolution assigned to this entry
|
|
- ReportRate -> uint for the report rate in Hz assigned to this entry
|
|
- Methods:
|
|
- SetResolution(uint, uint) -> x/y resolution to assign
|
|
- SetReportRate(uint) -> uint for the report rate to assign
|
|
- SetDefault -> set this resolution to be the default
|
|
- Signals:
|
|
- ActiveResolutionChanged -> active resolution changed, carries index of the new active resolution
|
|
- DefaultResolutionChanged -> default resolution changed, carries index of the new default resolution
|
|
|
|
The **org.freedesktop.ratbag1.Button** interface provides:
|
|
- Properties:
|
|
- Index -> index of the button
|
|
- Type -> string describing the button type
|
|
- ButtonMapping -> uint of the current button mapping (if mapping to button)
|
|
- SpecialMapping -> string of the current special mapping (if mapped to special)
|
|
- KeyMapping -> array of uints, first entry is the keycode, other entries, if any, are modifiers (if mapped to key)
|
|
- ActionType -> string describing the action type of the button ("none", "button", "key", "special", "macro", "unknown"). This decides which \*Mapping property has a value
|
|
- ActionTypes -> array of strings, possible values for ActionType
|
|
- Methods:
|
|
- SetButtonMapping(uint) -> set the button mapping to the given button
|
|
- SetSpecialMapping(string) -> set the button mapping to the given special entry
|
|
- SetKeyMapping(uint[]) -> set the key mapping, first entry is the keycode, other entries, if any, are modifier keycodes
|
|
- Disable(void) -> disable this button
|
|
|
|
The **org.freedesktop.ratbag1.Led** interface provides:
|
|
- Properties:
|
|
- Index -> index of the LED
|
|
- Mode -> uint mapping to the mode enum from libratbag
|
|
- Type -> string describing the LED type
|
|
- Color -> uint triplet (RGB) of the LED's color
|
|
- EffectRate -> the effect rate in Hz, possible values are in the range 100 - 20000
|
|
- Brightness -> the brightness of the LED, possible values are in the range 0 - 255
|
|
- Methods:
|
|
- SetMode(uint) -> set the mode to the given mode enum value from libratbag
|
|
- SetColor((uuu)) -> set the color to the given uint triplet (RGB)
|
|
- SetEffectRate(uint) -> set the effect rate in Hz, possible values are in the range 100 - 20000
|
|
- SetBrightness(int) -> set the brightness, possible values are in the range 0 - 255
|
|
|
|
For easier debugging, objects paths are constructed from the device. e.g.
|
|
`/org/freedesktop/ratbag/button/event5/p0/b10` is the button interface for
|
|
button 10 on profile 0 on event5. The naming is subject to change. Do not
|
|
rely on a constructed object path in your application.
|
|
|
|
|