kurikaesu / userspace-tablet-driver-gui

Linux GUI for Kuri's userspace tablet drivers. Supports non-wacom (XP-Pen, Huion, Gaomon) graphics tablets and pen displays
GNU General Public License v3.0
28 stars 7 forks source link

Both rollers not supported for XP-Pen Artist Pro 16 #13

Open ThatOneCalculator opened 2 years ago

ThatOneCalculator commented 2 years ago

There's two problems

  1. The outer roller settings do not show up, despite being present in the code (see https://github.com/kurikaesu/userspace-tablet-driver-daemon/issues/58#issuecomment-1242819753)
  2. Inner roller settings are not present in the code (see https://github.com/kurikaesu/userspace-tablet-driver-daemon/issues/59)
ThatOneCalculator commented 2 years ago

https://github.com/kurikaesu/userspace-tablet-driver-gui/blob/37ec66b45e44476ad52dfaabb2ce4a9f0732d454/src/main/kotlin/dev/villanueva/userland_utility/products/DriverCodeIDs.kt#L29-L30

I wonder how I could determine the correct codes for the inner wheel as well :thinking:

kurikaesu commented 2 years ago

Its not actually implemented in the driver code yet. The code exists in the GUI because other dual dial devices have them implemented.

The Artist Pro 16 and the Innovator 16 sadly do not have these implemented yet.

If you'd like to implement it you should refer to the implementation of the Art Deco Pro which is also a dual wheel design:

https://github.com/kurikaesu/userspace-tablet-driver-daemon/blob/main/src/deco_pro.cpp#L59-L62

https://github.com/kurikaesu/userspace-tablet-driver-daemon/blob/main/src/deco_pro.cpp#L102-L116

The Deco Pro has a mode switcher to switch between roller vs mouse mode: https://github.com/kurikaesu/userspace-tablet-driver-gui/blob/main/src/main/kotlin/dev/villanueva/userland_utility/products/xppen/deco_pro/DecoProController.kt#L29-L43

I don't know if the Artist Pro 16 also needs this bit of code to get it working but you can try and implement this as is. If this doesn't work, then you'll have to do some USB packet sniffing with the official drivers to find out what signal is being sent to switch it between modes.