diff --git a/meson.build b/meson.build index c08c9136..5d396c87 100644 --- a/meson.build +++ b/meson.build @@ -177,6 +177,7 @@ src_libratbag = [ 'src/driver-gskill.c', 'src/driver-openinput.c', 'src/driver-steelseries.c', + 'src/driver-steelseries.h', 'src/driver-sinowealth.c', 'src/driver-sinowealth-nubwo.c', 'src/driver-test.c', diff --git a/src/driver-steelseries.h b/src/driver-steelseries.h new file mode 100644 index 00000000..4230c88a --- /dev/null +++ b/src/driver-steelseries.h @@ -0,0 +1,5 @@ +#pragma once + +enum steelseries_quirk { + STEELSERIES_QURIK_NONE, +}; diff --git a/src/libratbag-data.c b/src/libratbag-data.c index 88f18a34..0e5b8a5f 100644 --- a/src/libratbag-data.c +++ b/src/libratbag-data.c @@ -30,6 +30,7 @@ #include #include +#include "driver-steelseries.h" #include "libratbag.h" #include "libratbag-private.h" #include "libratbag-data.h" @@ -84,6 +85,7 @@ struct data_steelseries { struct dpi_range *dpi_range; int macro_length; int mono_led; + enum steelseries_quirk quirk; int short_button; }; @@ -213,6 +215,7 @@ init_data_steelseries(struct ratbag *ratbag, data->steelseries.dpi_list = NULL; data->steelseries.dpi_range = NULL; data->steelseries.mono_led = 0; + data->steelseries.quirk = STEELSERIES_QURIK_NONE; data->steelseries.short_button = 0; num = g_key_file_get_integer(keyfile, group, "Buttons", &error); @@ -258,6 +261,10 @@ init_data_steelseries(struct ratbag *ratbag, if (error) g_error_free(error); + str = g_key_file_get_string(keyfile, group, "Quirk", NULL); + if (str) { + } + error = NULL; num = g_key_file_get_integer(keyfile, group, "ShortButton", &error); if (num > 0 || !error) @@ -688,6 +695,14 @@ ratbag_device_data_steelseries_get_mono_led(const struct ratbag_device_data *dat return data->steelseries.mono_led; } +enum steelseries_quirk +ratbag_device_data_steelseries_get_quirk(const struct ratbag_device_data *data) +{ + assert(data->drivertype == STEELSERIES); + + return data->steelseries.quirk; +} + int ratbag_device_data_steelseries_get_short_button(const struct ratbag_device_data *data) { diff --git a/src/libratbag-data.h b/src/libratbag-data.h index af57aa1b..06365237 100644 --- a/src/libratbag-data.h +++ b/src/libratbag-data.h @@ -121,5 +121,11 @@ ratbag_device_data_steelseries_get_macro_length(const struct ratbag_device_data int ratbag_device_data_steelseries_get_mono_led(const struct ratbag_device_data *data); +/** + * @return Quirk + */ +enum steelseries_quirk +ratbag_device_data_steelseries_get_quirk(const struct ratbag_device_data *data); + int ratbag_device_data_steelseries_get_short_button(const struct ratbag_device_data *data);