tools: add rotation support to debug-events and debug-gui

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
This commit is contained in:
Peter Hutterer 2023-04-18 17:05:41 +10:00
parent a328ada6ef
commit bee70901ec
4 changed files with 19 additions and 1 deletions

View file

@ -119,6 +119,9 @@ This only applies to the custom profile.
.TP 8 .TP 8
.B \-\-set\-tap\-map=[lrm|lmr] .B \-\-set\-tap\-map=[lrm|lmr]
Set button mapping for tapping Set button mapping for tapping
.TP 8
.B \-\-set\-rotation\-angle=<degrees>
Set the rotation angle in degrees (0 to 360).
.SH NOTES .SH NOTES
.PP .PP
Events shown by this tool may not correspond to the events seen by a Events shown by this tool may not correspond to the events seen by a

View file

@ -315,6 +315,14 @@ tools_parse_option(int option,
return 1; return 1;
} }
break; break;
case OPT_ROTATION_ANGLE:
if (!optarg)
return 1;
if (!safe_atou(optarg, &options->angle)) {
fprintf(stderr, "Invalid --set-rotation-angle value\n");
return 1;
}
} }
return 0; return 0;
} }
@ -520,6 +528,9 @@ tools_device_apply_config(struct libinput_device *device,
libinput_device_config_accel_apply(device, config); libinput_device_config_accel_apply(device, config);
libinput_config_accel_destroy(config); libinput_config_accel_destroy(config);
} }
if (options->angle != 0)
libinput_device_config_rotation_set_angle(device, options->angle % 360);
} }
static char* static char*

View file

@ -62,6 +62,7 @@ enum configuration_options {
OPT_CUSTOM_POINTS, OPT_CUSTOM_POINTS,
OPT_CUSTOM_STEP, OPT_CUSTOM_STEP,
OPT_CUSTOM_TYPE, OPT_CUSTOM_TYPE,
OPT_ROTATION_ANGLE,
}; };
#define CONFIGURATION_OPTIONS \ #define CONFIGURATION_OPTIONS \
@ -93,7 +94,8 @@ enum configuration_options {
{ "apply-to", required_argument, 0, OPT_APPLY_TO },\ { "apply-to", required_argument, 0, OPT_APPLY_TO },\
{ "set-custom-points", required_argument, 0, OPT_CUSTOM_POINTS },\ { "set-custom-points", required_argument, 0, OPT_CUSTOM_POINTS },\
{ "set-custom-step", required_argument, 0, OPT_CUSTOM_STEP },\ { "set-custom-step", required_argument, 0, OPT_CUSTOM_STEP },\
{ "set-custom-type", required_argument, 0, OPT_CUSTOM_TYPE } { "set-custom-type", required_argument, 0, OPT_CUSTOM_TYPE },\
{ "set-rotation-angle", required_argument, 0, OPT_ROTATION_ANGLE }
enum tools_backend { enum tools_backend {
BACKEND_NONE, BACKEND_NONE,
@ -124,6 +126,7 @@ struct tools_options {
double custom_step; double custom_step;
size_t custom_npoints; size_t custom_npoints;
double *custom_points; double *custom_points;
unsigned int angle;
}; };
void tools_init_options(struct tools_options *options); void tools_init_options(struct tools_options *options);

View file

@ -222,6 +222,7 @@ options = {
# options with a range (and increment) # options with a range (and increment)
"ranges": { "ranges": {
"set-speed": (-1.0, +1.0, 0.1), "set-speed": (-1.0, +1.0, 0.1),
"set-rotation": (0, 360, 10),
}, },
} }