Commit Graph

131 Commits

Author SHA1 Message Date
pixl
c1423e345e
Support HiresScroll gesture remapping
This commit allows HiresScroll (when target is true) to map the up and
down events to gestures that support it (i.e.AxisGesture/
IntervalGesture). This check is done by checking if wheelCompatibility()
is true.

This also allows hires scroll events to send low-res scroll events as
well.

TODO: Fix bug w/ Chromium (and some other programs?) where mapping
scroll wheel to REL_WHEEL_HI_RES will cause the program to skip events
occassionally. I have literally been stuck on this bug for a week and I
still don't know what causes it. evtest shows proper scroll events,
Firefox works fine, and libinput test-gui reports proper scrolling.
2020-08-21 16:05:20 -04:00
pixl
6ea65601f3
Fix typo in HiresScroll 2020-08-02 02:34:58 -04:00
pixl
34b8047360
Refer to receiver from receiver devices 2020-07-20 00:25:04 -04:00
pixl
1056dfa032
Don't use DeviceStatus on unifying devices 2020-07-20 00:07:35 -04:00
pixl
78c0788be6
Fix bad removeDevice map check 2020-07-19 23:48:24 -04:00
pixl
168c28d1e4
Wait for device to initialize before addDevice
For some reason, hidpp20 device names were badly set (e.g.
'Wireless Mouse MWireless' instead of 'Wireless Mouse MX Master').
Adding a 100ms delay to addDevice seems to have fixed it.
2020-07-19 01:35:26 -04:00
pixl
9607c32520
Fix issue where I/O would hang
RawDevice will now interruptRead() on pushing an event to the I/O
queue. This will prevent the listener from waiting for an event to
be received before handling an I/O request.
2020-07-19 01:22:56 -04:00
pixl
cfcdca00a0
Add DeviceStatus device feature
Should fix bug #66.
2020-07-18 22:55:51 -04:00
pixl
1551c4ded0
Add hidpp20 WirelessDeviceStatus feature 2020-07-18 22:46:47 -04:00
pixl
82ff2bdf38
Create features::UnsupportedFeature exception
Creates an abstraction layer for hidpp10/hidpp20/etc. UnsupportedFeature
exceptions.
2020-07-18 21:15:39 -04:00
pixl
0928b39e03
Add ChangeHostAction support 2020-07-15 17:43:24 -04:00
pixl
d59daf86e2
Add ChangeHost hidpp20 feature 2020-07-15 15:18:28 -04:00
pixl
f51ba0f681
Remove unused assert warnings when building Release 2020-07-15 13:27:21 -04:00
pixl
56d10898fb
Print CIDs on device connect 2020-07-15 00:26:39 -04:00
pixl
018bdb83ad
Add ability to ignore devices 2020-07-14 16:21:14 -04:00
pixl
497ec07bdf
Properly set PID on dummy connect events 2020-07-14 16:20:58 -04:00
pixl
89b9829b84
Fix bug where GetPairingInfo would be offset by -1. 2020-07-14 16:20:06 -04:00
pixl
d3d4a2755a
Apply clang-tidy inspections 2020-07-14 00:12:40 -04:00
pixl
937225b6f2
TODO cleanup: Remove error check todo in DeviceManager 2020-07-13 22:44:22 -04:00
pixl
825967b140
TODO cleanup: Add PowerSwitchLocation enum 2020-07-13 22:42:23 -04:00
pixl
944a6419b4
Remove unused DeviceFinder.cpp
How'd that get in here anyways?
2020-07-13 22:06:15 -04:00
pixl
3659ec25fb
Add additional DJ report descriptor
Should fix invalid DJ reports in #100.
2020-07-13 22:04:50 -04:00
pixl
a2718d9023
Fix undetected CIDs 2020-07-13 15:29:40 -04:00
pixl
0f60c3896c
Fix usbhid-dump SIGSEGV on #100 2020-07-13 15:12:28 -04:00
pixl
dde2993223
Fix crashes when logid starts as root
If logid scans every device, it will either SIGSEGV or not work at all.
This commit should fix bug #100.
2020-07-13 01:14:15 -04:00
pixl
8f073d66c3
Remove unused dependencies 2020-07-12 16:21:26 -04:00
pixl
4ce76f5927
Listen for events on receiver device on timeout
Previously, if a receiver device didn't respond during the initial scan,
logid would not recognize it until it sent a wakeup/connect event.

