| summaryrefslogtreecommitdiff |
diff options
Diffstat (limited to 'src/device/virtual/virtual_device.c')
| -rw-r--r-- | src/device/virtual/virtual_device.c | 56 |
1 files changed, 33 insertions, 23 deletions
diff --git a/src/device/virtual/virtual_device.c b/src/device/virtual/virtual_device.c index 246a90b..6866d65 100644 --- a/src/device/virtual/virtual_device.c +++ b/src/device/virtual/virtual_device.c @@ -161,6 +161,8 @@ int relabsd_virtual_device_create_from RELABSD_S_DEBUG(RELABSD_DEBUG_PROGRAM_FLOW, "Creating virtual device..."); + device->already_timed_out = 0; + errno = 0; physical_device_file = open @@ -316,7 +318,7 @@ int relabsd_virtual_device_write_evdev_event void relabsd_virtual_device_set_axes_to_zero ( - struct relabsd_parameters parameters [const restrict static 1], + struct relabsd_parameters parameters [const static 1], const struct relabsd_virtual_device device [const restrict static 1] ) { @@ -324,13 +326,12 @@ void relabsd_virtual_device_set_axes_to_zero for (i = 0; i < RELABSD_AXIS_VALID_AXES_COUNT; ++i) { - if - ( - relabsd_axis_is_enabled - ( - relabsd_parameters_get_axis((enum relabsd_axis_name) i, parameters) - ) - ) + struct relabsd_axis * axis; + + axis = + relabsd_parameters_get_axis((enum relabsd_axis_name) i, parameters); + + if (relabsd_axis_is_enabled(axis)) { relabsd_virtual_device_write_evdev_event ( @@ -339,24 +340,33 @@ void relabsd_virtual_device_set_axes_to_zero relabsd_axis_name_to_evdev_abs((enum relabsd_axis_name) i), 0 ); + + axis->previous_value = 0; } } - /* - * Also send a SYN event when the axes have been modified. - */ - i = - libevdev_uinput_write_event(device->uinput_device, EV_SYN, SYN_REPORT, 0); + (void) relabsd_virtual_device_write_evdev_event + ( + device, + EV_SYN, + SYN_REPORT, + 0 + ); +} - if (i != 0) - { - RELABSD_ERROR - ( - "Unable to generate event" - " {type = EV_SYN; code = SYN_REPORT; value = 0}:" - " %s.", - strerror(-i) - ); - } +void relabsd_virtual_device_set_has_already_timed_out +( + const int val, + struct relabsd_virtual_device device [const restrict static 1] +) +{ + device->already_timed_out = val; } +int relabsd_virtual_device_has_already_timed_out +( + const struct relabsd_virtual_device device [const restrict static 1] +) +{ + return device->already_timed_out; +} |


