| summaryrefslogtreecommitdiff | 
diff options
| author | Nathanael Sensfelder <SpamShield0@MultiAgentSystems.org> | 2020-07-31 21:14:05 +0200 | 
|---|---|---|
| committer | Nathanael Sensfelder <SpamShield0@MultiAgentSystems.org> | 2020-07-31 21:14:05 +0200 | 
| commit | 038b03bbf519bdc44d1b8a3fce34901943c9bc7b (patch) | |
| tree | 6087a4fea8d78da04bd5c682b7520a3807351404 /src/device/virtual | |
| parent | 6ca39654bfc65eee45cb38cbc53ce838d1f656a0 (diff) | |
Implementing what is needed for rel axis renaming.
Diffstat (limited to 'src/device/virtual')
| -rw-r--r-- | src/device/virtual/virtual_device.c | 48 | 
1 files changed, 34 insertions, 14 deletions
| diff --git a/src/device/virtual/virtual_device.c b/src/device/virtual/virtual_device.c index 5ec06f5..0b92804 100644 --- a/src/device/virtual/virtual_device.c +++ b/src/device/virtual/virtual_device.c @@ -29,6 +29,7 @@ static void replace_rel_axes  )  {     int i; +     for (i = 0; i < RELABSD_AXIS_VALID_AXES_COUNT; i++)     {        enum relabsd_axis_name axis_name; @@ -37,7 +38,18 @@ static void replace_rel_axes        axis_name = ((enum relabsd_axis_name) i);        axis = relabsd_parameters_get_axis(axis_name, parameters); -      if (relabsd_axis_is_enabled(axis)) +      axis_name = relabsd_axis_get_convert_to(axis); + +      if (axis_name == RELABSD_UNKNOWN) +      { +         axis_name = ((enum relabsd_axis_name) i); +      } + +      if +      ( +         relabsd_axis_is_enabled(axis) +         && !relabsd_axis_has_flag(axis, RELABSD_NOT_ABS) +      )        {           (void) relabsd_virtual_device_update_axis_absinfo           ( @@ -160,20 +172,23 @@ int relabsd_virtual_device_update_axis_absinfo      * Might want to add an option to see if people want to use the tool to      * alter existing EV_ABS axes instead of converting from EV_REL to EV_ABS.      */ -   (void) libevdev_disable_event_code -   ( -      device->libevdev, -      EV_REL, -      relabsd_axis_name_to_evdev_rel(axis_name) -   ); +   if (!relabsd_axis_has_flag(axis, RELABSD_NOT_ABS)) +   { +      (void) libevdev_disable_event_code +      ( +         device->libevdev, +         EV_REL, +         relabsd_axis_name_to_evdev_rel(axis_name) +      ); -   (void) libevdev_enable_event_code -   ( -      device->libevdev, -      EV_ABS, -      relabsd_axis_name_to_evdev_abs(target_axis_name), -      &absinfo -   ); +      (void) libevdev_enable_event_code +      ( +         device->libevdev, +         EV_ABS, +         relabsd_axis_name_to_evdev_abs(target_axis_name), +         &absinfo +      ); +   }     return 0;  } @@ -392,6 +407,11 @@ void relabsd_virtual_device_set_axes_to_zero        axis =           relabsd_parameters_get_axis((enum relabsd_axis_name) i, parameters); +      if (relabsd_axis_has_flag(axis, RELABSD_NOT_ABS)) +      { +         continue; +      } +        if (relabsd_axis_is_enabled(axis))        {           relabsd_virtual_device_write_evdev_event | 


