libratbag.h
Go to the documentation of this file.
Definition: libratbag.h:1141
struct ratbag_device * ratbag_device_ref(struct ratbag_device *device)
Add a reference to the device.
ratbag_macro_event_type
Macro event types describing the event.
Definition: libratbag.h:1587
enum ratbag_error_code ratbag_resolution_set_report_rate(struct ratbag_resolution *resolution, unsigned int hz)
Set the report rate in Hz for the resolution mode.
Definition: libratbag.h:1273
A button to toggle the wheel from free-spinning to click-based.
Definition: libratbag.h:1150
enum ratbag_error_code ratbag_device_commit(struct ratbag_device *device)
Write any changes to the device.
enum ratbag_button_action_type ratbag_button_get_action_type(struct ratbag_button *button)
Definition: libratbag.h:169
struct ratbag_profile * ratbag_profile_ref(struct ratbag_profile *profile)
Add a reference to the profile.
int ratbag_resolution_get_dpi(struct ratbag_resolution *resolution)
Get the resolution in DPI for the resolution mode.
Definition: libratbag.h:1136
unsigned int ratbag_device_get_num_leds(struct ratbag_device *device)
Return the number of LEDs available on this device.
int ratbag_device_has_capability(const struct ratbag_device *device, enum ratbag_device_capability cap)
Note that a device may not support any of the capabilities but still initialize fine otherwise...
enum ratbag_error_code ratbag_button_set_special(struct ratbag_button *button, enum ratbag_button_action_special action)
This function sets the special function assigned to this button.
Definition: libratbag.h:1152
Definition: libratbag.h:1282
const char * ratbag_button_macro_get_name(struct ratbag_button_macro *macro)
The device supports assigning LED colors and effects.
Definition: libratbag.h:520
This button is not set up for a special action.
Definition: libratbag.h:1255
int ratbag_resolution_is_active(const struct ratbag_resolution *resolution)
Check if the resolution mode is the currently active one.
Definition: libratbag.h:1592
int ratbag_button_macro_get_event_timeout(struct ratbag_button_macro *macro, unsigned int index)
If the event stored at the given index is RATBAG_MACRO_EVENT_WAIT, this function returns the timeout ...
int ratbag_resolution_get_dpi_x(struct ratbag_resolution *resolution)
Get the x resolution in DPI for the resolution mode.
unsigned int ratbag_button_macro_get_num_events(struct ratbag_button_macro *macro)
ratbag_led_mode
RATBAG_LED_OFF - led is now off, RATBAG_LED_ON - led is on with static color, RATBAG_LED_CYCLE - led ...
Definition: libratbag.h:1354
enum ratbag_button_type ratbag_button_get_type(struct ratbag_button *button)
Return the type of the physical button.
int ratbag_button_has_action_type(struct ratbag_button *button, enum ratbag_button_action_type action_type)
Check if a button supports a specific action type.
Represents a led on the device.
unsigned int ratbag_button_get_button(struct ratbag_button *button)
If a button's action is RATBAG_BUTTON_ACTION_TYPE_BUTTON, this function returns the logical button nu...
Definition: libratbag.h:1269
enum ratbag_error_code ratbag_button_disable(struct ratbag_button *button)
enum ratbag_log_priority ratbag_log_get_priority(const struct ratbag *ratbag)
Get the context's log priority.
Definition: libratbag.h:1144
int ratbag_led_get_effect_rate(struct ratbag_led *led)
This function returns the LED effect rate.
The device supports user-defined key or button sequences.
Definition: libratbag.h:525
The device can switch between hardware profiles.
Definition: libratbag.h:509
The device has the capability to disable and enable profiles.
Definition: libratbag.h:559
Definition: libratbag.h:1262
Definition: libratbag.h:1143
enum ratbag_led_type ratbag_led_get_type(struct ratbag_led *led)
This function returns the type for ratbag_led.
enum ratbag_error_code ratbag_button_macro_set_event(struct ratbag_button_macro *macro, unsigned int index, enum ratbag_macro_event_type type, unsigned int data)
Sets the macro's event at the given index to the given type with the key code or timeout given...
The resolution can be set for x and y separately.
Definition: libratbag.h:861
enum ratbag_macro_event_type ratbag_button_macro_get_event_type(struct ratbag_button_macro *macro, unsigned int index)
Returns the macro event type configured for the event at the given index.
enum ratbag_error_code ratbag_led_set_color(struct ratbag_led *led, struct ratbag_color color)
If the LED's mode is RATBAG_LED_ON or RATBAG_LED_BREATHING then this function sets the LED color...
int ratbag_resolution_get_report_rate(struct ratbag_resolution *resolution)
Get the report rate in Hz for the resolution mode.
Definition: libratbag.h:1588
The device can change resolution, either software-controlled or by a hardware button.
Definition: libratbag.h:501
bool ratbag_profile_is_enabled(const struct ratbag_profile *profile)
Check whether the ratbag profile is enabled or not.
struct ratbag_resolution * ratbag_profile_get_resolution(struct ratbag_profile *profile, unsigned int idx)
Return the resolution in DPI and the report rate in Hz for the resolution mode identified by the give...
enum ratbag_error_code ratbag_profile_set_active(struct ratbag_profile *profile)
Make the given profile the currently active profile.
Definition: libratbag.h:1276
Definition: libratbag.h:1263
Definition: libratbag.h:1366
enum ratbag_error_code ratbag_resolution_set_default(struct ratbag_resolution *resolution)
Set the default resolution mode for the associated profile.
int ratbag_profile_is_active(struct ratbag_profile *profile)
Check if the given profile is the currently active one.
void ratbag_profile_set_user_data(struct ratbag_profile *profile, void *userdata)
Set caller-specific data associated with this profile.
Definition: libratbag.h:1140
const char * ratbag_device_get_svg_name(const struct ratbag_device *device)
Definition: libratbag.h:1358
void * ratbag_profile_get_user_data(const struct ratbag_profile *profile)
Get the caller-specific data associated with this profile, if any.
enum ratbag_error_code ratbag_resolution_set_dpi_xy(struct ratbag_resolution *resolution, unsigned int x, unsigned int y)
Set the x and y resolution in DPI for the resolution mode.
enum ratbag_error_code ratbag_profile_set_enabled(struct ratbag_profile *profile, bool enabled)
Enable/disable the ratbag profile.
Definition: libratbag.h:218
enum ratbag_error_code ratbag_led_set_mode(struct ratbag_led *led, enum ratbag_led_mode mode)
this function sets the LED mode.
Definition: libratbag.h:1151
struct ratbag_button * ratbag_button_unref(struct ratbag_button *button)
Dereference the ratbag button.
struct ratbag_profile * ratbag_device_get_profile(struct ratbag_device *device, unsigned int index)
This function creates if necessary and returns a profile for the given index.
struct ratbag_resolution * ratbag_resolution_ref(struct ratbag_resolution *resolution)
Add a reference to the resolution.
Definition: libratbag.h:1158
Definition: libratbag.h:1163
unsigned int ratbag_profile_get_num_resolutions(struct ratbag_profile *profile)
Get the number of ratbag_resolution available in this profile.
void ratbag_resolution_set_user_data(struct ratbag_resolution *resolution, void *userdata)
Set caller-specific data associated with this resolution.
Definition: libratbag.h:219
void ratbag_device_set_user_data(struct ratbag_device *device, void *userdata)
Set caller-specific data associated with this device.
unsigned int ratbag_button_get_key(struct ratbag_button *button, unsigned int *modifiers, size_t *sz)
If a button's action is RATBAG_BUTTON_ACTION_TYPE_KEY, this function returns the key or button config...
void * ratbag_device_get_user_data(const struct ratbag_device *device)
Get the caller-specific data associated with this device, if any.
enum ratbag_button_action_special ratbag_button_get_special(struct ratbag_button *button)
If a button's action is RATBAG_BUTTON_ACTION_TYPE_SPECIAL, this function returns the special function...
struct ratbag_button_macro * ratbag_button_macro_ref(struct ratbag_button_macro *macro)
Add a reference to the macro.
void ratbag_log_set_handler(struct ratbag *ratbag, ratbag_log_handler log_handler)
Set the context's log handler.
ratbag_log_priority
Log priority for internal logging messages.
Definition: libratbag.h:211
struct ratbag_button * ratbag_button_ref(struct ratbag_button *button)
Add a reference to the button.
The report rate can be set per resolution mode.
Definition: libratbag.h:856
Definition: libratbag.h:1142
enum ratbag_error_code ratbag_button_set_key(struct ratbag_button *button, unsigned int key, unsigned int *modifiers, size_t sz)
Definition: libratbag.h:1589
unsigned int ratbag_device_get_num_profiles(struct ratbag_device *device)
Return the number of profiles supported by this device.
Definition: libratbag.h:1264
enum ratbag_led_mode ratbag_led_get_mode(struct ratbag_led *led)
This function returns the mode for ratbag_led.
struct ratbag * ratbag_create_context(const struct ratbag_interface *interface, void *userdata)
Create a new ratbag context.
Button sends a key or key + modifier combination.
Definition: libratbag.h:1212
void ratbag_set_user_data(struct ratbag *ratbag, void *userdata)
Set caller-specific data associated with this context.
struct ratbag_resolution * ratbag_resolution_unref(struct ratbag_resolution *resolution)
Dereference the ratbag resolution.
struct ratbag_button_macro * ratbag_button_macro_new(const char *name)
Initialize a new button macro.
Implementation bug, either in libratbag or in the caller.
Definition: libratbag.h:203
Definition: libratbag.h:1258
Definition: libratbag.h:1159
The device can have one profile assigned as a default profile.
Definition: libratbag.h:533
enum ratbag_error_code ratbag_resolution_set_dpi(struct ratbag_resolution *resolution, unsigned int dpi)
Set the resolution in DPI for the resolution mode.
void(*) voi ratbag_log_set_priority)(struct ratbag *ratbag, enum ratbag_log_priority priority)
Set the log priority for the ratbag context.
Definition: libratbag.h:257
Definition: libratbag.h:1357
A handle to a profile context on devices with the RATBAG_DEVICE_CAP_SWITCHABLE_PROFILE capability...
Definition: libratbag.h:94
int ratbag_resolution_has_capability(struct ratbag_resolution *resolution, enum ratbag_resolution_capability cap)
Check if a resolution has a specific capability.
struct ratbag_color ratbag_led_get_color(struct ratbag_led *led)
This function returns the led color.
Definition: libratbag.h:1138
Definition: libratbag.h:1137
libratbag does not open file descriptors to devices directly, instead open_restricted() and close_res...
Definition: libratbag.h:307
void ratbag_button_set_user_data(struct ratbag_button *button, void *userdata)
Set caller-specific data associated with this button.
The device has the capability to query the current hardware configuration.
Definition: libratbag.h:550
void * ratbag_resolution_get_user_data(const struct ratbag_resolution *resolution)
Get the caller-specific data associated with this resolution, if any.
Definition: libratbag.h:1139
Definition: libratbag.h:1272
Button triggers a mouse-specific special function.
Definition: libratbag.h:1208
enum ratbag_error_code ratbag_led_set_brightness(struct ratbag_led *led, unsigned int brightness)
If the LED's mode is RATBAG_LED_CYCLE or RATBAG_LED_BREATHING then this function sets the LED brightn...
Definition: libratbag.h:1157
struct ratbag_device * ratbag_device_unref(struct ratbag_device *device)
Dereference the ratbag device.
The device supports assigning button numbers, key events or key + modifier combinations.
Definition: libratbag.h:515
Definition: libratbag.h:1268
int ratbag_resolution_is_default(const struct ratbag_resolution *resolution)
Check if the resolution mode is the default one in this profile.
Definition: libratbag.h:492
Definition: libratbag.h:1368
Definition: libratbag.h:1265
Definition: libratbag.h:1261
enum ratbag_error_code ratbag_resolution_set_active(struct ratbag_resolution *resolution)
Activate the given resolution mode.
ratbag_button_action_type
The type assigned to a button.
Definition: libratbag.h:1191
Definition: libratbag.h:1145
struct ratbag_led * ratbag_profile_get_led(struct ratbag_profile *profile, unsigned int index)
Return a reference to the LED given by the index.
int ratbag_button_macro_get_event_key(struct ratbag_button_macro *macro, unsigned int index)
If the event stored at the given index is RATBAG_MACRO_EVENT_KEY_PRESSED or RATBAG_MACRO_EVENT_KEY_RE...
Definition: libratbag.h:1146
void * ratbag_button_get_user_data(const struct ratbag_button *button)
Get the caller-specific data associated with this button, if any.
Definition: libratbag.h:1154
Definition: libratbag.h:1279
Definition: libratbag.h:1590
ratbag_led_type
LED types, usually based on their physical location.
Definition: libratbag.h:1365
enum ratbag_error_code ratbag_button_set_button(struct ratbag_button *button, unsigned int btn)
See ratbag_button_get_button() for a description of the button number.
Definition: libratbag.h:1132
Definition: libratbag.h:1270
struct ratbag_led * ratbag_led_unref(struct ratbag_led *led)
Dereference the ratbag led.
const char * ratbag_device_get_name(const struct ratbag_device *device)
struct ratbag_button * ratbag_profile_get_button(struct ratbag_profile *profile, unsigned int index)
Return a reference to the button given by the index.
#define LIBRATBAG_ATTRIBUTE_PRINTF(_format, _args)
Definition: libratbag.h:35
Definition: libratbag.h:1164
enum ratbag_error_code ratbag_button_set_macro(struct ratbag_button *button, const struct ratbag_button_macro *macro)
Sets the button's action to RATBAG_BUTTON_ACTION_TYPE_MACRO and assigns the given macro to this butto...
Definition: libratbag.h:1277
Definition: libratbag.h:1591
unsigned int ratbag_device_get_num_buttons(struct ratbag_device *device)
Return the number of buttons available on this device.
enum ratbag_error_code ratbag_led_set_effect_rate(struct ratbag_led *led, unsigned int rate)
If the LED's mode is RATBAG_LED_CYCLE or RATBAG_LED_BREATHING then this function sets the LED rate in...
int ratbag_resolution_get_dpi_y(struct ratbag_resolution *resolution)
Get the y resolution in DPI for the resolution mode.
Definition: libratbag.h:1271
Definition: libratbag.h:1153
Definition: libratbag.h:1356
struct ratbag_button_macro * ratbag_button_macro_unref(struct ratbag_button_macro *macro)
Dereference the ratbag button macro.
struct ratbag_profile * ratbag_profile_unref(struct ratbag_profile *profile)
Dereference the ratbag profile.
Definition: libratbag.h:1135
unsigned int ratbag_led_get_brightness(struct ratbag_led *led)
This function returns the LED brightness.
A handle for accessing ratbag contexts.
ratbag_button_type
Button types describing the physical button.
Definition: libratbag.h:1131
Definition: libratbag.h:1162
void * ratbag_get_user_data(const struct ratbag *ratbag)
Get the caller-specific data associated with this context, if any.
Definition: libratbag.h:1285
Definition: libratbag.h:1278
void(* ratbag_log_handler)(struct ratbag *ratbag, enum ratbag_log_priority priority, const char *format, va_list args) LIBRATBAG_ATTRIBUTE_PRINTF(3
Log handler type for custom logging.
Definition: libratbag.h:236
Button sends a user-defined key or button sequence.
Definition: libratbag.h:1216
struct ratbag_button_macro * ratbag_button_get_macro(struct ratbag_button *button)
If a button's action is RATBAG_BUTTON_ACTION_TYPE_MACRO, this function returns the current button mac...
Definition: libratbag.h:1367
Definition: libratbag.h:1355
Definition: libratbag.h:1256
enum ratbag_error_code ratbag_device_new_from_udev_device(struct ratbag *ratbag, struct udev_device *udev_device, struct ratbag_device **device)
Create a new ratbag context from the given udev device.
Definition: libratbag.h:217