This makes it so if the device times out, logid will listen for the next
event from the device and try detecting it. (e.g. shaking the mouse will
make it become detected)
2020-07-12 16:16:50 -04:00
pixl
1a056a1ecf
Add mutex for events on Receiver 2020-07-12 16:16:50 -04:00
pixl
f7638b0905
Properly output TimeoutError
Fixed issue where receiver devices aren't detected (hopefully).
2020-07-12 16:16:50 -04:00
pixl
214bbbecbc
Remove unused files 2020-07-12 16:16:47 -04:00
pixl
b00b4645e4
Add ChangeDPI action 2020-07-12 16:16:25 -04:00
pixl
949a1ee283
Add CycleDPI action 2020-07-12 16:16:24 -04:00
pixl
21b7455919
Add NullAction support 2020-07-12 16:16:24 -04:00
pixl
4117d71c9d
Add NoPress gesture mode 2020-07-12 16:16:24 -04:00
pixl
10bb10e5c5
Add Axis gesture 2020-07-12 16:16:24 -04:00
pixl
ecfd03fd21
Add OnInterval/OnFewPixels gesture 2020-07-12 16:16:24 -04:00
pixl
de8e453bd3
Fix deadlock issue
RawDevice would deadlock in some situations because I/O occured while
the listener was turning on. This also seems to have fixed logid
sometimes not detecting devices on receivers.
2020-07-12 16:16:24 -04:00
pixl
0fbeb1e3c9
Add Gesture support
Only supports OnRelease right now. Also, some bugs were spotted while
writing this:

 - Sometimes deadlocks on startup (cause unknown)
 - Sometimes valid CIDs will be unknown (bug may have been fixed?)
2020-07-12 16:16:24 -04:00
pixl
41049deb35
Fix compiler warnings 2020-07-12 16:16:24 -04:00
pixl
d478ef3309
Add error check for bad action type 2020-07-12 16:16:24 -04:00
pixl
1f3fa53721
Add workqueue system 2020-07-12 16:16:24 -04:00
pixl
02d361b541
Add ToggleHiresScroll action 2020-07-12 16:16:24 -04:00
pixl
77f4240ec7
Add ToggleSmartShift action 2020-07-12 16:16:24 -04:00
pixl
bc8f1a983a
Add configurable I/O timeout 2020-07-12 16:16:24 -04:00
pixl
055d136b09
Add HiresScroll device feature 2020-07-12 16:16:24 -04:00
pixl
d6f5c35983
Add HiresScroll hidpp20 feature 2020-07-12 16:16:24 -04:00
pixl
71b0ddd279
Add reset mechanism to logid::Device 2020-07-12 16:16:24 -04:00
pixl
5bf5dc75b5
Implement RemapButton feature
Many changes were made here, too many to list here.
2020-07-12 16:16:22 -04:00
pixl
0b87d3c664
Fixed bug: odd devices would fail Root GetFeature
Some devices throw an hidpp20::Error InvalidFeatureIndex when Root
GetFeature is called with some features (e.g. 0x1b04) as the parameter.

Since Root is a required feature in the HID++ 2.0 protocol, this error
can safely be ignored and treated as an UnsupportedFeature.

Fixes bug in #20 where the Logitech PRO headset would not work.
2020-07-12 16:15:48 -04:00
pixl
3129cda581
Add hidpp20 ReprogControls support 2020-07-12 16:15:48 -04:00