commit 418e38f5b5abd823dcc4d68f1009ea48fb936324 Author: Peter Hutterer Date: Mon Apr 15 14:56:16 2024 +1000 xf86-input-wacom 1.2.2 Signed-off-by: Peter Hutterer commit d55788137c84594754f1d46e4828fa3b8d773368 Author: Peter Hutterer Date: Wed Apr 10 11:46:10 2024 +1000 Fix wcmForeachDevice check in wcmMatchDevice wcmForeachDevice returns 0 for no matches, a negative errno or the greater-than-zero number of matches. In wcmMatchDevice we return either 0 or 1 as matchDevice() stops the foreach once the first match is encountered. Fixes: d5ca999f35c7 ("Add a helper function to iterate over local devices to the driver layer") Closes #342 commit f4241514b725377e03ad55b4dbe8750cd3e4e5f4 Author: Peter Hutterer Date: Mon Mar 11 10:43:17 2024 +1000 release.sh: Drop the ancient x"foo" != x comparisons These haven't been needed in decades. Where a string may be empty use quotes, otherwise let's switch string comparisons to just that. And where we check for empty/nonempty use -z/-n. commit 45e01b7506e075cdb61f514aea065ab28f44e090 Author: Peter Hutterer Date: Mon Mar 11 10:37:35 2024 +1000 release.sh: drop --force and --moduleset No longer hooked into anything so let's not pretend we have it. commit 29e27f27401fc2a18f8feabc09959cae38cc11ab Author: Peter Hutterer Date: Mon Mar 11 10:36:34 2024 +1000 release.sh: default to '.' if no module was given Might as well since we only ever release one module at a time with this script. commit 564e034166141976ba9e88de098043bf6bc73046 Author: Peter Hutterer Date: Mon Mar 11 10:33:17 2024 +1000 release.sh: update to take a --token value (#340) Apparently the old way no longer works, so let's update with a copy/paste from the examples. Intentional switch to use --token because that's how you should be doing releases anyway - with a temporary token that can be revoked after the release is complete (and that also encodes the username). https://docs.github.com/en/rest/releases/releases?apiVersion=2022-11-28#create-a-release commit d73eb2ee78670cc2b1d7cc3861f466867ccba479 Author: Peter Hutterer Date: Mon Mar 4 09:33:07 2024 +1000 wacom 1.2.1 Signed-off-by: Peter Hutterer commit 3ce73a61a17ca1cbb222c67c0c803a7e40d0b993 Author: Peter Hutterer Date: Tue Feb 20 10:52:25 2024 +1000 meson.build: allow disabling the xsetwacom build xsetwacom pulls in the xorgproto and Xlib dependencies, so let's make this optional for the (niche) case of where we really only want the driver built. Since this is a rather niche case let's make it a boolean true/false option instead of a feature with "auto". commit 6f8ed055c655fdd3a0f91870817864ecd81c4d8a Author: Peter Hutterer Date: Thu Feb 29 15:04:18 2024 +1000 CI: bump our containers to use Ubuntu 22.04 commit f963825e9a2ff531ca16e36408a42c8e2b9e48c3 Author: Peter Hutterer Date: Fri Dec 1 09:16:21 2023 +1000 wcmUSB: fix undefined behavior for bit-shifting Automated test runs have detected the following issue while running UBSan checks: ~~~ ../src/wcmUSB.c:1372:11: runtime error: left shift of 1 by 31 places cannot be represented in type 'int' #0 0x7f0444bcbd8c in mod_buttons ../src/wcmUSB.c:1372 #1 0x7f0444bd7f26 in test_mod_buttons ../src/wcmUSB.c:2090 #2 0x7f0444bfcea7 in wcm_run_tests ../test/wacom-test-suite.c:46 #3 0x56204d77b405 in main ../test/wacom-tests.c:44 #4 0x7f0448625082 in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x24082) #5 0x56204d77b1cd in _start (/home/runner/work/xf86-input-wacom/xf86-input-wacom/builddir/wacom-tests+0x11cd) SUMMARY: UndefinedBehaviorSanitizer: undefined-behavior ../src/wcmUSB.c:1372:11 in The default type of a literal `1` is `int` and thus a leftshift of 31 is not permitted. Switch it to `1u` and thus `unsigned int` for Button 31 which is the max button we support (if zero-indexed). Link: https://github.com/linuxwacom/xf86-input-wacom/actions/runs/7049012015/job/19186502078 Signed-off-by: Peter Hutterer commit 73f66d42d72c2c758c09acab84b13dab065886d3 Author: Peter Hutterer Date: Fri Dec 1 09:14:11 2023 +1000 Revert "wcmUSB: Correct bounds check of maximum button number" This fixed the wrong issue, the undefined behavior was caused by (1 << btn) defaulting to int rather than unsigned int. See the follow-up commit for a fix. This reverts commit bf61b3e22b2bb25dc9aed76103488eb7ebc47bb5. commit bf61b3e22b2bb25dc9aed76103488eb7ebc47bb5 Author: Jason Gerecke Date: Thu Nov 30 08:02:08 2023 -0800 wcmUSB: Correct bounds check of maximum button number Automated test runs have detected the following issue while running UBSan checks: ~~~ ../src/wcmUSB.c:1372:11: runtime error: left shift of 1 by 31 places cannot be represented in type 'int' #0 0x7f0444bcbd8c in mod_buttons ../src/wcmUSB.c:1372 #1 0x7f0444bd7f26 in test_mod_buttons ../src/wcmUSB.c:2090 #2 0x7f0444bfcea7 in wcm_run_tests ../test/wacom-test-suite.c:46 #3 0x56204d77b405 in main ../test/wacom-tests.c:44 #4 0x7f0448625082 in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x24082) #5 0x56204d77b1cd in _start (/home/runner/work/xf86-input-wacom/xf86-input-wacom/builddir/wacom-tests+0x11cd) SUMMARY: UndefinedBehaviorSanitizer: undefined-behavior ../src/wcmUSB.c:1372:11 in ~~~ While the faulty line has some protection against an excessively-large value of 'btn', the bounds are incorrect. A button number of 32 would be allowed by the existing check but would also lead to undefined behavior. This commit modifies the bounds to properly fit the condition. Link: https://github.com/linuxwacom/xf86-input-wacom/actions/runs/7049012015/job/19186502078 Signed-off-by: Jason Gerecke commit dbb8ddce94b7bfe416dd88b6ea286538940d9d38 Author: Jason Gerecke Date: Thu Nov 30 07:47:43 2023 -0800 github: Minimize permissions granted to automated workflows / jobs Jobs that use the GITHUB_TOKEN to perform sensitive actions on behalf of a real user may be granted a range of permissions. Instead of granting blanket permissions to read and write "all" APIs, we should really limit the permissions what any individual workflow or job can do. This commit sets the default permissions for each workflow to "contents: read", which allows jobs to only read from the repository. Link: https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#jobsjob_idpermissions Signed-off-by: Jason Gerecke commit 3d3b474a750106f8db7c47d0088209f8ec3ae1c4 Author: Peter Hutterer Date: Tue Nov 14 14:02:48 2023 +1000 Add a pressurecurve debugging tool This tool takes (one or multiple) sets of 4 coordinate that represent the second and third point for our pressure curve (first and fourth points are hardcoded to 0/0 and 1/1 like the driver does) It spits out gnuplot-compatible lines that can be printed for visual debugging. Usage to print the GNOME default curves: ./build/pressurecurve \ 0 .75 .25 1 \ 0 .5 .5 1 \ 0 .25 .75 1 \ 0 0 1 1 \ .25 0 1 .75 \ .5 0 1 .5 \ .75 0 1 .25 > gnuplot.data And that gnuplot data can then be printed with: #!/usr/bin/gnuplot set terminal qt persist set style data lines set xrange [0:1] set yrange [0:1] plot \ "gnuplot.data" using 1:2 title " 0, .75, .25, 1", \ "gnuplot.data" using 1:3 title " 0, .50, .50, 1", \ "gnuplot.data" using 1:4 title " 0, .25, .75, 1", \ "gnuplot.data" using 1:5 title " 0, 0, 1, 1", \ "gnuplot.data" using 1:6 title ".25, 0, 1, .75", \ "gnuplot.data" using 1:7 title ".50, 0, 1, .50", \ "gnuplot.data" using 1:8 title ".75, 0, 1, .25" commit 2612afb19e37fed69f3aca534d213a0d7e71b595 Author: Peter Hutterer Date: Tue Nov 14 12:31:50 2023 +1000 Move the pressurecurve calculation into a separate file There's nothing driver-specific about this and it allows us to test it separately or write tools to test it. commit 55a10e392f7337da0dfcc19a60f816aa7645f2df Author: Peter Hutterer Date: Mon May 29 11:15:45 2023 +1000 Add option SmoothPanscrollingEnabled This is a backwards-compatibility option similar to the Pressure2K option. GDK2 applications are effectively limited to 7 axes (value of GDK_AXES_LAST in GDK2) and adding smooth panscrolling gives our device 8 axes total. This can cause issues when the driver, GDK and the application don't agree on the number of axes in the device. This is an application/GDK bug but as for the Pressure2K option we expect there to be applications that cannot be updated easily. To work around this, provide a driver option to disable this new feature altogether and effectively return to 6 axes for the pen device. This is a partial revert of fe923e927a "Implement smooth panscrolling" for the implementation. Minor changes though, the implementation now relies more on local variables than pointers. Signed-off-by: Peter Hutterer commit 815edf68875193d254f12dbf7e0f944dccbbd6c1 Author: Peter Hutterer Date: Thu Jun 15 13:10:06 2023 +1000 test: parametrize the scroll test for vert + horiz scrolling Signed-off-by: Peter Hutterer commit 692aa3b04916af3aad7b84131e1475d141f6d899 Author: Peter Hutterer Date: Mon May 29 11:21:23 2023 +1000 x11: don't post motion/proximity events with an empty valuator mask After converting from our internal axis types to the x11 valuators we may (theoretically) be left with an empty valuator mask. Let's not post events in that case. This is a theoretical issue for now. Signed-off-by: Peter Hutterer commit d0e1fee6bbdadfd8aa76a46e87a29fb689817fc3 Author: Peter Hutterer Date: Mon May 29 11:15:51 2023 +1000 Remove some unnecessary empty lines Signed-off-by: Peter Hutterer commit ca34daadc486217cfe5463237b42035146339cff Author: Peter Hutterer Date: Mon May 29 11:10:43 2023 +1000 Remove a confusing comment We clip to 6 axis here, so having a comment that lists 8 axes is not overly useful. Signed-off-by: Peter Hutterer commit 3bde61c986ca7c1c373edd5ba4844ca6550fdbb8 Author: Peter Hutterer Date: Tue Jun 6 14:30:09 2023 +1000 release.sh: drop support for modfiles and module sets Leftover from the xorg release.sh script, no longer needed here since we only ever release one module at a time. Signed-off-by: Peter Hutterer commit 991660b38caf40aeaa8dd6e59c6b554b12c761da Author: Peter Hutterer Date: Mon May 29 09:38:14 2023 +1000 man: remove some unnecessary indent All our options were indented by an extra 4 units, unnecessary since we use TP for all of those anyway and get a highlight. Signed-off-by: Peter Hutterer commit 8f655fe3faabc4a44a32504d0ef14fc961f803fb Author: Peter Hutterer Date: Thu Apr 6 11:17:09 2023 +1000 wacom 1.2.0 Signed-off-by: Peter Hutterer commit 0bf20b63f35385893f58bcbacbc3d78dc9dcf207 Author: Peter Hutterer Date: Wed Dec 7 08:46:32 2022 +1000 CI: update some actions to v3 Node 12 is deprecated so let's switch to the newer version https://github.blog/changelog/2022-09-22-github-actions-all-actions-will-begin-running-on-node16-instead-of-node12/ Signed-off-by: Peter Hutterer commit fe923e927a8ddf4d2e82ef4757c885b06d47fa03 Author: Greenscreener Date: Sun Jul 24 15:02:46 2022 +0200 Implement smooth panscrolling commit 2a9e5953f89a7085786326e07edcb53ad821aace Author: Greenscreener Date: Sun Jul 24 14:48:29 2022 +0200 Replace valuator array with valuator mask in convertAxes ValuatorMask has been around since xserver 1.10, released in 2011. commit 6eefde01f04454c8b0df1dedd2bbf77086206c09 Author: Greenscreener Date: Sun Jul 24 14:41:50 2022 +0200 Fixing discrepancy in naxes See https://github.com/linuxwacom/xf86-input-wacom/pull/222#discussion_r897908702 commit 66f41d6225b34ca02a4a70d2a101e82c561c51d7 Author: Ping Cheng Date: Wed Nov 2 22:09:36 2022 -0700 Assign Wacom specific keys only to Wacom devices Most extra features are only for Wacom 0x56a devices. Make them specific so we don't abuse other devices ;). Signed-off-by: Ping Cheng commit 61b7d9061b53f79b5a37a463269bb9c8d45dbe14 Author: Ping Cheng Date: Wed Nov 2 21:55:21 2022 -0700 Move wcmDeviceTypeKeys to wcmConfig.c There is only one file that needs wcmDeviceTypeKeys. Move it and make it into a static routine to simply the logic. Also, there is no value to return from this routine. It sets the types and keys to the common structure. Signed-off-by: Ping Cheng commit 829a2d996f1a8d8a735c0eb7340797959de03ca8 Author: Peter Hutterer Date: Wed Aug 31 11:56:16 2022 +1000 gwacom: add support for special runtime options This is a hack to make it possible to test options that cannot be set through the xorg.conf, e.g button actions that are set through the X-specific properties interface. Expose a new function for "runtime options", though the actual option implementation needs to be handled in the gwacom wrapper code - i.e. only options explicitly supported can work. The currently supported option is "PanButton" which maps the given button to the PanScroll action. commit 8e4a77bc28970d23da80838c195550cad4ef8e05 Author: Peter Hutterer Date: Thu Sep 1 15:31:47 2022 +1000 x11: de-duplicate the valuator number assignment Let's add a helper function for this so we can't mess this up. Signed-off-by: Peter Hutterer commit 1aaa36753c1008733b62cea5f60088ddbddff1e8 Author: Peter Hutterer Date: Wed Aug 31 11:35:53 2022 +1000 Remove useless Wacom action name setting Copy/paste error from when this as lifted from the properties code to the core driver code, in the commits leading up to 5326fd126042684338dfb662f48ba2e27be7fa5a. Signed-off-by: Peter Hutterer commit 23c46706f12982c3baaa03b3b8f53ea72679a136 Author: Ping Cheng Date: Fri Aug 26 15:02:16 2022 -0700 Bring two finger right-click function back Patch 65b7c37 fixed spurious right-clicks by setting wcmGestureMode back to GESTURE_CANCEL_MODE immediately when there is less than two fingers on the tablet, if the wcmGestureMode was in SCROLL_MODE or ZOOM_MODE. However, it narrowed wcmFingerTapToClick() rotine to LAG_MODE, which removed the opportunity for the routine to executed. Revert that. Fixes: https://github.com/linuxwacom/xf86-input-wacom/commit/65b7c37f0fac5cdd03ff7f977124148d0bdf4be8 (Prevent spurious right-clicks at the end of very short scroll and zoom gestures) Signed-off-by: Ping Cheng commit 18ed7697e3049943e3bfef46af6c647b2d93ed8f Author: Ping Cheng Date: Tue Jul 19 14:01:35 2022 -0700 Don't report error when waiting for serial number For some devices, such as AES pens, serial number is 0 when tool comes into proximity. That means serial number was not ready. It is a known state. All we needed is to wait for the non-zero serial number. Don't report it through W_ERROR. Signed-off-by: Ping Cheng commit ad11a9da15d4cbef62f4ec1c19a6279ef21710f3 Author: Peter Hutterer Date: Mon Jul 25 12:30:14 2022 +1000 Remove a comment referring to the wrong function The function moved away in e4ea35d56aec59a5de0ef3d9282fdd796d89e6ad, let's drop this comment. Signed-off-by: Peter Hutterer commit f2df07587e5ff89a6c5b2246bc468211c31cf43a Author: Peter Hutterer Date: Thu Jul 14 13:45:32 2022 +1000 wacom 1.1.0 Signed-off-by: Peter Hutterer commit e71404e3d500762ea25e40ec7d0c4a34d3978762 Author: Peter Hutterer Date: Thu Jul 14 13:57:37 2022 +1000 meson.build: fixate the GIR namespace version to 1.0 This is more like a soname version than a project version - keeping it in step with the driver version means we also have to update each callsite. But it looks like we'll be stable for this for a while, so let's just fixate it. Signed-off-by: Peter Hutterer commit f53fbcafc277bb750e0584584bf58d1d3d8353df Author: Peter Hutterer Date: Mon Jun 13 11:19:36 2022 +1000 gitignore: add __pycache__ Might as well not accidentally commit this one Signed-off-by: Peter Hutterer commit 0dc0b101bf49731cdb7946835bd3bd2045d036d8 Author: Peter Hutterer Date: Fri Jun 10 21:00:26 2022 +1000 test: add a test for the artpen/airbrush wheel updates This was slightly too complicated to add to the existing test_axis_updates test, so that test is duplicated here, only testing what we see as "wheel" axis in the driver. The test is run for all three pens Because the X driver unconditionally sets ds->abswheel from the kernel events, we must take care only to send the kernel axis that matters for our current tool - otherwise we overwrite ds->abswheel with whichever one of ABS_Z or ABS_WHEEL is sent last in the evdev frame. In other words, we cannot test that artpen ignores ABS_WHEEL and airbrush ignores ABS_Z because ... they don't. For the generic pen that doesn't matter since we're supposed to ignore both axes anyway. Signed-off-by: Peter Hutterer Reviewed-by: Ping Cheng Tested-by: Ping Cheng commit be3471293363b518eb07a1eb041fb3e548de1bef Author: Peter Hutterer Date: Mon Jun 13 10:08:08 2022 +1000 meson: default to pytest-3 first, then pytest At least Ubuntu 20.04 has pytest point at the Python 2.x compatible version, resulting in syntax errors when trying to parse our Python 3 code files. So let's check pytest-3 first since that is the compatible version and fall back to normal pytest only where it's missing. Fixes #272 Signed-off-by: Peter Hutterer commit 15802a3871d15fcbd1a510b85715e633b11e078a Author: Greenscreener Date: Sat Jun 11 14:58:55 2022 +0200 Added vim modelines to python files. commit d5b61195553094f316015facb0d7a7ac2954d1b2 Author: Peter Hutterer Date: Wed Jun 8 14:44:05 2022 +1000 test: raise an InputError with better info if modules are missing The tests need to run as root (for uinput/evdev) so pip-installing a package as user gets past the build check but then fails at runtime. Let's make this bit easier to debug. Signed-off-by: Peter Hutterer commit c44522c1f2c4487e1629435aa45b545c1d0279e9 Author: Peter Hutterer Date: Wed Jun 8 14:43:30 2022 +1000 meson.build: default to verbose pytest logging Might as well collect as much data as we can get Signed-off-by: Peter Hutterer commit 073556d13e3937735983fb32e2704a5aaa51e435 Author: Peter Hutterer Date: Tue May 24 11:07:37 2022 -0700 test: Ensure standard pen does not report the "wheel" axis The event data has a mask field that specifies which fields are actually present (zero may be a valid value for an axis after all). Let's check that mask for each event and ensure that if the pen supports the axis, the axis is also present in the event. We still send kernel events for all axes to ensure the unsupported ones are correctly ignored by the driver. This allows us to parametrize the test with different stylus types and re-use the rest. Here we add a standard Cintiq pen and make sure the wheel axis is never set. Signed-off-by: Peter Hutterer commit 817e77f5a7502cc9258d1e41e5f2863a498d104f Author: Aaron Armstrong Skomra Date: Tue May 24 11:20:38 2022 -0700 Don't report "wheel" valuator unless it exists on tool Fixes #199 Prior to this commit we operated as if all non Art Pens needed this valuator normalized. Signed-off-by: Aaron Skomra commit 6fd9efcd269e7bd879c62044d176007df8d659d8 Author: Peter Hutterer Date: Mon May 23 13:43:30 2022 +1000 test: ignore test devices, or real devices during test suite runs Set an option on all our created uinput devices, and an environment variable when we're running the test suite. If both of these are set we process the device, otherwise ignore the device during PreInit. This stops the driver picking up events from test suite runs (potentially clicking around on the desktop) and it stops the test suite from false positives by locally connected devices. Signed-off-by: Peter Hutterer commit 00473a30a0c5a6558a3c0491fc5808baaf711702 Author: Peter Hutterer Date: Mon May 23 13:24:13 2022 +1000 test: fix a typo Signed-off-by: Peter Hutterer commit fd10a749f93e9bf7458c3f039fae61802234b8d4 Author: Joshua Date: Sun May 22 18:35:21 2022 -0700 Fix xsetwacom returning 0 even when there's an error (#266) xsetwacom was only able to return a failure on a few scenarios but would return a success even when the command would encounter failures. List, set, get, and some other functions within those all had the potential to fail and would print an error message when said failures occurred but would improperly return a success. This commit adds the ability to properly report a success(0) or a failure(-1) to the relevant functions including all get and set methods that can be called by get_func and set_func. Link: https://github.com/linuxwacom/xf86-input-wacom/issues/126 Signed-off-by: Joshua Dickens commit bcd984bdc353f2b4524debe36a11f58d0e81f346 Author: Peter Hutterer Date: Thu May 5 10:45:47 2022 +1000 test: add a test for the artpen rotation The artpen has a physical rotation property, sent by the kernel driver as ABS_Z (historical reasons). In the driver this is mapped to the ds->abswheel state because this axis is shared with the airbrush wheel - both are sent through the same XI valuator (historical reasons, as usual). We can rather easily test this by ensuring we have an artpen device id and then send something through ABS_Z, that should update the wheel axis. Signed-off-by: Peter Hutterer Reviewed-by: Aaron Skomra commit 1f21c8c7fca37c15e0d8a6f7c7f89519c5947829 Author: Peter Hutterer Date: Thu May 5 09:49:51 2022 +1000 test: ensure a device prox out after our events This avoids a potential stuck button by leaving the tablet in proximity. Shouldn't happen since removing the device should release all buttons but... Signed-off-by: Peter Hutterer Reviewed-by: Aaron Skomra commit 2f1a7ae905886fb1441d45b97c8e9952a1c3a878 Author: Peter Hutterer Date: Thu May 5 09:45:32 2022 +1000 test: swap the axis checks for an iterator-based approach This ensures we get a StopIteration exception if we don't have the events we expect - previously we'd get a false positive on this test if we had no motion events after the first one. Signed-off-by: Peter Hutterer Reviewed-by: Aaron Skomra commit 4d3bbc84e026ad4f7513d54432c26ae49b2fdd4d Author: Peter Hutterer Date: Thu May 5 09:52:49 2022 +1000 test: increase the count of events for axis update tests Make it 30% of the axis in 2% step increments, this gets past the issue of tilt not updating significantly and getting filtered. Signed-off-by: Peter Hutterer Reviewed-by: Aaron Skomra commit 5d4ef8ac9088427dabbe5b6d5e367bb44c1d59bc Author: Peter Hutterer Date: Thu May 5 10:41:03 2022 +1000 test: fix the ID assignment when parsing a device file Because InputId didn't have the same field order as the recording (to allow for default bustype, vid and version), we ended up with an erroneous vendor ID, causing some code paths in the driver to go the non-wacom path. Signed-off-by: Peter Hutterer Reviewed-by: Aaron Skomra commit 1b7d64565cda276dbd20e0b67a9bb88ef538a7f3 Author: Peter Hutterer Date: Thu May 5 09:22:04 2022 +1000 test: add a helper script to set up the environment $ sudo ./test/wacom-test-env.sh $ pytest A lot easier this way than having to manually set the environment variables. Signed-off-by: Peter Hutterer Reviewed-by: Aaron Skomra commit 09567517939109cbaf9928a36e43e86bd1d71082 Author: Peter Hutterer Date: Thu May 5 10:11:04 2022 +1000 Document the rotation/wheel axes, they're not what you'd expect For historical reasons, the rotation axis is actually the cursor rotation only, the artpen rotation is mixed in with the airbrush wheel (which is scaled in to the rotation range). Signed-off-by: Peter Hutterer Reviewed-by: Aaron Skomra commit a94a845af196f49fdcece8958dc1320c0296b518 Author: Peter Hutterer Date: Thu May 5 10:06:58 2022 +1000 Add a few missing breaks for the default case Signed-off-by: Peter Hutterer Reviewed-by: Aaron Skomra commit a6828caa94f5fd9c81880eb11da294eed9cc48af Author: Peter Hutterer Date: Thu May 5 10:25:44 2022 +1000 Make a debug message easier to understand We printed the device type as "tool id", let's print both but with the right naming. Signed-off-by: Peter Hutterer Reviewed-by: Aaron Skomra commit 742c3e4494bf89301031ba6a627a7f5d5f49556f Author: Jason Gerecke Date: Thu Apr 7 09:56:00 2022 -0700 Allow negative panscroll threshold for inverted scrolling The driver's "pan" feature allows you to send scroll events by holding down a defined stylus button and dragging the pen. Dragging the pen from top to bottom will cause the driver to send scroll-up events, and vice-versa. This simulates physically dragging the page under the cursor and works particularly well with display tablets. The rate at which scroll events are sent is controlled by comparing the distance the pen has moved "down" to a defined threshold value. If the distance exceeds the threshold a scroll-up event is sent; if it exceeds the the threshold * -1 a scroll-down event is sent. This commit allows the driver to accept negative threshold values to produce an inverted scrolling behavior (i.e. dragging the pen from top to bottom causes scroll-down events instead of scroll-up). To do this we just relax the checks performed at device configuration and property setting (affecting the "PanScrollThreshold" driver option and "Wacom Panscroll Threshold" Xinput property, respectively). Link: https://github.com/linuxwacom/xf86-input-wacom/issues/257 Signed-off-by: Jason Gerecke commit 1ca6fca7932d540ea7765bb9f66be050f61592aa Author: Peter Hutterer Date: Thu Feb 24 10:54:20 2022 +1000 meson.build: comment out -Wall -Wextra These are handled as part of meson's warning_level project option Signed-off-by: Peter Hutterer commit c0f77b600122a3d8bdefa7a20a84f4049681d1e7 Author: Peter Hutterer Date: Tue Feb 22 09:30:41 2022 +1000 meson: use gnu_symbol_visibility - sort-of meson has gnu_symbol_visibility which is set correctly depending on the compiler. Except - where the X server was built with a symbol-visibility-supporting compiler it will always force -fvisibility=hidden into the cflags, see https://gitlab.freedesktop.org/xorg/xserver/-/issues/1316 Meson sorts pkgconf cflags after the gnu_symbol_visibility flag so the pkgconf cflag overrides our gnu_symbol_visibility flag. Make a note on this so no-one else has to spend time wondering about and debugging this. Signed-off-by: Peter Hutterer commit b534f8fba8dbf3dc373db27c1b2b6e3103923e28 Author: Peter Hutterer Date: Tue Feb 22 09:00:11 2022 +1000 meson.build: only build libgwacom.so, not the static one We don't need the static one Signed-off-by: Peter Hutterer commit 5390ebb2f55f40a3d41f4352447fb603ab4e2fd2 Author: Jason Gerecke Date: Sat Feb 19 12:16:55 2022 -0800 Enable additional compiler warnings by default Removes the two `-Wno-xxxx` directives from out default set of build flags enables several new warnings as well. Signed-off-by: Jason Gerecke commit e217fe67690ff8d00af6ccc2bbe65720af21a979 Author: Jason Gerecke Date: Fri Feb 18 13:51:20 2022 -0800 Move -Wall and -Wextra from Github-only to default CFLAGS These two options were previously only being used by the Github runner. Lets move them to configure.ac / meson.build so that we encounter these warnings on our build system **before** pushing things to Github. The only thing Github should have is `-Werror` and friends. Signed-off-by: Jason Gerecke commit b708574c48b5e57dc5fc7efa4ec7d102c062071f Author: Jason Gerecke Date: Fri Feb 18 13:44:54 2022 -0800 autotools: Use the same set of CFLAGS as Meson builds When building with Meson, a number of CFLAGS are automatically used if supported by the compiler. Lets copy them over so that the same behavior will occur for autotools users. While we're at it, update the other target-specific flags to also better match Meson. Signed-off-by: Jason Gerecke commit b998b68107b4a9b6116b271c858dfbcb29435789 Author: Jason Gerecke Date: Sat Feb 19 16:11:23 2022 -0800 Remove superflous 'invalid' label in wcmSetFlags This label is only taken in a single error case. We should handle the error at the point we detect it, not after jumping to yet another label. Signed-off-by: Jason Gerecke commit 18ac7bc40be89ccc49ec9f17583503989944069d Author: Jason Gerecke Date: Sat Feb 19 15:44:40 2022 -0800 Avoid truncated output warning in wcmAxisDump GCC seems to be confused by our code pattern and insists that our buffer isn't large enough (no matter how large we might make it) and may result in truncated snprintf output. Modify the structure to achieve the same effect in a different way that GCC doesn't mind. Signed-off-by: Jason Gerecke commit 571fbced64a51259ea7825c737f1703a0eb6bdf5 Author: Jason Gerecke Date: Sat Feb 19 15:12:45 2022 -0800 Correct buffer size passed to wcmAxisValue Thankfully the incorrect `sizeof(data)` is less than the actual `sizeof(value)`, so there's no chance of some kind of buffer overflow in the existing code. Fixes: e8015b67000b ("Revamp debug printing of axis data") Signed-off-by: Jason Gerecke commit a5a0b5bf0f855ac0a5501147de5147a520b8b9d2 Author: Jason Gerecke Date: Wed Feb 16 16:34:50 2022 -0800 Fix sign-compare warnings caused by clang's integer abs() Signed-off-by: Jason Gerecke commit d9e92778ccc89bec74e361f8d4fcc7c24002d2bc Author: Jason Gerecke Date: Sat Feb 19 12:10:18 2022 -0800 wacom-record: Change syntax for null struct initalization Avoid a -Wmissing-field-initializers warning from Clang, which apparently recognizes `{ 0 }` and `{ }` as valid patterns, but not `{ NULL }`. Signed-off-by: Jason Gerecke commit df632685d02939957bebc61c4df5617652ce608e Author: Jason Gerecke Date: Wed Feb 16 16:24:16 2022 -0800 wacom-record: Print unsigned values with %u rather than %d Signed-off-by: Jason Gerecke commit 19a2ac80507aca77c9e30f445c9e245c474c7865 Author: Jason Gerecke Date: Thu Jan 27 17:13:24 2022 -0800 Explicitly check for WTYPE_INVALID in switch statements Avoid a Wswitch-enum warning. Signed-off-by: Jason Gerecke commit ef372acece43c5cce16e61795a15050a5bcb1726 Author: Jason Gerecke Date: Tue Jan 4 13:54:46 2022 -0800 Misc. unsigned warning fixes Address a few more unsigned changes that don't fit in elsewhere. Signed-off-by: Jason Gerecke commit cd02945a778132bcb63db5afec9747a15ade0033 Author: Jason Gerecke Date: Wed Jan 26 15:43:34 2022 -0800 Treat value of proxout property as signed While negative / extremely large values are both invalid, migrating the code to handle surface distances in an unsigned way is much more trouble than its worth (due in part to some tablets reporting distance in an opposite sense than others). It is more straightforward to leave them signed for now and just treat the proxout property as also signed. Signed-off-by: Jason Gerecke commit 3287bf8dd89f7d57dcbab61090f92880e01e2e77 Author: Jason Gerecke Date: Wed Jan 26 15:39:43 2022 -0800 Store serial numbers as unsigned values Signed-off-by: Jason Gerecke commit 23f2c7fcf77dc7f4a42864bc66ef91162137577a Author: Jason Gerecke Date: Wed Jan 26 13:54:22 2022 -0800 Change signature of Parse function to take unsigned packet length Signed-off-by: Jason Gerecke commit ce2ec765c2fa57d3f4a1b833f424ced2cf8ba53c Author: Jason Gerecke Date: Thu Jan 27 11:28:09 2022 -0800 Make devicestate sample and time variables unsigned Signed-off-by: Jason Gerecke commit 52803bf0a87772bb6ca837c68e68911909a6cd53 Author: Jason Gerecke Date: Tue Jan 4 13:48:59 2022 -0800 xsetwacom: Make prop_offset unsigned Note that in one instance we actually end up re-assigning the value of prop_offset to a signed variable to avoid additional warnings. Signed-off-by: Jason Gerecke commit 846c6f51f7c959f984e60064306610f2408a5ffa Author: Jason Gerecke Date: Tue Jan 4 11:54:43 2022 -0800 gesture: Make gesture distances and counts unsigned Signed-off-by: Jason Gerecke commit e981a1c1c70b4ed6a34cfac2cde872905e89f4ed Author: Jason Gerecke Date: Tue Jan 4 11:40:06 2022 -0800 gesture: Use unsigned integers for finger indicies Signed-off-by: Jason Gerecke commit fe50ba4c0048d58f09489ad85f11c0ae4838b5b9 Author: Jason Gerecke Date: Tue Jan 4 11:33:43 2022 -0800 Make wcmEventCnt an unsigned int Signed-off-by: Jason Gerecke commit ca19d531ab888e9ff80d5beb26af366061a2edd5 Author: Jason Gerecke Date: Tue Jan 4 11:24:16 2022 -0800 Store button state as unsigned int The WacomDeviceState structure uses an unsigned int to store keys and some functions that operate on keys and buttons are already set up to work with unsigned values. Make buttons unsigned for consistency with keys and to reduce warnings. Signed-off-by: Jason Gerecke commit 0962f67b2c7660fdbdf80a189b90b0e37e61314d Author: Jason Gerecke Date: Tue Jan 4 10:29:54 2022 -0800 tools: Report when the entire buffer is garbage Most callers silently ignore the case where `skip_garbage` returns a negative result. This function changes the function signature to let us return an unsigned count and then has the caller make some noise when this would have happened. Correct various unsigned issues along the way. Signed-off-by: Jason Gerecke commit 869f32c7b98632974f23606d2d706a69e7cc0b69 Author: Jason Gerecke Date: Wed Jan 26 12:58:20 2022 -0800 Use locally-declared unsigned loop variables to eliminate warnings We often use the prototypical `int i` loop variable but sometimes we're iterating over a loop with an unsigned bound. This is low-hanging fruit for cleaning up some of the "Wsign-compare" warnings that exist in the driver. While we're at it, take the opportunity to make many of these loops use local declarations -- a feature standardized way back in 1999 alongside other blockbusters like The Matrix. Signed-off-by: Jason Gerecke commit 465412be96b8e1967bd21209af54a11f0c7b0cc3 Author: Jason Gerecke Date: Thu Jan 27 16:05:05 2022 -0800 Fix -Wformat-signedness warnings Fix the various warnings about us printing an unsigned value as signed (or vice-versa). Signed-off-by: Jason Gerecke commit f1c9d9a118cc14057fcf859c9f71de0ae0ad2e18 Author: Jason Gerecke Date: Thu Jan 27 16:23:11 2022 -0800 Avoid Wformat-overflow warning Increase the size of buffer we write our string into to silence a warning from stricter levels of Wformat-overflow. Signed-off-by: Jason Gerecke commit 7d6d15d5c6d7e2cd6dbb54b20fdadc2e5b658564 Author: Jason Gerecke Date: Tue Feb 15 10:07:10 2022 -0800 cppcheck: Avoid uninitalized variable warning Signed-off-by: Jason Gerecke commit b1555a21c801c2eaab320c57291c95034dc45468 Author: Jason Gerecke Date: Tue Feb 15 08:28:52 2022 -0800 scan-build: Silence dead-store warning from intentionally-ignored value We don't care about the result from `read`, but it seems that Coverity was complaining that we didn't use its result. We hacked around this by simply storing it into `rc`, but now scan-build complains that this value is also never used. This commit further-refines the hack to silence both Coverity and scan-build. Signed-off-by: Jason Gerecke commit b3741a1687a53edc4e7115b886dc4796f3096f1e Author: Jason Gerecke Date: Tue Feb 15 08:06:52 2022 -0800 scan-build: Remove dead-store to subproperty variable This dead-store was introduced in commit 59925bd45b71 ("NONE is not a valid action, and NULL a bad value"). The code which previously relied on subproperty being non-zero was moved into a seperate `else` block that is no longer executed in the case where subproperty is zero. Signed-off-by: Jason Gerecke commit ad8b081fab7c5e0889f0102fb41e2458d98c4164 Author: Jason Gerecke Date: Thu Jan 27 11:58:06 2022 -0800 scan-build: Silence spurious null pointer warning when initializing tools The scan-build tool notices that we can trigger a null dereference if the value of `common->wcmTool` is NULL. This pointer is allocated and assigned at initialization, however, so we should be able to avoid the warning by simply asserting that it is non-null. Signed-off-by: Jason Gerecke commit 1f18309d63cf979afdeba6e8f5b67253b7d36a21 Author: Jason Gerecke Date: Thu Jan 27 11:55:53 2022 -0800 scan-build: xsetwacom: Avoid dead-store when parsing actions The scan-build utility detects that the expression `j = parsed = 0` was causing a dead store to the value of `parsed`. Rather than simply removing the store to parsed, re-format the code to avoid making its value visible outside of the `if` block alltogether. Signed-off-by: Jason Gerecke commit 65a1fd43e3bf73e0d47a17da3b019f81ba3b680b Author: Peter Hutterer Date: Thu Feb 10 09:35:21 2022 +1000 test: add a test for the single-axis updates Just a test that if we change x, only x changes in the events. Signed-off-by: Peter Hutterer commit 8a01c35b4cb8f86c996ab63baa589a3841449a11 Author: Peter Hutterer Date: Wed Feb 9 10:25:07 2022 +1000 test: add a test for the relative motion issue commit 858bb568716f19fd3973088a2af237904584fea9 Author: Peter Hutterer Date: Tue Feb 8 22:09:46 2022 +1000 test: add a pytest test suite This test suite makes use of the gwacom library and its GObject bindings, allowing us to write the actual tests in python. Real devices can be specified as a YAML file in test/devices. In the tests we can either create custom device or load the correct Pen/Finger/Pad component from the real device. Devices are then created as uinput devices [1], with a Monitor class set up to capture any events. The test needs to initialize that device and monitor, then play events through the device and analyze the output. [1] This unfortunately won't work in containers, like the github CI... Signed-off-by: Peter Hutterer commit dbe4f9e687a481020ad27b495b6f16c2767f0814 Author: Jason Gerecke Date: Wed Feb 16 15:04:56 2022 -0800 meson: Fix fuzzinterface build option Trying to enable this option results in the following configuration error: meson.build:117:10: ERROR: Configuration set requires 2 arguments. Signed-off-by: Jason Gerecke commit 1534ca8778ca62dda988929422bfa11217071ec8 Author: Peter Hutterer Date: Tue Feb 15 11:19:37 2022 +1000 wacom 1.0.0 Signed-off-by: Peter Hutterer commit 5eb768c3a6eb0f6543e68d0cc0a6fc8cbc1060c4 Author: Peter Hutterer Date: Tue Feb 15 09:58:31 2022 +1000 configure.ac: fix the check for unittests Leftover from ad8de30. Because we now only have one thing to check, let's always check for dl and handle the special "auto" case based on the outcome of the dl check. Fixes #248 Signed-off-by: Peter Hutterer commit 15bb122bc2474e9eefe681bfbbadbaeb848061c1 Author: Peter Hutterer Date: Tue Feb 15 09:01:43 2022 +1000 test: skip the wacom tests if we can't open the .so file Distribution package builds that use -Wl,-z,relro -Wl,-z,now will attempt to resolve all symbols on dlopen(). This is explicitly what we do not want because we don't link in the whole X server. It's a bit hard to override this for a single executable (my attempts didn't go far so there may be some other flag that influences this too) so for now just skip the whole test - this is better than failing the test suite. Signed-off-by: Peter Hutterer commit c215f1e6b085e80b265c6e998afa057ba74d5e01 Author: Peter Hutterer Date: Tue Feb 15 08:51:46 2022 +1000 wacom-record: silence a compiler warning /usr/include/glib-2.0/glib/glib-autocleanups.h:28:3: warning: ‘syspath’ may be used uninitialized in this function [-Wmaybe-uninitialized] 28 | g_free (*pp); Can't actually happen but it's an easy fix to get rid of this warning. Signed-off-by: Peter Hutterer commit db3df50ab1aa4b83de74100f705e608b66b13a2a Author: Peter Hutterer Date: Tue Feb 15 08:15:51 2022 +1000 meson.build: install the SDK headers Signed-off-by: Peter Hutterer commit 34315942e5801a636745d6a9b682ef2fad432eda Author: Peter Hutterer Date: Tue Feb 15 08:14:49 2022 +1000 meson.build: use datadir, not sysconfdir, for the xorg.conf files Mixup of the two, sysconfdir is /etc which is not what we want for a normal install of the driver Signed-off-by: Peter Hutterer commit 985392cf38b337164d6d957eb4599dcbca519763 Author: Jason Gerecke Date: Mon Feb 14 13:49:31 2022 -0800 Correct typo in calculation of relative-mode non-pad RING2 values The current value needs to be read from the RING2 axis, not the plain RING axis. Fixes: 58a931bc21d1 ("Abstract the event interface to pass a struct with axis data around") Signed-off-by: Jason Gerecke commit c8e597aa5436835cab9eb9819cda402e03264104 Author: Peter Hutterer Date: Tue Feb 8 09:24:30 2022 +1000 CI: add a job to build with the exact meson version we require Just to catch any inadvertent reliance on features that came after our minimum version. Meson *should* warn about this but let's be sure. Fixes #233 Signed-off-by: Peter Hutterer commit d2876b666b487598622b7c656cd7a1b25da03404 Author: Peter Hutterer Date: Fri Feb 11 14:41:13 2022 +1000 wacom 0.99.3 Signed-off-by: Peter Hutterer commit 364b8ffb8f22c0b0889c68cd4cdad2bac3f0de86 Author: Peter Hutterer Date: Thu Feb 10 10:26:16 2022 +1000 Print the device id, device type and serial number as hex This is how we tend to use it most of the time (e.g. in libwacom definitions) Note that we're using 0x%x here instead of the easier %#x because the X server's old sigsafe printf implementation doesn't support the alternative format. Signed-off-by: Peter Hutterer commit e8015b67000b555347412e955c6e9ed1556225c4 Author: Jason Gerecke Date: Fri Feb 4 14:34:31 2022 -0800 Revamp debug printing of axis data The `wcmSendEvents` function is a bit of a mess when it comes to printing out debug information. It maintains and dumps temporary data that may not reflect what will actually be passed to e.g. `wcmSendNonPadEvents` and does so at two different log levels for little reason after the recent refactor. This commit takes a page from wacom-record and introduces a function to dynamically dump axis data to a string. This lets us remove all the old temporaries and print out the values that actually matter. Signed-off-by: Jason Gerecke commit d83afd252819fa31bb0934328acce758fbec2c39 Author: Peter Hutterer Date: Thu Feb 10 15:23:43 2022 +1000 CI: use the Ubuntu python version This makes CI issues easier to reproduce in a podman container (despite GitHub's ubuntu image having preinstalled a bunch of stuff). We're about to use a lot more python-specific stuff so let's not rely on whatever github installs with the magic python action. Signed-off-by: Peter Hutterer commit 49f642f1667ea03451553e334044b85d3d6bd0d9 Author: Peter Hutterer Date: Thu Feb 10 19:16:38 2022 +1000 CI: add a job to check for missing files in the tarball Anything in git should be in the tarball. Better to have a job for this explicitly rather than finding it out later, because debugging this is extremely frustrating. Signed-off-by: Peter Hutterer commit d10d763d6c335b3c97fd9e7ddd71099e4f4d274e Author: Peter Hutterer Date: Thu Feb 10 16:43:57 2022 +1000 CI: capture meson testlogs from the tarball build too Signed-off-by: Peter Hutterer commit f79793516d1f6c37107e09d5869f7f7347ad0268 Author: Peter Hutterer Date: Thu Feb 10 20:29:19 2022 +1000 autotools: add autogen and README to EXTRA_DIST Doesn't hurt to have those in the tarball Signed-off-by: Peter Hutterer commit f170f7f0903d9e23562e872566795e4dc0ae65e6 Author: Peter Hutterer Date: Thu Feb 10 20:25:37 2022 +1000 Consolidate .gitignore files And update them with missing entries in the process Signed-off-by: Peter Hutterer commit f89be195fce53bcc284a6e99eb1d0dd550218329 Author: Peter Hutterer Date: Thu Feb 10 19:07:52 2022 +1000 test: remove a superfluous file Accidentally added during development, renamed later to wacom-tests.c but not removed correctly Signed-off-by: Peter Hutterer commit 131de22dd9ec63b4727bf5f320eee62294654d35 Author: Peter Hutterer Date: Thu Feb 10 12:43:03 2022 +1000 Don't crash wcmAllocate if name is NULL Signed-off-by: Peter Hutterer commit b67016849c8a01e9281ffd0dc5a7f0633e319fe4 Author: Peter Hutterer Date: Thu Feb 10 12:39:58 2022 +1000 wacom-record: fix printing for multiple devices wacom-record takes multiple event nodes but the device info printing was broken. Fix this by moving the device info printing into the device-added callback (which is emitted as soon as we call wacom_device_new). The new event output is thus: - source: 2 event: new-device name: "Wacom Intuos Pro M Pen" options: - _source: "server/udev" - device: "/dev/input/event4" ... This now has the advantage of subdevices printing the correct options as well (i.e. type eraser as this is added by the hotplugging code). Signed-off-by: Peter Hutterer commit 2c9e352c3529a58a12035f0d3ad0a36bbd707188 Author: Peter Hutterer Date: Thu Feb 10 12:38:41 2022 +1000 gwacom: add function to get the device options from the device Signed-off-by: Peter Hutterer commit f28c881a8a752d7c75164f53ba8c471df5cd08a3 Author: Peter Hutterer Date: Thu Feb 10 11:55:31 2022 +1000 gwacom: allow for listing of WacomOptions keys Signed-off-by: Peter Hutterer commit d70066a5eb4ed43984b19b3644dd16fbfe01b8a2 Author: Peter Hutterer Date: Thu Feb 10 11:22:27 2022 +1000 wacom-record: assert if device allocation fails Unlike what the error message suggested, wacom_device_new() doesn't fail except for memory allocation failures. Which we don't need to care about here. Signed-off-by: Peter Hutterer commit fa9b1eb4e5c78c6eed8cc2626d67e39b4dea95af Author: Peter Hutterer Date: Thu Feb 10 10:34:40 2022 +1000 gwacom: fix crash if the first device fails to initialize If the very first device fails (not a wacom device) then the debug message when freeing the common pointer would cause a NULL-pointer dereference. That's a gwacom-only issue caused by the shortcut of logging all common messages through the first device. Signed-off-by: Peter Hutterer commit 4c95a4651638ae265c96bb6a8416c760df8a2506 Author: Peter Hutterer Date: Thu Feb 10 08:27:38 2022 +1000 A few whitespace fixes commit e940da8001cc5c5d5669eac1b7359401d2f5d946 Author: Jason Gerecke Date: Fri Feb 4 13:30:27 2022 -0800 Rotate / scale coordinates before storing them in axes The WacomAxisData calculated by `wcmSendEvents` is expected to contain the X,Y coordinates which have been adjusted for device rotation and scale. Prior to the refactoring, the values of X and Y (along with everything else) were only packaged up for relaying at the very end of the function. Now this packaging occurs much earlier which requires our call to `wcmRotateAndScaleCoordinates` to move as well. Fixes: 58a931bc21d1 (Abstract the event interface to pass a struct with axis data around ) Link: https://github.com/linuxwacom/xf86-input-wacom/issues/226 Signed-off-by: Jason Gerecke commit 43906e0a642832fea731248fcea8fec6ce5f7ab3 Author: Peter Hutterer Date: Wed Feb 9 13:05:23 2022 +1000 CI: build with all meson auto features enabled We have a number of features default to auto(). Force-enable those in the CI so we don't miss on testing. Signed-off-by: Peter Hutterer commit 794e92ddb9355db72e52abbeeaf546d4a80ce4b5 Author: Peter Hutterer Date: Wed Feb 9 13:33:51 2022 +1000 CI: missing field initializers are not errors Signed-off-by: Peter Hutterer commit bb2fd9d77798cb7a9d9b52125de81a981cbc20ec Author: Peter Hutterer Date: Wed Feb 9 13:52:16 2022 +1000 meson.build: pass -Wno-error=format to the asprintf check meson generates a little program containing "return asprintf ();" But that call errors out, not because asprintf is missing but because on clang, -Werror includes -Wformat: error: format string missing [-Werror,-Wformat] The result is that meson things asprintf doesn't exist and we then try to link to Xasprintf which is implemented in the server only (and thus causes a linker error in the gwacom lib). Signed-off-by: Peter Hutterer commit 485bb68b90e6a0a8069c04cfb69b48629847084c Author: Peter Hutterer Date: Wed Feb 9 13:23:22 2022 +1000 autotools: add missing files to the tarball Thanks to a missing backspace, there were still some files missing from the tarball. And our CI didn't pick it up because it wasn't building the gwacom bits from the tarball. Signed-off-by: Peter Hutterer commit ad8de302874ab2075928ddd4e3f762251fef0703 Author: Peter Hutterer Date: Wed Feb 9 09:50:07 2022 +1000 Drop the build system checks for -wrap No longer needed as of ff94040208c9da3411753e1ffe554e6c80b87dd7 Signed-off-by: Peter Hutterer commit 291192a5e5ac329cc5d355858d6e69337c65be1d Author: Peter Hutterer Date: Wed Feb 9 11:46:03 2022 +1000 test: mark the test section entries as no_sanitize_address This works around an issue running our test suite through clang with asan. Specifically, the asan test fails with: ERROR: AddressSanitizer: global-buffer-overflow on address #0 0x7f31314a1b57 in wcm_run_tests [...] wacom-test-suite.c:44:3 ... 0x7f31314ff150 is located 48 bytes to the left of global variable '_decl_test_get_wheel_button' defined in '../src/wcmCommon.c:1802:1' (0x7f31314ff180) of size 16 0x7f31314ff150 is located 0 bytes to the right of global variable '_decl_test_get_scroll_delta' defined in '../src/wcmCommon.c:1754:1' (0x7f31314ff140) of size 16 The C standard doesn't guarantee that sections are immediately next to each other, so our expected behavior could break in the future. Since this is a test suite, we don't really care for now. And I rather suspect there's plenty of code out there that too would break if clang ever changed this. Signed-off-by: Peter Hutterer commit 988fcdd7f433eac843baf25f79f2f9ed5f4370e1 Author: Peter Hutterer Date: Wed Feb 9 11:34:00 2022 +1000 meson.build: set the LD_LIBRARY_PATH explicitly for the wacom-tests This fails in the CI otherwise, for reasons not quite clear. So let's drop the direct dependency (since wacom-tests dlsyms it) and set the LD_LIBRARY_PATH in the test environment that calls it. Signed-off-by: Peter Hutterer commit fee367269b0679fd163c92618ca94414e53c48d6 Author: Peter Hutterer Date: Wed Feb 9 11:14:44 2022 +1000 CI: name the artifacts after the job name/options Otherwise we have the results overwrite each other Signed-off-by: Peter Hutterer commit 3718ed3f1a9b7d001ff2d76dbe1999b54809106d Author: Peter Hutterer Date: Tue Feb 8 09:29:39 2022 +1000 release.sh: markdown-ify the announce "email" This hasn't been an actual email for ages, the content of this is just uploaded as release text to github. So let's drop the subject line and make the rest easier to read. Signed-off-by: Peter Hutterer commit ae5ac76c4f07c5487e3bcad64ef1d80e9702d336 Author: Peter Hutterer Date: Tue Feb 8 22:07:41 2022 +1000 gwacom: make the enums GIR-compatible GIR generation requires "typedef enum {} foo", with the first character of the enum names dropped. In the bindings, WFOO_BAR then turns into FOO_BAR on the enum object. This fixes an ABI issue with the WacomAxis struct - the enum (4 bytes) was previously exported as gpointer (8 bytes) in the bindings, causing garbage values to be read. Signed-off-by: Peter Hutterer commit e30d23e4a1e26dd97c38d28e198cd0917f1b40e7 Author: Peter Hutterer Date: Tue Feb 8 21:31:36 2022 +1000 gwacom: declare the WacomEventData as GBoxedType This allows us to pass it to the signal as proper type, making it available in the GIR bindings. Signed-off-by: Peter Hutterer commit 8f536c4afbbf7561f2e2d616bc78481e26854419 Author: Peter Hutterer Date: Tue Feb 8 07:25:20 2022 +1000 wacom 0.99.2 Signed-off-by: Peter Hutterer commit 3fbab38f91a15fc5a4d877c47227df50607e965a Author: Peter Hutterer Date: Fri Feb 4 11:54:16 2022 +1000 configure.ac: require C99 Because it is... checks year... 2022 and c99 is not exactly modern anymore anyway. Signed-off-by: Peter Hutterer commit 16b1c0b5e5cff6ae6f81638e95b0f83d3a1a4b5f Author: Peter Hutterer Date: Fri Feb 4 11:31:16 2022 +1000 xsetwacom: shut up two compiler warnings There's more, but let's silence some of them at least Signed-off-by: Peter Hutterer commit ae84ebd96524524aa214ea9fa1bbc5548b4eb8f8 Author: Peter Hutterer Date: Fri Feb 4 13:33:01 2022 +1000 meson.build: use dep.get_variable() instead of the deprecated one NOTICE: Future-deprecated features used: * 0.56.0: {'Dependency.get_pkgconfig_variable'} Signed-off-by: Peter Hutterer commit c68a8798c2be81686002eac34247e610f7ee8594 Author: Jason Gerecke Date: Thu Feb 3 14:14:11 2022 -0800 Update configure.ac to point to our issue tracker if a unit test fails Signed-off-by: Jason Gerecke commit 44710a571a3399c0b894160abb7480e257a1c441 Author: Jason Gerecke Date: Thu Jan 27 15:15:10 2022 -0800 test: Enforce "zero minimum" workaround only for touch device The codepath for pen/eraser devices is capable of using the minimum values. Move the code to enforce a a minimum value of zero to the touch portion of the function where it applies. Signed-off-by: Jason Gerecke commit d8347da16d2f13a3f0c3c047d080eaeb084fac3a Author: Peter Hutterer Date: Thu Feb 3 10:54:51 2022 +1000 tools: switch the xsetwacom tests to use the new test suite approach too Note that this removes the xsetwacom tests from the autotools build, this is meson only now. Signed-off-by: Peter Hutterer commit d1617e9fea1475e45c59e821b4ed8a24f1d749d0 Author: Peter Hutterer Date: Thu Feb 3 10:48:12 2022 +1000 test: fix long-standing typo in the initial size tests Signed-off-by: Peter Hutterer commit 591d4633dc99a2ba3dd906b570fd98e95482d8de Author: Peter Hutterer Date: Wed Feb 2 13:56:15 2022 +1000 test: add a test for the convertAxes helper See #222 Signed-off-by: Peter Hutterer commit ff94040208c9da3411753e1ffe554e6c80b87dd7 Author: Peter Hutterer Date: Wed Feb 2 13:18:33 2022 +1000 Replace our unit-test suite with something more magic and easier The previous approach, written 11 years ago, relied on providing all symbols the driver needs as stubs (see fake-symbols.c). Most of these symbols just needed to be there so we could compile the test, they didn't actually get utilized by the tests. Dropping this and instead add something roughly similar to Rust: the test function can be in the same file as the source function. The TEST_CASE() macro uses __attribute__((section)) to push the test cases in custom ELF section. This section we can iterate on and call all tests one-by-one. The test runner only needs to dlopen + dlsym the driver module and run the entry point function. The test-suite part of this is minimal: tests can assert on failure and everything stops. Adding things like fnmatch for test case names is possible when/if we ever need it. Signed-off-by: Peter Hutterer commit efb8df85ca75349e1d14237bcd0085025cc44830 Author: Peter Hutterer Date: Thu Feb 3 14:03:15 2022 +1000 meson.build: remove udev dep from wacom-tests This was dragged in by the ISDV4 serial code which has since been removed, so it's no longer required here. Signed-off-by: Peter Hutterer commit 8c6f4476d118a29298b44dbf2c0633610a8f4a45 Author: Peter Hutterer Date: Thu Feb 3 13:42:50 2022 +1000 autotools: remove the libudev dependency from the driver With the ISDV4 code removed, this is no longer used by the driver itself. Signed-off-by: Peter Hutterer commit 5688550f8fc0af48d252e2da4d41188af839b61e Author: Peter Hutterer Date: Thu Feb 3 13:44:39 2022 +1000 meson.build: remove an unused variable Signed-off-by: Peter Hutterer commit 771c43776e62d3f824753e123f936f3c0ef4c650 Author: Peter Hutterer Date: Thu Feb 3 10:12:43 2022 +1000 wacom-record: print the mask of available values Signed-off-by: Peter Hutterer commit 6099e5f22b949d472f3f30282f5bdf6d84ef3073 Author: Peter Hutterer Date: Thu Feb 3 09:59:08 2022 +1000 wacom-record: print the mode for motion events Signed-off-by: Peter Hutterer commit 459a76fd91b55002052a99190d1b2b965bb7433b Author: Peter Hutterer Date: Thu Feb 3 09:43:04 2022 +1000 wacom-record: handle the extra device paths with g_autofree too As a rule of thumb, don't free anything as g_autofree, just use a new variable instead. Easier to read this way. Signed-off-by: Peter Hutterer commit c8088649e3b3a5e34e296dd312fefd1624bc142f Author: Peter Hutterer Date: Thu Feb 3 09:41:39 2022 +1000 wacom-record: fix segfault if no argument was supplied In that case, argc is 0, so --argc is < 0 Signed-off-by: Peter Hutterer commit 146e8d340a09614c7b59275f48d0005a2e768767 Author: Peter Hutterer Date: Wed Feb 2 11:52:32 2022 +1000 x11: handle valuators with a first_valuator != 0 correctly xf86Post*EventP requires that the valuators array index 0 is whatever first_valuator is. Found in #222 Signed-off-by: Peter Hutterer commit a529e92b1144b59111a6a16e35169db128ce216f Author: Peter Hutterer Date: Thu Feb 3 13:18:50 2022 +1000 Remove a declaration and some comments referring to serial devices All obsolete since ce2421a031aa0979671ce24d38c08c92b2142257 Signed-off-by: Peter Hutterer commit be159bcd06c39ee1839efa66b732c810b6afe186 Author: Peter Hutterer Date: Tue Feb 1 17:09:28 2022 +1000 CI: add jobs to build from tarballs commit 1648ad6c5cdcf9cfe390e8bd46cfa84782f7ac2b Author: Peter Hutterer Date: Tue Feb 1 17:09:39 2022 +1000 autotools: make sure the gwacom sources are in the tarball Those aren't used by autotools but if we want to build an autotools-generated tarball with meson we need to provide them. Signed-off-by: Peter Hutterer commit 5983e8208e9aaa6f9700d217ab21944d85b08e22 Author: Peter Hutterer Date: Tue Feb 1 08:24:13 2022 +1000 wacom 0.99.1 Signed-off-by: Peter Hutterer commit 0e10636573a56e4eabe7ccc0d9616faa7bf86896 Author: Peter Hutterer Date: Tue Jan 25 09:34:56 2022 +1000 meson: default to the module dir from xorg-server.pc On Ubuntu 20.04 at least, libdir is /usr/lib/x86_64-linux-gnu/ but the xorg modules are in /usr/lib/xorg/modules/. A default install with prefix /usr thus puts the modules into the wrong directory. Fix this by defaulting to the xorg module path from the xserver pkgconfig file. That has been exported since 2005, so it's save to rely on. Fixes #217 Signed-off-by: Peter Hutterer commit 93b7ff5d0f57916ff28d56795f0cca9c21557528 Author: Peter Hutterer Date: Wed Jan 12 09:11:09 2022 +1000 Fix a compilation error when DEBUG is undefined Fixes #214 Signed-off-by: Peter Hutterer commit dd50f2db86f548624dcfc2a7c9e9428abc28b4cc Author: Peter Hutterer Date: Wed Jan 12 09:30:32 2022 +1000 Escape an unused variable with ifdef DEBUG Signed-off-by: Peter Hutterer commit ed877d62d292e8198d496be015a024d095f20e7b Author: Peter Hutterer Date: Wed Jan 12 09:25:23 2022 +1000 Change the v3-v6 debug holders to an array This removes the compiler warnings when DEBUG is undefined, they're all only used for debug logging but we don't want to ifdef them everywhere. v5 is the only one "used" but only to re-calculate things. Signed-off-by: Peter Hutterer commit 55b14facb4810e77157e76857d28c3bff0050953 Author: Peter Hutterer Date: Wed Jan 12 09:21:37 2022 +1000 Remove duplicate setting of v5/v6 Both are unconditionally set a few lines south of here Signed-off-by: Peter Hutterer commit 6de28b4ca980e0fc6a77dd9c7144d9da9fb03d69 Author: Peter Hutterer Date: Wed Jan 12 09:19:08 2022 +1000 Remove an unused variable This was always set to nbbuttons, so we don't need a separate variable here. Signed-off-by: Peter Hutterer commit c5b605d376c69daf902a3d66ebc2d7df9b028ac8 Author: Peter Hutterer Date: Wed Jan 5 09:18:09 2022 +1000 github: skip the coverity workflow in the forks These always fail since we don't have the required secrets. Skip that job unless we're on the upstream repository. commit ce2421a031aa0979671ce24d38c08c92b2142257 Author: Peter Hutterer Date: Wed Jan 5 08:13:17 2022 +1000 Remove support for serial devices from the driver The serial code inside the driver is effectively unused and definitely untested. It's been a decade since the last serial devices came out and few of those will be in active use, the few that are are likely supported by the inputattach code we keep in place for now. Fixes #197 Signed-off-by: Peter Hutterer commit e4094a72fed413d43951b0dc113351c0d84516aa Author: Jason Gerecke Date: Fri Jan 7 10:52:57 2022 -0800 Report puck "throttle" (absolute scrollwheel) data in correct axis The "throttle" / absolute scrollwheel found on devices like the 4D Mouse should be reported in the v4 axis. A typo in a previous commit caused it to stop being reported. Fixes: 58a931bc21 ("Abstract the event interface to pass a struct with axis data around") Signed-off-by: Jason Gerecke commit a78392d8d6e9aa344c7d09f5b1330fc7aeb8ef96 Author: Peter Hutterer Date: Wed Jan 5 08:35:05 2022 +1000 github: make the workflow names a bit smarter Signed-off-by: Peter Hutterer commit f3a5474fbb073abc5d3a5a066e285ead9a3f5dd5 Author: Jason Gerecke Date: Mon Dec 13 08:05:40 2021 -0800 Disallow initalization of unknown device axis by wcmInitAxis Addresses the following compile warning from GCC: ../src/x11/xf86Wacom.c: In function ‘wcmInitAxis’: ../src/x11/xf86Wacom.c:538:9: warning: ‘index’ may be used uninitialized in this function [-Wmaybe-uninitialized] Attempting to initialize an unknown axis will now result in a program abort. This copies the behavior used by the `convertAxes` function. Signed-off-by: Jason Gerecke commit 30e522a75206d7438063b2883feebbc622c21b69 Author: Peter Hutterer Date: Fri Dec 10 11:31:40 2021 +1000 Bail out if wcmDevStar() fails Signed-off-by: Peter Hutterer commit b8905483dbdc2f3c1f578ca0fa770162907fb5e6 Author: Peter Hutterer Date: Fri Dec 10 11:27:21 2021 +1000 Remove an outdated comment No idea what this is referring to but it's no longer accurate. Signed-off-by: Peter Hutterer commit 1e205eece628b9551648d915b7c4bba79eb87eda Author: Peter Hutterer Date: Fri Dec 10 11:25:46 2021 +1000 Change wcmDevSwitchModeCall to take and return a Bool Let the caller handle the X11 constants and just take an "is_absolute" boolean and return a boolean to indicate success Signed-off-by: Peter Hutterer commit 0e92df6889b8ec928603a7c11792699afa7347a2 Author: Peter Hutterer Date: Fri Dec 10 11:04:45 2021 +1000 Remove an outdated comment Now that the driver is separated into src/x11 and the file was renamed, this comment is both wrong and outdated. Signed-off-by: Peter Hutterer commit 3e4a5243c554e9e0ee5a96763fa19c46143a89a6 Author: Peter Hutterer Date: Thu Dec 2 09:18:25 2021 +1000 Add a debugging hook for evdev events Unused in the X driver interface but for libgwacom/wacom-record we can use this to print evdev events before driver events, making it easier to figure out which input causes which driver output Signed-off-by: Peter Hutterer commit ad7d8faa193e190dc0ffea92b2c077ae7328aa45 Author: Peter Hutterer Date: Thu Dec 2 08:56:44 2021 +1000 Drop include of linux/version.h No longer needed Signed-off-by: Peter Hutterer commit 71701d38acde5f235f905930ab121cf6a2619528 Author: Peter Hutterer Date: Fri Nov 26 13:23:57 2021 +1000 Add a GObject-based interface to the driver This patch adds a basic GObject-based library in lib/ that is sufficient to interact with the driver. The example tools/wacom-record.c is provided to illustrate the use of this library and to provide a commandline debugging tool. This library is for testing use only, it does not provide a stable API and should not be used. It is not installed and only available if the driver is built with meson. GObject IR bindings are available too to write e.g. Python programs that use the driver. Signed-off-by: Peter Hutterer commit d254f902ef0452b63d39935b670814cdabe31534 Author: Peter Hutterer Date: Wed Dec 1 12:11:56 2021 +1000 Move the X-driver-specific files into src/x11 These two files are the only ones that interact with the X server, let's move them so we have a visible separation between the core driver and the X parts. Renaming wcmXCommand.c to xf86WacomProperties.c in the process, for slightly better namespacing. Signed-off-by: Peter Hutterer commit b47fa8a0aa0b987e675222fd18195a759d40ecaa Author: Peter Hutterer Date: Tue Nov 30 10:06:38 2021 +1000 Split the various logging functions into several calls We have driver and device logging, and each as a normal log function, a sigsafe log path and a debug message log path. So 6 functions overall. This doesn't matter for the X driver which routes sigsafe to LogMessageVerbSigSafe but for other frontends it's useful to keep these apart. Signed-off-by: Peter Hutterer commit 3271defd328ad2c33e88de0bcf0600f1b2c8f1ec Author: Peter Hutterer Date: Tue Nov 30 10:36:44 2021 +1000 Pass the context to two helper functions In both cases we'll use that context in a follow-up patch to hook into the logging functions. Signed-off-by: Peter Hutterer commit 6bd9b920a40bc22c45cfdb5318d9354a7d12a470 Author: Peter Hutterer Date: Mon Nov 29 14:36:24 2021 +1000 Decide on the hotplugged device's name in the driver For devices hotplugged by the driver, we use the basename and then append the tool type and serial (if any). No point having this in the X driver layer, let's make this generic. Signed-off-by: Peter Hutterer commit 1be51900620cb1f55262efb475fa11e5519f509d Author: Peter Hutterer Date: Sat Nov 27 10:50:38 2021 +1000 Change return type of wcmDevInit for better readability Signed-off-by: Peter Hutterer commit 638da338ce48717721c700bed23096d7578706d2 Author: Peter Hutterer Date: Fri Nov 26 15:15:35 2021 +1000 Allocate the touch valuators in the driver layer This is ugly. Ideally we'd have those valuators in a custom struct in the driver layer but... we don't have that struct, we're using pInfo. So rather than wrapping that into yet another struct, let's just allocate directly here. Signed-off-by: Peter Hutterer commit 9d67f62b953eaabd35c3234d8388c4bbd4ff4fb7 Author: Peter Hutterer Date: Fri Nov 26 14:52:40 2021 +1000 Wrap GetTimeInMillis() Signed-off-by: Peter Hutterer commit e8a7b5a5ac359d6a53148f61a05f7996459fa5d4 Author: Peter Hutterer Date: Fri Nov 26 14:39:37 2021 +1000 Move a function to the core driver layer Signed-off-by: Peter Hutterer commit 29d093bd8671a792124720281f7f1f7c4934d6b4 Author: Peter Hutterer Date: Fri Nov 26 13:27:19 2021 +1000 Abstract the pInfo pointer as a generic frontend void pointer Signed-off-by: Peter Hutterer commit 9caf26360367a8b28ca7c6961887052509d61fbd Author: Peter Hutterer Date: Fri Nov 26 11:26:10 2021 +1000 Allow building the driver without serial ISDV4 support If configured with -Disdv4=false, the ISDV4 serial bits will not be built, including the udev rules and the inputattach helper and service files. This is meson only. Signed-off-by: Peter Hutterer commit 493ccdc8f2d1e94dde7f45b2062ac7f91b9a3cf4 Author: Peter Hutterer Date: Fri Nov 26 11:19:03 2021 +1000 Move model listing to the X driver layer Signed-off-by: Peter Hutterer commit 3171a5cf1a597643c71eb82c85f5e5f43616deae Author: Peter Hutterer Date: Fri Nov 26 11:15:51 2021 +1000 Store the valuator range we initialized our axes with This should really be cleaned up but: we initialize our x/y valuators with the current axis range based on the top/bottom values. These may change later when updated through device properties - but the server's valuator range is fixed, so we need to scale into the range originally provided. Instead of asking the server back for those ranges, let's just keep them around. Signed-off-by: Peter Hutterer commit a7506f139d60934c04dab33554fba07c371ca61b Author: Peter Hutterer Date: Fri Nov 26 11:06:19 2021 +1000 Add a hook to update the device's name in the driver Signed-off-by: Peter Hutterer commit 759f919d808971fa015fd3016e15538b4301aedd Author: Peter Hutterer Date: Fri Nov 26 10:21:59 2021 +1000 Replace pInfo->fd direct access with a get/set abstraction layer Signed-off-by: Peter Hutterer commit 9c12ae753fbb06ef83e79d4438941a33b8c896da Author: Peter Hutterer Date: Fri Nov 26 09:59:21 2021 +1000 Prefer priv->name over pInfo->name Signed-off-by: Peter Hutterer commit bff714f45b48b551c0662658578c5e4080738670 Author: Peter Hutterer Date: Fri Nov 26 09:55:30 2021 +1000 Switch the type handling to an enum The init code remains largely as-is but as soon as sensible, change this to an enum value and keep it in the device. The X driver layer can convert that into the type_name as required. Signed-off-by: Peter Hutterer commit 6e10faec5fcd09bd1390a0d59f436f14e5555e77 Author: Peter Hutterer Date: Fri Nov 19 21:35:36 2021 +1000 Split type name and flag assignment These are just lumped in for convenience, let's split them and move the type name to the X driver layer. Signed-off-by: Peter Hutterer commit 7f8094933d8208b777c26e4340c65b2f1d21b652 Author: Peter Hutterer Date: Fri Nov 26 09:23:28 2021 +1000 Add the interface declaration for queuing device hotplug And move the hotplugging code into the X driver layer. This code is a bit special in that it needs to happen *after* the current function call, i.e. via a timer or a WorkProc. Signed-off-by: Peter Hutterer commit 03e6143c33eb416a2394ecb0dfc5595c1c3e3f0c Author: Peter Hutterer Date: Fri Nov 26 09:17:09 2021 +1000 Declare the three special property update functions These are updated from the core driver and call back into the property code. ATM there are no plans to make the property code X independent, so it's easiest to just declare the functions here and leave them to the frontend to implement (as stubs, usually). Because of SIGIO restrictions in older X servers, these need to be handled through a timer so we leave the implementation in wcmXCommand.c - link that file into the driver and it all comes for free. Signed-off-by: Peter Hutterer commit 31dae2204d62449b2929526fc2cd3ae72e7b05a5 Author: Peter Hutterer Date: Fri Nov 26 08:56:44 2021 +1000 Add an emulation of the X server's timer API Slightly different in style, but wraps the X server's OsTimerPtr Signed-off-by: Peter Hutterer commit 2e53a23f8e351f7daab4c55520d94c37c83d10d1 Author: Peter Hutterer Date: Thu Nov 25 21:45:19 2021 +1000 Use the option API we provide in the interface Signed-off-by: Peter Hutterer commit 0170015204e16b47f9fd264ae119f48b734731f7 Author: Peter Hutterer Date: Thu Nov 25 21:43:20 2021 +1000 Add an emulation of the X server's option handling Signed-off-by: Peter Hutterer commit 4b055af87e2b3b9fa29c0cf3d0a20ecf6c0917c6 Author: Peter Hutterer Date: Thu Nov 25 21:19:39 2021 +1000 Add the WacomInterface header file This header file now declares the functions required by any frontend implementation of this driver. The core part of the driver (all files but xf86Wacom.c) will eventually be independent of X altogether, with the X driver bit in xf86Wacom.c the layer that connects the wacom driver to the X server - with the APIs the server requires. This interface is currently semi-complete, we still rely on pInfo in the driver and we still use several X-specific interfaces but the remaining ones are ones that require simple 1:1 conversion but not functional changes (e.g. option handling, fd retrieval, etc.) Since Bool is not used anywhere but in X, switch to bool instead. Signed-off-by: Peter Hutterer commit 98748db8508be740615dc9c12ae1da9a3650baf2 Author: Peter Hutterer Date: Thu Nov 25 21:13:01 2021 +1000 Move wcmLog to the driver implementation Signed-off-by: Peter Hutterer commit d5ca999f35c7de7032a7e2c7df25019a636e59f6 Author: Peter Hutterer Date: Thu Nov 25 21:03:39 2021 +1000 Add a helper function to iterate over local devices to the driver layer wcmForeachDevice() calls a callback on each device that uses the wacom driver. Switch our loops over to use that instead of iterating manually - this makes the driver code independent of the X way of iterating through devices (and finding those using the wacom driver). Signed-off-by: Peter Hutterer commit 91cbc367947556420e546a5c48107aa62da6231f Author: Peter Hutterer Date: Thu Nov 25 21:24:07 2021 +1000 Move the device initialization bits into the core driver layer What remains in the X driver layer is how specifically the classes are initialized in the server, but *what* gets initialized is now handled by the driver layer. Signed-off-by: Peter Hutterer commit 36392bb42a9f34e9b9b4f4045d1db7616f57c059 Author: Peter Hutterer Date: Thu Nov 25 20:32:53 2021 +1000 Add a wcmDevStop() and move it to the driver layer Signed-off-by: Peter Hutterer commit 33389874192bdc844865e086cc31a9b022906206 Author: Peter Hutterer Date: Thu Nov 25 20:31:19 2021 +1000 Move wcmDevOpen/Close/Start to the common driver layer Signed-off-by: Peter Hutterer commit 790211e8fb02e309cd71428d46aa175badadb839 Author: Peter Hutterer Date: Thu Nov 25 20:27:07 2021 +1000 Move the server FD handling to the caller of wcmDevOpen/wcmDevClose This makes both functions independent of the X server behavior now. Signed-off-by: Peter Hutterer commit 6c9db8d5b735c599f0a2fbc31f3f70568e6183cc Author: Peter Hutterer Date: Thu Nov 25 20:21:14 2021 +1000 Remove side-effects of wcmOpen(), set pInfo->fd in the caller Signed-off-by: Peter Hutterer commit 03feaf44aa67fb6374d67ad13d853435e3ad0ba9 Author: Peter Hutterer Date: Thu Nov 25 20:14:38 2021 +1000 Move starting the tablet into a separate helper function Let's separate the process of opening the fd from starting the device. Signed-off-by: Peter Hutterer commit 70e5c87072b76d6143b7ca7474a41b45fbb9416b Author: Peter Hutterer Date: Thu Nov 25 16:38:24 2021 +1000 Print the priv->name instead of pInfo->name Just reducing the count of pInfo usages. Signed-off-by: Peter Hutterer commit 539a7bf2593e9b7f02a8224e8f0cc3088bb6bc3a Author: Peter Hutterer Date: Thu Nov 25 16:36:00 2021 +1000 Store the WacomDevicePtr in the tool Now that we use the WacomDevicePtr as function argument, use it here too, we don't actually need pInfo directly here anyway. Signed-off-by: Peter Hutterer commit 58a931bc21d1e78629a0873beb221252d065fdca Author: Peter Hutterer Date: Mon Nov 22 14:06:08 2021 +1000 Abstract the event interface to pass a struct with axis data around Instead of the first_valuator/num_valuators/vararg combo, put the various axis values into a struct with defined names for each field and a mask that tells us which values are currently set. Pass that struct around and just before we get to the X server, convert that struct into the first_valuator/num_valuators/vararg combo. This is basically what we already did for the device state anyway, it just moves the conversion a few layers higher. Signed-off-by: Peter Hutterer commit a0192e947161c69254b2e2740c60b779f436a128 Author: Peter Hutterer Date: Mon Nov 22 13:04:43 2021 +1000 Abstract initializing the device into several helpers Define an enum for the various axis types we have and initialize those with those names. This is largely just moving code around but it does make things a bit easier to read, in particular we separate setting the axis ranges (generic) from the assigned property name and valuator number (X specific). The biggest difference: we now hardcode Absolute as mode on each axis on the device. Functionally identical to before though. Signed-off-by: Peter Hutterer commit dc7fbbaf1c77a96f77b2cc7e57cb21baf1fa6d06 Author: Peter Hutterer Date: Mon Nov 22 18:22:24 2021 +1000 Add a copy of xf86ScaleAxis for our use This is a simple helper function, easier to have this locally than rely on the X server API here. Signed-off-by: Peter Hutterer commit 5bfc1940e22026410cae7fcff12594a413a8b7db Author: Peter Hutterer Date: Thu Nov 25 15:06:15 2021 +1000 Switch all uses of xf86IDrvMsg and others over to our custom logger Signed-off-by: Peter Hutterer commit f77091d09bf093f6168d3bf0424121b9231232d8 Author: Peter Hutterer Date: Thu Nov 25 14:54:18 2021 +1000 Add a custom log handler This wraps the X-specific xf86IDrvMsg/LogMessageVerbSigSafe into a wcmLog() function. That then calls the X functions, depending on whether we have context as first argument or not. Signed-off-by: Peter Hutterer commit f8e7594e5c08b35304c948701b06692b8e07eb22 Author: Peter Hutterer Date: Thu Nov 25 15:16:49 2021 +1000 Switch a set of functions to use priv instead of common Signed-off-by: Peter Hutterer commit d425f88be8cf1d865b9a24476fc78a1f7bddcc17 Author: Peter Hutterer Date: Thu Nov 25 13:19:53 2021 +1000 Move some init functions to PreInit Axis ranges should not change between PreInit and DEVICE_INIT, so let's just do this during preinit. Signed-off-by: Peter Hutterer commit 5326fd126042684338dfb662f48ba2e27be7fa5a Author: Peter Hutterer Date: Thu Nov 25 13:08:19 2021 +1000 Move a few functions into the driver core xf86Wacom will eventually be the X interface only, move functions that aren't a direct interface for the X driver out of there. Signed-off-by: Peter Hutterer commit e4ea35d56aec59a5de0ef3d9282fdd796d89e6ad Author: Peter Hutterer Date: Thu Nov 25 12:55:28 2021 +1000 Move the X module bits into xf86Wacom.c Split preinit and uninit into two parts each, one for the driver-specific stuff, one for what is purely X specific stuff. Signed-off-by: Peter Hutterer commit 50881abaef562adf53361d938b72327818989ea0 Author: Peter Hutterer Date: Thu Nov 25 11:48:52 2021 +1000 Use WacomDevicePtr as primary context argument This changes all functions (wherever possible) to take a WacomDevicePtr instead of an InputInfoPtr as context argument, with the InputInfoPtr either assigned to priv->pInfo or removed where now superfluous. This should have no functional changes. Remaining functions are those required by the X server to have a certain signature. Signed-off-by: Peter Hutterer commit 4a7e86dc6b3b2b3857407ff45700f7cfb9e40d2c Author: Jason Gerecke Date: Fri Dec 10 14:51:30 2021 -0800 Correct contents of config-ver.h when using autotools Use of single-quotes in the argument to sed was preventing the shell from recognizing the subshell syntax. Signed-off-by: Jason Gerecke commit 682e537631fd5fa2ce9b64c0c8ab505d3d12050e Author: Peter Hutterer Date: Wed Dec 8 08:53:53 2021 +1000 release.sh: re-indent with 4-spaces Signed-off-by: Peter Hutterer commit 89849af33560ea901ee258208d69cd5693536398 Author: Peter Hutterer Date: Wed Dec 8 08:45:37 2021 +1000 Add an editorconfig file Signed-off-by: Peter Hutterer commit 6911018797651de5610db9929645c2df4bc79275 Author: Peter Hutterer Date: Thu Dec 2 14:59:49 2021 +1000 release.sh: support meson as build system If we have configure.ac use the autotools code (functionally unchanged here), otherwise use meson. Signed-off-by: Peter Hutterer commit 46b212c78970c9566f54cf8e9c003502b3c2b16a Author: Peter Hutterer Date: Thu Dec 2 14:55:34 2021 +1000 release.sh: simplify tarball handling We either have bz2 (autotools) or xz (meson), so let's streamline this a bit. And remove the hardcoded bz2 handling from the gitlab code so we can upload xz tarballs. Signed-off-by: Peter Hutterer commit c0053d88276d1509e6b87b35b7468196be849fc7 Author: Peter Hutterer Date: Thu Dec 2 14:44:52 2021 +1000 release.sh: ignore tar.gz, we're not doing anything with them The driver doesn't even generate them, libwacom still does but we don't upload those as release files. So let's just ignore them altogether. Signed-off-by: Peter Hutterer commit 38a896d9f4b7a527622af505be4a4d8eb8947dd5 Author: Peter Hutterer Date: Thu Dec 2 14:23:04 2021 +1000 release.sh: check for local changes before doing any hard work We don't need to search for the build directory etc if we have local changes and bail out anyway- so let's do this first. Signed-off-by: Peter Hutterer commit 2c366e9d32796845588308e1f8142090b53e7c58 Author: Peter Hutterer Date: Thu Dec 2 14:17:01 2021 +1000 release.sh: use find's printf instead of a separate dirname Signed-off-by: Peter Hutterer commit 71bd3e7d1d3f10675b5b4704f4007edcdc167d6d Author: Peter Hutterer Date: Thu Dec 2 14:13:12 2021 +1000 release.sh: compress an if condition, drop another one Let's use a logical or instead of two separate ifs. And we can drop the second check - if somehow the file disappears between those two find commands we have other problems. Signed-off-by: Peter Hutterer commit 01561715839d49b73e67563100ea2a99ad30dfed Author: Jason Gerecke Date: Tue Dec 7 08:29:46 2021 -0800 Fix null dereference warning from Coverity Coverity warns that a null dereference of `priv` can be triggered if the function's call to calloc fails. Take care to verify that `priv` itself has been allocated before trying to free its members. Signed-off-by: Jason Gerecke commit cb7647378e0b951f36f7a334d6dc5fa404ed2ba7 Author: Peter Hutterer Date: Mon Dec 6 09:09:57 2021 +1000 github: use the meson/pkginstall actions from libwacom directly Instead of copying it here, let's just use them directly. Signed-off-by: Peter Hutterer commit 0e7ad96d2ecf0e1c7f4423989c06b2cee3911242 Author: Peter Hutterer Date: Wed Dec 1 12:13:15 2021 +1000 Enable subdir-objects to stop autotools from complaining test/../src/common.mk:3: warning: source file '$(top_srcdir)/src/wcmCommon.c' is in a subdirectory, test/../src/common.mk:3: but option 'subdir-objects' is disabled test/Makefile.am:2: 'test/../src/common.mk' included from here etc Signed-off-by: Peter Hutterer commit 33cf4bf3c06aa3a7eb5e69ccd4299d22223bc094 Author: Peter Hutterer Date: Fri Nov 26 13:24:16 2021 +1000 meson.build: link libm into the driver round() requires linking with -lm Signed-off-by: Peter Hutterer commit 52331eea588779365645a50d6f3db50dde894d5a Author: Peter Hutterer Date: Thu Nov 25 12:44:02 2021 +1000 Move resetting pInfo->private out of wcmFree() No function changes Signed-off-by: Peter Hutterer commit 51c4d40ea965d77c4a26b40bca5b639a14008128 Author: Peter Hutterer Date: Thu Nov 25 21:51:45 2021 +1000 Replace the options correctly xf86Replace*Option returns the new options list. If the key is already present then it'll get overwritten and the existing code works but where it isn't, we just drop the new list to the floor. Signed-off-by: Peter Hutterer commit 8f16e564ca57dff5365f7ba82e3890adeaa5377a Author: Peter Hutterer Date: Fri Nov 26 13:44:50 2021 +1000 Hide the WACOM_DRIVER struct a bit better There's only one call outside wcmCommon and that just resets the pointer - let's make this struct static and provide a function to reset it. Signed-off-by: Peter Hutterer commit 32a712f67a3a84c957e77d5e76c543ef7f8fdde2 Author: Peter Hutterer Date: Fri Nov 26 11:33:37 2021 +1000 Remove unused macro IsUSBDevice Signed-off-by: Peter Hutterer commit 7579ccab4dd472483bc004145feb1079e676967f Author: Peter Hutterer Date: Thu Nov 25 20:54:21 2021 +1000 Define DBG as do while(0) loop if undefined Otherwise, we'll run into bugs where DEBUG is undefined and the following constructs are present: if (foo) DBG("blah"); bar() Without this patch, if DEBUG is defined things work correctly. If undefined, DBG used to result in nothing, causing bar() to be conditional on foo. Signed-off-by: Peter Hutterer commit 65b1701c930291255e6111fbe3839487487cf22e Author: Peter Hutterer Date: Thu Nov 25 13:07:54 2021 +1000 Drop declaration for wcmReady(), not needed Signed-off-by: Peter Hutterer commit 949dc5125e8574196e019506b01bf50c208dbee9 Author: Peter Hutterer Date: Mon Nov 22 15:48:55 2021 +1000 Don't check for the X devices' proximity class The server does exactly that check for us anyway. Signed-off-by: Peter Hutterer commit 01b031e5d9364ceeb256b19d99ada0a23c89e675 Author: Peter Hutterer Date: Mon Nov 22 19:35:46 2021 +1000 Make wcmRotateAndScaleCoordinates easier to read Use temporary variables here for the min/max axis values Signed-off-by: Peter Hutterer commit a7532ef61d3636d192364b82e21eab476ec8f4cc Author: Peter Hutterer Date: Thu Nov 25 15:23:41 2021 +1000 tests: make sure priv->pInfo is initialized correctly Signed-off-by: Peter Hutterer commit 501c78aed9b5c380a429b61981d5c791c718fda9 Author: Peter Hutterer Date: Thu Nov 25 15:18:38 2021 +1000 ISDV4: switch a message to sigsafe logging This is called in the signal path, at least on older servers. Signed-off-by: Peter Hutterer commit c6d6005ce67c72d9e2913b386b25e19bd010d78d Author: Peter Hutterer Date: Thu Nov 25 12:59:53 2021 +1000 Define XI86_DRV_CAP_SERVER_FD to get rid of an ifdef Introduced in the server in the same patch as XI86_SERVER_FD so we can define both and drop the ifdef. Supported since xserver 1.16. Signed-off-by: Peter Hutterer commit c1425350a8fd024ef8c6c2dba595f477d98bc115 Author: Peter Hutterer Date: Thu Nov 25 14:00:48 2021 +1000 Change the WacomDeviceModel funcs to the order they're called in Signed-off-by: Peter Hutterer commit 04705cf59d5188df283598b7e436ba9ad925bed3 Author: Peter Hutterer Date: Thu Nov 25 13:59:56 2021 +1000 Use named initializers in the ISDV4 model struct Signed-off-by: Peter Hutterer commit 2ae4d16798a345e89921a392bc5a23d31861f753 Author: Peter Hutterer Date: Thu Nov 25 13:57:54 2021 +1000 Move GetRanges into Initialize These two are called immediately after each other, let's compress them into one call so it's easier to keep track of which hooks we need. Signed-off-by: Peter Hutterer commit 5f9ac0efed0df4bdeb23f67d4a6e9e912d1ceaba Author: Peter Hutterer Date: Thu Nov 25 13:47:52 2021 +1000 Remove write-only version and id assignment Both were read in one function hook and passed to the other function but never actually read anywhere. Let's drop this. Signed-off-by: Peter Hutterer commit 2beae8cdeca09d87fa89e04b45ec2d82b70c55e3 Author: Peter Hutterer Date: Thu Nov 25 13:41:02 2021 +1000 Drop the unused GetResolution hook The old serial tablets used those but support for those was removed in 2009. ISDV4 and USB both have that hardcoded to NULL. Signed-off-by: Peter Hutterer commit 429ca6e5420238659a4017bf1b8b581b4d87e619 Author: Peter Hutterer Date: Thu Nov 25 13:28:51 2021 +1000 Change the order of functions in the device class Let's use the order they're called in, makes things easier to look up. Signed-off-by: Peter Hutterer commit 955299042f6582fa91395fcf5108f2c4f4e305fa Author: Peter Hutterer Date: Thu Nov 25 11:55:06 2021 +1000 Store the input properties in the driver This requires kernel 2.6.38, released in 2011 If that's too modern, #define INPUT_PROP_DIRECT and ignore the ioctl return value. Signed-off-by: Peter Hutterer commit 1e45aa3573e40715e23012de7bc67e9c7a3ced34 Author: Peter Hutterer Date: Fri Nov 19 21:16:39 2021 +1000 Decouple priv->name and pInfo->name Leave the server's name pointer as-is and keep our own copy around. No real functional change, this is just decoupling. Signed-off-by: Peter Hutterer commit c81f65967894d288bfa55c3f2476ccd993d77050 Author: Peter Hutterer Date: Thu Nov 25 10:08:05 2021 +1000 Require kernel 2.6.30 or newer 12 years is enough time to update the kernel... Signed-off-by: Peter Hutterer commit 1b6aeba34be2e4c3f9de6b41f4697e80998baa00 Author: Peter Hutterer Date: Thu Nov 25 09:58:39 2021 +1000 sendWheelStripEvent should take pInfo as first arg like everything else Signed-off-by: Peter Hutterer commit 85c94a88ee1a4dd76fa6f1ccf5dc44c270bd5835 Author: Peter Hutterer Date: Thu Nov 25 09:54:39 2021 +1000 wcmIsWacomDevice can be static Signed-off-by: Peter Hutterer commit b3e7a957eb15250498162885e6bb60f9b23fe7b9 Author: Peter Hutterer Date: Tue Nov 23 10:55:26 2021 +1000 Split setting the HW touch property in two Part one is the internal state update which we can move out into the single caller we have (and we only get here if the state has changed). Part two is the X property update. Signed-off-by: Peter Hutterer commit d6f22a604b0c13cc24e8c0e6fd952e2242ae104f Author: Peter Hutterer Date: Tue Nov 23 10:52:48 2021 +1000 Split setting the serial property into two logical parts Part one is the driver-internal state update, part two is the X property update. Signed-off-by: Peter Hutterer commit 6996cebdb9d7efa4702274103ca2fe265e66e037 Author: Peter Hutterer Date: Tue Nov 23 10:46:25 2021 +1000 Split listing models into the core and the X-specific part Not really needed, this is prep for future work to split things up a bit easier. The wacom-specific part merely collates the models into a list, the X specific part is what converts it to the API the X server provides for printing. Signed-off-by: Peter Hutterer commit 76d60a8556eca91e5e80d25e1b1b7aecd4ffdced Author: Peter Hutterer Date: Wed Nov 24 20:04:10 2021 +1000 Don't call wcmClose if we failed to open And remove the debug message too, wcmOpen() will log for us on failure Signed-off-by: Peter Hutterer commit 2f39abedf6c034c1bdbe0352ad69ad5b090e553e Author: Peter Hutterer Date: Fri Nov 19 21:16:39 2021 +1000 Move the function pointer setup out of wcmAllocate And in the process make wcmAllocate return the pointer that was allocated rather than magically setting the right fields in the argument struct. Signed-off-by: Peter Hutterer commit 0d80957b723e763f12ea7ef292e991bec5949ffe Author: Peter Hutterer Date: Tue Nov 23 10:00:34 2021 +1000 Remove unused variable from WacomDeviceState commit 415dc7ed7b33cdbe5da7034fc904adf649dcc8d4 Author: Peter Hutterer Date: Mon Nov 22 11:17:49 2021 +1000 Skip opening a device without a common path No point opening it if we then fail in the same condition anyway. This saves us a call to wcmClose() because we know the fd won't be open if wcmOpen() fails. Signed-off-by: Peter Hutterer commit 0ed23b61e082dbc42b5d67943e5db4e1dd66b630 Author: Peter Hutterer Date: Mon Nov 22 10:54:47 2021 +1000 Return an errno from wcmReadPacket() Return the number of bytes read or a negative errno on error, and let the caller deal with the errno handling. Signed-off-by: Peter Hutterer commit e7772d7da3fa20298b7e4500d4c1201ab1f902c4 Author: Peter Hutterer Date: Mon Nov 22 10:50:52 2021 +1000 Return an errno from wcmReady() Return the number of bytes available or a negative errno on error. This also fixes an issue with the errno handling - where the debugging code would print there was a chance of us clobbering errno before printing the message. This is no longer the case. Signed-off-by: Peter Hutterer commit 1a11c65d417174f9eb1cfbd702ee3bec15237193 Author: Peter Hutterer Date: Sun Nov 21 12:09:54 2021 +1000 Drop the type name from the debug message It's constant for the lifetime of the device anyway, so the device name we're printing should be sufficient. Signed-off-by: Peter Hutterer commit 1f68d091221412f2ddc1fb4fa36fe0d459335097 Author: Peter Hutterer Date: Sat Nov 20 21:30:20 2021 +1000 Move a header to a more localized position This is only needed here where we're dealing with properties. Signed-off-by: Peter Hutterer commit 3ab054df113eba52a588ce985bac88bcf3fc1c73 Author: Peter Hutterer Date: Sat Nov 20 21:04:01 2021 +1000 Store the boolean to check for grabs or not in the USB data This effectively collates all the option checks into wcmPreInit as opposed to doing the check at some random time later. Signed-off-by: Peter Hutterer commit 28e1700ad2fe2cad53b38bb27fb93f71523ff14d Author: Peter Hutterer Date: Mon Nov 22 12:45:50 2021 +1000 Simplify axis resolution initialization a bit No-one really cares about min/max resolution anyway, so let's simplify this: if the resolution is zero, set it all to 1 (server requirement), otherwise set min 0 and max whatever the resolution is. This almost matches what we had except for tilt where we had min_res == max_res. but as I said, no-one cared about that. Signed-off-by: Peter Hutterer commit 13c848470ca4e600db4e8f6762932ec78989fe31 Author: Peter Hutterer Date: Tue Nov 23 13:38:24 2021 +1000 Move the setup of the property handlers into InitWcmProperties A more logical place to have this and it allows us to make the functions static. Signed-off-by: Peter Hutterer commit cf03a8754e6948de623554c2bffc2c56b16099fc Author: Peter Hutterer Date: Tue Nov 23 13:38:24 2021 +1000 Initialize button actions during DEVICE_INIT Previously this was initialized as part of the property handler setup, but the two should be handled separately. Move the initialization of the properties to the driver init code and in the properties code merely copy the values into the property. Signed-off-by: Peter Hutterer commit bd8949115643114876cea0e017518d648ff0633c Author: Peter Hutterer Date: Thu Nov 25 08:29:38 2021 +1000 Rename the key/wheel/strip actions to foo_actions Makes the code easier to read Signed-off-by: Peter Hutterer commit b941a49e7a3ff30d05c1b59fc623ec70c774d856 Author: Peter Hutterer Date: Thu Nov 25 08:27:26 2021 +1000 Rename the action property arrays to foo_action_props Easier to understand if they're named after what they contain. Signed-off-by: Peter Hutterer commit c3e93aef15e0dcf913161ab0df5856847167ba48 Author: Peter Hutterer Date: Tue Nov 23 13:36:15 2021 +1000 Split action and property update/init into two separate paths One to update the structs, the other one to update the X properties accordingly. This is a more logical split than having the property initialized at the same time as resetting the driver-internal structures. Signed-off-by: Peter Hutterer commit 81013ea4f9b21e6a6cece259b98d25c050371615 Author: Peter Hutterer Date: Tue Nov 23 15:37:57 2021 +1000 Make sure action properties initialize with the right count Wheel and strip actions default to two entries but we've only ever copied the first of those into the property. Signed-off-by: Peter Hutterer commit ae63ab5c6ab587b78115fa3a43d315a2a221cb35 Author: Peter Hutterer Date: Tue Nov 23 12:36:19 2021 +1000 Add a struct for WacomActions Easier to pass structs around than arrays and their size, doubly so when we have a hardcoded size for those arrays Signed-off-by: Peter Hutterer commit 4b0d71f3e322ffb27119684c4fdfc37ff82fa58c Author: Peter Hutterer Date: Tue Nov 23 12:32:37 2021 +1000 Remove a pointer indirection from static void wcmResetAction The resetting function itself shouldn't care about indices and how the caller stores the data. Signed-off-by: Peter Hutterer commit 0b121ecb9f544b1ae3636ee28052bec45937d898 Author: Peter Hutterer Date: Wed Nov 24 15:20:41 2021 +1000 Use the ABI_XINPUT_VERSION macro directly to compare major+minor Signed-off-by: Peter Hutterer commit c310f0849f0a63f288c4c9727332520b7f924d02 Author: Peter Hutterer Date: Wed Nov 24 15:17:59 2021 +1000 Require xserver 1.13 Released 9 years ago and available in e.g. RHEL6.4 and later, this is plenty old an X server to support. ABI version 18.0 so we can get rid of most of our ifdefs. Signed-off-by: Peter Hutterer commit db26b7d0417997bd6acd06e47d97888e1a10adb4 Author: Peter Hutterer Date: Wed Nov 24 14:09:56 2021 +1000 Integrate the meson build into our github workflow actions copied from libwacom and we can re-use the pkginstall action for the normal build job too. Signed-off-by: Peter Hutterer commit e6c727da7a1d332253a9193963b6d4f931b2e69f Author: Peter Hutterer Date: Wed Nov 24 10:15:34 2021 +1000 Add support for building the driver with meson In addition to autotools, the driver can now be built with meson: meson setup builddir ninja -C builddir ninja install -C builddir Signed-off-by: Peter Hutterer commit d37f9aba270b61e79178b5e0125901b2e711ffec Author: Peter Hutterer Date: Wed Nov 24 15:44:49 2021 +1000 Use __attribute__((fallthrough)) to mark one of the fallthrough cases No compiler check performed here, if your compiler doesn't support it, define it as empty to override the default. Signed-off-by: Peter Hutterer commit 2fc8e2e01a8b2f4d645ff95328f07c8624b2a161 Author: Peter Hutterer Date: Wed Nov 24 11:34:51 2021 +1000 conf: use @ instead of __ for a sed replacement This makes meson integration easier Signed-off-by: Peter Hutterer commit 9e45806864df2a725e303b4fdb4564c7841bc960 Author: Peter Hutterer Date: Wed Nov 24 10:44:07 2021 +1000 Explicitly include the config-ver.h header file Don't automagically append it to the bottom of config.h, let's be explicit. Signed-off-by: Peter Hutterer commit 27b0f50c02ca1329bc95aab7dfc1e2bfbdc1ba03 Author: Peter Hutterer Date: Wed Nov 24 10:33:52 2021 +1000 Simplify the git version generation Use a template file and call sed on that - it's a single-line command in the makefile and easier to understand. Signed-off-by: Peter Hutterer commit baf91c9402b222b3f532d1f89a79d1cd77d4d821 Author: Peter Hutterer Date: Wed Nov 24 10:17:19 2021 +1000 Unifdef HAVE_CONFIG_H There's no case where this is not defined Signed-off-by: Peter Hutterer commit 6cf383ca985877b7285f856de61a4edee4f93480 Author: Peter Hutterer Date: Wed Nov 24 10:14:03 2021 +1000 Switch two #if DEBUG to #ifdef DEBUG to be consistent Signed-off-by: Peter Hutterer commit 06a44ac3074774c3eb1c59739bcc9cfa775649d3 Author: Peter Hutterer Date: Wed Nov 24 09:13:05 2021 +1000 man: use @PACKAGE_VERSION@ as version sub in the man page Makes use of meson easier which requires @ as pre/suffix for variables. Signed-off-by: Peter Hutterer commit ef75756b7d5fe261da1cae447a56d6e79f73c88e Author: Peter Hutterer Date: Wed Nov 24 09:09:17 2021 +1000 man: replace the various suffixes with their actual numbers These don't change, iirc they exist because of some unixes having different man pages but at this point really on Solaris is left and that uses the same suffixes as everyone else. And the __xservername__ is a leftover from the Xfree86 vs Xorg days - if you're still running Xfree86, you're not using this driver. Signed-off-by: Peter Hutterer commit 6def5202ad013f31df237a5c37dfbd099e14b3b0 Author: Peter Hutterer Date: Wed Nov 24 09:04:21 2021 +1000 Remove the doxygen bits This hasn't been maintained in years, we don't consistently document things and the documentation has never been published anywhere useful. Let's just drop this. Signed-off-by: Peter Hutterer commit ef209bc779176172c73e8f307e8a6ff2d0779d1c Author: Peter Hutterer Date: Mon Nov 22 12:32:11 2021 +1000 Move axis number clamping to where we assign it Signed-off-by: Peter Hutterer commit 5900f0547eeb38b690ae5bdee242720c61c9d480 Author: Peter Hutterer Date: Sun Nov 21 20:34:08 2021 +1000 Move device/type option fetching to after allocation Allocation may fail, so let's move this after the first failure path so we don't do unnecessary work. Signed-off-by: Peter Hutterer commit 0b985dfaf49373f12db7abadbaefdd32951fc47c Author: Peter Hutterer Date: Sun Nov 21 11:53:14 2021 +1000 Use strcasecmp instead of xf86NameCmp The latter skips over '_ \t' but none of the options we parse will have any of those characters in it. Let's use strcasecmp() directly. Signed-off-by: Peter Hutterer commit 18b38bf3af8246df17220cb6185a0d1aa549bb0e Author: Peter Hutterer Date: Tue Nov 23 12:18:29 2021 +1000 Drop two unused arguments in wcmResetAction Neither of those seem to have ever been used Signed-off-by: Peter Hutterer commit 9525a0a69b8631c3f9feecb47f51a6d84545b378 Author: Peter Hutterer Date: Tue Nov 23 10:40:42 2021 +1000 Hardcode the USB ids for the few non-wacom tablets we support These never change, let's just hardcode them as strings and skip the dynamic ID generation Signed-off-by: Peter Hutterer commit 56f7bbbc51c6e3de284ea72b3e02b75e812c6d02 Author: Peter Hutterer Date: Tue Nov 23 10:01:11 2021 +1000 Include limits.h for INT_MAX, math.h for round() No changes since those are included by other headers, but let's be correct here. Signed-off-by: Peter Hutterer commit 08dff4b378f47beb929384bc831cdcca6c892e39 Author: Peter Hutterer Date: Sun Nov 21 21:20:55 2021 +1000 Make wcmCheckSource()'s control flow simpler Let's check for pointer equality and driver name first, because we can skip the rest otherwise. commit a9fb16eff239a582368fc9d67bff846eacb99916 Author: Peter Hutterer Date: Mon Nov 22 09:17:47 2021 +1000 Change wcmOpen to return the fd or a negative errno This is a more common signature of an open call, and it also fixes the previous issue: the function signature was Bool but the return value was 0 on success and nonzero on failure. Not what you'd expect. Signed-off-by: Peter Hutterer commit 285b0aeac16235475082e88076eba5660b2ad5c5 Author: Peter Hutterer Date: Sat Nov 20 21:16:29 2021 +1000 Fix indentation for the WacomDeviceClass decls Signed-off-by: Peter Hutterer commit 3cb35dc5673c4bfc9aab5e96f33b4866aa8f947b Author: Peter Hutterer Date: Sat Nov 20 21:31:28 2021 +1000 Remove two obsolete includes mipointer is probably a leftover when we had our own multiscreen handling code. xorgVersion.h contains a few macros, none of which we seem to use. Signed-off-by: Peter Hutterer commit 99a4388abb539a66cbd4886851c232e9cb61f21d Author: Peter Hutterer Date: Sun Nov 21 11:50:01 2021 +1000 Group two include statements Signed-off-by: Peter Hutterer commit d0327670ffa5b0975fb40b2f988ac8ec72261bca Author: Peter Hutterer Date: Sat Nov 20 21:18:43 2021 +1000 Remove a few #defines no longer needed If you're running 2.6.33 or older (released in 2010), you're probably not running the latest X server + drivers. And not having inline is just no longer an option, it's not 1989 anymore. Signed-off-by: Peter Hutterer commit f22586a0861b9bad70f4ffb208526280308c0c80 Author: Peter Hutterer Date: Mon Nov 22 09:35:21 2021 +1000 Replace xf86ReadSerial and xf86WriteSerial with libc calls That's all the server does anyway for these calls. That and some debugging printf of the data but that would require the server to be build with those debugging flags enabled. Signed-off-by: Peter Hutterer commit 4865f088a20a568908241664dfa406b42d003f03 Merge: 32e21fe93b7f d0d288211c83 Author: Ping Cheng Date: Fri Nov 19 14:53:28 2021 -0800 Merge pull request #190 from whot/wip/cleanup Require xserver 1.10, use xf86IDrvMsg commit d0d288211c8313fa99db0733ab2765375867bceb Author: Peter Hutterer Date: Fri Nov 19 21:56:39 2021 +1000 github: don't warn about unused parameters This is just spamming the build logs, we have too many of those. Signed-off-by: Peter Hutterer commit 89265b05f13a28646696f28b9709a8d02c5cb0fb Author: Peter Hutterer Date: Fri Nov 19 21:13:30 2021 +1000 Drop the gWacomModule function set There's little point having a separate struct for these few setup fuctions. Signed-off-by: Peter Hutterer commit 2ae0c60d5d9ada342e60ae8a4f7a4847759c84b6 Author: Peter Hutterer Date: Fri Nov 19 21:06:33 2021 +1000 Remove a write-only variable Signed-off-by: Peter Hutterer commit 31d736334fadf9c69c01f86e1d1ca1f6540396ae Author: Peter Hutterer Date: Fri Nov 19 21:42:30 2021 +1000 test: always build the tests They don't test much but it's still better to always build them so we don't have to chase down compilation errors after the fact. Signed-off-by: Peter Hutterer commit 637a52ae3ab1abed05a9fce8279c7a80aa1af47d Author: Peter Hutterer Date: Fri Nov 19 13:23:08 2021 +1000 Use xf86IDrvMsg wherever possible This function was added in server 1.10, released in Feb 2011. Bump the requirements accordingly. Signed-off-by: Peter Hutterer commit a2a33b41f1ae8d918190e3f0bf14c38cc7db8549 Author: Peter Hutterer Date: Fri Nov 19 15:50:11 2021 +1000 Require xserver 1.10 as minimum version Released in 2011 and available in RHEL6.2 and later, this should be conservative enough. It allows us to drop a bunch of code that requires older ABIs (anything ABI_XINPUT_VERSION < 12). Signed-off-by: Peter Hutterer commit b13a40cb9c2015093cc9e12fb1ecc1cedbe8925c Author: Peter Hutterer Date: Fri Nov 19 13:28:00 2021 +1000 Remove trailing whitespaces sed -i 's/ *$//' $(git ls-files) Signed-off-by: Peter Hutterer commit 32e21fe93b7f7e2076f7dcdfea582a39c4474a12 Author: Jason Gerecke Date: Thu Jul 15 12:19:36 2021 -0700 Cleanup `wcmIsAValidType` This patch cleans up the `wcmIsAValidType` function so that it is a bit easier to understand. It replaces several `if` conditions with named variables, adds additional comments for what the code is doing, and reformats the flow to be easier to follow and reason about. Signed-off-by: Jason Gerecke commit ae3efeede58be099d763da726b8325af57fc68c8 Author: Jason Gerecke Date: Tue Feb 16 10:39:37 2021 -0800 Stop logging "Invalid type" error messages when auto-detecting type The `wcmIsAValidType` function is not the proper place to log an invalid type error since it is used to auto-detect an appropriate type for a device which does not have a manually-set type. This commit removes the error message and creates replacements to handle true error conditions. In particular, this means logging an error if *no* valid type is found, and logging an error if a serial-number tool does not actually support one of the expected types. Before: ~~~ (II) Using input driver 'wacom' for 'Wacom Cintiq 24HD touch Finger' (II) systemd-logind: got fd for /dev/input/event6 13:70 fd 29 paused 0 (**) Wacom Cintiq 24HD touch Finger: always reports core events (**) Option "Device" "/dev/input/event6" (EE) Wacom Cintiq 24HD touch Finger: Invalid type 'stylus' for this device. (EE) Wacom Cintiq 24HD touch Finger: Invalid type 'eraser' for this device. (EE) Wacom Cintiq 24HD touch Finger: Invalid type 'cursor' for this device. (II) Wacom Cintiq 24HD touch Finger: type not specified, assuming 'touch'. (II) Wacom Cintiq 24HD touch Finger: other types will be automatically added. (**) Wacom Cintiq 24HD touch Finger touch: panscroll is 0 (**) Wacom Cintiq 24HD touch Finger touch: panscroll modified to 13 (--) Wacom Cintiq 24HD touch Finger touch: maxX=5184 maxY=3240 maxZ=0 resX=10000 resY=10000 (II) Wacom Cintiq 24HD touch Finger touch: hotplugging dependent devices. (EE) Wacom Cintiq 24HD touch Finger touch: Invalid type 'stylus' for this device. (EE) Wacom Cintiq 24HD touch Finger touch: Invalid type 'eraser' for this device. (EE) Wacom Cintiq 24HD touch Finger touch: Invalid type 'cursor' for this device. (EE) Wacom Cintiq 24HD touch Finger touch: Invalid type 'pad' for this device. (II) Wacom Cintiq 24HD touch Finger touch: hotplugging completed. ~~~ After: ~~~ (II) Using input driver 'wacom' for 'Wacom Cintiq 24HD touch Finger' (II) systemd-logind: got fd for /dev/input/event6 13:70 fd 29 paused 0 (**) Wacom Cintiq 24HD touch Finger: always reports core events (**) Option "Device" "/dev/input/event6" (II) Wacom Cintiq 24HD touch Finger: type not specified, assuming 'touch'. (II) Wacom Cintiq 24HD touch Finger: other types will be automatically added. (**) Wacom Cintiq 24HD touch Finger touch: panscroll is 0 (**) Wacom Cintiq 24HD touch Finger touch: panscroll modified to 13 (--) Wacom Cintiq 24HD touch Finger touch: maxX=5184 maxY=3240 maxZ=0 resX=10000 resY=10000 (II) Wacom Cintiq 24HD touch Finger touch: hotplugging dependent devices. (II) Wacom Cintiq 24HD touch Finger touch: hotplugging completed. ~~~ Link: https://github.com/linuxwacom/input-wacom/issues/221 Signed-off-by: Jason Gerecke commit 9d7e3bf42052694c799da1e16ad7f60c913a492f Author: Jason Gerecke Date: Wed Feb 3 06:46:54 2021 -0800 wacom 0.40.0 Signed-off-by: Jason Gerecke commit abffe85e3a873c63237b96e5d3d40172805f3822 Author: Jason Gerecke Date: Tue Feb 2 14:49:29 2021 -0800 Recognize pad devices which only have softkeys (e.g. Cintiq Pro 32) Devices like the Cintiq Pro 32 have pad devices that have no ExpressKeys. This prevents them from being recognized as a pad by the driver. When the device is connected, an `Invalid type 'pad' for this device` message would be logged. This has not been an issue in the past since there is nothing for the device to do without any ExpressKeys. Now that the driver is capable of forwarding the various softkeys as fixed-function keyboard events, however, it would be good to ensure that these kinds of devices are detected properly. Recognizing the device as a pad only requires us to expand on the list of tools that are known identifiers. Since we want softkey-only pads to be recognized, the two softkeys to the list. One or both of the keys should be present on devices like the Cintiq Pro 32, allowing the pad to be recognized as such. Signed-off-by: Jason Gerecke commit a93666436303b89d11eff7fd0e5de93d76a1e2d9 Author: Peter Hutterer Date: Thu Jan 17 15:20:45 2019 +1000 Support the keycodes sent by the hardware buttons Forward the pad keys as keycodes KEY_PROG1-4. The evdev code has the right meaning, but we cannot route those keys (>255) so we just map them to KEY_PROG1-4 instead. This way we can in the future add a xkeyboard-config option to assign something to those keys. Signed-off-by: Peter Hutterer commit 2f5f1096ee877a72f7d9585e56c98e07e8ed00b6 Author: Russell Haley Date: Mon Aug 24 01:17:27 2020 -0500 Stop pointer movement when panscrolling in relative mode Always stop pointer movement when a panscroll button is pressed in relative mode, instead of only when the pen is down. This keeps the pointer from "walking" when the user lifts the pen and scrolls repeatedly. Fixes: https://github.com/linuxwacom/xf86-input-wacom/issues/139 Signed-off-by: Russell Haley commit 252bdda1ff71d1a167adfd0246464df536805746 Author: vintagepc <53943260+vintagepc@users.noreply.github.com> Date: Fri Jun 5 17:36:52 2020 -0400 Better explanation of the "ToolSerials" option For https://github.com/linuxwacom/xf86-input-wacom/issues/128 commit 120dca3ae7dbcad382e148b2edde160e2020874a Author: Jason Gerecke Date: Thu Jan 21 13:25:10 2021 -0800 Remove Travis integration Now that we've integrated with Github Actions, Travis is no longer necessary. Notably this does mean the loss of ppc64le testing, but it isn't a high priority target, and we will have lost that testing anyway once our free Travis credits run out... Signed-off-by: Jason Gerecke commit 065aec968f7a89dd74987b8eb50ab4615f0c4347 Author: Jason Gerecke Date: Fri Jan 15 11:35:30 2021 -0800 Add workflow for automated testing via Github Actions We've been using Travis for our automated tests, but that service is becoming more difficult to use (open source projects have to periodically request free credits to keep running). Github itself can be used as a replacement by using its "Actions" infrastructure to execute various defined workflows. This commit ports the Travis script into Github syntax. Most everything was translated without issue, but support for the ppc64le architecture is notably missing. This is not a critical target for us, however, so we ignore it for the time being. Signed-off-by: Jason Gerecke commit d56107e19a57bf3cf44e266a394da43397a8841a Author: Jason Gerecke Date: Fri Jan 15 10:24:10 2021 -0800 gitignore: Add a few more entries Ignore the announce and sig files generated as part of the release process. Also ignore the version info generated as part of the compile process. Signed-off-by: Jason Gerecke commit 2dc5769aaa91e8f61620a027af21b4e0b7ac1cc8 Author: Jason Gerecke Date: Wed Dec 2 13:51:44 2020 -0800 tools: update rules to handle bind/unbind events Summary: we expect add, change or remove but kernel 4.12 added bind and unbind. These events were previously discarded by udevd. Our rules should handle any event *but* remove, so update as suggested in the announce email linked below. For a longer explanation, see the system 247rc2 announcement https://lists.freedesktop.org/archives/systemd-devel/2020-November/045570.html Signed-off-by: Jason Gerecke commit f9cc6a1dda10c1e8cdd1c68a7873c4d90665cb06 Author: Jason Gerecke Date: Mon Nov 30 08:32:28 2020 -0800 Increase size of event queue to 128 The size of the event queue defines how many kernel events we can keep track of before seeing a SYN_REPORT. If we are ever asked to handle more than this limit, data is dropped with unpredictable consequences. Our previous queue size of 32 was usually sufficient but could still be bumped into in edge-cases. Updating 8 or more touch contacts at the same time could sometimes cause the queue to run out of space, for example. This commit bumps the queue size up to 128. This should be more than enough for all current devices (some of which can track up to 16 contacts). Signed-off-by: Jason Gerecke commit a7f88f9c0194c8ecaffb81b073f3620b8b90b014 Author: Jason Gerecke Date: Mon Nov 30 08:32:11 2020 -0800 Remove duplicate MAX_USB_EVENTS definition A definition of this macro already exists in wcmUSB.c and is not used in any other file. There's no need for this duplicate to exist. Signed-off-by: Jason Gerecke commit 9b7d679ebe1f12eb61814dcd9aba6f7cbdedbb57 Author: Peter Hutterer Date: Mon Oct 19 16:25:05 2020 +1000 travis CI: order ppc64le after amd64 https://docs.travis-ci.com/user/multi-cpu-architectures/ says that "explicitly included builds inherit the first value in an array" and the example there matches our configuration. Moving ppc64le to after amd64 means the coverity job we have is now (again) run on amd64 only, fixing the current test case failures - Coverity doesn't support ppc64le. Signed-off-by: Peter Hutterer commit 9bf6954aaee05ebc32d86ca8297d8bcbe927c46f Author: kishorkunal-raj Date: Mon Sep 21 07:40:38 2020 +0000 Adding ppc64le architecture to support on travis-ci commit a4372a2e6083312defc9eef2806ebea98f02fa1a Merge: 095ba9c48e8c 304ee7eefc35 Author: Jason Gerecke Date: Mon Aug 3 08:26:00 2020 -0700 Merge pull request #137 from Pinglinux/for-cintiq-16-2 Support new Cintiqs for older kernels Reviewed-by: Jason Gerecke commit 304ee7eefc355176334518449a363e65afb341b2 Author: Ping Cheng Date: Wed Jul 29 13:29:47 2020 -0700 Support new Cintiqs for older kernels Kernels older than 2.6.38 do not report INPUT_PROP_DIRECT Signed-off-by: Ping Cheng commit 095ba9c48e8cf8a96970e211ed734ba5883a0025 Author: Aaron Armstrong Skomra Date: Tue Jan 7 11:24:15 2020 -0800 Add new "Wacom One Pen Display 13" PID Signed-off-by: Aaron Armstrong Skomra commit 0fb1699b48a36a564ce3b928d90be27f896c220a Author: Jason Gerecke Date: Fri Dec 20 10:42:31 2019 -0800 wacom 0.39.0 Signed-off-by: Jason Gerecke commit a3b03e8638c037132fdf0927c7e488ec80967a5c Merge: 3b338312eb27 a2f52bd6b338 Author: Jason Gerecke Date: Mon Dec 16 13:01:39 2019 -0800 Merge pull request #96 from jigpu/add-new-msp-pid Recognize new MobileStudio Pro PID Reviewed-by: Aaron Armstrong Skomra commit a2f52bd6b338031331fefe074d22b7ed19057341 Author: Jason Gerecke Date: Fri Dec 6 11:26:51 2019 -0800 Recognize new MobileStudio Pro PID A new PID is in use for repaired MobileStudio Pro devices. Add it to the various device properties lists. Signed-off-by: Jason Gerecke commit 3b338312eb275f2d9a602805931fa47d863a0209 Merge: b40122dd49ca 5113d18300bf Author: Jason Gerecke Date: Mon Nov 4 09:14:40 2019 -0800 Merge pull request #92 from jigpu/fix-74 Ignore ABS_MISC as a source of device type information for AES pens commit 5113d18300bfae2dbffc78c67aef0760d612d995 Author: Jason Gerecke Date: Mon Sep 23 14:29:09 2019 -0700 Ignore ABS_MISC as a source of device type information for AES pens AES sensors use protocol 5 since they send ABS_MISC events which contain information about the tool type in use. The tool type information sent by AES sensors does not match that used by EMR sensors, however. In particular, it is not possible to extract stylus/eraser/puck information from the ID. The driver would normally never try to extract this information, but the problem was highlighed when a bug in the kernel would cause the device ID to be reported twice: once in a packet alongside a BTN_TOOL_* event (fine) and a second time in a packet without such an event (causing the driver to try to figure it out from the ID instead). This commit adds detection for AES pen IDs and does not try to extract such information if an AES pen is in use. We assume that any protocol 5 device which predates the use of Intuos5-era technology uses the legacy IDs. Ref: https://github.com/linuxwacom/input-wacom/issues/134 Fixes: https://github.com/linuxwacom/xf86-input-wacom/issues/74 Signed-off-by: Jason Gerecke commit b40122dd49ca2cdd2d2608f30e5340d5c963187d Merge: 17028f68f5ca 2a7af30793f9 Author: Jason Gerecke Date: Wed Oct 23 13:50:18 2019 -0700 Merge pull request #90 from jigpu/fix-86 tools: Fix potential buffer overflow when reading from serial tablet Reviewed-by: Aaron Armstrong Skomra commit 2a7af30793f9aa6e36acdc7c8b908d0965585437 Author: Jason Gerecke Date: Thu Oct 10 12:13:39 2019 -0700 tools: Fix potential buffer overflow when reading from serial tablet The read_data() function has a "min_len" number of bytes to read to ensure that a complete data structure is read, regardless of garbage that may be on the line. When garbage is present, however, it can potentially overflow the buffer. The function already has code to memmove the good data over garbage and perform re-reads until "min_len" bytes of good data are available. All we need to do to avoid the buffer overflow is ensure that the maximum number of bytes we read() in one call is no more than the number of bytes free at the end of the buffer. Ref: https://github.com/linuxwacom/xf86-input-wacom/issues/86 Fixes: 3546d8ab1b ("tools: add isdv4-serial-debugger test program") Signed-off-by: Jason Gerecke commit 17028f68f5ca41cf6c77e4166e48006e6c3fff45 Author: Jason Gerecke Date: Mon Oct 14 10:40:45 2019 -0700 wacom 0.38.0 Signed-off-by: Jason Gerecke commit 6e42a0806f61b112deee4e4fa30daf23a435e40c Author: Jason Gerecke Date: Wed Oct 9 14:25:21 2019 -0700 wacom 0.37.99.1 Signed-off-by: Jason Gerecke commit 76878df9a7bbcead2375a19fd1683f830e6941bb Merge: 3a4b96139e27 af2fafdff96b Author: Jason Gerecke Date: Wed Oct 9 14:04:22 2019 -0700 Merge pull request #84 from jigpu/gesture-mods Gesture mode default change Reviewed-by: Aaron Armstrong Skomra commit af2fafdff96ba4f087fcbe4ce4ddc57916614e84 Author: Jason Gerecke Date: Wed Sep 4 10:27:08 2019 -0700 Handle multitouch mode up at the very start wcmGestureFilter Moving the code which handles multitouch mode to the start of the function both makes the code more obvious and ensures that we don't accidentally recognize an unwanted gesture. Doing so much partial-processing before eventually hitting a "goto ret" and handling multitouch mode was tricky to understand and hard to verify. Signed-off-by: Jason Gerecke commit 009f7424a21cd56404c9827d69e6920551bf43c8 Author: Jason Gerecke Date: Wed Sep 4 10:03:13 2019 -0700 Perform a few cleanups in wcmTouchFilter.c Removes the #ifdef compile guards around the code that checks if gestures are disabled prior to doing multitouch processing. They aren't strictly necessary, and actually prevent "gesture off" from having an effect on older X servers. Also removes a vestigial check in wcmFingerMultitouch. The original version of the function would only be called once two or more fingers were down. This gave wcmSingleFingerPress a chance to send a left-click event when just a single finger came in contact with the touchscreen. Later it was realized that the MT protocol requires us to send even *single* touch events for touchscreens through its API, so the code was changed to *always* call wcmFingerMultitouch when a touchscreen was in use. This had the side-effect of never calling wcmSingleFingerPress, rendering this check useless. Also removes some unnecessary checks from the zoom/scroll processing that are either already handled by pre-conditions above or have no real effect. Signed-off-by: Jason Gerecke commit 31a5405f7d9405bc514585709161287b0c67386e Author: Jason Gerecke Date: Mon Sep 9 15:32:17 2019 -0700 Change default gesture mode: touchpad=on, touchscreen=off A large number of users run the GNOME desktop which has its own gesture engine that performs actions on touchscreens. These gestures are much better than the ones we provide, so lets disable our engine by default for touchscreens. Note that GNOME doesn't do anything with touchpad gestures, so we leave them enabled by default. Note that this change will effectively cause a feature regression for users of other environments that do *not* have their own gesture engines (Cinnamon, KDE, MATE, XFCE, etc.). Users will want to add an xorg.conf.d snippet with `Option "Gesture" "on"` to bring back the functionality. Signed-off-by: Jason Gerecke commit 3a4b96139e27a593c869fe28999211d6c90142eb Merge: ef943197cc91 3eb70aeb87a2 Author: Jason Gerecke Date: Thu Sep 12 15:07:01 2019 -0700 Merge pull request #78 from Pinglinux/master Support new MobileStudio Pro for older kernels Reviewed-by: Jason Gerecke commit 3eb70aeb87a2aed091cf3bd80e6236aa9c1fdbaf Author: Ping Cheng Date: Tue Sep 10 21:40:58 2019 -0400 Support new MobileStudio Pro for older kernels Support new MobileStudio Pro 13 and 16 Signed-off-by: Ping Cheng commit ef943197cc912f782412dcbe02aac92a8fb4d61f Merge: 0ac49a26d252 a38074dcfb23 Author: Jason Gerecke Date: Mon Sep 9 14:43:45 2019 -0700 Merge pull request #77 from jigpu/issue-43 Improve gesture recognition and usability Reviewed-by: Aaron Armstrong Skomra commit a38074dcfb2350c0253ae4ac3c3745c4977596e5 Author: Jason Gerecke Date: Wed Jul 24 13:48:08 2019 -0700 Trigger scroll and zoom gestures immediately after they are detected The amount you have to move your fingers to start a gesture is quite a larger than the amount you have to move them to continue to gesture. This makes the smooth use of gestures difficult since it can be a little unpredictable exactly when they finally kick in. By triggering the zoom and scroll gestures at the same distance as it takes to continue them, the gestures feel much more smooth to execute. This commit removes the various delays that prevent gestures from being executed the moment the configured scroll or zoom distance is achieved. Ref: https://github.com/linuxwacom/xf86-input-wacom/issues/43 Signed-off-by: Jason Gerecke commit 3cf2348aa5b3cb169a0b9d5ce06a243dcd009e0c Author: Jason Gerecke Date: Mon Jun 25 14:54:41 2018 -0700 Revert "Reset wcmGestureState to current device state upon gesture start" This reverts commit 8f85692a19bd34dae77071a296a14c01a491cf4a. In the next commit we will be starting gestures immediately on detection, eliminating the need for this commit. (Indeed, its existance actually is an additional delay of 1 event distance to immediate execution) Signed-off-by: Jason Gerecke commit 73c0fdb41eeea00667029d5eea1129c0ad14e17e Author: Jason Gerecke Date: Wed Jul 24 13:26:34 2019 -0700 Do not start scroll gesture if fingers are moving opposite directions The driver sometimes has difficulty distinguishing scroll and zoom gestures. This is caused by a combination of the zoom spread distance being larger than the scroll distance and the "pointsInLine" checks being blind to fingers moving in opposite directions. Zoom gestures that have fingers moving in opposite directions along the same axis are especially likely to be misinterpreted as a scroll. To improve recognition accuracy, this commit adds a function that verifies the two fingers are actually moving in the same direction. As long as the motion vectors for the two fingers are more than 90 degrees apart, scrolling will be inhibited. The allowed difference could be significantly reduced if necessary, but this seems to do the trick for me. Signed-off-by: Jason Gerecke commit 8cc538503cdadcf6e4801c53a6ad1badc8c7e2d4 Author: Jason Gerecke Date: Fri Jun 15 11:34:12 2018 -0700 Minor cleanups for wcmFingerScroll and wcmFingerZoom Make some especially-long lines a little easier to read. Signed-off-by: Jason Gerecke commit 813391f78e3d0a10292b234fc103e60f42362c70 Author: Jason Gerecke Date: Fri Jun 15 11:43:44 2018 -0700 Use wcmScrollDistance as scroll threshold; recognize scrolling more consistently The wcmFingerScroll function runs a series of checks when trying to recognize a scroll gesture. The first check is that the fingers have not spread apart (or come closer together) by more than a specified distance (wcmMaxScrollFingerSpread). The next check is that both fingers are moving in the same direction. This second check is performed by 'pointsInLine', which returns 'TRUE' if the contact has moved in the expected direction by some minimum distance. This minimum distance was also set to wcmMaxScrollFingerSpread, despite it not really being a measure of finger spreading. This commit changes the minimum distance to be wcmScrollDistance: the distance at which a scroll event would normally be emitted. This will cause scrolling recognition to feel consisitent with the rest of the scrolling experience, eliminating the lag between starting a scroll gesture and the driver recognizing it. As long as you move your fingers one scroll distance, scrolling will begin. Users who have a very small scroll distance may find this change makes it harder to trigger a pinch zoom since the fingers must move apart or together by at least wcmMaxScrollFingerSpread before moving up/down/left/right by the scroll distance. Ref: https://github.com/linuxwacom/xf86-input-wacom/issues/43 Signed-off-by: Jason Gerecke commit 1f52ad54c1ae66e25a28c2ca1178921118f9d9c1 Author: Jason Gerecke Date: Mon Jun 25 10:41:56 2018 -0700 Overhaul calculation of default scroll, zoom, and spread distances The default values for zoom, scroll, and spread distances were originally fine-tuned for use with a 3rd-gen Bamboo small tablet (e.g. CTH-470). The code tries to scale these values to work with other sensors, but there are a couple of problems with the actual logic: 1. The scaling is done based on the logical size of the tablet. This is problematic for some generations of tablet (including the 3rd-gen Bamboos) which use sensors with an identical logical size despite different physical size. This means that larger tablets in these generations require larger gestures to accomplish the same task. 2. The scale factor for the scroll distance is calculated with respect to the X axis, even though it is far more common to scroll vertically than horizontally. For devices with a different resolution in the X and Y axes, this means that calculated default won't be consistent with devices that have the same resolution in both the X and Y axes. This patch makes several modifications to simultaneously address all three of the issues. We replace the logical Bamboo-referenced numbers with equivalent millimeters, calculate the logical distances based on the kernel-reported resolution (using the resolution of the Bamboo if not available), and specifically scale scroll distances with respect to the Y axis. Signed-off-by: Jason Gerecke commit 65b7c37f0fac5cdd03ff7f977124148d0bdf4be8 Author: Jason Gerecke Date: Mon Jun 18 07:09:03 2018 -0700 Prevent spurious right-clicks at the end of very short scroll and zoom gestures If you perform a two-finger scroll/zoom gesture that takes less than wcmTapTime milliseconds to complete and has the second touch going up before the first, the wcmFingerTapToClick function may trigger a right- click event as you complete the scroll/zoom. The reason for this is that we call wcmFingerTapToClick for any non-scroll/zoom gesture state. This isn't technically correct: we should really only be calling the function when in the LAG state (i.e., while waiting for a two-finger gesture to occur). The logic which moves single-finger non-DRAG states into LAG or NONE modes can conflict with simply checking for the LAG state before calling wcmFingerTapToClick because very short drags can also be less than WACOM_GESTURE_LAG_TIME, which will move the ZOOM and SCROLL states to (single-finger) LAG mode and trigger the right-click gesture anyway. To ensure this doesn't happen, we add a check for single-finger SCROLL and ZOOM states just before this block and have it move the mode to CANCEL which will only be reset once both fingers have gone up. Fixes: 68daad26c11d ("improve initial 2 finger behavior") Signed-off-by: Jason Gerecke commit 8188891c120af14f3cea28ad72ed0cf61eaa2988 Author: Jason Gerecke Date: Fri Jun 15 14:28:23 2018 -0700 Do not wait wcmTapTime to enter scroll or zoom mode Commit 3005fc0 reduced the amount of time that we wait before entering scroll and zoom mode, mentioning that the only reason we want to wait at all is to process time-based two-finger gestures. The commit hints at a "2 finger tap" being the only gesture which this would apply to, but there are no signs of that gesture in the driver anymore. There is the right-click gesture which requires that the second finger be tapped for less than wcmTapTime, but removing the wcmTapTime limit on entering scroll and zoom modes does not affect that gesture (unless your right- click gesture was so sloppy that your fingers moved enough to be considered a scroll or zoom gesture). Ref: https://github.com/linuxwacom/xf86-input-wacom/issues/43 Ref: 3005fc0 ("reduce 2-finger scroll holdoff time") Signed-off-by: Jason Gerecke commit 0ac49a26d25279b7777239066aff8e1f5f23bd4b Merge: 299e830bb7fc bde3339eb056 Author: Jason Gerecke Date: Tue Sep 3 13:29:39 2019 -0700 Merge pull request #73 from jigpu/fix-54 Allow stylus devices to have "CursorProximity" effect in relative mode Reviewed-by: Aaron Armstrong Skomra Reviewed-by: Ping Cheng commit bde3339eb056d8ac237b9caacdef20dcf38d0d9f Author: Jason Gerecke Date: Wed Jul 24 10:17:17 2019 -0700 Use a proxout height of 30 for all stylus devices Styli and pucks likely have different proxout height requirements due to differences in how the tools are held/used. For now, lets try setting a height of 30. This should be close to the height previously present for consumer devices (before the kernel started honoring prox/range) and should hopefully be reasonable for professional devices too. Ref: https://github.com/linuxwacom/input-wacom/issues/54 Signed-off-by: Jason Gerecke commit 4890de5f9a29e739591bed288528661f7c23f86d Author: Jason Gerecke Date: Thu Aug 1 10:49:41 2019 -0700 Allow CursorProximity to take effect even if distance == 0 on tablet surface The CursorProximity feature allows the relative-mode puck to be lifted a smaller distance from the tablet surface than the full hardware prox distance. This makes using the puck in relative mode much easier. In order to simplify the code, 4893844f3f changed how the surface distance would be determined. Instead of tracking the minimum (or maximum) distance reported, the driver would use the value reported the moment a click occurred. This works relatively well, but does require the user to make at least one click before the CursorProximity feature takes effect. Because the "uninitialized" value of `common->wcmMaxCursorDist` is zero, this can prevent the CursorProsximity feature from taking effect if the tablet itself reports a distance of 0 at the tablet surface. To fix this we can just let the "uninitialized" value be -1 since such a distance is not valid. Ref: https://github.com/linuxwacom/xf86-input-wacom/issues/72 Fixes: 4893844f3f ("Modify wcmMaxCursorDist calculation to support non-inverted protocol 4") Signed-off-by: Jason Gerecke commit a13f2bfe177b9eb0f747d1eb9044840f48d762cd Author: Jason Gerecke Date: Wed Jun 19 09:25:30 2019 -0700 Allow use of proxout feature for any relative tablet tool (stylus, eraser, cursor) The proxout feature makes it easier to use tools in relative mode by not requiring the user to completely remove the tool from hardware prox before repositioning. Traditionally only the cursor tool is used in relative mode, but there are also times that stylus/eraser might also be. This patch allows any relative tablet tool to make use of the feature. Ref: https://github.com/linuxwacom/input-wacom/issues/54 Signed-off-by: Jason Gerecke commit 2cf46016810056d3fd08c6b7dec3b33089f64672 Author: Jason Gerecke Date: Wed Jun 19 09:05:46 2019 -0700 Change wcmCursorProxoutDist from a common to a private property Refactors wcmCursorProxoutDist and related variables so that the information is tracked on a per-tool basis rather than being considered a common property of the tablet. This is in preparation for a follow-up patch which will expose the proxout feature to tools other than the cursor/puck. Ref: https://github.com/linuxwacom/input-wacom/issues/54 Signed-off-by: Jason Gerecke commit 299e830bb7fcc4d73bbad12244de90d0c4bdd9d3 Author: Peter Hutterer Date: Fri Jul 19 14:47:54 2019 +1000 travis CI: rework and simplify Does the same work, but it's a bit easier to understand now. The 'compiler' directive creates two jobs, gcc and clang. Those jobs use the global instrucitons. In addition we have the 'jobs' directive which adds the coverity job, broken up over multiple lines now to make live easier on our eyes. Signed-off-by: Peter Hutterer Reviewed-by: Jason Gerecke commit 0ce40261fb6acda37f68a4fadb39c46565e94a8e Author: Peter Hutterer Date: Thu Jan 17 13:44:37 2019 +1000 Remove misplaced comment Signed-off-by: Peter Hutterer commit daafdda6e90d9c36ad8f56be1f03d0b402595f30 Merge: 4e065272eaed 6a95129703b4 Author: Jason Gerecke Date: Mon Jul 29 11:51:45 2019 -0700 Merge pull request #67 from skomra/master Remove and replace references to Sourceforge commit 4e065272eaed6ab27fe17627712fdb7ecd697fa5 Merge: 2248962cf153 030d272d5d60 Author: Jason Gerecke Date: Tue Jul 16 10:29:05 2019 -0700 Merge pull request #66 from ShapeShifter499/master Add support for Surface Go and Nuvision Solo 10 Draw commit 6a95129703b469b51d600f464208abe852e745e2 Author: Aaron Armstrong Skomra Date: Tue Jul 16 10:21:31 2019 -0700 Remove and replace references to Sourceforge The project has moved to Github. Signed-off-by: Aaron Armstrong Skomra commit 030d272d5d605f9605ed44cdde4856737415a972 Author: ShapeShifter499 Date: Mon Jul 15 01:36:27 2019 -0700 Add support for Surface Go and Nuvision Solo 10 Draw For Surface Go and Nuvision Solo 10 Draw Signed-off-by: Lance Geroso commit 2248962cf15334c6f61a82ab4efedfcd2e85a741 Merge: b164be0e372a 5089f0c886bd Author: Ping Cheng Date: Thu Jun 20 16:06:35 2019 -0700 Merge pull request #63 from jigpu/fix-59 Fix panscroll when using non-default tablet area commit 5089f0c886bd42511edc99080af38c9dcb205171 Author: Jason Gerecke Date: Tue Jun 18 08:35:34 2019 -0700 Fix panscroll when using non-default tablet area Attempting to perform a panscroll operation on a tablet that has a non- default area set can cause scrolling to occur even when the pen isn't moved. The direction of scrolling may change depending on the position of the active area (e.g. scrolling down when the area is on the top; scrolling up when the area is on the bottom). The cause is a result of the current and previous DeviceState structures (`ds` and `priv->oldState`) containing different information about the pen location. While the current state contains the untransformed device coordinates, when `wcmUpdateOldState()` is called, the XY information is replaced with the transformed version. To fix this issue, we modify the wcmPanscroll function to take X and Y as explicit parameters that are obtained from the valuators. These are transformed values and so will be compatible with changes to the area. Because the valuator data may have been transformed to a delta within wcmSendNonPadEvents we also need to add a check if the device is in relative mode and then act appropriately. Ref: https://github.com/linuxwacom/xf86-input-wacom/issues/59 Signed-off-by: Jason Gerecke Reviewed-by: Ping Cheng commit b164be0e372ac5602b2c5b02e90b2cfb0268160c Author: Aaron Armstrong Skomra Date: Mon Jun 17 14:18:09 2019 -0700 wacom 0.37.0 Signed-off-by: Aaron Armstrong Skomra commit a3e880ec34e7e9ef01098a899a4b1eb113b82b51 Merge: 5fc2d91ead58 365739656df5 Author: Ping Cheng Date: Wed Jun 12 13:11:10 2019 -0700 Merge pull request #62 from jigpu/issue-52 Fix issues with Microsoft Surface Go tablet commit 5fc2d91ead58c8a5ae38f5cfe92de1d214aba5d7 Merge: d0a68b873e01 dbb07c56366a Author: Ping Cheng Date: Wed May 29 12:06:04 2019 -0700 Merge pull request #58 from skomra/master Add feature flags for several missing tablets commit 365739656df5361533a57494db327ecbc7cb4b8a Author: Jason Gerecke Date: Fri May 24 14:51:32 2019 -0700 USB: Apply WCM_PROTOCOL_GENERIC to non-Wacom hardware It seems that some non-Wacom tablets have an ABS_MISC axis that makes our driver try to apply special Wacom-only axis behaviors. This commit makes the driver use WCM_PROTOCOL_GENERIC for any device that does not have Wacom's VID. Ref: https://github.com/linuxwacom/xf86-input-wacom/issues/52 Signed-off-by: Jason Gerecke commit 3b30bb3dcd64d9467e5b5e2cbe014c11bd347317 Author: Jason Gerecke Date: Fri May 24 14:38:12 2019 -0700 USB: Don't use ABS_MISC for tool ID information with a generic tablet Generic devices don't store tool ID information in ABS_MISC, so we should be careful to not accidentally interpret other miscellaneous data as such. Ref: https://github.com/linuxwacom/xf86-input-wacom/issues/52 commit 33cdf63a0089bdd1e66e350cc621b80415a7c8ba Author: Jason Gerecke Date: Fri May 24 14:13:08 2019 -0700 USB: Split handling of generic and protocol 5 ABS events Many Wacom devices use a non-standard meaning for several axes and we should be careful not to apply those meaning when receiving events from a generic device. Incorrectly using the non-standard meanings can cause the driver or userspace to become confused. Ref: https://github.com/linuxwacom/xf86-input-wacom/issues/52 Signed-off-by: Jason Gerecke commit dbb07c56366a7d95c0392d8207baeff8de20063d Author: Jason Gerecke Date: Wed May 1 09:04:12 2019 -0700 Add feature flags for several missing tablets Feature flags are used by the driver to determine if a particular device needs special treatment. The devices usually work "okay" without these flags set, but missing flags can result in some features not working or not working as expected. For instance, the touch ring on the Bluetooth interface of the 2nd-gen Intuos Pro does not work at the moment because the WCM_RING feature is missing. It also gains the WCM_ROTATION flag. All other devices added gain the WCM_LCD flag, as well as the WCM_ROTATION flag if the device supports pen rotation. Signed-off-by: Jason Gerecke Signed-off-by: Aaron Armstrong Skomra commit d0a68b873e015eb967718e60dbc3967f38a5e169 Author: Peter Hutterer Date: Fri Apr 12 13:36:00 2019 +1000 release.sh: pass the module name to the github release function We don't want to post libwacom releases to xf86-input-wacom Signed-off-by: Peter Hutterer commit b3604240a920e780a130ea84da67fc7483213937 Author: Peter Hutterer Date: Fri Apr 12 13:31:57 2019 +1000 release.sh: don't release to github in dry-run mode Signed-off-by: Peter Hutterer commit 0f4e77ff632d4c5dc37e90395d6a6c44c843e06c Author: Peter Hutterer Date: Mon Nov 5 10:44:01 2018 +1000 release.sh: drop sourceforge release bits We're well and truly on github now Signed-off-by: Peter Hutterer commit 2062126997bfe2c014533873d73a95198b335305 Author: Peter Hutterer Date: Mon Dec 10 11:03:22 2018 +1000 xsetwacom: error if we're running this under Wayland xsetwacom cannot work under Wayland, even with XWayland because there is no xf86-input-wacom driver. So let's not continue normally and not find any devices because that'll be confusing to the user when the tablet is clearly working. Print an error and exit code of 1. Signed-off-by: Peter Hutterer commit 84400df38f0f9abe664de26a8d3747b10f3a05e5 Author: Peter Hutterer Date: Wed Oct 24 10:35:17 2018 +1000 Remember the event types we receive and skip events with no data On RHEL7.x kernels we get event frames with merely MSC_SERIAL -1 for some devices on proximity in. This is caused by the accelerometer data that is otherwise suppressed by those kernels. E: 123.456 0000 0000 0000 # ------------ SYN_REPORT (0) ---------- E: 123.456 0004 0000 -001 # EV_MSC / MSC_SERIAL -1 For a MSC_SERIAL -1 we default to the PAD_ID (0x10), despite the events happening on the Pen device node. This triggers an error message during EV_SYN processing: (EE) usbDispatchEvents: Device Type mismatch - 16 -> 0. This is a BUG. Once we receive the BTN_TOOL_PEN when the actual pen comes into proximity, the error message goes away because our tool type matches with what we expect. Fix this issue by remembering which event types we received in the current frame. If all we got was EV_MSC, skip the event dispatch - we don't have any data to process anyway. Signed-off-by: Peter Hutterer Reviewed-by: Ping Cheng commit 8a6f201fde45b6aef9785bdfbfd0d908ff1c4071 Author: Peter Hutterer Date: Wed Oct 24 10:15:58 2018 +1000 Split EV_MSC handling out of the EV_SYN handling The only thing these two had in common was the reset of the event count on failure. Might as well split them up to make the code more readable. Signed-off-by: Peter Hutterer Reviewed-by: Ping Cheng commit cafb587a4eb89d906317dbe347198b523e494c76 Author: Peter Hutterer Date: Wed Oct 24 10:21:40 2018 +1000 Reformat a debugging message No functional changes but makes grepping for it a lot easier Signed-off-by: Peter Hutterer Reviewed-by: Ping Cheng commit 6e2728780056614e4b2f37abde4f60f072edc95a Author: Peter Hutterer Date: Wed Oct 24 10:10:46 2018 +1000 Correct two comments Signed-off-by: Peter Hutterer Reviewed-by: Ping Cheng commit 71b35110478b8fce410c017e24072b6ab588d551 Author: Ping Cheng Date: Fri Sep 28 15:52:29 2018 -0700 Support DTU-1141B on older kernels Signed-off-by: Ping Cheng Signed-off-by: Peter Hutterer commit c091c9e295db9c271de60c87a1a9ce921d638159 Author: James Pearson Date: Thu Aug 9 09:11:16 2018 +1000 Running 'xsetwacom get $id Serial' gives: Unknown parameter name 'Serial'. 'Serial' should be in the deprecated parameter list - also 'GetTabletID' is defined twice in the same list Signed-off-by: James Pearson Reviewed-by: Jason Gerecke Signed-off-by: Peter Hutterer commit 192d67275c6621ec7debef3c6453dd2030b7cac8 Author: Jason Gerecke Date: Thu Jun 21 14:08:40 2018 -0700 travis: Hotfix Coverity's Travis integration patch Coverity has been triggering build errors for quite a while now, simply because their server returns a different success code after uploading than their script demands. We've notified them about this bug, but nothing seems to be happening. Lets just patch the broken code and move on with life. Signed-off-by: Jason Gerecke Acked-by: Ping Cheng commit 567b4d71484ec67fb6432cebd4c4048da5979a2c Author: Ping Cheng Date: Wed May 2 14:10:15 2018 -0700 xsetwacom: update man page for button mapping Mapping a button to 0 is to disable it in X. Signed-off-by: Ping Cheng commit 11451194e36fc3ae78d5d908310c4f7d09fc783c Author: Aaron Armstrong Skomra Date: Mon Mar 19 14:28:19 2018 -0700 release.sh: bugfixes 1. Use correct filename variable (tarbz2 not tarball). 2. Insert spaces into heredoc to make links work for Gmail users. 3. The script greps the module url to see if it contains an approved repository. The first update to the release script contained a list of many approved repositories. Subsequent updates during the review process had these extra repositories removed. (git update-index --assume-unchanged release.sh can be used to temporarily use a different repository.) That second change removed -e "linuxwacom/.*" (Github) instead of -e "/linuxwacom/.*" (Sourceforge). Remove the slash which is not found in the Github path. 4. Remove the language about xorg, mesa, etc. from error message. 5. Correct release.sh script documentation. The release.sh script no longer has a `--user` option. The username is now provided as a required argument of the `--github` and `--sourceforge` options. Note that when using `--github`, a personal access token may need to be appended to the username with a colon if two-factor auth is used. Fixes: 4c17c6a0dd ("Update release.sh script from Xorg") in the tags. Fixes: 32c065ae02 ("add Github to release.sh script") Signed-off-by: Aaron Armstrong Skomra Signed-off-by: Jason Gerecke commit 9d83956c2aa72b9d8744fa57e28ba5fe7f1af0f4 Author: Jason Gerecke Date: Mon Mar 19 13:40:21 2018 -0700 wacom 0.36.1 Signed-off-by: Jason Gerecke commit 25d765a543ea21d6fa686f16f55d475ad0f2d13b Author: Aaron Armstrong Skomra Date: Tue Mar 13 10:27:24 2018 -0700 Update README to reflect the move to Github. Signed-off-by: Aaron Armstrong Skomra Reviewed-by: Peter Hutterer commit a197cc5e04c778022a78c010a22c9602591b7c2b Author: Jason Gerecke Date: Mon Mar 12 09:53:07 2018 -0700 Fail the Coverity build if their script cannot be downloaded If curl encounters an error trying to download the Coverity build script (as seems to be happening at the moment due to SSL issues), we will not be notified since the pipe swallows the error code. This is not ideal, so this commit updates the Travis build steps to use a slightly more contrived construction which will get and then execute the script as independent steps. Also, to ensure curl returns an error code even in less-severe cases (e.g. a basic 404 "Not Found") we add the '-f' option. Signed-off-by: Jason Gerecke Reviewed-by: Peter Hutterer commit 414ee8130dd8b04512f38b7d9d29ecce3e30a86e Author: Jason Gerecke Date: Tue Feb 13 09:06:38 2018 -0800 Check both valid and working state when finding new channels The usbChooseChannel function is responsible for finding the channel that should be used to contain a sequence of events for a particular tool/contact. If a tool/contact is already using a particular channel (i.e., the last event in the channel has the correct device type, serial number, and is in proximity) then usbChooseChannel will return that channel. Otherwise, usbChooseChannel will try to find a free channel (i.e., one which is out of proximity) to be used to store the tool's sequence of events. The existing logic has a subtle bug that may result in a malfunction when a specific condition occurs. In particular, if a multitouch report from the kernel contains an existing contact going up followed by a brand new contact, then usbChooseChannel will see the channel associated with the former contact as free and begin using it to store data for the new contact. As a result, the "up" event is never sent and can lead to further strange touch behavior (including the effective disabling of touch input). To fix this, we modify usbChooseChannel to consider the "valid" state as well as the working state when finding a new channel. A channel should not be considered free if its valid state is still in prox, since this indicates that the channel has *just* left prox. Note that we cannot rely on only checking the valid state since this fails in the opposite way: usbChooseChannel would not notice when a channel has *just* entered prox and would overwrite its contents. It isn't obvious wether it is also necessary to check the valid state for the other two cases in this function (finding an existing channel and forcefully clearing channels when out of space). The existing code seems to work, however, so we will leave it as-is. Ref: https://sourceforge.net/p/linuxwacom/bugs/335/?limit=25&page=1#73fe Ref: https://sourceforge.net/p/linuxwacom/bugs/339/#f940 Ref: https://sourceforge.net/p/linuxwacom/bugs/349/ Signed-off-by: Jason Gerecke Reviewed-by: Peter Hutterer commit 0c27df7057c94dea4edece3c3e1462ac2a19b7a5 Author: Daniel Ferguson Date: Mon Mar 5 18:57:35 2018 +0000 Fix tilt-y being overridden with tilt-x Refactoring in (527fa95c29) introduced a typo in wcmFilterCoord which resulted in the value of tilt x being assigned to tilt y. Ref: https://github.com/linuxwacom/xf86-input-wacom/issues/11 Fixes: 527fa95c29 ("Refactor coordinate averaging to seperate function") Signed-off-by: Daniel Ferguson Signed-off-by: Jason Gerecke Reviewed-by: Peter Hutterer commit 35047a3156be05b9ebc44ad4c43e0c9b62a85a03 Author: Ping Cheng Date: Wed Jan 31 17:51:17 2018 -0800 Support DTK-2451 and DTH-2452 on older kernels Signed-off-by: Ping Cheng Signed-off-by: Peter Hutterer commit ffb3925cc1deb5d840ad4b2ba1ab853955d959c8 Author: Jason Gerecke Date: Mon Jan 22 11:58:06 2018 -0800 wacom 0.36.0 Signed-off-by: Jason Gerecke commit 32c065ae020da43dbe25ef650a9d8c496f5cbc55 Author: Aaron Armstrong Skomra Date: Thu Jan 18 09:53:35 2018 -0800 add Github to release.sh script Require at least 1 of Github/Sourceforge. Ref: https://github.com/linuxwacom/xf86-input-wacom/issues/10 Signed-off-by: Aaron Armstrong Skomra Reviewed-by: Ping Cheng Reviewed-by: Jason Gerecke commit 9f05aa04124e133a74ce69c1cb7cdce267bd8b1e Author: Aaron Armstrong Skomra Date: Thu Jan 18 09:53:34 2018 -0800 remove release script code from other projects Signed-off-by: Aaron Armstrong Skomra Reviewed-by: Jason Gerecke commit 4cc67d161123774f79d5830cd87d7adddc31bf4c Author: Jason Gerecke Date: Tue Jan 9 10:42:59 2018 -0800 wacom 0.35.99.1 commit 685850060f1cef064a90e02191d4732f275c7179 Author: Jason Gerecke Date: Tue Dec 26 14:21:17 2017 -0800 Allocate 4 buttons for stylus devices (Pro Pen 3D) The Pro Pen 3D includes a third stylus button, reported from the kernel as BTN_STYLUS3. Support for this event was added earlier, but the number of buttons allocated was not updated. This meant that although the X driver would properly set the button flag bit to indicate that a button should be sent, a userspace event wouldn't actually be sent. This commit increases the number of buttons allocated, causing the third button to emit X11 button number 8 when pressed. This button can also be configured through xsetwacom now that the driver allocates the correct number. Fixes: 4a96a58f26 ("Add support for kernel's new BTN_STYLUS3 event") Signed-off-by: Jason Gerecke Reviewed-by: Ping Cheng commit 4108d97fd7d0690d1d343bc0229b68b5fb48a6fc Author: Jason Gerecke Date: Tue Dec 12 14:23:19 2017 -0800 Add support for Cintiq 27QHDT Signed-off-by: Jason Gerecke Reviewed-by: Peter Hutterer commit 6cb08771c882a22773a7b0caffff9d253ca65e70 Author: Jason Gerecke Date: Fri Oct 27 15:46:19 2017 -0700 Add support for Cintiq Pro 24/32 Signed-off-by: Jason Gerecke Reviewed-by: Peter Hutterer commit 7b8e1150d599f0b4069f5c379bb162bf49b1d134 Author: Jason Gerecke Date: Wed Dec 13 08:06:09 2017 -0800 conf: Add preprobe fdi config to workaround EV_SW issues in HAL The HAL daemon used by RHEL6/CentOS6 does not play nicely with input devices that advertise unsupported EV_SW events. Devices with such an event will fail in the middle of the probe process, preventing the X server from being able to hotplug the device. The SW_MUTE_DEVICE event used by the Cintiq Pro touchscreen is such an event. To work around this limitation, we can define an fdi configuration file which resets the "button.has_state" property prior to probe. Because HAL only runs the failing code when this property is true, the device is able to finish the probe process just as though it never had the unsupported switch in the first place. Resetting this property does prevent HAL from being able to monitor the switch state, but that is not considered a problem. Since HAL is long-since deprecated, it doesn't make sense to install this configuration file on systems which don't require it. This commit also adds logic to configure.ac so that only systems which still use HAL will install this file. Signed-off-by: Jason Gerecke commit 6b68d40f6047e23651616403d5ff7ee563f42418 Author: Jason Gerecke Date: Thu Dec 21 10:03:19 2017 -0800 Be more strict about linking to already-linked devices The wcmLinkTouchAndPen function is responsible for associating the pen and touch interfaces of a tablet. This association can be tripped up if multiple devices with the same name are connected, so it includes code to prevent linking to a device which already has been linked up. However, the condition also checks that the device being considered is a tablet (i.e., stylus/eraser/ cursor; not pad/touch). This latter check seems nonsensical: it allows devices to link to the first touch device they find, even if that device is already linked up. Disallowing multiple links to the same device prevents all three pen/touch/pad devices from having wcmTouchDevice set up, however. Leaving the stricter condition as-is could cause devices to be linked up incorrectly (e.g. if the X server has {touch1, pen1, pad1, touch2, pen2, pad2}, then touch1 and pen1 would get linked, but pad1 and touch2 would get linked, and pen2/pad2 left unlinked!). To prevent this, we disallow linking of pad interfaces, which should not be a problem since the pad shouldn't need to use the wcmTouchDevice variable. Fixes: 8bb519ef2b ("Update wcmTouchDevice for touch interface") Signed-off-by: Jason Gerecke commit 21f498ef8b4ac826c6873ce9d54edcee313a0844 Author: Jason Gerecke Date: Tue Oct 24 08:44:34 2017 -0700 Implement "pan" scrolling functionality When enabled through `xsetwacom set button pan`, this causes the driver to appear to "drag" scrollable window contents by emitting appropriate scroll events as the pen is dragged around. Signed-off-by: Jason Gerecke Reviewed-by: Peter Hutterer commit 36ec4c098a89170f5f76d8e0ad250f9d6405a69f Author: Jason Gerecke Date: Tue Dec 19 10:09:51 2017 -0800 Pass current WacomDeviceState through to sendAction This commit refactors the signature of the sendAction function to take a WacomDeviceState pointer. This change makes it easier to implement the following pan/scroll patch. Signed-off-by: Jason Gerecke Reviewed-by: Peter Hutterer commit 28c1d6d9ed0624b7a3fb007f764e05e0e2906e24 Author: Jason Gerecke Date: Tue Nov 28 15:07:26 2017 -0800 tools: Prevent use of invalid (negative) fd If something goes wrong when a tool attempts to open a device, we print an error but then continue on as though nothing happended and provide the fd to both the ioctl() and close() functions. This commit ensures we don't actually try to use the fd. Coverity-id: 208168 Fixes: 3546d8ab1b ("tools: add isdv4-serial-debugger test program.") Signed-off-by: Jason Gerecke Reviewed-by: Peter Hutterer commit 4a24a94d3ae2396b297a6dab4b350bd5da26d44e Author: Jason Gerecke Date: Thu Dec 7 17:01:51 2017 -0800 Add Coverity integration to .travis.yml Adds the ability to run a Coverity scan from Travis. Since there are a limited number of times per week that Coverity can be used, we only run it when Travis has the DO_COVERITY environment variable set to "YES". This can either be set manually through the Travis' interface, but will also be set for cron-triggered jobs. Signed-off-by: Jason Gerecke commit 2c191f041d658d83aa86b72cc49540a3387bb61a Author: Jason Gerecke Date: Fri Dec 8 13:55:33 2017 -0800 Reset filter when tip is touched to tablet Coordinate averaging is useful for producing smooth strokes, but this averaging can cause button events to be sent at the wrong location. In particular, when making a series of quick strokes with an AES pen, the actual location the pen contacts the display can be some distance away from the first (low-quality) position report. This can result in "hook" artifacts if it is still influencing the averaged pointer position when the pen goes down. This can also be seen if the RawSample parameter is increased significantly. To prevent these artifacts from appearing, we reset the averaging filter whenever the tip is pressed. This ensures that the event event is sent at the pen's actual location, plus or minus some (probably smaller) noise. In theory these artifacts could still appear if drawing were triggered by a button other than the tip, but that would be a quite non-standard setup. https://sourceforge.net/p/linuxwacom/bugs/338/ Signed-off-by: Jason Gerecke commit ce72a0048b56089f3946f9bc90163fcad7222f86 Author: Jason Gerecke Date: Fri Dec 15 13:12:28 2017 -0800 Move 'suppress' variable from wcmEvent to commonDispatchDevice Resolves the following compile-time warning: ../src/wcmCommon.c: In function ‘wcmEvent’: ../src/wcmCommon.c:1007:23: error: ‘suppress’ may be used uninitialized in this function [-Werror=maybe-uninitialized] commonDispatchDevice(pInfo, pChannel, suppress); ^ Fixes: 2fa4ef48c9 ("Do not overwrite raw device state with filtered coordinate values") Signed-off-by: Jason Gerecke commit 2fa4ef48c98860859d48810d870567fe99b5d76f Author: Jason Gerecke Date: Fri Dec 8 13:55:32 2017 -0800 Do not overwrite raw device state with filtered coordinate values By performing coordinate filtering in wcmEvent and overwriting the raw device state stored in pChannel, we loose the ability to see the actual (but noisy) hardware coordinates at later points in the code. By moving this filtering into commonDispatchDevice we can apply the result to only the 'filtered' DeviceState sample that is ultimately passed along to wcmSendEvents. Signed-off-by: Jason Gerecke Reviewed-by: Ping Cheng commit 527fa95c29f6aee2c2d655e834ff3f45a9160c06 Author: Jason Gerecke Date: Fri Dec 8 13:55:31 2017 -0800 Refactor coordinate averaging to seperate function Moves the averaging code used by the driver's filter functions into a seperate function to make the operation of wcm_filter_coord more clear. Signed-off-by: Jason Gerecke Reviewed-by: Ping Cheng commit 7d6bded43bab93f8cc882c4e8b0fdc834e44208e Author: Jason Gerecke Date: Thu Dec 7 14:20:59 2017 -0800 Use git-version-gen for build-time version strings Currently the driver uses macros like PACKAGE_VERSION whenever it needs to print out a version string. These macros are only updated whenever the autoconf.sh script is run, however. As a practical result, this means that the version information which is built into development versions of the driver is often inaccurate. To fix this, we define a new BUILD_VERSION macro which is updated whenever git reports a changed version number. In addition to having `xsetwacom -V` report the precise build, we also have the X log print out the build number to augment the MAJOR/MINOR/PATCH data that is normally printed. Signed-off-by: Jason Gerecke commit 061519df07f23f96b5211ba71a851bb626881fb4 Author: Jason Gerecke Date: Thu Nov 16 15:09:48 2017 -0800 Build tools with AM_CFLAGS and its warnings The Makefile.am contained under the tools subdirectory makes use of an Automake feature that allows the definition of per-executable CFLAGS. These CFLAGS definitions do not automatically include the general-use AM_CFLAGS. This has resulted in these executables not being built with the intentended warnings/errors enabled. Note that we also explicitly add "-Wno-error" to the definition of the "xsetwacom-test" binary since we don't want warnings there to break anything. Signed-off-by: Jason Gerecke Reviewed-by: Ping Cheng commit 346c6392f48bf34484f45df5aa2425e90f9ecf30 Author: Jason Gerecke Date: Mon Nov 13 16:23:43 2017 -0800 Remove no-longer-necessary "Wno-error" exceptions from Travis The missing-field-initializers cast-qual warnings had to be excepted out from the Travis build since code in xsetwacom would trigger them. These issues have been resolved by the last two commits, allowing us to remove the exceptions. Signed-off-by: Jason Gerecke Reviewed-by: Ping Cheng commit b380cf93a448fa1636c413fff600a4869e6e7564 Author: Jason Gerecke Date: Mon Nov 13 16:14:14 2017 -0800 xsetwacom: Don't drop "const" when performing a cast GCC warns that we're droping the "const" attribute in one of our casts. Looking at the affected function, it is obvious that the cast is entirely unnecessary and can be dropped entirely. Signed-off-by: Jason Gerecke Reviewed-by: Ping Cheng commit 43a02abb08c23d25a10d695cea8c15abd74bc56b Author: Jason Gerecke Date: Mon Nov 13 16:08:52 2017 -0800 xsetwacom: Use explicit NULL for final element of 'parameters' array C does not strictly allow an empty initializer list `{}`, which can result in missing-field-initializers warnings from the compiler. All consumers of this array cycle through until they see a NULL name, so this commit replaces the empty initializer with { .name = NULL }. Signed-off-by: Jason Gerecke Reviewed-by: Ping Cheng commit c0cce4c14cbda8b5ff89548a40418ff3a42f7274 Author: Jason Gerecke Date: Mon Nov 13 15:47:34 2017 -0800 Add Travis-CI integration Adds a .travis.yml file which allows the Travis-CI service to build and test the project. This should ensure we're immediately warned of potential issues even if someone forgets to run the test suite before pushing. The build is performed with "-Wall -Wextra -Werror" (with only a handful of currently-necessary exceptions) on both GCC and Clang. Signed-off-by: Jason Gerecke Signed-off-by: Peter Hutterer commit 4a96a58f2693b291b91e21b7e34f5c5e04015f3f Author: Jason Gerecke Date: Tue Oct 3 13:45:37 2017 -0700 Add support for kernel's new BTN_STYLUS3 event BTN_STYLUS3 was (will be) added to the Linux 4.15 kernel to support the third button present on Wacom's "Pro Pen 3D" stylus. This commit adds support for this new event, mapping it to mouse button 8 ("navigate back"). Remapping this button to a different function is possible by using commands like `xsetwacom set button 8 `. Signed-off-by: Jason Gerecke Reviewed-by: Peter Hutterer commit 48c2cd83ccf797fe618a48a743afee35883aecf9 Author: Benjamin Tissoires Date: Fri Nov 3 15:19:24 2017 +0100 conf: add Dell Canvas 27 touch The Dell canvas 27 is an external monitor with pen and touch, but the pen is provided by Wacom, and the touch by Advanced Silicon. To have proper touch arbitration, we need to force xf86-input-wacom to also handle the touch part. Signed-off-by: Benjamin Tissoires Reviewed-By: Jason Gerecke Reviewed-by: Peter Hutterer Signed-off-by: Peter Hutterer commit 2456f821ba368fae5c084b44e86b8754187670c0 Author: Jason Gerecke Date: Wed Sep 13 10:46:10 2017 -0700 xsetwacom: Recognize 'AltGr' key as synonym for 'ISO_Level3_Shift' The table of keysyms does not include an obvious synonym for the "AltGr" key that is found on some international keyboard layouts. It seems that "ISO_Level3_Shift" is the magic name that should typically be used. https://sourceforge.net/p/linuxwacom/bugs/344/ Signed-off-by: Jason Gerecke Reviewed-by: Ping Cheng Reviewed-by: Peter Hutterer commit b30e2d27fdb30ff4b425fc62432cab636fe163b9 Author: Jason Gerecke Date: Thu Aug 10 15:35:43 2017 -0700 Correct device flags for multiple devices The device flags set in wcmDeviceTypeKeys must be set properly in order for the driver to correctly identify and use specific tablet features. Several devices are missing flags that e.g. indicate they support pen rotation or have touch rings. Fixes: 0318b1c ("Support recent display devices on older kernels") Fixes: 3578b91 ("Add support for Cintiq 22HDT and 13HD, DTK2241 and DTH2242.") Fixes: df7f165 ("Add tablet_type to WacomModel") Signed-off-by: Jason Gerecke Reviewed-by: Ping Cheng commit 1a2a23c2df0ec0fd0bf46432db58f32914a6a09f Author: Jason Gerecke Date: Thu Aug 10 15:34:29 2017 -0700 Add support for 2nd-generation Intuos Pro This tablet is usable without this patch, but the device type is missing the WCM_RING flag. This prevents the ring valuator from being initialized correctly, and in turn causes recent versions of gnome-control-center to not allow configuration of the ring. https://bugzilla.gnome.org/show_bug.cgi?id=785358 Signed-off-by: Jason Gerecke Reviewed-by: Ping Cheng commit 912611608b3ba892a7c26d1be81209f4e5b009d5 Author: Peter Hutterer Date: Tue Jul 18 08:41:37 2017 +1000 Remove the device's fd from the select() set when we get ENODEV If the device is unplugged, the fd triggers in select/poll/... but comes back with ENODEV. This triggers a lot of error messages in the log until finally the udev code catches up with us and the device is removed properly. Catch that case by removing the fd from the select() set so we don't get triggered to call read_input on it anymore. https://sourceforge.net/p/linuxwacom/bugs/337/ Signed-off-by: Peter Hutterer Tested-by: crocket Reviewed-by: Ping Cheng commit b0a055425dfb983163b1d3c673a36aebf9536430 Author: Aaron Armstrong Skomra Date: Thu Jul 13 12:08:03 2017 -0700 Support DTH-1152 on older kernels Signed-off-by: Aaron Armstrong Skomra Reviewed-by: Peter Hutterer commit 4bf1f36791ba5a2ad7e59fe7257f0893b40f4e7d Author: Jason Gerecke Date: Mon Jun 26 15:08:47 2017 -0700 wacom 0.35.0 commit 60edf6341fed25ec0df6d07be6ade31ca960d607 Author: Jason Gerecke Date: Fri Jun 16 14:12:15 2017 -0700 wacom 0.34.99.1 Signed-off-by: Jason Gerecke commit 7bfbf8ed5a82e78a8235275c15e8934b02879f37 Author: Jason Gerecke Date: Fri Jun 16 14:50:19 2017 -0700 test: Update test_normalize_pressure to work with maxCurve Commit d958ab79d2 changes the driver's pressure normalization functions to use a variable "maxCurve" which defines the upper limit of pressure values to be emitted by the driver, rather than using FILTER_PRESSURE_RES directly. The tests were never updated to take this into account and fail due to maxCurve never being set. This patch has the normalize_pressure test set the value of maxCurve. While we're at it, we have the test verify that multiple values of maxCurve work as expected. Fixes: d958ab79d2 (Introduce "Pressure2K" config option for incompatible software) Signed-off-by: Jason Gerecke commit d958ab79d21b57141415650daac88f9369a1c861 Author: Jason Gerecke Date: Wed May 31 10:57:12 2017 +1000 Introduce "Pressure2K" config option for incompatible software It appears that some software may not be entirely compatible with the expanded 65K pressure level range that was introduced in version 0.34.0. Although our driver advertises the larger range in XI2 (and toolkits like GTK+2/3 and Qt3/4/5 make use of it), there have been reports of other software (e.g. The Foundry's "NUKE") misbehaving. As a workaround, this patch introduces a new boolean config option named "Pressure2K". If enabled, it causes the driver to revert to its prior behavior of using a pressure range of 0-2047. This option is disabled by default, but can be turned on by adding the following configuration snippet to a new file in the /etc/X11/xorg.conf.d directory: Section "InputClass" Identifier "Wacom pressure compatibility" MatchDriver "wacom" Option "Pressure2K" "true" EndSection Ref: https://sourceforge.net/p/linuxwacom/mailman/message/35857403/ Ref: 3e56ce4429 (Increase full-scale pressure range from 0..2047 to 0..65535) Signed-off-by: Jason Gerecke Reviewed-by: Peter Hutterer Signed-off-by: Peter Hutterer commit 0318b1cda79261d73f04676dd662f98c84711747 Author: Aaron Armstrong Skomra Date: Tue May 2 09:48:56 2017 -0700 Support recent display devices on older kernels Older kernels like 2.6.30 will end up with touches interpreted as relative events unless these devices are explicitly added. Signed-off-by: Aaron Armstrong Skomra Reviewed-by: Peter Hutterer commit 252f276ea9f1a2543a7504857b702b4e50e90508 Author: Sebastian Reuße Date: Wed May 10 20:16:07 2017 +0200 xsetwacom: use XkbGetMap instead of XkbGetKeyboard XkbGetMap is more robust in cases where certain keyboard description components are missing. XkbGetKeyboard will fail when any component cannot be resolved; since XkbAllComponentsMask is requested, any missing component will result in the call returning NULL. Since we don’t necessarily need all components (e.g., keyboard geometry, keymap names), we use XkbGetMap instead. Signed-off-by: Sebastian Reuße Reviewed-by: Peter Hutterer Signed-off-by: Peter Hutterer commit 7f6658af6f1a4e22adddd6fd931edb8870dbafc0 Author: Peter Hutterer Date: Mon Mar 13 08:50:53 2017 +1000 Fix build with #ifdef DEBUG disabled Introduced in de650d6224 Reported-by: Matt Turner Signed-off-by: Peter Hutterer commit 267e74cd1325f250185ced951914220bc4287ecf Author: Peter Hutterer Date: Thu Mar 9 08:30:39 2017 +1000 wacom 0.34.2 Signed-off-by: Peter Hutterer commit 64991c8b8f8e6fadb8843960d89570d81d470b63 Author: Peter Hutterer Date: Thu Mar 9 08:28:36 2017 +1000 test: add TimerCancel to fake symbols Fixes distcheck Signed-off-by: Peter Hutterer commit da26ba09c91241c432765de3e18ae4f216749029 Author: Peter Hutterer Date: Thu Mar 9 07:11:18 2017 +1000 wacom 0.34.1 Signed-off-by: Peter Hutterer commit de650d6224b353ee5596f5ce65de8059db5cd289 Author: Peter Hutterer Date: Fri Feb 24 14:11:35 2017 +1000 Cancel timers on DEVICE_OFF Otherwise we run the risk of having a timer trigger after we removed the device. Since we pass InputInfoPtrs and WacomDevicePtrs to the timers as arguments, these may have been freed by the time a timer triggers. Signed-off-by: Peter Hutterer Acked-by: Jason Gerecke commit f65d97362813ea89d18e5049ad87bc468ec30f85 Author: Peter Hutterer Date: Thu Feb 23 09:47:27 2017 +1000 Revert to Update properties with a timer func This was required when we only had the SIGIO handler because sending events allocates memory and things break. Now with the input thread we *can* send events from within the thread but it can mess up other delivery. https://bugs.freedesktop.org/show_bug.cgi?id=99887 Signed-off-by: Peter Hutterer Acked-by: Jason Gerecke commit 23f9586779f94cacb899120ef426d8fcd1647dcb Author: Ping Cheng Date: Fri Feb 10 21:53:01 2017 -0800 Make sibling device name matching slightly more lenient The wcmIsSiblingDevice function uses several tricks to try and determine if two devices should be considered siblings. If its 'logical_only' parameter is false, this includes comparing device names. Device name comparison is complicated by the fact that suffixes are added on by the X and kernel drivers. To deal with this, the wcmSplitName function tries to split a device name into three pieces: its "basename" that describes the model, its "subdevice" name that describes the interface, and its "tool" name which describes the X11 tool. Spliting the name is a somewhat kludgy process which does not properly handle the device names for the MobileStudio Pro or Cintiq Pro. The kernel reads the name of these devices directly from the hardware's descriptors, and the names are slightly different between the pen and touch interfaces (the touch device has an extra "Touch" suffix). This patch tweaks how wcmSplitName breaks apart device names in order to handle the MobileStudio Pro and Cintiq Pro. Specifically, it now allows the "subdevice" to contain an arbitrary number of "Pen", "Finger", :Touch", or "Pad" suffixes. For the MobileStudio Pro and Cintiq Pro, this should allow the "basename" that is considered for sibling device matches to be identical between both the pen and touch interfaces. Signed-off-by: Jason Gerecke Signed-off-by: Ping Cheng Signed-off-by: Peter Hutterer commit f0dedf7a610ac97bc45738492b98ce4f1e0514ec Author: Jason Gerecke Date: Wed Jan 18 09:00:10 2017 -0800 tests: Fix compilation under ABI 25 and greater The X server recently deprecated xf86BlockSIGIO and xf86UnblockSIGIO and simultaneously defined them inline within xf86.h. The new inline definition causes problems both because fake-symbols.c will end up redefining them, and because the function bodies reference a symbol that does not get included when building the tests. To fix these errors, update fake-symbols.c with updated include guards and a definition of the undefined symbols. Signed-off-by: Jason Gerecke Reviewed-by: Peter Hutterer commit 6ff54b3020268f7baf8f1e748a6e278126472c58 Author: Jason Gerecke Date: Mon Dec 5 11:14:08 2016 -0800 wacom 0.34.0 Signed-off-by: Jason Gerecke commit 3ad7e9e6bfce19f630fc2902dfcceb53b912ae1f Author: Jason Gerecke Date: Fri Nov 18 15:21:58 2016 -0800 wacom 0.33.99.1 Signed-off-by: Jason Gerecke commit 051a406583a93cad2ec34a3fb03885237cd1a23e Author: Jason Gerecke Date: Tue Nov 1 09:02:21 2016 -0700 Add missing newline to log message Signed-off-by: Jason Gerecke Reviewed-by: Peter Hutterer commit 5bd8f70b9b3d6266e4c8e3c0ffd408d2c2e3c365 Author: Jason Gerecke Date: Fri Nov 11 08:43:31 2016 -0800 Further reduce arbitration priority of cursor devices Cursor (puck) devices are typically left on the sensor and can emit spurious events that can potentially cause the driver to steal "active" status from another tool. In the past we'd only considered the case where the active tool was a touch but it is reasonable to extend this logic to other tool types. If a cursor emits a spurious event in the middle of a pen dragging, for example, the drag will momentarily stop as the pen is temporarily sent out of prox -- with potentially disasterous results. Additionally, when the pen "returns" in prox on the next event, any currently-applied pressure will be taken as the preload and result in incorrect pressure scaling until the pen is removed from contact. This commit removes the "IsTouch" conditions from the handling of spurious cursor events in check_arbitrated_control. The result is that a cursor will not be granted "active" status in preference to any other tool (and will drop "active" status if gained after 100ms and while no buttons are pressed). Signed-off-by: Jason Gerecke Reviewed-by: Peter Hutterer commit 9433019e82b6e3ac5c2ca21ae4fabbb8a6756e38 Author: Jason Gerecke Date: Tue Nov 1 10:55:58 2016 -0700 Allow cursor devices to maintain "active" status while buttons are down Cursor (puck) tools tend to be left on the sensor, preventing us from being able to rely solely on proximity information to determine if they are being actively used. In the past we've used the amount of time since the last event as an indicator of activity and allowed other devices to grab control of the pointer if more than 100 milliseconds had elapsed since the cursor's last event. Although this seems to work well, there is another indicator of activity which should not be ignored: button state. If a user is pressing a button on their cursor tool, it should be considered active even if the 100ms timeout has been exceeded. Not doing so could potentially allow another tool to grab "active" status and have our driver send a button-up message and stop an in- progress drag. Signed-off-by: Jason Gerecke Reviewed-by: Peter Hutterer commit 5f5479a4f195e11a7bb708019afb299cf7a29741 Author: Jason Gerecke Date: Mon Oct 31 18:14:24 2016 -0700 Lazily allocate pressure curve table Now that the pressure curve contains 65K points it takes up quite a bit of memory, especially considering that the pressure curve may not need to exist for some devices (e.g. pads) and may just be the default linear curve even for those where it should exist. To reduce the amount of memory used, we now lazily allocate space for the pressure curve tables only when they are set to a non-default curve. Signed-off-by: Jason Gerecke Reviewed-by: Peter Hutterer commit 3e56ce4429d9053da3b873f8717b830e3bdc5ea4 Author: Jason Gerecke Date: Tue Jun 14 10:42:29 2016 -0700 Increase full-scale pressure range from 0..2047 to 0..65535 The driver has historically normalized the pressure range of all kernel devices to 0..2047 rather than using their native range to keep things like the application of the pressure curve simple. Pens that report more than 2048 pressure levels are also normalized down to this range though, reducing their precision. In order to accomodate the new 8K pen (and any future pens with even higher precision), this patch bumps up the full- scale range to be 0..65535. This number was chosen both because it far exceeds anything currently known about, and also because it matches the normalization range used over the wire by the Wayland tablet protocol. Note that the WACOM_PROP_PRESSURE_THRESHOLD value has been tied to the normalized (2048-level) pressure range for some time, meaning that we cannot simply change the range without causing a change in the perceived threshold for users. To ensure compatibility, the value is interpreted as a fraction of 2048 and then scaled to the actual normalization range. Signed-off-by: Jason Gerecke Reviewed-by: Peter Hutterer commit 54c125b28479ff88903647c2dce1d49daa3402df Author: Jason Gerecke Date: Fri Oct 7 09:20:34 2016 -0700 Read TouchRing axis range from kernel instead of hardcoding The TouchRing on the MobileStudio Pro has a range of only 0-35 instead of 0-17 like prior devices. Because we hardcode an assumed range, the driver mistakenly believes the jump from 35 to 0 (or 0 to 35, depending on direction) when the user completes a revolution is actually caused by the user reversing their finger direction. By reading the range from the kernel, we can avoid this situation. Note that the ABS_WHEEL axis is also used by (legacy) combined pen/pad devices with a range corresponding to the puck fingerwheel. We need to be careful to not read the value in these cases since it would lead to erroneous behavior in existing setups. Devices with a range range different from 0-71 will hopefully not be widely used on kernels prior to 3.17 where pen and pad were split into seperate devices since there is no way (short of peeking at the VID:PID or name) to have them work correctly in the combined case. Signed-off-by: Jason Gerecke Reviewed-by: Peter Hutterer Reviewed-by: Ping Cheng commit b61d1711e9a2d6c647341e8ea0119521fd200d62 Author: Peter Hutterer Date: Thu Aug 11 13:47:35 2016 +1000 Make DEVICE_CLOSE a noop The server guarantees that DEVICE_OFF is called for any previously enabled device, so we don't really have anything to do here. And since the input thread addition to the server we can't safely call xf86RemoveEnabledDevice() twice for the same device. Signed-off-by: Peter Hutterer Tested-by: Ping Cheng commit bae283c8c91f6e064e727887da79e91e5c7c5f19 Author: Peter Hutterer Date: Tue Aug 9 15:39:46 2016 +1000 Lock the input thread while creating a new device Don't process events while we're creating a new device so we don't start processing events halfway between the new device being set up. Signed-off-by: Peter Hutterer Tested-by: Ping Cheng commit ce912d8bba63faabe5d60a9f467c714511a835f7 Author: Peter Hutterer Date: Thu Jun 2 09:23:57 2016 +1000 Handle the input ABI 23 - removal of xf86BlockSIGIO Input is now handled in a separate thread in the server when a device is added through xf86AddEnabledDevice(). Previously that was in a sigio handler and we have a bunch of workarounds to avoid calling things from within the signal handler. With the new API these aren't needed, so split those callbacks and call them directly where needed. Signed-off-by: Peter Hutterer Tested-by: Ping Cheng commit 97d86e150c23108b4dbc99dbb8338aec60eea39c Author: Ping Cheng Date: Fri Aug 5 18:27:55 2016 -0700 xsetwacom: refer KeySyms defined by keysymdef.h in man page xsetwacom accepts keys in X11 KeySyms format. To make the interface user friendly, we mapped a set of modifiers to aliases that can be recognized by most users. But, there are a few less recognizable or confusing keys/modifiers left. This patch tells users where to find the X11 KeySyms they are looking for. Signed-off-by: Ping Cheng Signed-off-by: Peter Hutterer commit d54db63e716317bb336ddf444ab8034353913db7 Author: Ping Cheng Date: Thu Aug 4 10:49:52 2016 -0700 xsetwacom: Add return to special key alias list return is a popular key assignment which was not added to the special key list. Although Return would work since it is the key name, we add return anyway to make users happy. Enter/enter for KP_Enter could have achieved the same purpose. But, it confuses users (and some developers ;). Signed-off-by: Ping Cheng Tested-by: Kelly Price commit b16b68a9302ce19226d78eed0e1fcb530f372506 Author: Jason Gerecke Date: Fri May 13 15:32:27 2016 -0700 wacom 0.33.0 Signed-off-by: Jason Gerecke commit f4763d1985330bb966908113bf3bd0b55d68372c Author: Jason Gerecke Date: Wed May 4 09:26:58 2016 -0700 wacom 0.32.99.1 Signed-off-by: Jason Gerecke commit 0da5cd545e38079b62656a23835c4943af05dc92 Author: Jason Gerecke Date: Wed Apr 27 10:10:27 2016 -0700 conf: rename to 70-wacom.conf This is part of a two-step solution, the other half is renaming the xf86-input-libinput config snippet to sort lower than ours. Currently libinput picks up devices that are (for now) destined to the wacom driver. Since the wacom driver is more of a leaf package than libinput, the best option here is to make the wacom driver sort higher and let users uninstall it when not needed. To avoid crowding the 90-* space where users usually have custom config snippets, libinput will drop down to 60 and wacom will bump up to 70. Fixes: https://sourceforge.net/p/linuxwacom/bugs/315/ Fixes: https://github.com/linuxwacom/xf86-input-wacom/issues/4 Signed-off-by: Jason Gerecke Reviewed-by: Peter Hutterer commit 7a2c6437015d9fec14915ef19dbb2b6894faaba2 Author: Jason Gerecke Date: Wed Feb 24 10:43:24 2016 -0800 conf: Prevent xf86-input-wacom from binding to pure-keyboard devices The Wacom Bluetooth Keyboard matches the "Wacom class" and so is bound to the xf86-input-wacom driver. This driver is not designed to work with keyboards, so we narrow the set of devices our InputClasses will match. Because we need to match tablets, touchpads, and touchscreens (pad devices are a special case of tablet) but there is no way to specify an "or" match we duplicate existing classes and assign one of the above types to each. Note that simply adding 'MatchIsKeyboard "false"' to our existing snippets would cause devices like the Cintiq 24HDT Pad and Cintiq 27QHDT Pad from binding to our driver since both are recognized as (partial) keyboards due to the presence of KEY_* kernel events. Fixes: https://sourceforge.net/p/linuxwacom/bugs/294/ Fixes: https://github.com/linuxwacom/xf86-input-wacom/issues/1 Signed-off-by: Jason Gerecke commit 044e17da543493d65bd01152dcddcadbbfe5b8ee Author: Jason Gerecke Date: Fri Apr 1 11:07:54 2016 -0700 isdv4: Use last-known event position in touch up events Old serial ISDv4 sensors that (still?!) use the driver-internal parsing routines can inadvertantly send (0,0) coordinates to X on touch up. Even if a sensor sends (0,0) as the touch up coordinate, the code in wcmTouchFilter.c should do the right thing by only sending motion eventions while the touch is down. This isn't the case when in-driver gestures are disabled though, since motion events (specifically XI_TouchEnd) will be sent for touch up events as well. To prevent potential (0,0) coordinates from being emitted on touch up while in-driver gestures are disabled, we use the last-known touch position as the current touch position. This mirrors what is done by the standard input kernel driver (which leaves X/Y at its last known position on touch up). Fixes: https://sourceforge.net/p/linuxwacom/bugs/312/ Signed-off-by: Jason Gerecke Reviewed-by: Ping Cheng commit 3b0c093f507cb5e99be277606de1671b77572dab Author: Jason Gerecke Date: Tue Jan 12 12:12:03 2016 -0800 xsetwacom: Use stderr for 'core' and 'displaytogle' deprecation notices Signed-off-by: Jason Gerecke Reviewed-by: Peter Hutterer commit bccfc6faa243909538bf18af04e1308c3b9c208f Author: Jason Gerecke Date: Tue Jan 19 08:55:36 2016 -0800 xsetwacom: Only print action name for "modetoggle" and "displaytoggle" Running "xsetwacom get" on a button which contain a "modetoggle" or "displaytoggle" action will result in output which cannot be parsed by "xsetwacom set". Both of these actions are treated like buttons, printing extra data that is not expected by the "set" command. Signed-off-by: Jason Gerecke Reviewed-by: Peter Hutterer commit e1df2c330db940c96030dafcab850fc167531113 Author: Jason Gerecke Date: Tue Jan 12 12:15:35 2016 -0800 xsetwacom: Remove unnecessary static state from 'get_actions' The 'last_type' variable within 'get_actions' stores the type of the last action encountered. When dealing with "key" or "button" actions, we use that information to determine if we need to print out the action prefix or not (if the type hasn't changed, its safe to leave the prefix out). For some reason, this variable was marked as 'static', which causes it to retain its value across invocations. The function is only called once for any given button, meaning that we improperly retain the "last_type" across buttons. If the last action on a button is of e.g. type "key" and the first action of the next button is as well, then the "key" prefix will be missing from the printed output of that second button's actions. Making this variable non-static fixes this issue and ensures each run of the function is independent. Fixes: http://sourceforge.net/p/linuxwacom/bugs/303/ Fixes: https://github.com/linuxwacom/xf86-input-wacom/issues/3 Signed-off-by: Jason Gerecke Reviewed-by: Peter Hutterer commit d9119a8c412926b97fac364d32e2bade47d2c295 Author: Peter Hutterer Date: Mon Dec 7 10:23:52 2015 +1000 release.sh: use -t flag to create a sf shell Signed-off-by: Peter Hutterer commit 8978e7010f0ee39c43a9902fbbbbbbeb20da8152 Author: Peter Hutterer Date: Mon Dec 7 10:18:58 2015 +1000 release.sh: fix syntax errors Signed-off-by: Peter Hutterer commit a626adda70bf7e514a6715ba0fe63874808ca5e0 Author: Jason Gerecke Date: Mon Nov 23 15:20:02 2015 -0800 wacom 0.32.0 Signed-off-by: Jason Gerecke commit 380a443fb7ee96e6a7fe13405a3c8d9682b729c6 Author: Jason Gerecke Date: Tue Sep 1 13:56:29 2015 -0700 Streamline Sourceforge login for release.sh There's no particular reason that I see for us needing to enact a 30 second sleep anymore, nor do we have to allocate a pseudo-TTY that the user then has to manually exit from. Creating a non-interactive session without sleep seems to work fine now. Signed-off-by: Jason Gerecke commit 9e216247b549f95c0511b5b3243e1527cabcb161 Author: Jason Gerecke Date: Thu Aug 13 10:32:05 2015 -0700 Don't rely on IsPad() when trying to undo kernel event filtering Commit e9f95de fixed an issue where the pointer would jump around if the kernel's duplicate event filtering had removed the X or Y position from the initial "entering proximity" packet. The fix involved requesting the current axis value from the kernel, but only if we weren't dealing with the pad (since the pad never sends position data, and may not even have those axes). Unfortunately, the check used 'IsPad(priv)', which may return incorrect results at this point in the program flow.* This can cause the pointer jumps to occur anyway if the driver (incorrectly) believes the events to be coming from the pad as described in bug #286. To fix this, the check is changed to rely on 'ds->device_type' which provides accurate information. *It appears that the 'pInfo' passed into 'usbDispatchEvents' may be of any X device that shares the same underlying kernel device. It is not until later in 'wcmEvent' that we use 'findTool' to find the appropriate device based on the 'ds->device_type'. http://sourceforge.net/p/linuxwacom/bugs/286/ Signed-off-by: Jason Gerecke commit 4c17c6a0dd224b66379c52ea8b24ab961b908aa0 Author: Jason Gerecke Date: Thu Aug 6 11:59:39 2015 -0700 Update release.sh script from Xorg The latest-and-greatest copy of release.sh from Xorg now replaces our current version of the script which largely dates back to 2010. This script brings several new features along with it, with stronger checks and PGP signing probably being the two worth noting. A very small number of modifications to the upstream version of this script (commit 65cb27b) have been made to support this project. The only one of note is a change to 'generate_announce' which changes it to use the 'Reply-To' header instead of 'Cc' (since the announce list will bounce unauthorized messages back). Signed-off-by: Jason Gerecke Acked-by: Peter Hutterer commit 31d779debc5b624278c7dc1768168c54e790b4ec Author: Jason Gerecke Date: Mon Aug 17 17:47:06 2015 -0700 wacom 0.31.0 Signed-off-by: Jason Gerecke commit e566a1909329955c44de3e65449cb6485362bb73 Author: Jason Gerecke Date: Mon Aug 10 12:34:20 2015 -0700 wacom 0.30.99.1 Signed-off-by: Jason Gerecke commit 4893844f3f4b417ae38af4dfc49f35d7fbac41b2 Author: Jason Gerecke Date: Tue Jul 28 17:40:00 2015 -0700 Modify wcmMaxCursorDist calculation to support non-inverted protocol 4 Distance values reported by the puck tool on protocol 4 tablets (e.g. the Graphire4) have an inverted scale compared to other devices and tools. That is to say, the values are at their maximum while the puck is resting on the tablet and minimum just prior to going out of prox. The way that xf86-input-wacom handles this is with explicit protocol version checks, which limits our ability to fix this issue going forward (when libinput/Wayland begin to rule the desktop). This patch changes how the driver calculates wcmMaxCursorDist so that it is able to gracefully handle the day we fix this kernel bug. Instead of storing the minimum/maximum value ever seen on the tablet (switching between codepaths based on protocol 5/4) we store the value that is seen whenever the user clicks a button. It is reasonably safe to assume that this occurs with the puck on the tablet and thus will be the correct value. Even if the user happens to click with the puck raised above the surface, a subsuqent click *on* the surface will reset the value. Signed-off-by: Jason Gerecke commit 0173f52dadc7f60019a594ff9d5503605f9a4134 Author: Jason Gerecke Date: Mon Jun 29 10:23:31 2015 -0700 xsetwacom: Fix regression in simple button mapping Commit 273ecfe introduces a bug where simple button mappings (e.g. "set button 2 3") ignore the final argument and always use '1' instead. This us because the variable that we sscanf the button number into is subsuquently reused as a loop control variable before being sprintf'd out. http://sourceforge.net/p/linuxwacom/mailman/message/34246572/ Signed-off-by: Jason Gerecke commit 69ddccf81c67191026612bad45a0a4192a55e1d2 Author: Jason Gerecke Date: Tue Jun 9 18:06:04 2015 -0700 wacom 0.30.0 Signed-off-by: Jason Gerecke commit 8b76a75a0475d0dada34acb86d0c91b4bc12e4b5 Author: Jason Gerecke Date: Fri May 29 16:59:30 2015 -0700 wacom 0.29.99.1 Signed-off-by: Jason Gerecke commit c14e9b485d2690245ba347879d2dd9fec9e7030f Author: Jason Gerecke Date: Fri Apr 24 09:16:59 2015 -0700 xsetwacom: Fix 'get_mapped_area' ("maptooutput next") on 64-bit Using the "maptooutput next" command fails on 64-bit systems, with results ranging from always mapping the pointer to the first head to displaying errors about the transformation matrix being non-rectangular. This is a result of the 'get_mapped_area' function expecting 32-bit properties returned by the server to take up only 4 bytes of memory. This is the case on 32-bit systems, but not on 64-bit ones. This was partially addressed in bc5fd9e, but not here. Signed-off-by: Jason Gerecke commit 273ecfeccfceb2c2a92cfb4e26078c11a3454396 Author: Jason Gerecke Date: Mon Apr 27 11:21:32 2015 -0700 asan: xsetwacom: Cleanup xsetwacom memory leaks Address several leaks present in the code, as well as two uses of 'free' where 'XFree' should have been used instead. Signed-off-by: Jason Gerecke commit af3869e5bda2e2f0a8f0203d11096406cf8cea6b Author: Jason Gerecke Date: Mon Apr 27 10:01:36 2015 -0700 ubsan: Use 'unsigned int' for button mask in 'wcmSendButtons' ../src/wcmCommon.c:137:12: runtime error: left shift of 1 by 31 places cannot be represented in type 'int' SUMMARY: AddressSanitizer: undefined-behavior ../src/wcmCommon.c:137 Signed-off-by: Jason Gerecke commit d9ed47b1b200e1d6a89d11be75ee6346eb2229be Author: Jason Gerecke Date: Mon Apr 27 09:28:31 2015 -0700 ubsan: Prevent out-of-bounds array write ../src/wcmCommon.c:709:2: runtime error: index 6 out of bounds for type 'int [priv->naxes]' SUMMARY: AddressSanitizer: undefined-behavior ../src/wcmCommon.c:709 The 'valuators' array is dynamically sized based on how many axes the device has (typically 6, but possibly 7 if the WCM_DUALRING feature is set). Unfortunately, we don't pay attention to how many axes actually exist when filling the array and end up writing one 'int' worth of data past the end in most circumstances. This appears to have not triggered any issues in the past simply because with a typical stack layout, the code as written (valuators[6] = v6) won't do anything (since &valuators[6] == &v6). Even stil... Signed-off-by: Jason Gerecke commit 423735fc0eee0206d65ee974b019fa0ea2090572 Author: Jason Gerecke Date: Mon Apr 27 09:15:09 2015 -0700 ubsan: Fix alignment issues Memcpy the data from wherever it is in memory to a 'struct input_event' that is living on the stack with proper alignment. Fixes the following complaints from Clang's undefined sanitizer: ../src/wcmUSB.c:966:13: runtime error: member access within misaligned address 0x62e00008e494 for type 'const struct input_event', which requires 8 byte alignment 0x62e00008e494: note: pointer points here 78 00 00 00 db 5b 3e 55 00 00 00 00 d9 d7 03 00 00 00 00 00 03 00 00 00 e9 09 00 00 db 5b 3e 55 ^ SUMMARY: AddressSanitizer: undefined-behavior ../src/wcmUSB.c:966 ../src/wcmUSB.c:966:38: runtime error: member access within misaligned address 0x62e00008e494 for type 'const struct input_event', which requires 8 byte alignment 0x62e00008e494: note: pointer points here 78 00 00 00 db 5b 3e 55 00 00 00 00 d9 d7 03 00 00 00 00 00 03 00 00 00 e9 09 00 00 db 5b 3e 55 ^ SUMMARY: AddressSanitizer: undefined-behavior ../src/wcmUSB.c:966 ../src/wcmUSB.c:983:14: runtime error: member access within misaligned address 0x62e00008e4f4 for type 'const struct input_event', which requires 8 byte alignment 0x62e00008e4f4: note: pointer points here 01 00 00 00 db 5b 3e 55 00 00 00 00 d9 d7 03 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ^ SUMMARY: AddressSanitizer: undefined-behavior ../src/wcmUSB.c:983 ../src/wcmUSB.c:1000:21: runtime error: member access within misaligned address 0x62e00008e4f4 for type 'const struct input_event', which requires 8 byte alignment 0x62e00008e4f4: note: pointer points here 01 00 00 00 db 5b 3e 55 00 00 00 00 d9 d7 03 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ^ SUMMARY: AddressSanitizer: undefined-behavior ../src/wcmUSB.c:1000 ../src/wcmUSB.c:1000:48: runtime error: member access within misaligned address 0x62e00008e4f4 for type 'const struct input_event', which requires 8 byte alignment 0x62e00008e4f4: note: pointer points here 01 00 00 00 db 5b 3e 55 00 00 00 00 d9 d7 03 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ^ SUMMARY: AddressSanitizer: undefined-behavior ../src/wcmUSB.c:1000 Signed-off-by: Jason Gerecke commit d95dfe6ecd9e90f81bc133a561fa6336ac58170d Author: Jason Gerecke Date: Thu Apr 9 16:31:57 2015 -0700 afl: xsetwacom: Check that argc is in range before dereferencing argv These functions access argv[0] before checking that argc is at least 1. In the interest of correctness, swap it around so that the check occurs before the dereference. Signed-off-by: Jason Gerecke commit c7db2dab7bc803ee84bfec1d8a90e1e608b6cb09 Author: Jason Gerecke Date: Thu Apr 9 16:30:01 2015 -0700 afl: xsetwacom: Do not allow negative button numbers Currently its possible to provide a negative (or zero) button number on the commandline, which will be dutifully translated into a negative offset. Detect this and throw an error if encountered. Signed-off-by: Jason Gerecke commit 162cf8d54e8858b8c1cbc96c49f4ffa73716b7e8 Author: Jason Gerecke Date: Thu Apr 9 16:35:36 2015 -0700 xsetwacom: Add ability to read args from stdin for fuzzing Add a new "--enable-fuzz-interface" configuration option which will cause xsetwacom to read NUL-separated arguments from stdin (for example: `echo -en 'list\0devices' | xsetwacom`). This makes it easier to plug into fuzzing software for debugging. Signed-off-by: Jason Gerecke commit 4416168933e058cee6a5e0df803c9c822f8fa63d Author: Benjamin Tissoires Date: Fri Mar 13 11:24:27 2015 -0400 Allow PAD only interfaces without EV_ABS and/or EV_X/Y to report events commit 0cfe113 (Allow PAD only interface without setting up EV_ABS and/or EV_X/Y) allows xf86-input-wacom to handle Pad only interface but such interface do not report any events. We need to call usbWcmInitPadState() to be able to forward events. Signed-off-by: Benjamin Tissoires Acked-by: Peter Hutterer Reviewed-by: Ping Cheng commit 50fcf5eb5062a552959861453ece65a097bfe9f4 Author: Peter Hutterer Date: Thu Mar 12 10:26:28 2015 +1000 Coverity: remove dead code Two lines above we assign nbbuttons = min(7, MAXBUTTONS), the latter of which is 32. Signed-off-by: Peter Hutterer Reviewed-by: Jason Gerecke commit d4a12274138829e79003d8bae597d6feec0b3680 Author: Peter Hutterer Date: Thu Mar 12 10:11:49 2015 +1000 tools: make baudrate unsigned int to shut up compiler Supplying a negative baudrate will now be implicitly converted to the unsigned int equivalent. So don't do that. Signed-off-by: Peter Hutterer Reviewed-by: Jason Gerecke commit 19c116f6e410c42f68fd67841f3c73276045cde6 Author: Peter Hutterer Date: Thu Mar 12 10:00:20 2015 +1000 Coverity: silence "ioctl return value not checked" warnings Move two ioctls up so that if they fail we don't have to clean up an alloc. Signed-off-by: Peter Hutterer Reviewed-by: Jason Gerecke commit 13edd12f9c28b6be9c0cda3874081da1dd78132a Author: Peter Hutterer Date: Wed Mar 11 12:14:00 2015 +1000 Coverity: fix potential negative array subscript isdv4ParseTouchPacket and usbChooseChannel return -1 on error Signed-off-by: Peter Hutterer Reviewed-by: Jason Gerecke commit 1c068af8ebe42461095367ce5c6a03cbc8b33e6c Author: Peter Hutterer Date: Wed Mar 11 12:08:22 2015 +1000 Coverity: fix coverity complaints about unchecked return values The fread() result is now always terminated with \0. Don't think that's ever hit but it gives us a good reason to use the return value so we don't get more complaints. Interestingly, a (void) cast doesn't silence gcc but it does silence coverity. Signed-off-by: Peter Hutterer commit 63705716a44030e5d4e3bea6bd19bd28fa132635 Author: Peter Hutterer Date: Wed Mar 11 12:04:08 2015 +1000 Coverity: fix potential NULL-pointer dereferences Signed-off-by: Peter Hutterer Reviewed-by: Jason Gerecke commit a6cdf28476062f70c1481b255e7d22d814f73440 Author: Jason Gerecke Date: Mon Mar 16 16:53:03 2015 -0700 wacom 0.29.0 Signed-off-by: Jason Gerecke commit a8d43fceb38cad8386b87dd4069e4022e05f5d7c Author: Peter Hutterer Date: Wed Mar 11 11:48:59 2015 +1000 Fix release script Apparently the path has changed Signed-off-by: Peter Hutterer Acked-by: Jason Gerecke commit 5ce9a72fb8249af500e88bde3e6ec0239cd0b8ac Author: Peter Hutterer Date: Mon Mar 9 14:06:56 2015 +1000 tools: Add missing includes for fstat(2) http://build.gnome.org/continuous/buildmaster/builds/2015/03/09/8/build/log-xf86-input-wacom.txt Signed-off-by: Peter Hutterer commit 8317dc44c142a2d38e85e6d2955236d7dd900450 Author: Peter Hutterer Date: Mon Mar 9 13:53:48 2015 +1000 Add missing includes for fstat(2) http://build.gnome.org/continuous/buildmaster/builds/2015/03/09/3/build/log-xf86-input-wacom.txt Signed-off-by: Peter Hutterer commit e97d82e253635ec2e7c592ed24b772b231eb8b38 Author: Jason Gerecke Date: Thu Mar 5 17:50:35 2015 -0800 wacom 0.28.99.1 Signed-off-by: Jason Gerecke commit 0af1fcfa3212e099267921410aedd4d75b6c2deb Author: Jason Gerecke Date: Thu Jan 29 11:52:27 2015 -0800 doc: Fix doxygen.conf warnings Remove the obsolete XML_SCHEMA and XML_DTD definitions, as well as clear the definition of DOT_FONTNAME. Signed-off-by: Jason Gerecke Reviewed-by: Peter Hutterer commit 122d70031ddd2d414f2e739e57903b676c159baa Author: Jason Gerecke Date: Thu Jan 29 10:27:40 2015 -0800 xsetwacom: Ease static analysis of get_mapped_area Fixes warnings about the "width", "height", "x_org", and "y_org" variables in "set_output_next" potentially being undefined. Although careful consideration of the code shows that they must be defined, GCC's static analyzer apparently isn't quite up to the task. This commit rewrites the loop/switch construct to be more straightforward and analyzable. Signed-off-by: Jason Gerecke Reviewed-by: Peter Hutterer commit 3e89ef073e3327826c33241f555f59d3e3dea3f7 Author: Jason Gerecke Date: Thu Jan 29 10:10:50 2015 -0800 tools: Fix up const warnings Resolve numerous "initialization discards ‘const’ qualifier from pointer target type" warnings that were present. Note that in the process of fixing the warning in 'parse_actions', a small buffer overflow was also corrected (the statement 'sprintf(new_words[0], "+%d", i)' writes one character more than originally existed in new_words[0]). Signed-off-by: Jason Gerecke Reviewed-by: Peter Hutterer commit fc28497c0415ecd3487769303eee32f6c8315886 Author: Jason Gerecke Date: Thu Jan 29 14:42:00 2015 -0800 xsetwacom: Use 'fabs' instead of 'abs' where necessary Fixes multiple clang warnings about the use of 'abs' with a floating- point argument. Signed-off-by: Jason Gerecke Reviewed-by: Peter Hutterer commit 820e6826e9e9cf9672a6e343a0b9134036e50ab8 Author: Jason Gerecke Date: Thu Jan 29 10:32:58 2015 -0800 xsetwacom: Remove unused variable from 'strjoinsplit' Signed-off-by: Jason Gerecke Reviewed-by: Peter Hutterer commit bfb53ce07ce3cde26ab3e46805a251e79c9eb78d Author: Jason Gerecke Date: Thu Jan 29 10:42:50 2015 -0800 xsetwacom: Fix format string provided used by 'get_button' xsetwacom.c: In function ‘get_button’: xsetwacom.c:2080:2: warning: format ‘%d’ expects argument of type ‘int’, but argument 4 has type ‘Atom’ [-Wformat=] print_button_value(param, offset, "%d", prop); Signed-off-by: Jason Gerecke Reviewed-by: Peter Hutterer commit 4e7fe9882407cb58b0150b7d2d1d7ca1c7f89418 Author: Jason Gerecke Date: Thu Jan 29 10:40:14 2015 -0800 xsetwacom: Declare printf attribute on print_{,button_}value Signed-off-by: Jason Gerecke Reviewed-by: Peter Hutterer commit cdbada765adac161ef4f0e36c16301a7f9b3980e Author: Jason Gerecke Date: Thu Jan 29 10:10:12 2015 -0800 tools: Build with CWARNFLAGS Signed-off-by: Jason Gerecke Reviewed-by: Peter Hutterer commit 86dd3e22ab1b07dd2777959a5a2d2ea7da38f74f Author: Jason Gerecke Date: Fri Jan 16 18:33:39 2015 -0800 xsetwacom: Allow "get all" to iterate over all available buttons Signed-off-by: Jason Gerecke Reviewed-by: Peter Hutterer commit 9ee5383553ac32e98c7f0e25a1c950f35ffeff62 Author: Jason Gerecke Date: Fri Jan 16 17:29:40 2015 -0800 xsetwacom: Add print_button_value function Setting a button value requires a slightly different format than most other properties. In particular, they require the presence of a button number either concatenated onto the prefix 'Button' (for xorg.conf format) or as a seperate parameter (for shell format). Signed-off-by: Jason Gerecke Reviewed-by: Peter Hutterer commit 2f5af03ac1b7ac9748b2ee1d5493aca1de87a8d0 Author: Jason Gerecke Date: Fri Jan 16 18:11:20 2015 -0800 xsetwacom: Don't try to print "set" commands for readonly properties Both FORMAT_XORG_CONF and FORMAT_SHELL are formatted for setting in xorg.conf or xsetwacom. It makes no sense to bother printing out the value of readonly values for these two cases though since it is impossible to set them. Signed-off-by: Jason Gerecke Reviewed-by: Peter Hutterer commit 902b174cbde602f00b08d40ae1b949ea0f154a7f Author: Jason Gerecke Date: Fri Jan 16 18:00:41 2015 -0800 xsetwacom: Print proper names of xorg.conf options Some properties have different names between xorg.conf and xsetwacom. This adds an 'x11name' member to each parmeter which stores the name of the associated xorg.conf property if it exists. If this member has not been set for any particular parameter while the xorg.conf format is selected than an error will be printed. Signed-off-by: Jason Gerecke Reviewed-by: Peter Hutterer commit 162d83cf2c6cf809debdb2beb96a45313f4e8a36 Author: Jason Gerecke Date: Fri Jan 16 17:02:40 2015 -0800 xsetwacom: Print error/warning messages on stderr Signed-off-by: Jason Gerecke Reviewed-by: Peter Hutterer commit 27b713eebf606b9f21df26d9ac5cc6a489b90a01 Author: Jason Gerecke Date: Mon Jan 12 09:30:18 2015 -0800 xsetwacom: Use effective XKB group number in keysym_to_keycode XKB allows a user to define multiple groups (layouts) for their keyboard, switching between them on the fly. When converting keycodes to KeySyms one has to be careful about which group they look at. Not every keycode has to define KeySyms for every available group, and XKB calculates an "effective" group number in such cases. At the moment xsetwacom only uses the "current" group number which won't always work. The following commands exhibit one example of how the bug may be reproduced: $ setxkbmap us,dvorak -option grp:caps_toggle $ xsetwacom set button 1 key ctrl [ button 1 should work as expected ] [ now press CAPSLOCK to switch to Dvorak ] $ xsetwacom set button 1 key ctrl [ a warning is printed if the bug exists ] To reset the keyboard back e.g. to the 'us' layout after running the above commands: $ setxkbmap us -option Fixes: http://sourceforge.net/p/linuxwacom/bugs/269/ Signed-off-by: Jason Gerecke commit 335f885bcc15d7ba85bcd2b6000434c39f1beb13 Author: Jason Gerecke Date: Mon Jan 5 13:38:53 2015 -0800 wacom 0.28.0 Signed-off-by: Jason Gerecke commit 47539b4e4005cda70405bd8f2a29214cabba2d64 Author: Jason Gerecke Date: Mon Dec 22 15:49:52 2014 -0800 wacom 0.27.99.1 Signed-off-by: Jason Gerecke commit 8d138bf21a54f73249f443af747f01f4a0069fc0 Author: Jason Gerecke Date: Mon Dec 22 14:54:08 2014 -0800 xsetwacom: Warn if keycode could not be found As described at SF #267, xsetwacom provides no indication if a valid keysym has no keycode in the current keyboard layout. This provides such a warning and updates language of a preceeding warning to be more accurate. Signed-off-by: Jason Gerecke commit fd5371dc28dfd1bdabd9b50bdac00047aadc39ab Author: Jason Gerecke Date: Fri Dec 5 10:38:21 2014 -0800 Allow xsetwacom to recognize 'insert' as a key Signed-off-by: Jason Gerecke Reviewed-by: Peter Hutterer commit debc83723927f0fb3d16098f8b7388bdb6db855b Author: Jason Gerecke Date: Fri Dec 5 13:39:26 2014 -0800 Ensure input device fd gets closed after use Fixes a minor error in commit 52fe01c which results in the driver invalidating an fd prior to (potentially) closing it. This reversed order causes us to leak the fd and can result in eventual exhasution. Fixes SF #263 Signed-off-by: Jason Gerecke Reviewed-by: Peter Hutterer commit 5aec962eb930aa7758eb0e3a7c32f951b4b3d935 Author: Ping Cheng Date: Mon Nov 24 13:46:56 2014 -0800 Remove hardcoded function name - usbProbeKeys "in the future we should use __func__ instead of harcoding function names." -- Peter Hutterer Signed-off-by: Ping Cheng Reviewed-by: Peter Hutterer commit 0cfe1139f39fd322a4360b282fee6297c8ac00d6 Author: Ping Cheng Date: Mon Nov 24 13:42:18 2014 -0800 Allow PAD only interface without setting up EV_ABS and/or EV_X/Y Wacom kernel driver has been merged to HID subsystem. As a bonus, we also allow PAD to report its data on its own interface. To declare the exact event types, we should not set EV_ABS or EV_X/Y for PADs on most tablets. However, xf86-input-wacom is not designed to handle this case. This patch makes future PAD-only, or even expresskey-only, tablets work properly. Signed-off-by: Ping Cheng commit cea8074a0b987efb064cfbebe1de4c684592b928 Author: Jason Gerecke Date: Mon Nov 3 17:00:26 2014 -0800 wacom 0.27.0 Signed-off-by: Jason Gerecke commit bac8243d680d9cde531aaa00c048299017d32962 Author: Jason Gerecke Date: Mon Oct 27 15:35:18 2014 -0700 wacom 0.26.99.1 Signed-off-by: Jason Gerecke commit 8f85692a19bd34dae77071a296a14c01a491cf4a Author: Jason Gerecke Date: Wed Sep 17 16:05:10 2014 -0700 Reset wcmGestureState to current device state upon gesture start The scroll and zoom gestures use of how far the fingers have travelled as a way to determine how many times to send the scroll/zoom event. When a gesture first starts, however, the fingers have already moved a large distance simply to have the gesture be recognized. This may cause a rapid and undesired "catch up" effect due to the large built-up delta. To work around this, when a gesture starts, we reset the wcmGestureState so that the functions are working with a clean slate and do not see the large delta. Signed-off-by: Jason Gerecke commit f6ae56b0cf1cbf298ebbc5380f51010cea430154 Author: Jason Gerecke Date: Thu Sep 11 16:13:05 2014 -0700 Set the active driver to NULL before uninitalizing the device If a device being used is disconnected, it may be possible to find yourself in a situation where a second device performs an "active" check and dereferences a null (freed in 'wcmFree') 'priv' pointer. To prevent this from occuring, always check if the device being uninitialized is considered 'active' and unset it if so. Signed-off-by: Jason Gerecke commit e9f95de119875e06b9ec775f5938506dcc1b2d6e Author: Jason Gerecke Date: Tue Sep 9 17:02:48 2014 -0700 Fix pointer jump when tool enters prox with filtered coordinate When a tool enters proximity, the usbChooseChannel function zeros out one of the WacomDeviceState structures in the common->wcmChannel array and returns its index. That state is then initalized using the input events recieved from the kernel, and is assumed to be a complete description by the time it is handed off to the wcmEvent function. The kernel's duplicate event filtering can cause problems for this, however. If the value of the axis as it enters prox is identical to its value when it left prox, the kernel will not send an event for it (leaving the associated WacomDeviceState field zero). If this occurs with the X and/or Y axis, the pointer will jump to the wrong screen location. To prevent the pointer from jumping around, we check if the X or Y value of the WacomDeviceState are still zero after reading through an enter-prox packet. If either is, we request its current value from the kernel just in case it was filtered out. Other axes may be affected by this bug, but should not cause as many problems. Signed-off-by: Jason Gerecke commit 0ed6d892e045de4e9674fa81318ee8ee7b3fc384 Author: Jason Gerecke Date: Thu Sep 18 12:08:25 2014 -0700 Strengthen condition that pad may never be arbitrated pointer control The pad should never be arbitrated pointer control since it is not a pointer controlling device. The `check_arbitrated_control` function performs its checks in the wrong order, however, and will grant control if no other device is currently active. This can cause touch to be disabled for "generic protocol" devices (e.g. Intuos, Bamboo, etc.) until a pen is used because touch is the lowest- priority device to be arbitrated access. For protocol 4/5 devices (e.g. Intuos 5/4/3 and Cintiq) this can also lock out touch, but only if the ExpressKey was pressed prior to the beginning of the touch, and only while it remains held. This patch strengthens the condition that the pad may never be granted control by making it the first thing checked. Signed-off-by: Jason Gerecke commit 018c632ada56d8e07a11ce89ec589e3a2dc36293 Author: Jason Gerecke Date: Wed Sep 17 19:05:44 2014 -0700 gcc-warning: -Wunused-variable ../src/wcmXCommand.c:90:13: warning: 'prop_tv_resolutions' defined but not used [-Wunused-variable] static Atom prop_tv_resolutions; ^ Signed-off-by: Jason Gerecke Acked-by: Peter Hutterer commit 885e04b36054da9072a6add5307ef0d9d538ee62 Author: Jason Gerecke Date: Mon Sep 15 10:40:50 2014 -0700 clang-warning: -Wmissing-variable-declarations ../src/wcmConfig.c:701:16: warning: no previous extern declaration for non-static variable 'WACOM' [-Wmissing-variable-declarations] InputDriverRec WACOM = ^ ../src/wcmXCommand.c:82:6: warning: no previous extern declaration for non-static variable 'prop_devnode' [-Wmissing-variable-declarations] Atom prop_devnode; ^ ../src/wcmXCommand.c:83:6: warning: no previous extern declaration for non-static variable 'prop_rotation' [-Wmissing-variable-declarations] Atom prop_rotation; ^ ../src/wcmXCommand.c:84:6: warning: no previous extern declaration for non-static variable 'prop_tablet_area' [-Wmissing-variable-declarati$ Atom prop_tablet_area; ^ ../src/wcmXCommand.c:85:6: warning: no previous extern declaration for non-static variable 'prop_pressurecurve' [-Wmissing-variable-declara$ Atom prop_pressurecurve; ^ ../src/wcmXCommand.c:86:6: warning: no previous extern declaration for non-static variable 'prop_serials' [-Wmissing-variable-declarations] Atom prop_serials; ^ ../src/wcmXCommand.c:87:6: warning: no previous extern declaration for non-static variable 'prop_serial_binding' [-Wmissing-variable-declar$ Atom prop_serial_binding; ^ ../src/wcmXCommand.c:88:6: warning: no previous extern declaration for non-static variable 'prop_strip_buttons' [-Wmissing-variable-declara$ Atom prop_strip_buttons; ^ ../src/wcmXCommand.c:89:6: warning: no previous extern declaration for non-static variable 'prop_wheel_buttons' [-Wmissing-variable-declara$ Atom prop_wheel_buttons; ^ ../src/wcmXCommand.c:90:6: warning: no previous extern declaration for non-static variable 'prop_tv_resolutions' [-Wmissing-variable-declar$ Atom prop_tv_resolutions; ^ ../src/wcmXCommand.c:91:6: warning: no previous extern declaration for non-static variable 'prop_cursorprox' [-Wmissing-variable-declaratio$ Atom prop_cursorprox; ^ ../src/wcmXCommand.c:92:6: warning: no previous extern declaration for non-static variable 'prop_threshold' [-Wmissing-variable-declaration$ Atom prop_threshold; ^ ../src/wcmXCommand.c:93:6: warning: no previous extern declaration for non-static variable 'prop_suppress' [-Wmissing-variable-declarations] Atom prop_suppress; ^ ../src/wcmXCommand.c:94:6: warning: no previous extern declaration for non-static variable 'prop_touch' [-Wmissing-variable-declarations] Atom prop_touch; ^ ../src/wcmXCommand.c:98:6: warning: no previous extern declaration for non-static variable 'prop_hover' [-Wmissing-variable-declarations] Atom prop_hover; ^ ../src/wcmXCommand.c:99:6: warning: no previous extern declaration for non-static variable 'prop_tooltype' [-Wmissing-variable-declarations] Atom prop_tooltype; ^ ../src/wcmXCommand.c:100:6: warning: no previous extern declaration for non-static variable 'prop_btnactions' [-Wmissing-variable-declarati$ Atom prop_btnactions; ^ ../src/wcmXCommand.c:101:6: warning: no previous extern declaration for non-static variable 'prop_product_id' [-Wmissing-variable-declarati$ Atom prop_product_id; ^ ../src/wcmXCommand.c:102:6: warning: no previous extern declaration for non-static variable 'prop_pressure_recal' [-Wmissing-variable-decla$ Atom prop_pressure_recal; ^ ../src/wcmXCommand.c:104:6: warning: no previous extern declaration for non-static variable 'prop_debuglevels' [-Wmissing-variable-declarat$ Atom prop_debuglevels; ^ ../src/wcmXCommand.c:95:6: warning: no previous extern declaration for non-static variable 'prop_hardware_touch' [-Wmissing-variable-declar$ Atom prop_hardware_touch; ^ ../src/wcmXCommand.c:96:6: warning: no previous extern declaration for non-static variable 'prop_gesture' [-Wmissing-variable-declarations] Atom prop_gesture; ^ ../src/wcmXCommand.c:97:6: warning: no previous extern declaration for non-static variable 'prop_gesture_param' [-Wmissing-variable-declara$ Atom prop_gesture_param; ^ xsetwacom.c:476:3: warning: no previous extern declaration for non-static variable 'deprecated_parameters' [-Wmissing-variable-declarations] } deprecated_parameters[] = ^ xsetwacom.c:953:3: warning: no previous extern declaration for non-static variable 'keywords' [-Wmissing-variable-declarations] } keywords[] = { ^ isdv4-serial-debugger.c:44:5: warning: no previous extern declaration for non-static variable 'verbose' [-Wmissing-variable-declarations] int verbose = 0; ^ isdv4-serial-inputattach.c:41:5: warning: no previous extern declaration for non-static variable 'verbose' [-Wmissing-variable-declarations] int verbose; ^ Signed-off-by: Jason Gerecke Acked-by: Peter Hutterer commit 48a6c6121a0259939d515afbffbd4de057058266 Author: Jason Gerecke Date: Mon Sep 15 12:01:57 2014 -0700 clang-warning: -Wmissing-field-initializers ../src/wcmISDV4.c:100:2: warning: missing field 'DetectConfig' initializer [-Wmissing-field-initializers] }; ^ ../src/wcmTouchFilter.c:254:30: warning: missing field 'device_id' initializer [-Wmissing-field-initializers] WacomDeviceState ds[2] = {{0}}, dsLast[2] = {{0}}; ^ ../src/wcmTouchFilter.c:254:49: warning: missing field 'device_id' initializer [-Wmissing-field-initializers] WacomDeviceState ds[2] = {{0}}, dsLast[2] = {{0}}; ^ ../src/wcmTouchFilter.c:314:30: warning: missing field 'device_id' initializer [-Wmissing-field-initializers] WacomDeviceState ds[2] = {{0}}, dsLast[2] = {{0}}; ^ ../src/wcmTouchFilter.c:314:49: warning: missing field 'device_id' initializer [-Wmissing-field-initializers] WacomDeviceState ds[2] = {{0}}, dsLast[2] = {{0}}; ^ ../src/wcmTouchFilter.c:395:30: warning: missing field 'device_id' initializer [-Wmissing-field-initializers] WacomDeviceState ds[2] = {{0}}, dsLast[2] = {{0}}; ^ ../src/wcmTouchFilter.c:395:49: warning: missing field 'device_id' initializer [-Wmissing-field-initializers] WacomDeviceState ds[2] = {{0}}, dsLast[2] = {{0}}; ^ ../src/wcmTouchFilter.c:587:30: warning: missing field 'device_id' initializer [-Wmissing-field-initializers] WacomDeviceState ds[2] = {{0}}; ^ ../src/wcmTouchFilter.c:613:30: warning: missing field 'device_id' initializer [-Wmissing-field-initializers] WacomDeviceState ds[2] = {{0}}; ^ ../src/wcmTouchFilter.c:714:30: warning: missing field 'device_id' initializer [-Wmissing-field-initializers] WacomDeviceState ds[2] = {{0}}; ^ xsetwacom.c:465:9: warning: missing field 'desc' initializer [-Wmissing-field-initializers] { NULL } ^ Signed-off-by: Jason Gerecke Acked-by: Peter Hutterer commit 7af2c515bdd8e918efbec23c03fa1e705c186aea Author: Jason Gerecke Date: Mon Sep 15 10:01:24 2014 -0700 clang-warning: -Wunused-macros xsetwacom.c:20:9: warning: macro is not used [-Wunused-macros] #define WACOM_TOOLS ^ isdv4-serial-debugger.c:22:9: warning: macro is not used [-Wunused-macros] #define WACOM_TOOLS ^ tools-shared.c:20:9: warning: macro is not used [-Wunused-macros] #define WACOM_TOOLS ^ isdv4-serial-inputattach.c:22:9: warning: macro is not used [-Wunused-macros] #define WACOM_TOOLS ^ Signed-off-by: Jason Gerecke Acked-by: Peter Hutterer commit 2bab0353aef20f8e5e738d8e96317dd5fe69e190 Author: Jason Gerecke Date: Mon Sep 15 09:51:26 2014 -0700 clang-warning: -Wunreachable-code-return ../src/wcmUSB.c:1140:9: warning: 'return' will never be executed [-Wunreachable-code-return] return 0; ^ Signed-off-by: Jason Gerecke Acked-by: Peter Hutterer commit c33c80e6d5977e33aaf8f7a9cec15a05ec88cf78 Author: Jason Gerecke Date: Mon Sep 15 09:32:26 2014 -0700 clang-warning: -Wunreachable-code-break ../src/wcmXCommand.c:439:5: warning: 'break' will never be executed [-Wunreachable-code-break] break; ^~~~~ Signed-off-by: Jason Gerecke Acked-by: Peter Hutterer commit 75960a16fbf3f6ce2b0030cb703a6a389ab8998f Author: Jason Gerecke Date: Thu Aug 14 12:30:58 2014 -0700 clang-warning: -Wdocumentation-unknown-command ../src/wcmCommon.c:740:4: warning: unknown command tag name [-Wdocumentation-unknown-command] * @retval SUPPRESS_ALL Ignore this event completely. ^ ../src/wcmCommon.c:1041:4: warning: unknown command tag name [-Wdocumentation-unknown-command] * @rebaes ^ ../src/wcmUSB.c:1120:4: warning: unknown command tag name [-Wdocumentation-unknown-command] * @device_id id of the device ^ ../src/wcmValidateDevice.c:524:52: warning: unknown command tag name [-Wdocumentation-unknown-command] * hotplug. The server will come back and call the @wcmHotplugDevice ^ ../src/wcmValidateDevice.c:753:4: warning: unknown command tag name [-Wdocumentation-unknown-command] * @retvalue True on success or False otherwise. ^ ../src/wcmValidateDevice.c:1020:4: warning: unknown command tag name [-Wdocumentation-unknown-command] * @retvalue True on success or False otherwise. ^ Signed-off-by: Jason Gerecke Acked-by: Peter Hutterer commit a97d4aacb79fee63f9c45807fa47ae5d4d0b63f2 Author: Jason Gerecke Date: Thu Aug 14 12:19:55 2014 -0700 clang-warning: -Wmissing-prototypes xsetwacom.c:2098:6: warning: no previous prototype for function 'get_mapped_area' [-Wmissing-prototypes] Bool get_mapped_area(Display *dpy, XDevice *dev, int *width, int *height, int *x_org, int *y_org) ^ isdv4-serial-inputattach.c:81:5: warning: no previous prototype for function 'get_baud_rate' [-Wmissing-prototypes] int get_baud_rate(int fd) ^ isdv4-serial-inputattach.c:117:6: warning: no previous prototype for function 'sighandler' [-Wmissing-prototypes] void sighandler(int signum) ^ Signed-off-by: Jason Gerecke Acked-by: Peter Hutterer commit 37421251edb509e6fe60d2a506e9177008c7a603 Author: Jason Gerecke Date: Thu Aug 14 11:53:20 2014 -0700 clang-warning: -Wconditional-uninitialized ../src/xf86Wacom.c:511:16: warning: variable 'i' may be uninitialized when used here [-Wconditional-uninitialized] pInfo->name, i + 1, wait); xsetwacom.c:2308:36: warning: variable 'x' may be uninitialized when used here [-Wconditional-uninitialized] return set_output_area(dpy, dev, x, y, width, height); ^ xsetwacom.c:2308:39: warning: variable 'y' may be uninitialized when used here [-Wconditional-uninitialized] return set_output_area(dpy, dev, x, y, width, height); ^ xsetwacom.c:2308:42: warning: variable 'width' may be uninitialized when used here [-Wconditional-uninitialized] return set_output_area(dpy, dev, x, y, width, height); ^~~~~ xsetwacom.c:2308:49: warning: variable 'height' may be uninitialized when used here [-Wconditional-uninitialized] return set_output_area(dpy, dev, x, y, width, height); ^~~~~~ isdv4-serial-inputattach.c:107:6: warning: variable 'attr_id' may be uninitialized when used here [-Wconditional-uninitialized] if (attr_id && sscanf(attr_id, "WACf%x", &id) == 1 && id >= 0x8) ^~~~~~~ isdv4-serial-inputattach.c:179:22: warning: variable 'baudrate' may be uninitialized when used here [-Wconditional-uninitialized] set_serial_attr(fd, baudrate); ^~~~~~~~ Signed-off-by: Jason Gerecke Acked-by: Peter Hutterer commit bff3c3e634c962a98c0574eb790ddf78f7e2e02d Author: Jason Gerecke Date: Thu Aug 14 11:46:07 2014 -0700 clang-warning: enumeration value 'FORMAT_DEFAULT' not explicitly handled in switch Signed-off-by: Jason Gerecke Acked-by: Peter Hutterer commit 14b272c48b25d8aa4ad91d18a60bccd42e6c4207 Author: Jason Gerecke Date: Tue May 13 10:52:34 2014 -0700 clang-warning: extra ';' outside of a function Signed-off-by: Jason Gerecke Acked-by: Peter Hutterer commit 974a3136c5115709389fb6e57ab743240f3cec7d Author: Jason Gerecke Date: Mon Sep 15 19:28:27 2014 -0700 Replace strjoinsplit There's not much to like about this function's implementation. The few scan-build warnings specific to this particular function suggested it should be put to pasture and replaced with something better. Signed-off-by: Jason Gerecke Acked-by: Peter Hutterer commit 01a5892b46003e308791348dc291675ee3dc45dd Author: Jason Gerecke Date: Mon Sep 15 18:19:33 2014 -0700 scan-build: security: Potential insecure memory buffer bounds restriction in call 'strcat' The 'argv' strings passed into strjoinsplit are concatenated and stored within the 'buff' array on the stack. Although we are careful to ensure there is enough room remaining to store *argv and a separating ' ' character before performing strcat, we also need to ensure that there's room for the null terminator that strcat itself will append. Signed-off-by: Jason Gerecke Acked-by: Peter Hutterer commit bdda78fad48bc5222468d6abff0e4858ded37713 Author: Jason Gerecke Date: Wed Sep 17 17:42:49 2014 -0700 scan-build: Logic error: Potential unintended use of sizeof() on pointer type Signed-off-by: Jason Gerecke Acked-by: Peter Hutterer commit 5dfdf012b324366697b724e4629b8ae1a00a4aae Author: Jason Gerecke Date: Mon Sep 15 19:03:57 2014 -0700 scan-build: Logic error: Cast region with wrong size Signed-off-by: Jason Gerecke Acked-by: Peter Hutterer commit 9e90e41f6ecba0a3e534b97e13b8309004ff920d Author: Jason Gerecke Date: Fri Jun 6 17:57:06 2014 -0700 scan-build: Function call argument is an uninitialized value The isdv4ParseTouchQuery and isdv4ParseTouchData functions return 0 and -1 if errors occur. At the moment, only the -1 case is being handled, which can result in the callers using uninitialized ISDV4TouchQueryReply or ISDV4TouchData results. Signed-off-by: Jason Gerecke Acked-by: Peter Hutterer commit 9ef69b5ba8130d5cb2315c0c2ec3c4465cf2dcdc Author: Jason Gerecke Date: Mon Sep 15 17:08:01 2014 -0700 scan-build: Undefined or garbage value returned to caller Signed-off-by: Jason Gerecke Acked-by: Peter Hutterer commit 34496d7330d9bf5cfc7b5773ec464dc8a105c526 Author: Jason Gerecke Date: Fri Jun 6 15:09:11 2014 -0700 scan-build: Logic error: Branch condition evaluates to a garbage value 1 (line 88): 'attr_id' declared without an initial value 2 (line 96): ASSUME Loop condition is false. Execution continues on line 107 3 (line 107): Branch condition evaluates to a garbage value Signed-off-by: Jason Gerecke Acked-by: Peter Hutterer commit 5e54ade3b24c0b4eaec8670298fd2dbd75a1c846 Author: Jason Gerecke Date: Fri Jun 6 16:32:47 2014 -0700 scan-build: Logic error: Dereference of null pointer If no match is found within the 'while' loop, the value of 'ndevices' will be -1 at the point we reach 'if (!ndevices)' since we use the post-decrement operator. In addition to never producing the expected error message, this also results in a NULL dereference immediately afterwards. Signed-off-by: Jason Gerecke Acked-by: Peter Hutterer commit 7a9e384f6aea427f18a87b5ef5cb711e6dcd31dd Author: Jason Gerecke Date: Fri Jun 6 15:56:56 2014 -0700 scan-build: Unix API: Undefined allocation of 0 bytes Signed-off-by: Jason Gerecke Acked-by: Peter Hutterer commit 5f97023c197382b25c852a150caf9b8630cbf44a Author: Jason Gerecke Date: Fri Jun 6 15:29:26 2014 -0700 scan-build: Logic error: Result of operation is garbage or undefined Assuming nitems is less than we expect, its possible for get_mapped_area to return before writing values to its in-parameters. This adds an additional verification to the returned data type. Signed-off-by: Jason Gerecke Acked-by: Peter Hutterer commit e74d825faa7269dceaf108359e5e23b716d65d3f Author: Jason Gerecke Date: Fri Jun 6 15:18:29 2014 -0700 scan-build: Memory Error: Memory leak strjoinsplit requires the caller to free memory Signed-off-by: Jason Gerecke Acked-by: Peter Hutterer commit 2c83a26febfe38f856ecf8aae30470b03bb61661 Author: Jason Gerecke Date: Fri Jun 6 15:06:14 2014 -0700 scan-build: Unix API: Allocator sizeof operand mismatch Result of 'calloc' is converted to a pointer of type 'unsigned long', which is incompatible with sizeof operand type 'long' Signed-off-by: Jason Gerecke Acked-by: Peter Hutterer commit 26b518ab52813bbf8443a7cc81485ce359ab52e3 Author: Jason Gerecke Date: Fri Jun 6 14:50:45 2014 -0700 scan-build: Dead store: Dead assignment Value stored to 'max' is never read Value stored to 'min' is never read Signed-off-by: Jason Gerecke Acked-by: Peter Hutterer commit 5fa70839834c35a9c2de3fae4c634a448bf583ba Author: Jason Gerecke Date: Thu Sep 11 17:48:36 2014 -0700 wacom 0.26.0 Signed-off-by: Jason Gerecke commit 42a42b2a8636abc9e105559e5dea467163499de7 Author: Jason Gerecke Date: Thu Sep 4 11:21:10 2014 -0700 wacom 0.25.99.2 Signed-off-by: Jason Gerecke commit 7de39508b7b2b89db86e49c498df53934be5d895 Author: Jason Gerecke Date: Mon Aug 25 16:29:15 2014 -0700 Have direct input touch use server emulation to move pointer The X server provides pointer emulation for the first touch on direct-input (touchscreen) devices. To make use of this, we need to short-circuit our internal first-touch emulation and that the gesture engine immediately enters multitouch mode (but only for touchscreens!) Signed-off-by: Jason Gerecke commit 48ea5fb61c4c3b1a7a4ca356e7459d5c3e65e052 Author: Jason Gerecke Date: Mon Aug 25 16:23:45 2014 -0700 Revert "Don't emulate a mouse when multitouch is enabled" This reverts commit f38dd5736e2df7c3eec0338bd0c7bef8c562b979. commit 3d15f716d45cb15985a0091ce741767f81f041e6 Author: Jason Gerecke Date: Wed Aug 13 09:58:34 2014 -0700 Revert "Unify wcmFingerMultitouch and wcmSendTouchEvent" This reverts commit 67daf21bdb7b32c27818bffaf56849a522d23477. commit beff32b64f9a63582bb05c2521cf527a7b7e40a5 Author: Jason Gerecke Date: Mon Jun 2 12:50:02 2014 -0700 Allow touch to grab and maintain pointer control from idle puck This patch changes the how pointer access is arbitrated. Before, any non-touch tool would be immediately granted control over the pointer, preempting touch itself. This is problematic if the user happens to use a device with a puck (i.e., a Cursor device) since the tool is likely to be in-range but idle for a significant ammount of time. This patch adds conditions which allow touch to grab control from the puck if no events have been seen from it in a while. In addition, the puck may not immediatley regain control from the touch device while it is in use due to potential hardware jitter. Signed-off-by: Jason Gerecke commit c92b7a9647b33b9693522255408207d925d9bad6 Author: Jason Gerecke Date: Mon Aug 18 10:03:38 2014 -0700 wacom 0.25.99.1 commit 6a9c6a221d2eba20f63d8d1ee451772a54ae5b65 Author: Jason Gerecke Date: Mon Jul 7 16:43:01 2014 -0700 conf: Add new InputDevice matches based on USB and PnP ID If the kernel's HID driver is used rather than wacom.ko, its very possible that the device will not have "Wacom" anywhere in its device name. To ensure we are able to match Wacom tablets in this situation, we add matches based on the known USB and PnP IDs. Signed-off-by: Jason Gerecke Reviewed-by: Peter Hutterer commit 4a376ec733b44c648b00bda91b7d40a22b54ac7b Author: Jason Gerecke Date: Mon Jul 7 16:41:18 2014 -0700 conf: Match Hanwang tablets in their own section Signed-off-by: Jason Gerecke Reviewed-by: Peter Hutterer commit cd188428991781bcf20505856766bb21bcfbdd5e Author: Jason Gerecke Date: Tue Jul 15 10:26:53 2014 -0700 Add new GESTURE_CANCEL_MODE and wcmCancelGesture function The new GESTURE_CANCEL_MODE is used to short-circuit the gesture recognition logic until all touches have been removed from the device. By using the wcmCancelGesture function, any in-progress gesture will be canceled and cause the driver to ignore further touch input until a new gesture is started. This is used by the arbitration logic to ensure that touches which accumulate in the valid.state list while a pen is in proximity do not suddenly trigger a gesture at the moment the pen leaves prox. Signed-off-by: Jason Gerecke Acked-by: Peter Hutterer commit d433218f570454e2122343405039c4a7bfaa15a4 Author: Jason Gerecke Date: Mon Jul 14 15:18:29 2014 -0700 Support cross-device pointer arbitration Currently pointer arbitration is taken care of through the use of a 'wcomPenInProx' variable in the WacomCommonRec. If two devices share a 'common' variable, the commonDispatchDevice function will ensure that touches do not move the pointer while the pen is in proximity. This patch adds support for cross-device pointer arbitration to prevent other touches known to the driver from moving the pointer. This is achieved with the introduction of a 'WACOM_DRIVER' structure that is shared by all tools. Inside this structure is an 'active' variable that keeps track of the last tool which was actively controlling the pointer. When an event from any tool comes in, the driver will attempt to determine if it should be filtered or not. In some cases, the new device will be allowed to take control of the pointer, and become the new active device. Note that arbitration occurs *after* we store the device state to pChannel->valid.state. The code in wcmTouchFilter.c assumes that states are not missing, and can become desynchronized from reality if (for example) a finger were to go out of prox without a corresponding state update. Signed-off-by: Jason Gerecke Acked-by: Peter Hutterer commit d1c66c6b78d86fdabaf30d2fd5acf91484ca84d0 Author: Jason Gerecke Date: Mon Jun 2 11:32:50 2014 -0700 Change function signature of commonDispatchDevice Changes commonDispatchDevice to take an InputInfoPtr rather than a WacomCommonPtr. This is in prepraration for the next patch where an InputInfoPtr will be required in wcmEvent. To make this happen, the call to 'findTool' is moved to wcmEvent. This also allows us to remove the one-off setting of 'priv' only for touch devices. Signed-off-by: Jason Gerecke Acked-by: Peter Hutterer commit 1b5708e04181b5734ebdfe649c87c47b5f4e28cf Author: Jason Gerecke Date: Mon Jun 2 11:25:21 2014 -0700 Remove unused function parameter Signed-off-by: Jason Gerecke Acked-by: Peter Hutterer commit 0e5c4b2635b76aa5fa5b00c2156524c2579a9b9f Author: Jason Gerecke Date: Mon Aug 4 15:12:40 2014 -0700 ISDv4 touch query timeout should be non-fatal Both the wacom_w8001 and isdv4.c drivers assume that a tablet /may/ respond to the touchquery packet with silence. This assumption does not carry over to tools-shared.c, and may cause pen-only tablet PC users trouble with isdv4-serial-inputattach. Signed-off-by: Jason Gerecke Tested-by: Anshul Sirur commit c509dc3b5f09b74a50aea05abbf3a084f9e7b69f Author: Jason Gerecke Date: Fri Jun 20 17:57:52 2014 -0700 Add support for ISDv4 0x12C tablet Signed-off-by: Jason Gerecke commit 541504ffed49e2310142ed3e72c344c0f9fc3ae6 Author: Jason Gerecke Date: Wed Jun 18 13:57:48 2014 -0700 Set tool device ID for generic protocol hardware The code in usbParseKeyEvent which is supposed to set a device ID ignores the case of devices which use the generic protocol. This patch changes the logic so that a device ID is assigned from the BTN_* event for any non-protocol 5 device. Fixes: https://sourceforge.net/p/linuxwacom/bugs/246/ Signed-off-by: Jason Gerecke Reviewed-by: Ping Cheng commit cd16d7cdc41431bf8f4ab817637381c0775a3a82 Author: Ping Cheng Date: Tue Jun 10 12:49:55 2014 -0700 Don't assume tablet (x,y) always starts from (0,0) Newer Cintiqs have an outbound of 200 tablet count outside of screen area. This causes absinfo.minimum to be 200 for some tablets instead of always 0 for all tablets. Update struct _WacomDeviceRec and _WacomCommonRec to process this change. Signed-off-by: Ping Cheng Reviewed-by: Jason Gerecke Reviewed-by: Peter Hutterer commit 2088de15ba662f32185c1667842afdc0394d329e Author: Jason Gerecke Date: Tue Jun 17 16:42:16 2014 -0700 wacom 0.25.0 Signed-off-by: Jason Gerecke commit 4bc29b0d76996fe5ea7fada1160f48fa4071a1e9 Author: Jason Gerecke Date: Mon Jun 2 09:19:13 2014 -0700 wacom 0.24.99.1 Signed-off-by: Jason Gerecke commit 65bd099de3a796420ffa398f8969ca3b068747bf Author: Jason Gerecke Date: Thu May 29 17:06:30 2014 -0700 Send proper Y coordinate when leaving proximity Bug introduced in commit e4bfe1d. Signed-off-by: Jason Gerecke Reviewed-by: Ping Cheng commit 26cc50112cfe98d81ca4c38fd7bdff5ef08a8178 Author: Jason Gerecke Date: Wed May 28 16:47:48 2014 -0700 Use OUTPROX_STATE in wcmSoftOutEvent and elsewhere Missed in commit 61f6a7c. Signed-off-by: Jason Gerecke Reviewed-by: Ping Cheng commit 36c757c92981cc1a70e258f3913d991023f1a445 Author: Jason Gerecke Date: Thu May 22 18:11:12 2014 -0700 Fix enter-prox detection Prior to commit 61f6a7c, the value of oldState.proximity was not set by wcmUpdateOldState. Rather, when a tool entered proximity, the proximity flag would be explicitly set only after the call to wcmSend(Non)PadEvents was complete. This ensured that the condition where the pen has just entered prox would be properly detected. Since the aforementioned commit copies the value of ds (whose proximity flag is set) to oldState, issues related to the enter-prox condition have appeared. This is most noticable in GIMP, which has trouble switching tools. To resolve this issue, we remove the explicit setting of oldState.proximity (which is now implicitly handled by the call to wcmUpdateOldState after wcmSend(Non)PadEvents finishes) and add in an explicit clearing of the same prior to the call. In this way, it acts the same as oldState.buttons which must also be cleared upon entering prox to properly detect presses. Signed-off-by: Jason Gerecke Reviewed-by: Ping Cheng commit 44a290ea54cffad37472e290a09e0f01e04d2cd4 Author: Jason Gerecke Date: Fri May 9 10:42:35 2014 -0700 Always clear free channel contents before reuse The patchset beginning at 840e658 unifies our device ID handling, having a single function be responsible for detecting and setting the type. The new code is very conservative about setting ds->device_type and will only do so if otherwise unset. Because only protocol 5 clears the channel contents (including device_type) prior to re-use, other tablets encounter problems when switching between tools. This patch has usbChooseChannel always clear the contents of a channel prior to its reuse. Our prior exception for only protocol 5 devices was just plain sloppy. Signed-off-by: Jason Gerecke commit cf708a474a5aa553b193bcd6da38272b62c774dc Author: Jason Gerecke Date: Wed May 7 14:33:25 2014 -0700 Add support for four new ISDv4 sensors Adds support for the 0x116, 0x4004, 0x5000, and 0x5002 ISDv4 sensors. Signed-off-by: Jason Gerecke commit df4e30d480f4877474d82c39697f5d96db4d2b28 Author: Jacob Nevins <0jacobnk.git@chiark.greenend.org.uk> Date: Wed May 7 17:03:56 2014 -0700 Remove vestiges of "displaytoggle" action mapping This was removed from the driver in 2010 (910dc637). Stop claiming to support it in xsetwacom(1), etc. Source: http://sourceforge.net/p/linuxwacom/bugs/236/ Signed-off-by: Jason Gerecke commit e9bed4fb52770b7587530303d456885e362b4073 Author: Jacob Nevins <0jacobnk.git@chiark.greenend.org.uk> Date: Wed May 7 16:57:18 2014 -0700 Improve button action mapping documentation Source: http://sourceforge.net/p/linuxwacom/patches/88/ Signed-off-by: Jason Gerecke commit 61f6a7c5203a87dc5c53e29bf216318aa3e8e43a Author: Jason Gerecke Date: Thu Feb 20 09:28:32 2014 -0800 Update values of oldState by simple assignment When updating the value of oldState, it is sufficient to simply use an assignment statement for the entire struct rather than explicitly setting each field. A static const "out of prox" state is created to define the default out-of-prox values. Signed-off-by: Jason Gerecke Reviewed-by: Ping Cheng commit e4bfe1d7765fdd295c2e7df6f3725fdbe4fc56fd Author: Jason Gerecke Date: Thu Feb 20 09:27:15 2014 -0800 Replace multitude of "old state" vars with a _WacomDeviceState Reducing clutter. Signed-off-by: Jason Gerecke Reviewed-by: Ping Cheng commit ac6ad1d7e0a7c428ce609c3bda33099758cf7fde Author: Jason Gerecke Date: Thu Feb 20 09:23:26 2014 -0800 Remove unnecesary device variables: current[XY] These variables are currently used only within wcmUpdateOldState and can be passed in as arguments rather than held as variables in the device struct. Signed-off-by: Jason Gerecke Reviewed-by: Ping Cheng commit 1a21aacf90bcc9b56536f449e5b146ad9bf5f4c6 Author: Jason Gerecke Date: Thu Apr 10 11:10:49 2014 -0700 Do not store a second copy of old touchstrip values in oldTilt[XY] The touchstrip values are already stored in oldStrip[XY], and appear to also be stored in oldTilt[XY] as a quirk of history. The value of oldTilt[XY] itself is only read in wcmSendNonPadEvents (which is not called for the pad device for obvious reasons ;)). At this point in time, there is absolutely no reason to store a second copy of the strip values in oldTilt[XY]. Signed-off-by: Jason Gerecke Reviewed-by: Ping Cheng commit 34ca9ab25d682335021097713650782e82f6dc73 Author: Jason Gerecke Date: Thu Apr 10 15:24:15 2014 -0700 Update configure help to indicate that debugging is enabled by default Running `./configure --help` indicates that debugging is disabled by default, but this is not the case. Change the documentation to state that it is enabled, and show the "--disable-debugging" option to make it clear. commit becbee2f2b94b969f0bc2172a44c7bfe0804774e Author: Jason Gerecke Date: Thu Apr 10 10:22:34 2014 -0700 doc: Remove deprecated Doxygen options All options were at their default values, so safe to remove. commit 41cb1c2fb4343781ee78ea79b5cea87be0999546 Author: Jason Gerecke Date: Mon Mar 17 14:59:44 2014 -0700 xsetwacom: Replace XKeycodeToKeysym with XkbKeycodeToKeysym We're already using the Xkb functions anyway, so we may as well use XkbKeycodeToKeysym and silence the XKeycodeToKeysym deprecation warning. Signed-off-by: Jason Gerecke commit 36fd31adec1864a70d159a9853b2231c82179179 Author: Jason Gerecke Date: Thu Apr 10 16:33:45 2014 -0700 Remove dead code: ERASER_PROX, OTHER_PROX commit b4703f8c639b62ccd65784122cd487606ee20e30 Author: Jason Gerecke Date: Thu Apr 10 16:27:54 2014 -0700 Remove dead code: struct _PROPINFO commit 96eae07f60b0575a71f254b2f14b7bc168ab6e9c Author: Jason Gerecke Date: Thu Apr 10 15:29:34 2014 -0700 Remove dead code: factor[XY] The factor[XY] variables were introduced to make relative devices behave more naturally by taking into account the differences between screen space and device space. In particular, these variables were used to provide uniform acceleration along the X and Y axes, along with suppressing events that moved the cursor less than one pixel. For these variables to be properly calculated, the driver needs to be aware of the screen resolution. The necessary code has been removed for quite some time now, making this code entirely vestigal. The server itself should take care of everything for us as of ABI_XINPUT_VERSION 19.2, accounting for both the resolution of the device and screen when deciding where the pointer should appear. NOTE: Strictly speaking factor[XY] aren't /entirely/ dead. There is *one* case where they are still set to a value other than 1.0 (setting either TopX or TopY in xorg.conf). However, this side-effect is not at all what is intended/expected so the functionality is still safe to remove. Signed-off-by: Jason Gerecke commit 16d9b574901963971c6ef0b6be9b649c81a70c04 Author: Jason Gerecke Date: Tue Apr 15 14:22:30 2014 -0700 xsetwacom: Fix off-by-one error in list_one_device Signed-off-by: Jason Gerecke Reviewed-by: Peter Hutterer commit 89547bf9e01c9feb33947532c3ca3c4ba9a88a02 Author: Jason Gerecke Date: Tue Feb 25 17:51:10 2014 -0800 Remove dead code: [xy]_padding The values of wcmVirtualTabletPadding are only read at a single location. Immediately prior to this read, they are set to zero. Because a value of zero will have no effect when used, the [xy]_padding variables are nothing more than dead code. Signed-off-by: Jason Gerecke Acked-by: Ping Cheng commit edeb94a0ceaab2695f792c12b1473289b4000d8d Author: Jason Gerecke Date: Tue Feb 25 17:50:50 2014 -0800 Remove dead code: Header defines and prototypes Signed-off-by: Jason Gerecke Acked-by: Ping Cheng commit 7b5c97aa9b3bd8a694775cce81297dd641f2f067 Author: Jason Gerecke Date: Thu Feb 20 10:02:38 2014 -0800 Remove dead code: WacomToolArea Functionality removed back in 2001 with commit 82e65fc Signed-off-by: Jason Gerecke Acked-by: Ping Cheng commit fe17462457a23fa177aeb772b8c934c681fc6aea Author: Jason Gerecke Date: Wed Feb 19 17:15:37 2014 -0800 Remove dead code: misc. _WacomDeviceRec variables The use of each of these variables was eradicated around the turn of 2010 (commits d7dcb7d, 57fdd26, and f934866). Signed-off-by: Jason Gerecke Acked-by: Ping Cheng commit 3eacea1058ef255e01ba83d0297bf0e5c533879b Author: Egbert Eich Date: Wed Apr 9 21:27:05 2014 +0200 Attempt to derive the tool type from a known button/key event This is the last bit of clean up and consolidation in tool type detection: usbParseAbsEvent() sets the tool type if it recognized a button or key event and the tool type has not been set before. Before we get to usbParseAbsEvent() channel mapping must have failed most certainly so we must have gotten a new channel for each button or key sequence. Since this seems to be a last resort attempt to determine the tool type we only do this when all other methods have failed before. The newly introduced function deriveDeviceTypeFromButtonEvent() mimics the behavior of usbParseAbsEvent(). Signed-off-by: Egbert Eich Reviewed-by: Jason Gerecke commit 261ca70cfdc17c1e927b80190d127226798172c0 Author: Egbert Eich Date: Wed Apr 9 21:27:04 2014 +0200 Remove duplicate tool type detection Tool type detection is done in two places: early in usbDispatchEvents() by calling usbInitToolType() and later on in the same function when the events are parsed. usbInitToolType() is used to set (wcmUSBData*)->wcmDeviceType, the detection that happens later when the events are parsed sets (WacomDeviceState).device_type. These variables are matched against each to find the right channel for a device. If the algorithms used for both set of tool type detection diverge undesirable effects may happen. Therefore it is advisable to determine the tool type only once ie. in usbInitToolType() and copy the result to (WacomDeviceState).device_type if this value is unset. * Bring the algorithm in usbInitToolType() in sync with the reset: Add missing key codes to deviceTypeFromEvent() - Add BTN_TOOL_DOUBLETAP and BTN_TOOL_TRIPLETAP, return TOUCH_ID for them. - Return TOUCH_ID on BTN_TOUCH when protocol level is WCM_PROTOCOL_GENERIC and tool is a 1 finger USB touch. * Delete any duplicate tool type setting * Add a test for debugging if the device type has changed while in proximity. Signed-off-by: Egbert Eich Reviewed-by: Jason Gerecke commit 8f44f3568c46ab9cca543b830fb2e84dd56a2af9 Author: Egbert Eich Date: Wed Apr 9 21:27:03 2014 +0200 Store the last used channel rather than blindly taking channel 0 When an event stream from a device doesn't contain information on the device type we look at the last used channel and copy over the device type. This is acceptable as such a situation only occurs while in proximity i.e. when the previous command package came from the same device. So far the device type form the state in channel 0 was taken. This was wrong however for PAD devices for instance. Signed-off-by: Egbert Eich Reviewed-by: Jason Gerecke commit e08c45f3caf371a8e4123119aeb0b0d7fc227cca Author: Egbert Eich Date: Wed Apr 9 21:27:02 2014 +0200 Fix initial device type detection usbInitToolType() tries to find the device type of a tool. Unlike usbFindDeviceType() it doesn't take into account the device_id which may exist in the event stream. As a result the device type may be taken from the last known type. This is generally a bad idea if the type has changed. This will happen for example when pressing a key on the Cintiq 21UX menu strips after removing a pen from the tablet. Signed-off-by: Egbert Eich Reviewed-by: Jason Gerecke commit 533220d3f2369b80afc404df1e5bb6a024309616 Author: Egbert Eich Date: Wed Apr 9 21:27:01 2014 +0200 Zero is not a valid device ID, don't derive a type from it A protocol 5 tool will send an ABS event code=ABS_MISC with value 0. 0 is however not a valid device ID. Don't try to derive a type from it. Signed-off-by: Egbert Eich Reviewed-by: Jason Gerecke commit 840e6585ab273828d6bcf1f0d0f4293f4ddb631a Author: Egbert Eich Date: Wed Apr 9 21:27:00 2014 +0200 Remove unused code usbFindDeviceType() is only called once. From where it is called, it is only called if event->value != 0 and with ds->device_id = event->value. Thus the test !ds->device_id will always fail. Signed-off-by: Egbert Eich Reviewed-by: Jason Gerecke commit 45ebd5c5eb379bd9b04ed585d1406e3f9b6bc16b Author: Jason Gerecke Date: Thu Apr 3 15:31:09 2014 -0700 wacom 0.24.0 Signed-off-by: Jason Gerecke commit e30b3789ca82d058dd10caca8a7e825154fd0e7f Author: Jason Gerecke Date: Wed Mar 19 15:44:06 2014 -0700 wacom 0.23.99.1 Signed-off-by: Jason Gerecke commit c1de391dcda0c151ba347652cab3c96705c44b61 Author: Jason Gerecke Date: Wed Mar 19 15:36:45 2014 -0700 test: Update number of xsetwacom parameters Missed in bae16b0 Signed-off-by: Jason Gerecke commit 10cc765549ed152d9f2dd82da5c33e9e9df5d30b Author: Egbert Eich Date: Tue Mar 11 15:19:14 2014 +0100 Add an option to disable pressure recalibration If the initial pressure of a device is != 0 the driver recalibrates the pressure range. This is to account for worn out devices. The downside is that when the user hits the tablet very hard the initial pressure reading may be unequal to zero even for a perfectly good pen. If the consecutive pressure readings are not higher than the initial pressure by a threshold no button event will be generated. This option allows to disable the recalibration. Signed-off-by: Egbert Eich Reviewed-by: Jason Gerecke commit 9765439856149570be41d1e2f2492e620822d492 Author: Egbert Eich Date: Mon Mar 17 21:08:40 2014 +0100 Attempt to not lose events to pressure recalibration Worn out devices send a non-zero pressure even when not in contact with the tablet. To compensate for this the driver detects if the pressure sent by the device immediately after indicating proximity is non-zero. It subtracts this value from any pressure value sent later and rescales the pressure range to the full device range. If it later on sees the pressure value fall below this initial value it will readjust it this lower value. The downside of this is that when the pen is pushed onto the tablet really fast the initial pressure reading may be non-zero also the pen isn't worn. This can lead to lost events. This patch tries to address this: If the first pressure reading is != 0 it is recorded. If the recorded maximum value is >0 but a later pressure reading is higher the maximum value is replaced. If no button press event is generated the 'normal' way it is checked of the recorded maximum would trigger one when minPressure decreases. Once a 'normal' button event is generated or an 'alternative' button event is generated and minPressure doesn't decrease any more the recorded maximum is set to 0 which will disable the checks until the next prox in. Signed-off-by: Egbert Eich Reviewed-by: Jason Gerecke commit 62f912422bc428d2c7f2df71b164a956e895f29d Author: Jason Gerecke Date: Fri Feb 21 15:31:15 2014 -0800 Support hardware touch switch New Intuos series introduced a hardware switch to turn touch events on/off. This patch retrieves its state from kernel by checking if SW_MUTE_DEVICE is declared. A new input property, WACOM_PROP_HARDWARE_TOUCH, is intoduced to report touch status changed by end user through touch switch. HardwareTouch, a new xsetwacom option, is added. This option is read-only since the state can only be changed by end users. This option is independent from the existing Touch option, which can be considered as a software touch switch. Signed-off-by: Ping Cheng Signed-off-by: Jason Gerecke Reviewed-by: Peter Hutterer commit 8bb519ef2b8428459c31139779cce44dbbc1cd0a Author: Jason Gerecke Date: Fri Feb 21 17:12:56 2014 -0800 Update wcmTouchDevice for touch interface To support arbitration, we only needed to access touch pointer from pen interfaces. Now, we need to access touch pointer from touch interfaces to update touch switch state. Since other tools, such as PAD, can be associated with touch interfaces, we can not assume the first tool created on touch interface is a touch tool. Assign it to wcmTouchDevice to avoid looping through the tool list everytime when we need to access it. Signed-off-by: Ping Cheng Signed-off-by: Jason Gerecke Reviewed-by: Peter Hutterer commit c21f87c403c4a1d2dc9c0d990d9892482d4ffe26 Author: Ping Cheng Date: Mon Feb 3 10:34:17 2014 -0800 Improve wcmLinkTouchAndPen device matching If a tablet has pen and touch interfaces, they appear to the system as seperate devices. Because it is necessary for these devices to share information, `wcmLinkTouchAndPen` was introduced to connect the two "halves" of the single physical tablet together (similar to how `wcmMatchDevice` links logical devices together). `wcmLinkTouchAndPen` has a few bugs in its implementation which prevent it from doing its job as well as it should. This patch introduces a new funcation named `wcmIsSiblingDevice` which is responsible for determining if two devices are part of the same tablet. It includes a slightly stricter (but still imperfect) check to reduce the number of false-positives in the linking process. Signed-off-by: Jason Gerecke commit ec64bcf9fe6d4ac5f8b7c56a7e001ad63c31060b Author: Jason Gerecke Date: Wed Mar 19 15:36:51 2014 -0700 test: Use X11_LIBS when building xsetwacom_test Missed in c49463f. Signed-off-by: Jason Gerecke commit 3deb7c7a3b001f1178cfb339efc5e3d6d8de181a Merge: 084ee1f41a94 c49463f7caa5 Author: Peter Hutterer Date: Thu Mar 20 08:23:56 2014 +1000 Merge branch 'wacom-inputattach' commit 084ee1f41a948db43204e1794cdf19d3a0bd7c41 Author: Hans de Goede Date: Wed Mar 12 16:12:05 2014 +0100 Add server managed fd handling This mostly consists of skipping common fd handling when server managed fds are in used, the rest is handled by xf86OpenSerial and our wcmClose xf86CloseSerial wrapper. Signed-off-by: Hans de Goede Reviewed-by: Jason Gerecke Signed-off-by: Peter Hutterer commit 52fe01c0a728f58f8920358a6de4c3efe1dd354b Author: Hans de Goede Date: Wed Mar 12 16:12:04 2014 +0100 Add a wcmClose helper function This is a preparation patch for adding server managed fds support. Signed-off-by: Hans de Goede Reviewed-by: Jason Gerecke Signed-off-by: Peter Hutterer commit cf3c7c763fdef96f2c82a0e891693a086f324d96 Author: Hans de Goede Date: Wed Mar 12 16:12:03 2014 +0100 wcmUSB: Don't directly dereference common->fd common->fd is intended to share the fd between different InputInfo structs, and that is the only thing it should be used for. With server managed fds, the fd management will all be done by the server and common->fd will never get set, so nothing outside of wcmDevOpen / wcmDevClose should use it. Signed-off-by: Hans de Goede Reviewed-by: Jason Gerecke Signed-off-by: Peter Hutterer commit c49463f7caa50c18817ca16221d07c4fd8c4816e Author: Peter Hutterer Date: Thu Mar 20 07:34:48 2014 +1000 tools: split the CFLAGS into binary-specific ones Also, xsetwacom only needs the library, not the server. Signed-off-by: Peter Hutterer Acked-by: Jason Gerecke commit 24c660a8ed16c04ed938355c9c2009af476d7638 Author: Peter Hutterer Date: Wed Mar 19 07:55:38 2014 +1000 conf: ship a udev rule and a systemd service file for inputattach Signed-off-by: Peter Hutterer Acked-by: Jason Gerecke commit 47c983478ab1094c02a5b3251cf5564153730645 Author: Peter Hutterer Date: Tue Mar 18 10:49:22 2014 +1000 tools: add an inputattach-like tool Does more or less the same thing as inputattach, but tries to be a bit smarter about the baud rate depending on the tablet model. And re-tries if the baud rate is wrong. Signed-off-by: Peter Hutterer Acked-by: Jason Gerecke commit bc479f8804762987403d8fc2a65dfaf5fbee342d Author: Peter Hutterer Date: Tue Mar 18 10:58:20 2014 +1000 tools: add colon after TOUCH output For consistency with the TABLET output. Signed-off-by: Peter Hutterer Acked-by: Jason Gerecke commit a36367b684a8f0a478706610a54a71383bee7aa3 Author: Peter Hutterer Date: Tue Mar 18 10:56:57 2014 +1000 tools: re-enable wait-for-tablet We need this to actually time out, otherwise we can't tell whether we have the wrong baud rate set. That's fine for a debugger where a human will terminate, but not for the upcoming inputattach clone. Signed-off-by: Peter Hutterer Acked-by: Jason Gerecke commit a8c9bd963b3cb3b0573ea73588d3e313a7e4f693 Author: Peter Hutterer Date: Tue Mar 18 10:31:15 2014 +1000 tools: split out the debugger into the actual debugger and shared code Signed-off-by: Peter Hutterer Acked-by: Jason Gerecke commit e8cd8e1923a7b8fa02aa4700ec7062f6fd468f7a Author: Peter Hutterer Date: Tue Mar 18 10:27:53 2014 +1000 tools: localise the remaining global variables Only one left is verbosity now. Signed-off-by: Peter Hutterer Acked-by: Jason Gerecke commit 65189408beb9447b3166a7e1a5d4f30c347c7218 Author: Peter Hutterer Date: Mon Mar 17 09:38:45 2014 +1000 tools: drop double-call to tcsetattr We merely modify the flags, might as well just send one call Signed-off-by: Peter Hutterer Acked-by: Jason Gerecke commit 92a0b59588607dfa0ed18b40a0e0dc2dbb56572f Author: Peter Hutterer Date: Mon Mar 17 08:58:46 2014 +1000 tools: use perror instead of fprintf Signed-off-by: Peter Hutterer Acked-by: Jason Gerecke commit 85e6c88e43ff6e47c967117173cbf0d304dada6f Author: Peter Hutterer Date: Mon Mar 17 08:00:45 2014 +1000 tools: open serial devices with O_NOCTTY Probably doesn't make much difference, but won't hurt if we ever send the wrong path name. Signed-off-by: Peter Hutterer Acked-by: Jason Gerecke commit 49e2b80829ab830aee272035fb390ee581849a0c Author: Peter Hutterer Date: Mon Mar 17 09:46:21 2014 +1000 tools: rearrange serial settings If the device was't properly closed/reset after a crash, tcgetattr() will fail. Ignore that error and apply the settings we want nonetheless, in most cases the device will just come back normally. And to do so, merge setting the baud rate together with the rest so we only have one call. Otherwise we can't apply the baud rate settings without potentially submitting garbage to the driver. Signed-off-by: Peter Hutterer Acked-by: Jason Gerecke commit 4f0f0e3510ac9afc671ac0dc2cf23e5ab7d5fb70 Author: Peter Hutterer Date: Tue Mar 18 10:20:53 2014 +1000 isdv4: inline all isdv4 parsing functions Stops compiler warning if any of them aren't used. Signed-off-by: Peter Hutterer Acked-by: Jason Gerecke commit 51772cdb89db307a9751e0c14f407f49fe49cd4d Author: Peter Hutterer Date: Tue Mar 18 09:45:04 2014 +1000 Add includes to isdv4.h The header should include what it needs, not rely on other files to include the required bits. Signed-off-by: Peter Hutterer Acked-by: Jason Gerecke commit f80f0b3cfa8c7e955993a2daf4192b04997ece3a Author: Peter Hutterer Date: Mon Mar 17 08:52:33 2014 +1000 configure: both clients and drivers need the protocol headers Signed-off-by: Peter Hutterer Acked-by: Jason Gerecke commit 3d7a6eb533cfbad4aafa018ece9af2e1b488a798 Author: Egbert Eich Date: Wed Feb 19 15:23:40 2014 +0100 Free (WacomToolPtr)->name when freeing the tool list Currently the name member is set in wcmParseSerials() only, however it is dynamically allocated. thus free it when destroying the structure which contains it. Signed-off-by: Egbert Eich Reviewed-by: Peter Hutterer Signed-off-by: Peter Hutterer commit 93d232ac0140251b9b3ee4fe6e11ee65553f8284 Author: Egbert Eich Date: Fri Feb 7 20:24:39 2014 +0100 Log when the pen device appears to be too worn out Worn out pens have an initial pressure != 0. If this pressure persists while the pen is in proximity and still exists when going out of proximity, warn about worn out tool. Some devices seem to send a zero pressure when going out of proximity. Thus we record the last pressure when still in proximity. Also we count the number of events we have received while in proximity so the risk of false reports on 'quick taps' is lower. This condition may also occur intermittently on abusive operation. Signed-off-by: Egbert Eich Reviewed-by: Peter Hutterer commit 77a7ac02107a00934c98b1955a17a2f5c0614bcf Author: Egbert Eich Date: Fri Feb 7 20:42:22 2014 +0100 Add more detailed messaging in code that handles abnormal situations Log which serial numbers have been force-proxied out. Signed-off-by: Egbert Eich Acked-by: Peter Hutterer commit 591474f9fac0e06c48abed4edfda22edb3e36cf9 Author: Egbert Eich Date: Tue Feb 11 12:54:04 2014 +0100 Avoid 'division by zero' in xf86ScaleAxis() If minPressure == wcmMaxZ then the range left to scale is 0. Catch this condition and act appropriately. Signed-off-by: Egbert Eich Reviewed-by: Peter Hutterer Reviewed-by: Jason Gerecke commit 7e56966e917d9389965910c9d28f4047d51d4349 Author: Egbert Eich Date: Fri Feb 7 19:36:28 2014 +0100 Remove test if pressure falls below the minPressure This code is entirely irrelevant as it is called immediately after rebasePressure() which already ensures that minPressure is the minimum of minPressure and current pressure unless one mistrusts the implementation of min(). Signed-off-by: Egbert Eich Reviewed-by: Peter Hutterer commit 6fc13b20dc1178c6417c658a1bd6a110fd507244 Author: Egbert Eich Date: Thu Feb 13 14:01:04 2014 +0100 Get rid of spurious 'format not a string literal' warnings With '-Wformat-nonliteral' gcc kindly warns us that it cannot check the arguments of a scanf statement as the format string is not literal. This happens if the format string itself is pointer. Since the list of format strings only has two elements the same thing can be achieved in code directly. Signed-off-by: Egbert Eich Reviewed-by: Peter Hutterer Reviewed-by: Jason Gerecke commit b5cdd510f990ea49e141109712cab34a32d14f4d Author: Egbert Eich Date: Wed Feb 12 13:04:22 2014 +0100 Fix spurious '-Wshadow' warning Signed-off-by: Egbert Eich Reviewed-by: Jason Gerecke Reviewed-by: Peter Hutterer commit 5706862f571da1d182ff0b17a697cbd1779d3be3 Author: Egbert Eich Date: Wed Feb 12 13:22:38 2014 +0100 Fix '-Wuninitialized' warnings Pinning variables to some value to fix warning about uninitialized variable. Signed-off-by: Egbert Eich Reviewed-by: Jason Gerecke Reviewed-by: Peter Hutterer commit 96c9beedecccb1dbdd2a24294d25ed796639fd02 Author: Egbert Eich Date: Wed Feb 12 18:27:43 2014 +0100 Fix warning about discarding 'const' qualifier Signed-off-by: Egbert Eich Reviewed-by: Jason Gerecke commit e72f0c2146d3b84083561961c3eedc3ca003dca6 Author: Egbert Eich Date: Wed Feb 12 17:42:25 2014 +0100 Make tested static functions non-static for test suite This gets rid of the hack which redefines 'static' to make every static function in the driver non-static for the test suite. Instead we use a macro instead of 'static' in the function definition of each function used in the test suite which we can set to empty when compiling the test suite. At the same time we create a declaration for each of those functions which gets us rind of about a bazillion compiler warnings. Signed-off-by: Egbert Eich Reviewed-by: Peter Hutterer commit f18e31da214fc4ef625c398429a07063032edfe0 Author: Egbert Eich Date: Fri Feb 14 00:16:58 2014 +0100 Add missing symbol xf86PrintChipsets() for test suite Signed-off-by: Egbert Eich Reviewed-by: Jason Gerecke Reviewed-by: Peter Hutterer commit 710ec7a47d90778bd419c75f5bc9b391664f6670 Author: Egbert Eich Date: Wed Feb 12 09:03:27 2014 +0100 Fix loads of 'redundand declaration' warnings in test suite Most symbols in fake-symbols.h were already declared in the Xserver header files from the SDK which are also included. These produce loads of compiler warnings. The few remaining ones can be added by including xf86_OSproc.h and exevents.h. Then then all function declarations for the stub functions can be deleted. Relying on SDK provided headers makes providing stub functions cumbersome due to frequent non-atomic API/ABI changes. To work around this one would have to avoid SDK headers completely, though. Signed-off-by: Egbert Eich Reviewed-by: Jason Gerecke Reviewed-by: Peter Hutterer commit 1c163bd2ef9689897fab728ede96b6baafc0d597 Author: Egbert Eich Date: Wed Feb 12 08:53:12 2014 +0100 Fix type mismatch in test suite Add CONST which expands to either 'const' or nothing depending on ABI version. This eliminates a compiler error. Signed-off-by: Egbert Eich Reviewed-by: Jason Gerecke Reviewed-by: Peter Hutterer commit 2e125f4f2993220652b375c1f934516ed0b79c67 Author: Jason Gerecke Date: Thu Oct 10 09:55:32 2013 -0700 Have Lenovo "ISD-V4" (0x6004) sensor use wacom driver https://bugs.freedesktop.org/show_bug.cgi?id=66891 Signed-off-by: Jason Gerecke commit 06585fc2131379a70b67a4cb3a8d48d55bc2c9b3 Author: Peter Hutterer Date: Mon Jan 20 11:13:11 2014 +1000 conf: add N-Trig DuoSense to our matched devices That device has a pen and an eraser tool, as well as a touch device. Handle it with the wacom driver by default, the evdev driver isn't quite up to scratch here. This also fixes a missing match in the .fdi file for the base N-Trig devices - just in case. Signed-off-by: Peter Hutterer commit e6aea4a61a5e5d464bf5419abfbc26c909d87dc9 Author: Peter Hutterer Date: Fri Nov 1 14:48:05 2013 +1000 Check return value of EVIOCGPROP ioctl Doesn't change anything functionally since prop is 0 anyway but this static analyzers shut up. Signed-off-by: Peter Hutterer Reviewed-by: Ping Cheng commit 2bd942fa6dcaf02c1b825878c3d89badd9319a7f Author: Ping Cheng Date: Thu Oct 10 16:14:29 2013 -0700 Decide WCM_LCD by kernel property kernel 2.6.38 introduced INPUT_PROP_DIRECT to indicate a device is a direct touch (onscreen pointer) device. Use it so we do not have to add individual devcies for that feature. When INPUT_PROP_DIRECT was added, INPUT_PROP_MAX and EVIOCGPROP were also defined. So, we only need to make sure INPUT_PROP_DIRECT is defined. Signed-off-by: Ping Cheng Signed-off-by: Peter Hutterer commit b154cfa766ce9497379a5cfa38fff64e7d89440b Author: Ping Cheng Date: Thu Oct 10 16:13:55 2013 -0700 Fix missing pad/expresskey events issue Setting PAD_ID should not be limited to just tablets that use generic BTN_* events. Also, on touch enabled devices, we miss pad events when touch events are filtered/disabled. Walk through all channels to make sure all channels that have changed values are processed. Reviewed-by: Jason Gerecke Acked-by: Peter Hutterer Signed-off-by: Ping Cheng Signed-off-by: Peter Hutterer commit 139aa56e3bb6025826413335f0f7e29d768baeb4 Author: Ping Cheng Date: Thu Oct 10 16:11:47 2013 -0700 Threshold applies to pen tools only This patch also removes redundant device name in X_PROBED messages. Reviewed-by: Peter Hutterer Signed-off-by: Ping Cheng Signed-off-by: Peter Hutterer commit 5395d18c4bbaa0d9ea96617ad41bd94848fb05e9 Author: Jason Gerecke Date: Fri Sep 27 16:42:39 2013 -0700 wacom 0.23.0 Signed-off-by: Jason Gerecke commit eef947af1447df58099a005834de394edb4b03d0 Author: Jason Gerecke Date: Thu Sep 19 17:08:13 2013 -0700 wacom 0.22.99.1 Signed-off-by: Jason Gerecke commit 6cadaf2eabb91e47963054e1628374861fea6209 Author: Jason Gerecke Date: Wed Sep 11 09:55:46 2013 -0700 Correct return value of special_map_button The 'special_map_*' functions called by 'parse_actions' are expected to return a count of the number of words of input they have consumed. The 'special_map_buttom' function errounously returns the number of actions added instead, causing the program to potentially skip over requested actions which follow a list of "button" actions. Signed-off-by: Jason Gerecke commit cde2718ac432f5d745b9ff5ccf6d4f8c2f4fc499 Author: Jason Gerecke Date: Wed Sep 11 09:30:37 2013 -0700 Fix buffer overflows in 'special_map_*' Each of the 'special_map_*' functions is given free reign to write to the end of a buffer, but is never given the size of the buffer itself. It is trivial to trigger an overflow simply by feeding the program more actions to perform than space to store them. This patch adds an argument to each function which contains the buffer's size. The functions check for sufficient space before writing to the buffer and will print out an error message if it isn't available. Signed-off-by: Jason Gerecke commit 59086ba4f5caf4cf6f52f80b5ca36144a882daa5 Author: Ping Cheng Date: Tue Sep 10 16:42:22 2013 -0700 Add support for Intuos Pro series Reviewed-by: Peter Hutterer Signed-off-by: Ping Cheng Signed-off-by: Peter Hutterer commit cb14924a2a5be21c8525ca70932ab8b5f0f99752 Author: Peter Hutterer Date: Wed Sep 4 17:04:13 2013 +1000 strdup the option key/values in our input_option_new This is a interface for servers with ABI < 14 (up to server 1.11). The server version of it strdups the values, so we must do the same. Otherwise the values assigned to the InputOption list in wcmOptionDupConvert are freed during xf86OptionListFree(). That later causes a SIGABORT when NewInputDeviceRequest starts using those options. https://sourceforge.net/p/linuxwacom/bugs/233/ Signed-off-by: Peter Hutterer Acked-by: Ping Cheng commit 39c4c7fca7db19ac550332fa53d0d4f58a26f67f Author: Peter Hutterer Date: Sat Aug 31 14:35:58 2013 +1000 Print list of supported models on wcmPlug When the driver starts, print the list of supported models. This should help with any questions like "does my driver support this or that model". For those models that don't have a defined name, print "usb:1234:5678" instead, so users can at least try to match the usb IDs. Sample log output: [ 25950.166] (II) wacom: Driver for Wacom graphics tablets: PenPartner, PenPartner, Graphire, Graphire2 4x5, Graphire2 5x7, Graphire3 4x5, Graphire3 6x8, Graphire4 4x5, Graphire4 6x8, BambooFun 4x5, BambooFun 6x8, Bamboo1 Medium, Graphire4 6x8 BlueTooth, CTL-460, CTH-461, CTL-660, CTL-461/S, Bamboo Touch, CTH-460/K, CTH-461/S, CTH-661/S1, CTH-461/L, CTH-661/L, Intuos 4x5, Intuos 6x8, Intuos 9x12, Intuos 12x12, Intuos 12x18, PTU600, PL400, PL500, PL600, PL600SX, PL550, PL800, PL700, PL510, PL710, DTI520, DTF720, DTF720a, DTF521, DTU1931, DTU2231, DTU1631, Intuos2 4x5, Intuos2 6x8, Intuos2 9x12, Intuos2 12x12, Intuos2 12x18, Intuos2 6x8 , Volito, PenStation, Volito2 4x5, Volito2 2x3, PenPartner2, Bamboo, Bamboo1, Bamboo1 4x6, Bamboo1 5x8, Intuos3 4x5, Intuos3 6x8, Intuos3 9x12, Intuos3 12x12, Intuos3 12x19, Intuos3 6x11, Intuos3 4x6, Intuos4 4x6, Intuos4 6x9, Intuos4 8x13, Intuos4 12x19, Intuos4 WL USB Endpoint, Intuos4 WL Bluetooth Endpoint, Intuos5 touch S, Intuos5 touch M, Intuos5 touch L, Intuos5 S, Intuos5 M, Cintiq 21UX, Cintiq 20WSX, Cintiq 12WX, Cintiq 21UX2, Cintiq 24HD, Cintiq 22HD, Cintiq 24HD touch (EMR digitizer), Cintiq 13HD, DTK2241, DTH2242, Cintiq 22HDT, TabletPC 0x90, TabletPC 0x93, TabletPC 0x97, TabletPC 0x9A, CapPlus 0x9F, TabletPC 0xE2, TabletPC 0xE3, TabletPC 0xE5, TabletPC 0xE6, TabletPC 0xEC, TabletPC 0xED, TabletPC 0xEF, TabletPC 0x100, TabletPC 0x101, TabletPC 0x10D, TabletPC 0x4001, usb:172f:0024, usb:172f:0025, usb:172f:0026, usb:172f:0027, usb:172f:0028, usb:172f:0030, usb:172f:0031, usb:172f:0032, usb:172f:0033, usb:172f:0034, usb:172f:0035, usb:172f:0036, usb:172f:0037, usb:172f:0038, usb:172f:0039, usb:172f:0051, usb:172f:0052, usb:172f:0053, usb:172f:0054, usb:172f:0055, usb:172f:0056, usb:172f:0057, usb:172f:0058, usb:172f:0500, usb:172f:0501, usb:172f:0502, usb:172f:0503, usb:1b96:0001, usb:17ef:6004 [ 25950.167] (II) Using input driver 'wacom' for 'Wacom Intuos4 6x9' Signed-off-by: Peter Hutterer Acked-by: Ping Cheng commit 3f95c4c58afd25e7c8a3ab18dad936f615cfd189 Author: Jason Gerecke Date: Mon Jul 15 10:09:40 2013 -0700 wacom 0.22.1 Signed-off-by: Jason Gerecke commit b25eb646c36d19a46c561b3c091adb5c86c563df Author: Peter Hutterer Date: Fri Jul 12 10:28:08 2013 +1000 Fix build on ABI < 16 - touch_mask isn't defined Fixes: http://sourceforge.net/p/linuxwacom/bugs/232 Signed-off-by: Peter Hutterer commit 4982cebdadb32376c3b1964616ede44a712c8a24 Author: Jason Gerecke Date: Wed Jul 10 11:49:29 2013 -0700 wacom 0.22.0 Signed-off-by: Jason Gerecke commit 67daf21bdb7b32c27818bffaf56849a522d23477 Author: Ping Cheng Date: Fri Jun 7 15:34:03 2013 -0700 Unify wcmFingerMultitouch and wcmSendTouchEvent Signed-off-by: Ping Cheng Acked-by: Jason Gerecke commit d0a5c68b2582fc6bdcee1d949913f78c0651b1a6 Author: Sjoerd Simons Date: Sat May 25 01:06:16 2013 +0200 Transform touch events just like all other events Transform touch coordinates in the same way as other events coming from the wacom driver otherwise setting for exmaple the Wacom Rotation property has no effect Signed-off-by: Sjoerd Simons Acked-by: Jason Gerecke commit 8e5b56e7a461c416d5b29f338bbd749626452b5d Author: Jason Gerecke Date: Wed Jul 10 13:50:55 2013 -0700 Revert "Transform touch events just like all other events" This reverts commit bfb56bf858e08d95156d52cec9744d3d3251b59c. This commit will be split in two to provide proper credit for each of the two authors. Signed-off-by: Jason Gerecke commit 85b62fa528564607875a88babab11dd6d2481b04 Author: Ping Cheng Date: Tue Jul 2 11:25:59 2013 -0700 Add support for 0xEC. It is a Wacom device found in Samsung Ativ Smart PC Pro 700t. Signed-off-by: Ping Cheng Signed-off-by: Peter Hutterer commit a2c57c0104e2aee3e3f2544b094d443e20f076cb Author: Peter Hutterer Date: Wed Jul 3 09:35:30 2013 +1000 Revert "Add support for 0xED." Typo in commit message, tablet is actually 0xEC. Revert and re-commit to make the patch easier to find. This reverts commit 8488c2af5bdd6dc4d049dc6d895c50c5f34aea14. commit 8488c2af5bdd6dc4d049dc6d895c50c5f34aea14 Author: Ping Cheng Date: Tue Jul 2 11:25:59 2013 -0700 Add support for 0xED. It is a Wacom device found in Samsung Ativ Smart PC Pro 700t. Signed-off-by: Ping Cheng commit 361ac83d06159ec02bf33237eb5ec24652c8b700 Author: Ping Cheng Date: Fri Jun 14 16:03:18 2013 -0700 wacom 0.21.99.1 Signed-off-by: Ping Cheng commit 4f7d24c2138685a9881c7b5314747dc17d7cc147 Author: Ping Cheng Date: Fri Jun 14 15:57:16 2013 -0700 Add xf86OptionListFree for distcheck Signed-off-by: Ping Cheng commit bfb56bf858e08d95156d52cec9744d3d3251b59c Author: Ping Cheng Date: Fri Jun 7 15:34:03 2013 -0700 Transform touch events just like all other events Transform touch coordinates in the same way as other events coming from the wacom driver otherwise setting for exmaple the Wacom Rotation property has no effect Signed-off-by: Sjoerd Simons Acked-by: Jason Gerecke Signed-off-by: Ping Cheng commit f38dd5736e2df7c3eec0338bd0c7bef8c562b979 Author: Ping Cheng Date: Thu Jun 6 18:25:52 2013 -0700 Don't emulate a mouse when multitouch is enabled Currently when enabling XI 1.2 multitouch events the Wacom driver does a strange mix of emulating a mouse (when there is only touch) and switches suddenly switches to be a touchscreen when 2 fingers are down. Change this to only send touch events when using multitouch mode, such that the touchscreen works the same as other touchscreens. This enables applications to properly respond to one finger touches (e.g. panning in GTK+). The X server core will still send emulated input events to applications not supporting multitouch, so there shouldn't be a regression for those applications. Signed-off-by: Sjoerd Simons Acked-by: Jason Gerecke Signed-off-by: Ping Cheng commit 3578b919360e7a4d6cfbbe4c33c3084be0c6d5c9 Author: Ping Cheng Date: Fri May 17 15:11:39 2013 -0700 Add support for Cintiq 22HDT and 13HD, DTK2241 and DTH2242. Signed-off-by: Ping Cheng Reviewed-by: Peter Hutterer Signed-off-by: Peter Hutterer commit 2dffd217b112c346c6c0b07e82cb069a3cf84246 Author: Peter Hutterer Date: Thu May 9 13:31:38 2013 +1000 Don't init abswheel2 valuator (7th val) if we don't have one InitValuatorAxisStruct() will return if the axisnum > num_axes and not initialise anything which is why the current code worked without issues. With a new patch to the server this will now complain with an error message to the log. Signed-off-by: Peter Hutterer Reviewed-by: Ping Cheng commit b350a95717ac04a0bed1d836a0b90c94724dc597 Author: Peter Hutterer Date: Thu May 9 13:45:15 2013 +1000 Free the device name after reassigning When hotplugging the first tool (usually the stylus) changes pInfo->name to the name + tool name. Thus, free the original one. And strdup the oldname so we can unconditially free it, regardless of whether we changed the actual device name or not. Signed-off-by: Peter Hutterer Reviewed-by: Ping Cheng commit 06abd7a61323034bd58e745a18f0b08723de0064 Author: Peter Hutterer Date: Thu May 9 13:14:45 2013 +1000 Free the touch mask on shutdown Signed-off-by: Peter Hutterer Reviewed-by: Ping Cheng commit 6d26cb9b9f71bfec1c388a72dcbb09f09f31bd04 Author: Peter Hutterer Date: Thu May 9 11:21:40 2013 +1000 Free input attribute's product This is copied first by DuplicateInputAttributes, then asprintf makes another copy. Signed-off-by: Peter Hutterer Reviewed-by: Ping Cheng commit dff311a44c13687c12e86d8233f15bb0f8868361 Author: Peter Hutterer Date: Thu May 9 10:55:33 2013 +1000 Free duplicated option list after conversion to InputOption The duplicated list is a copy (as the comment in the server says) and thus must be freed. ==27895== 947 (40 direct, 907 indirect) bytes in 1 blocks are definitely lost in loss record 266 of 311 ==27895== at 0x4A06B6F: calloc (vg_replace_malloc.c:593) ==27895== by 0x4E538C: addNewOption2 (Flags.c:203) ==27895== by 0x4E5401: xf86addNewOption (Flags.c:216) ==27895== by 0x4AEB24: xf86AddNewOption (xf86Option.c:347) ==27895== by 0x4AE54B: xf86OptionListDuplicate (xf86Option.c:152) ==27895== by 0xB74D139: wcmOptionDupConvert (wcmValidateDevice.c:382) ==27895== by 0xB74D408: wcmQueueHotplug (wcmValidateDevice.c:515) ==27895== by 0xB74D645: wcmHotplugOthers (wcmValidateDevice.c:568) ==27895== by 0xB742DA2: wcmPreInit (wcmConfig.c:599) ==27895== by 0x4C1ACF: xf86NewInputDevice (xf86Xinput.c:846) ==27895== by 0x4C2014: NewInputDeviceRequest (xf86Xinput.c:989) ==27895== by 0x4DD72C: device_added (udev.c:231) Signed-off-by: Peter Hutterer Reviewed-by: Ping Cheng commit bc095d579bc6b1380080c83c4e5f6df173364b76 Author: Peter Hutterer Date: Thu May 9 10:39:39 2013 +1000 Plug memory leaks left by xf86SetStrOption xf86SetStrOption() returns a strdup'd string that needs to be freed after use. This requires some const char* → char* changes too, for things that were never really const char* to begin with anyway. wcmEventAutoDevProbe() can use xf86CheckStrOption so it too returns a strup that we can free lateron. Signed-off-by: Peter Hutterer Reviewed-by: Ping Cheng commit 6940e481a4aadfbc4c87362e1461a43b296bc8b1 Author: Peter Hutterer Date: Tue Apr 30 14:40:07 2013 +1000 Purge TILT_REQUEST_FLAG Write-only value, obsolete as of xf86-input-wacom-0.10.4-45-gba90433 Signed-off-by: Peter Hutterer Acked-by: Ping Cheng commit 1329374edbd8bd5a375d32829d0f6153f84e6b6f Author: Peter Hutterer Date: Thu May 2 09:34:56 2013 +1000 man: clarify how to configure keys on higher shift levels in xsetwacom Signed-off-by: Peter Hutterer Reviewed-by: Ping Cheng commit d0dbb34e524ebb58bb9a5a623d2fa96a1470516f Author: Peter Hutterer Date: Mon Apr 29 14:47:06 2013 +1000 xsetwacom: map a bunch of special symbols Punctuation marks and others map to XK_* keysyms but only in their named form, not in their single-character symbol form. Signed-off-by: Peter Hutterer Reviewed-by: Ping Cheng commit e50725269dd76c4a3c92c84dd4413034a8937df0 Author: Peter Hutterer Date: Mon Apr 29 14:46:18 2013 +1000 xsetwacom: if we fail to map a string, try as special key or warn If a string comes back with a KeySym of 0, try again as a special key. And if that fails too, print a warning. Signed-off-by: Peter Hutterer Reviewed-by: Ping Cheng commit 915a64589f34a0593fe55afa82de30c4415c3020 Author: Peter Hutterer Date: Mon Apr 29 14:14:43 2013 +1000 xsetwacom: add special mappings for Home, End, Delete These three are likely written as home, end, del, so let's try to understand that. Signed-off-by: Peter Hutterer Reviewed-by: Ping Cheng commit c1f31c0ab16bc11614d6cfbd9bc16e4714732279 Author: Jason Gerecke Date: Mon Apr 29 13:20:58 2013 -0700 wacom 0.21.0 Signed-off-by: Jason Gerecke commit 5c6bd8d45ca2358d42fdd028112e724c691774ba Author: Jason Gerecke Date: Fri Apr 19 18:14:59 2013 -0700 wacom 0.20.99.1 Signed-off-by: Jason Gerecke commit 8d804cdf31bfbf9ec46ee15ab1a58e63f770c2b8 Author: Jason Gerecke Date: Thu Apr 18 14:51:37 2013 -0700 Fix const warnings in wcmSetActionProperty CC wcmXCommand.lo ../../src/wcmXCommand.c: In function 'wcmSetActionProperty': ../../src/wcmXCommand.c:460:23: warning: assignment discards 'const' qualifier from pointer target type [enabled by default] case BadMatch: msg = "BadMatch"; break; ^ ../../src/wcmXCommand.c:461:23: warning: assignment discards 'const' qualifier from pointer target type [enabled by default] case BadValue: msg = "BadValue"; break; ^ ../../src/wcmXCommand.c:462:17: warning: assignment discards 'const' qualifier from pointer target type [enabled by default] default: msg = "UNKNOWN"; break; ^ Signed-off-by: Jason Gerecke commit 135e6f60df1398f2c5145535f68e06703ccd77b4 Author: Jason Gerecke Date: Thu Apr 18 14:47:17 2013 -0700 Remove unused variable src/wcmUSB.c:451:14: warning: unused variable 'private' [-Wunused-variable] wcmUSBData* private = common->private; Signed-off-by: Jason Gerecke commit dfe4d23ef30db20e726605599c1c6bed2aa20a3a Author: Peter Hutterer Date: Tue Mar 26 11:39:55 2013 +1000 Correct comment for Sample and Suppress property The data in the property is actually the other way round. Oops. Signed-off-by: Peter Hutterer commit ad952fe2800c875b2f0b4663358d454d793ce57f Author: Ping Cheng Date: Fri Mar 8 17:04:42 2013 -0800 add support for 0x10d It is a Wacom device found in Fujitsu Lifebook T902. Signed-off-by: Stephan Frank Acked-by: Ping Cheng Reviewed-by: Peter Hutterer Reviewed-by: Jason Gerecke commit 7a1aadb24b6573809d7324f2549bed749ad1a7f2 Author: Ping Cheng Date: Thu Mar 7 14:11:30 2013 -0800 Resume button events for pucks wcmBTNChannel was statically assigned to PAD_CHANNEL by commit 1f9bf45b, which excluded button events for CURSOR tools. This patch allows usbParseBTNEvent to process button events for both CURSOR and PAD tools. wcmBTNChannel is removed from wcmUSBData since we do not need it anymore. Signed-off-by: Ping Cheng Reviewed-by: Jason Gerecke commit c3b4e869924291ee1ec72a2f02fc1986873efe92 Author: Jan Alexander Steffens (heftig) Date: Mon Mar 4 18:33:03 2013 +0100 Make touchscreens (WCM_LCD) direct touch devices Tested with a tablet pc, allowing finger scrolling in GTK3. Signed-off-by: Jan Alexander Steffens (heftig) Reviewed-by: Peter Hutterer Tested-by: Jason Gerecke commit 9077b12cd6ef7a9772aaea00b52baad64471e4e4 Author: Ping Cheng Date: Tue Mar 5 16:46:27 2013 -0800 Consolidate calls to wcmEvent into one statement The extra wcmEvent call was to deal with generic PAD events received without motion events in the same packet. Those PAD events would be filtered out by the device type retrieving code later. Signed-off-by: Ping Cheng Acked-by: Chris Bagwell Reviewed-by: Jason Gerecke commit db17462c0e85f880647f23a0e8bbfd4d20a38303 Author: Ping Cheng Date: Tue Mar 5 16:45:45 2013 -0800 Clean up device_type initialization for tool on tablet usbInitToolType retrieves device type from the kernel when tool is on the tablet at X server startup. No need to do it again later. Since kernel does not have a specific device type for PAD, we have to check the actual events to set its type. Signed-off-by: Ping Cheng Acked-by: Chris Bagwell Reviewed-by: Jason Gerecke commit 6f9826217f50df8e315d3a7d694a4daf62f32c38 Author: Ping Cheng Date: Tue Mar 5 16:44:52 2013 -0800 Update MAX_CHANNELS definition Make room to report pen and touch events simultaneously Signed-off-by: Ping Cheng Reviewed-by: Peter Hutterer Reviewed-by: Jason Gerecke commit 1bca5eefa22afcce1ebe33812e7d17872ceeafca Author: Peter Hutterer Date: Tue Mar 5 09:41:47 2013 +1000 Handle DEVICE_ABORT on input ABI 19.1 And do nothing. USB devices are handled by the kernel, so we don't need to reset the HW. ISDV4 devices don't get reset on normal shutdown anyway, so we don't need to do anything here either. Signed-off-by: Peter Hutterer commit ab53739dafee0e0f4a534220501bd067193ff109 Author: Jason Gerecke Date: Mon Mar 4 09:46:17 2013 -0800 wacom 0.20.0 Signed-off-by: Jason Gerecke commit 256567c6ad9ec120098d9dbf35e9dc609114bc9d Author: Jason Gerecke Date: Tue Feb 26 10:40:53 2013 -0800 wacom 0.19.99.1 Signed-off-by: Jason Gerecke commit be0b40d2453ba03d99a6dab460ad4007c4d97161 Author: Jason Gerecke Date: Tue Feb 26 09:39:20 2013 -0800 Fix warning: format expects argument of type ../src/wcmXCommand.c: In function 'wcmCheckActionProperty': ../src/wcmXCommand.c:387:3: warning: format '%d' expects argument of type 'int', but argument 4 has type 'long int' [-Wformat] Signed-off-by: Jason Gerecke commit dc5608a2911cf0698db1dd083250e37b4a31d58f Author: Ping Cheng Date: Fri Feb 22 11:14:21 2013 -0800 Support pen/touch arbitration across product ids Devices with different product ids for pen and touch, such as Cintiq 24HD and DTH 2242, were added recently. Applying arbitration only for tools with same product id is not enough. However, we want to make sure tools with same product id are lined properly first. That's why the same routine is repeated instead of combined. Signed-off-by: Ping Cheng Reviewed-by: Jason Gerecke commit 120f72f8f3fe5e74ed87c7ee3828243ba4ba054b Author: Ping Cheng Date: Thu Feb 21 19:01:25 2013 -0800 Arbitration applies to puck/Wacom mouse as well We do not allow finger competes with CURSOR. Signed-off-by: Ping Cheng Reviewed-by: Jason Gerecke commit 06afd180edad2b39dc717d266f5012ca93bd2d8f Author: Ping Cheng Date: Thu Feb 21 19:01:01 2013 -0800 Fix pen and touch arbitration Arbitration did not work as expected since common is meant for tools on the same logical port, not for tools of the same physical device or of the same product id. Plus, not all devices support touch. Signed-off-by: Ping Cheng Acked-by: Jason Gerecke commit 2ab2dd3d0d2bcd353730f11782aa64bb9dc58b2c Author: Jason Gerecke Date: Thu Jan 17 17:42:24 2013 -0800 Don't reset properties on checkonly We shouldn't make *any* change to the state if checkonly==true, but we've been resetting properties anyway. This blocks off the calls to the reset functions to prevent them from being called if it's just a drill. Signed-off-by: Jason Gerecke Reviewed-by: Peter Hutterer commit 5b9c2d84dfc206ee245ba22b92a6d1d824cff3f0 Author: Ping Cheng Date: Mon Jan 28 15:59:30 2013 -0800 Add Touch option to xsetwacom manpage We did not explicitly add this option when worked on the manpage since we thought Gnome control center (g-c-c) or something else in userland would take care of touch (as well as its gestures). However, I see no sign of getting touch in g-c-c soon. Let's take care of touch uers here for now. Wacom manpage is also updated accordingly. Reported-by: Nikolai Neff Reviewed-by: Peter Hutterer Signed-off-by: Ping Cheng commit 9a664ab7b99ca68e29f73196c216b3a6918325d5 Author: Jason Gerecke Date: Wed Jan 23 11:59:37 2013 -0800 include: Move wacom-util.h after X11 headers Combined with the "#ifndef" in commit c95c1f2c, this fixes the compiler warnings generated about ARRAY_SIZE being redefined. Signed-off-by: Jason Gerecke Reviewed-by: Peter Hutterer commit 352f33964f606370cf2ad6f4edf0800f18c8ed15 Author: Jason Gerecke Date: Wed Jan 23 11:13:07 2013 -0800 Have wcmFindActionHandler return success/failure directly We can guarantee that the out arguments are non-NULL if the property was found, so return a boolean instead of relying on the caller to check for non-NULL results. Signed-off-by: Jason Gerecke Reviewed-by: Peter Hutterer commit 59925bd45b714376b7f2ba07d0e443ed8db24861 Author: Jason Gerecke Date: Thu Jan 17 17:04:38 2013 -0800 NONE is not a valid action, and NULL a bad value While the NONE Atom indicates that the driver should reset the action at the index it resides it, it is not *itself* a valid action. This patch prevents us from attempting to set NONE as an action. Signed-off-by: Jason Gerecke Reviewed-by: Peter Hutterer commit 5d5be5106183961da2b1e793c4a62e59c1274e01 Author: Jason Gerecke Date: Tue Dec 18 12:59:04 2012 -0800 Have wcmSetActionProperty run checkonly Instead of checking only the 'actions' property, also check the individual 'action' properties as well. We obviously won't be able to correctly apply the former if the latter fails midway through. Signed-off-by: Jason Gerecke Reviewed-by: Peter Hutterer commit 3f5bc05608d59d08f0ce600afcc9a56acd294ab2 Author: Jason Gerecke Date: Mon Dec 17 17:24:43 2012 -0800 Pass errors from wcmSetActionProperty up the stack Errors when setting an action property should not be swallowed. Note that because the containing function does not bother to call this function 'checkonly', clients still can't find out about errors until its too late. We'll fix this in the next commit. Signed-off-by: Jason Gerecke Reviewed-by: Peter Hutterer commit ed561f701e4b2ba60fb5d8abf881e816118880a8 Author: Peter Hutterer Date: Tue Jan 22 14:09:29 2013 +1000 Setting an invalid action property should return an error Signed-off-by: Peter Hutterer Reviewed-by: Ping Cheng Reviewed-by: Jason Gerecke commit 33cccd3fa4e5185857b2248b56509a97ed19df84 Author: Jason Gerecke Date: Mon Dec 17 16:56:06 2012 -0800 Have wcmFindActionHandler properly handle wcmFindProp error If wcmFindProp cannot find the given property, it will return a negative error code. At the moment, this is taken as the success condition(!?) for the strip_actions case... Aside from being wrong, this has the potential to cause some nasty memory corruption. Signed-off-by: Jason Gerecke Reviewed-by: Peter Hutterer commit 2d38dac523145e3157a3b5fc200f13254f56219c Author: Jason Gerecke Date: Mon Dec 17 16:55:30 2012 -0800 Improve wcmFindProp readability The existing code is needlessly hard to follow. It should return immediately upon success, and unconditionally bail if it never succeeded. Signed-off-by: Jason Gerecke Reviewed-by: Peter Hutterer commit 7e418191a29f681331dd0134c8887d641d737410 Author: Jason Gerecke Date: Thu Jan 17 16:51:22 2013 -0800 Increase maximum allowed X11 button number Actions specify X11 button numbers that should be generated when performed. The maximum button number that could be used in an event has been raised from the driver-imposed limit (WCM_MAX_BUTTON) to the server-imposed limit (WCM_MAX_X11BUTTON). This feature is necessary for gnome-settings-daemon to work properly. To reliably identify each touch strip and ring, g-s-d assigns each a high button numbers to send for each direction. Without this patch, the driver ignores the actions set by g-s-d and continues to send whatever the default action is instead. Signed-off-by: Jason Gerecke Reviewed-by: Peter Hutterer commit 082f37feee3170521df4a1a1bbd91e0274282bf1 Author: Jason Gerecke Date: Tue Dec 18 12:58:45 2012 -0800 Improve logging of X property setting Sprinkles a few extra DBG() calls into the code to make it a little easier to track down issues with property-setting code. Signed-off-by: Jason Gerecke Reviewed-by: Peter Hutterer commit b6bd20a660f6c682f9de3372b3f1a636a34d9b65 Author: Peter Hutterer Date: Fri Jan 18 08:43:52 2013 +1000 test: replace INCLUDES with AM_CPPFLAGS see https://lists.gnu.org/archive/html/automake/2012-12/msg00038.html - Support for the long-deprecated INCLUDES variable will be removed altogether in Automake 1.14. The AM_CPPFLAGS variable should be used instead. Signed-off-by: Peter Hutterer Acked-by: Ping Cheng commit 4cffb337d7dc43d17e11a28f70a8be11f21d74ff Author: Peter Hutterer Date: Thu Jan 10 11:30:15 2013 +1000 Fix a debug message not parsed by sigsafe printf code The server doesn't interpret %g, use %f instead. tbh, right now it doesn't interpret %f either, but there's patches on the way for that. Signed-off-by: Peter Hutterer Acked-by: Ping Cheng commit b7a2d8e7eb57fb11ec7753d555ab479475fe5230 Author: Peter Hutterer Date: Thu Jan 10 11:25:07 2013 +1000 Drop unused maxWidth/maxHeight These two are never set to anything but 0 since xf86-input-wacom-0.10.10-19-g6f5f29b Signed-off-by: Peter Hutterer Reviewed-by: Ping Cheng commit a7de9daa67afbf0c721e681809be2fbe519d26c8 Author: Peter Hutterer Date: Wed Dec 19 12:37:03 2012 +1000 Fix indentation in usbStart() No functional changes. Signed-off-by: Peter Hutterer commit c95c1f2c2d449f78eae109b927db85db05ab9a6f Author: Peter Hutterer Date: Mon Aug 20 13:21:37 2012 +1000 include: don't redefine ARRAY_SIZE The server provides this macro in its headers, so only redefine it where needed (for the tools) Signed-off-by: Peter Hutterer commit bc2de318b5ad131fb60d3c5a057c185f764969a1 Author: Jason Gerecke Date: Wed Jan 2 11:15:53 2013 -0800 wacom 0.19.0 Signed-off-by: Jason Gerecke commit c29dbba29eb6e8ab1494339c29483b0e1068d894 Author: Jason Gerecke Date: Thu Dec 20 17:21:29 2012 -0800 Properly map 2nd abswheel of Cintiq 24HD touch Signed-off-by: Jason Gerecke commit 654fdcb188e272f4122ea128612e899b397b0709 Author: Jason Gerecke Date: Wed Dec 19 11:15:21 2012 -0800 wacom 0.18.99.1 Signed-off-by: Jason Gerecke commit d4aad5dd0c0d010701e2d3f46d9cd98daf6883e4 Author: Peter Hutterer Date: Wed Dec 19 13:43:09 2012 +1000 If ds.device_type is 0, set it to the one we guessed earlier priv->wcmDeviceType contains the guessed device type, after querying the key state from the kernel. If that found our device type, use it. Signed-off-by: Peter Hutterer Tested-by: Jason Gerecke commit 7e86e9871459c980a95bcea98dd0a2890b0b584a Author: Peter Hutterer Date: Wed Dec 19 13:43:08 2012 +1000 Fix missing braces around condition in refreshDeviceType Causing this function to always return 0 Signed-off-by: Peter Hutterer Signed-off-by: Ping Cheng Tested-by: Jason Gerecke commit 5209f14707c7d1446c0987adba74cb46028dbf3c Author: Peter Hutterer Date: Wed Dec 19 13:43:07 2012 +1000 Handle BTN_TOOL_MOUSE/LENS in toolTypeToDeviceType Signed-off-by: Peter Hutterer Signed-off-by: Ping Cheng Tested-by: Jason Gerecke commit 37734d52cc1ce84ba5153bb45587892b5070c9c5 Author: Ping Cheng Date: Tue Dec 18 14:48:20 2012 -0800 Filter out DOUBLETAP and TRIPLETAP events for true MT data DOUBLETAP and TRIPLETAP are duplicated events in type-B MT format. We do not use them in this driver. Plus, they could be confused by fake MT events on older kernels. Signed-off-by: Ping Cheng commit 1f9bf45bdf2eb58491fa578aa6b9ce55a9c13366 Author: Ping Cheng Date: Tue Dec 18 14:47:53 2012 -0800 Assign PAD_CHANNEL to BTNChannel for all PAD tools BTNChannel is static for all devices, not just geneic devices. Signed-off-by: Ping Cheng Reviewed-by: Jason Gerecke commit 62e5222c14cb4d282a3a285e7dd84f0ea1d00e36 Author: Ping Cheng Date: Thu Dec 13 12:19:23 2012 -0800 BTN_TOOL_FINGER is not for PAD if MT is supported BTN_TOOL_FINGER indicates single touch/first finger if MT is enabled Signed-off-by: Ping Cheng Reviewed-by: Jason Gerecke Reviewed-by: Chris Bagwell commit b5bcd03d12773e3147b4eb5d6a2a39b4c06bb9f4 Author: Ping Cheng Date: Thu Dec 13 12:18:37 2012 -0800 Send generic PAD events before other events If we wait until we finish other verifications, we could miss PAD events since they will be filtered out when there are no motion events sent simultaneously. Signed-off-by: Ping Cheng Acked-by: Jason Gerecke commit 6bd777a7d15c071dc2079fb8bcb4a7f13685aeba Author: Ping Cheng Date: Thu Dec 13 12:18:02 2012 -0800 Initialize wcmBTNChannel in usbWcmInitPadState() wcmBTNChannel is only used by generic PAD device. And it is statically assigned to PAD_CHANNEL. No need to reassign it for every packet. Signed-off-by: Ping Cheng Acked-by: Jason Gerecke Reviewed-by: Chris Bagwell commit f310e20f6a3dc519f7d318ee53c1024f28892991 Author: Ping Cheng Date: Thu Dec 13 12:16:52 2012 -0800 Remove channel duplication code for generic devices We use true MT protocol for MT devices in kernel now. This code was introduced to deal with ABS_TOOL_*TAP events loss issue. It is uncessary any more. And its existence makes it hard to support generic PAD cleanly. Signed-off-by: Ping Cheng Acked-by: Jason Gerecke commit 5d0f8c1abea4b1a791d169ffb15a0b2aee50a7d3 Author: Peter Hutterer Date: Mon Dec 10 15:35:38 2012 +1000 man: CursorProx affects absolute mode as well Update man-page for driver behavior. Signed-off-by: Peter Hutterer Reviewed-by: Ping Cheng commit f3ede09dd504e2ca054bbac7413bd9a3416ec31f Author: Ping Cheng Date: Tue Dec 4 14:51:32 2012 -0800 Convert resolution from points/inch to points/m Somehow we forgot Lenovo W700 last round. Signed-off-by: Ping Cheng Signed-off-by: Peter Hutterer commit 2b285d01e1c03b51a8526516acda208edbeeac89 Author: Ping Cheng Date: Tue Dec 4 14:51:05 2012 -0800 Update resoltuion for old kernels We upscaled resolutions in WacomModelDesc and reported from absinfos. But we forgot to update them for older kernels that do not support resolution in absinfo. Resolution received from kernel is in hundredths of a mm. The scale we use here is in meter. Signed-off-by: Ping Cheng Signed-off-by: Peter Hutterer commit a82f0251e400b98b0044f2c8ab89c4b61ec99d4f Author: Ping Cheng Date: Tue Dec 4 14:50:42 2012 -0800 Post maximum number of contacts to clients Clients should know the maximum number of contacts a touch device support before they get touch events. Signed-off-by: Ping Cheng Signed-off-by: Peter Hutterer commit 26a6a42fd0a726518f62b8da6926b111a01b33cf Author: Jason Gerecke Date: Wed Nov 14 09:54:34 2012 -0800 Properly clear action properties What we want to do is clear all 256 steps of an individual action. What we were doing was clearing just the first step. As mentioned on the ArchWiki, this cuases the following behavior: $ xsetwacom --set Button 1 "key a b c" # press button 1 -> abc $ xsetwacom --set Button 1 "key d" # press button 1 -> dbc WRONG! Signed-off-by: Jason Gerecke Reviewed-by: Peter Hutterer commit 5899942e84d4ae7498ea0cc764aa05b609738d7f Author: Ping Cheng Date: Wed Nov 21 12:14:10 2012 -0800 Add support for MT ISDv4 device 0x4001 It supports up to 10 fingers Signed-off-by: Ping Cheng Signed-off-by: Peter Hutterer commit 38018e941ff197d00867feff4fe7fb501f584826 Author: Ping Cheng Date: Wed Nov 21 12:13:44 2012 -0800 Support up to 16 touch points Bamboo3 and Intuos5 both support 16 fingers Signed-off-by: Ping Cheng Reviewed-by: Peter Hutterer Signed-off-by: Peter Hutterer commit 4ba50c66d65d11232e169d3202ea4a34e06362de Author: Peter Hutterer Date: Wed Nov 21 16:12:48 2012 +1000 Bring back AM_MAINTAINER_MODE, default to enabled See Ron's comments discussion on: http://old.nabble.com/-PATCH-libwacom--Drop-AM_MAINTAINER_MODE-td34561358.html Summary: In this workflow all generated files are committed to git to have a known working set. On checkout, git does not restore the original timestamps, so with maintainer-mode enabled, automake will regenerate the files - which is to be avoided since we already have the known working set. AM_MAINTAINER_MODE([enable]) gives us the same behaviour as now, but will allow Ron to disable the regeneration of the files. Requested-by: Ron Signed-off-by: Peter Hutterer Acked-by: Ping Cheng commit 0c417e33d5b45ce9206448fb45de9338c25c1f5d Author: Jason Gerecke Date: Mon Nov 5 09:10:27 2012 -0800 Don't declare touch_mask on older servers Missed necessary preprocessor guard in 0d164e66. Signed-off-by: Jason Gerecke Reviewed-by: Peter Hutterer commit 3474d206359cf54e991d5dfeff04ed00efa3ce4e Author: Jason Gerecke Date: Fri Oct 26 16:01:47 2012 -0700 wacom 0.18.0 Signed-off-by: Jason Gerecke commit b3e52e3f921a8f28962ec6e369db1235f046168c Author: Ping Cheng Date: Thu Oct 25 17:47:24 2012 -0700 Add three MT ISDv4 devices (E5, 100, 101) Signed-off-by: commit 97358d0effeb4b72af095cb67d12881286f6fb04 Author: Jason Gerecke Date: Tue Oct 23 10:20:17 2012 -0700 Have direct-touch devices move into and out of GESTURE_DRAG_MODE Direct-touch devices (e.g. tablet PC, 24HD touch) are currently left in GESTURE_NONE_MODE while performing drags. This can lead to potential "stuck button" issues, since as soon as a second finger comes in contact, the driver will switch to GESTURE_LAG_MODE. This prevents the wcmSingleFingerPress function from being called, leaving button 1 in a pressed state. While any subsuquent gesture will release button 1, if the pen is brought into proximity before one occurs, the fingers will be sent out of proximity without a chance to release button 1. This causes the button to remain "stuck" in the pressed state until the next touch occurs. There are a few different ways this issue could be addressed. In the interest of symmetry with indirect-touch devices, this patch has direct-touch devices enter and exit GESTURE_DRAG_MODE as well. This delays the mode swith to GESTURE_LAG_MODE by one event, allowing wcmSingleFingerPress to be called to release button 1. https://bugs.freedesktop.org/show_bug.cgi?id=56308 Signed-off-by: Jason Gerecke Reviewed-by: Ping Cheng commit 74396082c690800a04d20dab2c41e873836774aa Author: Peter Hutterer Date: Wed Oct 24 17:13:25 2012 +1000 If _source is NULL, don't auto-pick the type. An xorg.conf InputDevice section that does not have Option Type set is invalid. Skip the type assignment and return, triggering an error about an invalid type lateron. Fixes crash triggered as of xf86-input-wacom-0.17.0-8-g0debde6 by having an InputDevice section like this: Section "InputDevice" Identifier "--device--" Driver "wacom" Option "CorePointer" "on" EndSection This would lead to the device being assigned a type and assumed to be for hotplugging. Later, when the device attributes are duplicated during QueueHotplug, asprintf() tries to duplicate attr->product, which is always NULL for xorg.conf devices. Signed-off-by: Peter Hutterer Reviewed-by: Jason Gerecke commit 9f896f4800593c7fa232e40fd934b7f51d0dde6d Author: Jason Gerecke Date: Fri Oct 19 17:15:58 2012 -0700 wacom 0.17.99.1 Signed-off-by: Jason Gerecke commit 8b412136a4bd032534bd0eb970a4a06c942fcf59 Author: Jason Gerecke Date: Fri Oct 19 17:13:13 2012 -0700 Limit use of touch class to touch devices only Applying the touch class to all devices shouldn't really affect anything, but just to be sure we surround it in a IsTouch() check. Signed-off-by: Jason Gerecke commit 637651338015563c6847028870aaa08b293f1ef1 Author: Jason Gerecke Date: Thu Oct 18 13:06:36 2012 -0700 Correct number of actions reported by sendWheelStripEvent to sendAction Commit 477a261e has sendWheelStripEvent use the ARRAY_SIZE macro on a pointer. This will not return a proper value, causing the wrong array length to be provided to sendAction. This can lead to only the first few actions assigned to a wheel or strip actually being performed. This patch changes the signature of sendWheelStripEvent to accept an explicit length. https://sourceforge.net/tracker/?func=detail&aid=3577713&group_id=69596&atid=52$ Signed-off-by: Jason Gerecke commit e81c1400b023be49afc3f62066d21281a1c2bb95 Author: Jason Gerecke Date: Thu Oct 18 12:52:15 2012 -0700 Have getWheelButton deal with array indices instead of pointers This patch modifies the function signature of getWheelButton so that it accepts and returns array indices rather than pointers. This is in preparation of the next commit, which would be needlessly unreadable otherwise. Signed-off-by: Jason Gerecke commit cc855c1c4f1815c691fbef2293d04b78f28ffc42 Author: Jason Gerecke Date: Wed Oct 17 18:02:56 2012 -0700 Restore pad button functionality Commit b0083492 broke pad buttons by no longer setting the wcmBTNChannel. With this variable left uninitialized, pad button data would be stored in another channel (e.g. 0) without any other data like proximity set. This commit sets wcmBTNChannel to point to the channel used for storing pad data whenever a pad packet is detected. Signed-off-by: Jason Gerecke Acked-by: Peter Hutterer commit 7c91665c86c93b9668a1649d20b32550fbdc544b Author: Jason Gerecke Date: Thu Aug 2 09:23:55 2012 -0700 Add support for Cintiq 24HD touch Adds support for the EMR and touch digitizers on the Cintiq 24HD touch. The digitizers are on separate USB devices, which can lead to the cursor jumping back and forth between the stylus and finger. Performing arbitration between the two (disabling finger while pen is in proximity) is expected to be handled by the kernel driver. Signed-off-by: Jason Gerecke Reviewed-by: Peter Hutterer commit 8c17d224a5df855ccdb1bb15862156782532074c Author: Jason Gerecke Date: Mon Oct 8 11:03:18 2012 -0700 Add recently-referenced functions to fake-symbols Signed-off-by: Jason Gerecke Reviewed-by: Peter Hutterer commit c85ecf117d4937b6943b5a1215711c99389e5c46 Author: Peter Hutterer Date: Wed Oct 17 08:25:19 2012 +1000 Drop AM_MAINTAINER_MODE We want xf86-input-wacom to react to changes in Makefile.am's Long writeup: http://blogs.gnome.org/desrt/2011/09/08/am_maintainer_mode-is-not-cool/ Signed-off-by: Peter Hutterer commit 72508ebe5533501758aad073f120b50f04ac0060 Author: Jason Gerecke Date: Tue Oct 2 14:29:24 2012 -0700 Fix prerequisite check in wcmUpdateSerial The prerequisite check in wcmUpdateSerial is incorrect. If the tool ID changes, the property reflecting it will not be updated unless/until the serial number also changes. The check is updated to reflect this. Additionally, the prerequesite check at one of its callsites is removed since the function performs the same check internally. https://bugs.freedesktop.org/show_bug.cgi?id=45237 Signed-off-by: Jason Gerecke Reviewed-by: Ping Cheng commit 3e9be03fe19db693f600844b24ce66cefcf6267a Author: Jason Gerecke Date: Fri Sep 21 19:57:00 2012 -0700 Move check for enabled gestures to the functions that execute them At the moment, disabling gestures disables *all* gestures. That includes the core "tap to click" gesture (and slightly-less-core "tap and hold to drag"). This patch allows these two gestures to not be considered such by moving wcmGesture check into the functions that execute the gesture. All two-finger functions (right click, scroll, and zoom) are disabled by wcmGesture, but all single-finger functions remain operational. Signed-off-by: Jason Gerecke Acked-by: Chris Bagwell Tested-by: Chris Bagwell commit 0d164e66cbb7119d68d2008242f0ec2cca2202a7 Author: Jason Gerecke Date: Wed Sep 26 10:57:27 2012 -0700 Use new multitouch protocol in XI2 if possible Adds a new MULTITOUCH gesture mode that will redirect all in-contact touches through the new multitouch code available in XI2.2 (ABI >= 16). MULTITOUCH mode will only be entered when in-driver gestures have been disabled and at least two fingers are present. The driver will remain in this mode until *all* fingers have left the tablet. For the moment, all touches are sent as XIDependentTouch. Direct touch devices such as tablet PCs and Cintiqs are not an exception. This may be changed in the future once frameworks are better equipped to handle direct input touches. Signed-off-by: Jason Gerecke Tested-by: Chris Bagwell commit a6f1e4b10524cba3272147537cef036e860cac4c Author: Jason Gerecke Date: Tue Sep 18 16:06:55 2012 -0700 Dynamically choose channel for ABS_MT data Now that the touch code doesn't look in statically-defined channels and usbChooseChannel is capable of locating channel numbers for arbitrary tool type/serial combinations, we can use the latter to track an aribrary number of touches without fear of stepping on the toes of another channel. Signed-off-by: Jason Gerecke Tested-by: Chris Bagwell commit f85f025b4ad08295222a1264b4d2cfb20ccdb918 Author: Jason Gerecke Date: Fri Sep 21 13:56:21 2012 -0700 Have usbChooseChannel take explicit device type and serial args Instead of divining this information from the stored private data, take them as arguments. This gives us more flexibility in finding channels for sub-tools (e.g. individual fingers). Signed-off-by: Jason Gerecke Tested-by: Chris Bagwell commit b00834928e81ca2ddaaf00c78a2ea1a4ac50b19c Author: Jason Gerecke Date: Mon Jun 25 17:32:43 2012 -0700 Simplify usbChooseChannel logic Instead of having different per-protocol cases, just obtain serial numbers equivelent to those you'd get from Protocol 5 and then use that serial to find a channel dynamically. Signed-off-by: Jason Gerecke Tested-by: Chris Bagwell commit afb25836e6350b5aaea76ccc68b2e16d382e1398 Author: Jason Gerecke Date: Wed Aug 1 17:10:27 2012 -0700 Make usbInitToolType more generic, and always use Tweaks the usbInitToolType function to be always useful. This is needed so that we can use it to get the tool type for all event frames, allowing us to properly fill in the tool type for devices that we otherwise don't figure out until later on (which causes problems with the proper operation of usbChooseChannel). Signed-off-by: Jason Gerecke Tested-by: Chris Bagwell commit 63cf3c5a2a04559838ec6fd6b9e7e808818072b1 Author: Jason Gerecke Date: Fri Sep 21 19:07:57 2012 -0700 Dynamically find touch channels, instead of hard-coding Right now the driver assumes that the first touch will always be in channel 0, and the second touch (if present) is in channel 1. This patch adds a new function to scan the channel list for appropriate contacts, and uses it instead of the hard-coded index accesses. Signed-off-by: Jason Gerecke Tested-by: Chris Bagwell commit 709e0aa23f34003d4526cbf9435a295ee83e0ee0 Author: Jason Gerecke Date: Fri Sep 21 19:13:45 2012 -0700 Use serial number instead of channel number to identify contacts Code that deals with touch points shouldn't care which channel an event is occuring in; it should be more concerned with the finger that caused it. At the moment these are the same things (first finger is always in channel zero), but this will soon change. Signed-off-by: Jason Gerecke Tested-by: Chris Bagwell commit 67822ebb90a89f5d95ed45a316d905a10c87fc53 Author: Jason Gerecke Date: Tue Sep 18 16:24:22 2012 -0700 Add and use a 'dirty' bit for WacomChannel Instead of keeping around 'channel_changed', 'mt_channel_changed', and 'btn_channel_changed', just add a flag to the WacomChannel itself that can be set whenever something changes. Signed-off-by: Jason Gerecke Tested-by: Chris Bagwell commit 0debde6b14a1765e1dd5a483faafe6b90e0e62ba Author: Jason Gerecke Date: Mon Sep 24 16:30:05 2012 -0700 Properly handle nulls in wcmIsHotpluggedDevice Commit def7b5fd changed how wcmIsHotpluggedDevice handles null values, with the result that a device with no "_source" specified would be interpreted as having been hotplugged. This restores the original behavior. Signed-off-by: Jason Gerecke Reviewed-by: Peter Hutterer commit 1b4da8527d2719cc9ab1f5ed1390ffac44772230 Author: Jason Gerecke Date: Mon Sep 24 16:12:29 2012 -0700 Properly handle nulls in wcmCheckSource Commit cff344b1 modified the null-handling of wcmCheckSource, such that the wrong result will be returned if either/both fsource and psource are null. This patch restores the original behavior. Signed-off-by: Jason Gerecke Reviewed-by: Peter Hutterer commit 0a27c707eafe57a85266452a395f89c8237efdbf Author: Jason Gerecke Date: Mon Sep 24 17:53:49 2012 -0700 Fix double-free in wcmPreInitParseOptions The 'tool' function here is set equal to 'priv->tool' earlier in this function. If an error condition occurs, the tool can be freed both here and in wcmFree (via wcmUninit). It should be safe to postpone this free() until wcmFree to be freed along with the rest of the memory allocated in wcmAllocate. There should be no leak (wcmUninit will be called on failure) and any code relying on priv->tool being a valid pointer after the failure of wcmPreInitParseOptions is already broken. https://bugs.freedesktop.org/show_bug.cgi?id=55200 Signed-off-by: Jason Gerecke Reviewed-by: Peter Hutterer commit 59941213fb8972abc1cd3bf3762444ab73ae1329 Author: Jason Gerecke Date: Wed Jun 27 10:28:53 2012 -0700 Device grab should be optional Like in recent versions of xf86-input-evdev, grabbing the input device with EVIOCGRAB should be optional. This would enable for example indicator applets, and would improve dynamic handling of different input devices. Proposed patch extended to document new GrabDevice driver option. https://sourceforge.net/tracker/?func=detail&aid=3509828&group_id=69596&atid=525124 Reported-by: henris42 commit 0fe7f800295a4b5bf074bca798cf8024fcb174ec Author: Jason Gerecke Date: Thu Sep 13 16:59:01 2012 -0700 Ignore out-of-prox events from unknown devices already out-of-prox Fixes an issue with the Intuos5, which sends extra out-of-prox notifications when the ExpressKeys are touched. This causes the driver to ask the kernel for the tool currently in prox and post an empty event for it. The result is a cursor that (only while the pen is in prox) sometimes jumps to the top left when touching the buttons. We fix this by ignoring events that claim to be leaving prox when the tool is already supposedly out of prox. https://bugs.freedesktop.org/show_bug.cgi?id=54250 Reported-by: Timo Aaltonen Signed-off-by: Jason Gerecke commit e604e4e6c69898920e27aeed5a772484d796562b Author: Jason Gerecke Date: Fri Sep 7 12:24:23 2012 -0700 Have keysym_to_keycode handle unused keycodes The current implementation of keysym_to_keycode does not properly handle unused keycodes. The functions XkbKeySymsPtr and XkbKeyGroupWidth mislead it into believing it is reading a keysym associated with the unused keycode when in reality it is reading a keysym associated with the *next used* keycode. This impacts different keys depending on the keyboard layout in use. On mine for instance, the left Super key is unusable because its keycode is preceeded by an unused keycode. To resolve this issue, we take a page from XKeysymToKeycode and use the function XKeycodeToKeysym instead of manually accessing the keysyms. https://sourceforge.net/tracker/?func=detail&aid=3555424&group_id=69596&atid=525124 Reported-by: alexmaret Signed-off-by: Jason Gerecke commit cea5cc1f25c3a1d9f1feec88b0c4d8af59b47a74 Author: Jason Gerecke Date: Thu Sep 6 09:41:26 2012 -0700 Add LogMessageVerbSigSafe to fake-symbols Somehow overlooked this while adding 'xf86MsgVerb' to fake-symbols. Oops. Reported-by: Timo Aaltonen Signed-off-by: Jason Gerecke commit 2f2acecb97e1ac941e85ddbb704e3ce7f37d0261 Author: Nikolai Kondrashov Date: Tue Aug 28 23:17:28 2012 +0300 Use kernel-reported tilt range and resolution Use tilt range and, optionally, resolution reported by the kernel for event devices. Add a constant for resolution currently expected by applications: TILT_RES, 1 point per degree in kernel units (points/radian). Scale values to this resolution for compatibility and specify it for corresponding valuators (instead of 1) for future use by applications. Add constants for currently reported value limits: TILT_MIN and TILT_MAX, -64 and 63 respectively. Continue clamping values to [TILT_MIN, TILT_MAX] for compatibility. Values and ranges reported by currently supported tablets should remain unchanged. Signed-off-by: Nikolai Kondrashov Reviewed-by: Jason Gerecke commit c246b7e4f756856d0d32501f86c7d655efe97106 Author: Jason Gerecke Date: Wed Sep 5 09:22:26 2012 -0700 wacom 0.17.0 Signed-off-by: Jason Gerecke commit e918c957f1c77fda3dec3fb9cb38ded6ffed9ca4 Author: Jason Gerecke Date: Mon Aug 27 09:42:37 2012 -0700 wacom 0.16.99.1 Signed-off-by: Jason Gerecke commit 03583c5a54292cd484d41656e141e3c65ed961da Author: Jason Gerecke Date: Mon Aug 27 10:28:54 2012 -0700 Add xf86MsgVerb to fake-symbols to let 'make distcheck' complete The switch from 'xf86Msg' to 'xf86MsgVerb' introduced in commit e4c1af41 requires that we define the latter in our fake-symbols so that the test suite can compile correctly. Signed-off-by: Jason Gerecke commit 625a43c040fd71393be94fdfad6cf7faa49db775 Author: Jason Gerecke Date: Wed Aug 22 15:05:48 2012 -0700 Make test_get_wheel_button happy Apparently there is some subtle difference here between returning a pointer and using a double-pointer as an output parameter. Tracing through the function shows the former *should* be working, but for an unknown reason fails "assert(action == &action_dn)"... This patch shouldn't change any functionality -- it just shuts up `make distcheck`. Signed-off-by: Jason Gerecke commit d8613ffc961be4c957ed30d4ac03e83411f835b6 Author: Jason Gerecke Date: Wed Aug 22 11:30:14 2012 -0700 Update test to match new function signature The getWheelButton function's signature was changed in commit 40ecdcb5 but the tests were not updated to reflect this. Signed-off-by: Jason Gerecke commit ac17300d842f2842eff3a2b2aa3dbac7ebf88a2b Author: Peter Hutterer Date: Thu Aug 23 09:03:34 2012 +1000 Pre-allocate the tap timer wcmSingleFingerTap() is called during SIGIO, calling TimerSet(NULL, ...) will malloc inside the signal handler and hang the box. Signed-off-by: Peter Hutterer Acked-by: Chris Bagwell commit b5a6983c62d233cfc7174f8f48e3abf3064c04ce Author: Peter Hutterer Date: Mon Aug 20 12:14:28 2012 +1000 Log debug messages in signal-safe manner This is a rather broad brush, logging all messages in DBG() through the signal-safe interface instead of just the ones that really need it. Signed-off-by: Peter Hutterer Acked-by: Ping Cheng commit 90cdf85ca3a3d08f79bf6928cd11edaf08b81786 Author: Peter Hutterer Date: Tue May 29 16:51:00 2012 +1000 Use signal-safe logging patches where necessary Signed-off-by: Peter Hutterer Acked-by: Ping Cheng commit 58d2a675b616af9e575f0bc0dcec7950a5498c9d Author: Jason Gerecke Date: Tue Jul 10 09:29:01 2012 -0700 Set WCM_LCD on the Cintiq 24HD This flag was apparently forgotten when the 24HD was originally added. Signed-off-by: Jason Gerecke commit 8dcf5ee466cfb14490fa52c8af8a4cbac92036f7 Author: Jason Gerecke Date: Wed Jul 25 17:39:49 2012 -0700 Add missing newline to error message Signed-off-by: Jason Gerecke commit b620267a709cb399338641fcc4c671aad2c7986c Author: Jason Gerecke Date: Wed Jul 25 12:18:17 2012 -0700 Internally use physical button numbering for actions One should not have to keep in mind the historic quirk that mouse buttons 4-7 have when dealing with buttons events generated by the tablet. This patch isolates conversion between physical and X11 numbering to the single place it has historically mattered: the button property getters/setters. Signed-off-by: Jason Gerecke commit 40ecdcb59952cea69a2b520c34e21922fbaa2c62 Author: Jason Gerecke Date: Mon Feb 27 10:38:52 2012 -0800 Remove raw button fallback codepaths from wcmCommon With actions now defined on initialization and reset to default when given a 'None' action, we can remove the raw button codepaths without a noticible change in driver behavior. Signed-off-by: Jason Gerecke commit 089a397e5a32aa2e8e212a2c908c7ac782f2b398 Author: Jason Gerecke Date: Mon Apr 2 17:05:43 2012 -0700 Reset-on-None for Actions property This patch adds the ability to reset an individual Action by setting the corresponding element of an Actions property to the 'None' atom (i.e. 0). When encountered, the None will be replaced with an atom representing the default Action. This will let the driver behave as it currently does once raw button support is removed. Signed-off-by: Jason Gerecke commit 8c1f585446f56303058840fc40c133c0bab9cc7c Author: Jason Gerecke Date: Tue Apr 3 10:10:59 2012 -0700 Initialize action properties from defaults This patch adds functions capable of resetting the action properties (button/stip/wheel) to their default, and calls them on initialization. Signed-off-by: Jason Gerecke commit 8c6711b14b105770e792e6de08cd1e05ddd07ba5 Author: Jason Gerecke Date: Tue Apr 3 10:09:32 2012 -0700 Cleanup call chain for action properties This patch rewrites the call chains used for setting the three action properties by introducing a single function to handle the 'Actions' properties, and a single function for 'Action' properties. Functions which were merely helper functions have been inlined if appropriate. Signed-off-by: Jason Gerecke commit 29be2391f3f07b04103a2146bece728421aa41e3 Author: Jason Gerecke Date: Mon Feb 6 12:42:04 2012 -0800 Remove support for 8-bit (raw button) strip/ring properties This patch removes the ability to set up the touchstrips or touchrings with raw 8-bit button numbers. Buttons have been without this ability for quite some time, and this brings these two properties in line. This patch will break applications which rely on the use of raw buttons in the properties, but the actual fallout is expected to be minimal. Applications which don't understand Actions are already broken (since they can't work with buttons) and those that do understand Actions but don't use them can be easily modified. Signed-off-by: Jason Gerecke commit 0512c1add914e090feaaa55586b32be84a0cdd8c Author: Jason Gerecke Date: Fri Feb 10 12:06:47 2012 -0800 Replace multiple default variables with arrays Storing the defaults for strips and wheels in individual variables makes updating and scanning through them very tedious. This patch replaces the variables with arrays and introduces new #define statements to keep the level of semantic meaning we had. Signed-off-by: Jason Gerecke commit 0233668825401bda5473945ad7277c0bf9f89958 Author: Jason Gerecke Date: Fri Feb 10 11:29:45 2012 -0800 Directly index into the various *keys arrays The 'keys' array is indexed into by reference to the X11 button number stored in the 'buttons' array. While this may have been useful at some point in time, the benefits have since gone and left behind nothing but headaches. Note that because the association with X11 buttons has been removed, action mapping (via xsetwacom) no longer depends on on the raw mapping (via xorg.conf). For instance, on a system which has 'Option "Button3" "1"' set, use of the command 'xsetwacom set button 1 10' will no longer cause *both* button 1 and button 3 to emit button 10. Its unlikely anyone relies on this quirk, but can be easily worked around if necessary. Signed-off-by: Jason Gerecke commit 9f32b03930802040ba1001258d824aefafd003d0 Merge: 1a8db01e8965 7a875941c326 Author: Peter Hutterer Date: Fri Jul 13 16:17:39 2012 +1000 Merge branch 'release-script-fixes' commit 1a8db01e896514d06f7a69c647aac05832d54ea7 Author: Ping Cheng Date: Thu Jul 12 17:23:00 2012 -0700 Add Cintiq 22HD Signed-off-by: Ping Cheng Signed-off-by: Peter Hutterer commit 7a875941c326db3ff257b6debd79279c62285c9f Author: Peter Hutterer Date: Tue Jul 10 09:59:03 2012 +1000 release.sh: support other modules (i.e. libwacom and input-wacom) Add a --module switch to the release script so we can use the same script for all three linuxwacom projects. Signed-off-by: Peter Hutterer Reviewed-by: Chris Bagwell commit 28ddd9285d8dc3273a3ef6bf0a4fc34af97c6546 Author: Peter Hutterer Date: Tue Jul 3 08:52:52 2012 +1000 release.sh: complain if tags are missing Previously we only checked the previous tag, not the current one. Move the check up a bit, make it more explicit. Signed-off-by: Peter Hutterer Reviewed-by: Chris Bagwell commit 9d42bcf72b9a0a4699deb29e3781859a1e68017f Author: Peter Hutterer Date: Tue Jul 10 09:37:55 2012 +1000 release.sh: remove gz tarball handling Signed-off-by: Peter Hutterer Reviewed-by: Chris Bagwell commit 5d85fe22a2b8565b80185c110d10a738b51794fb Author: Peter Hutterer Date: Tue Jul 3 09:02:37 2012 +1000 Stop generating .gz files One tarball is enough and bz2 is common enough that we don't need both. Signed-off-by: Peter Hutterer Acked-by: Jason Gerecke commit 3ac24ba7aea62f1a12d73a81fca87a4bcfa5568e Author: Peter Hutterer Date: Fri Jun 29 10:16:03 2012 +1000 Don't init the rotation property on the pad Rotation doesn't do a lot on a device without usable axes Signed-off-by: Peter Hutterer Acked-by: Chris Bagwell commit f5b89e44aa70d5297330014694c04d46f6e96a72 Author: Jason Gerecke Date: Mon Jul 9 09:56:54 2012 -0700 wacom 0.16.0 Signed-off-by: Jason Gerecke commit 35ba79a91257e9da5c8d749be382ec1841c78057 Author: Jason Gerecke Date: Wed Jun 27 15:25:45 2012 -0700 wacom 0.15.99.1 Signed-off-by: Jason Gerecke commit ed550599a71defd879ef6a660ab64db5f2961394 Author: Jason Gerecke Date: Wed Jun 27 11:07:39 2012 -0700 Cleanup wcmInitAxes No functional change. Signed-off-by: Jason Gerecke commit 6bf3c65d44ce343bf8d2f0d0f1bb9bc86aba3fe1 Author: Jason Gerecke Date: Wed Jun 27 11:00:44 2012 -0700 Provide consistent 'filler' axes to X Axes which aren't used by specific devices 'leak' some of the settings of the prior axis while creating the necessary 'filler' axis. This patch resets the variables to their proper defaults for each valuator's initialization. Signed-off-by: Jason Gerecke commit 1e14dda8a512b90cf9dd5d830d1e1257e80651c4 Author: Jason Gerecke Date: Fri Jun 22 12:44:47 2012 -0700 Create a wrapper for InitValuatorAxisStruct wcmInitAxes calls InitValuatorAxisStruct seven times, with each call requring two ifdefs each. To keep this function readable, this patch adds a wrapper function that centralizes all that ifdef uglyness into a single spot. Signed-off-by: Jason Gerecke Reviewed-by: Peter Hutterer commit 00560b81d700d04518beef9cf5bfa7c58b4a8d51 Author: Jason Gerecke Date: Mon Jun 25 12:21:44 2012 -0700 Find mouse buttons on pad devices if no generic buttons found Devices like the Graphire4 and Bamboo-series have Pad buttons which emit "mouse button" events (e.g. BTN_FORWARD) instead of the usual "generic button" events (e.g. BTN_0). Currently, the code considers the former to be valid for the Pad device only if the tablet doesn't also support a Cursor device. Devices with mouse buttons on the Pad *and* have a Cursor device (like the Graphire4 and very early Bamboos) end up declaring zero Pad buttons because of this, causing us to allocate an insufficient number of actions and thereby prevent the re-mapping of their forward and back buttons. This patch changes the condition from "no Cursor device exists" to "no generic buttons exist". In theory this can result in the Pad claiming it has buttons when none physically exist, but it shouldn't result in any problems. Signed-off-by: Jason Gerecke Acked-by: Peter Hutterer commit 23b704aab02903954a2184708dcecf42ad896ac9 Author: Peter Hutterer Date: Fri Jun 22 16:04:45 2012 +1000 xsetwacom: fix leak in set() move out: statement up to make sure we free values on error as well. Signed-off-by: Peter Hutterer Reviewed-by: Jason Gerecke commit bef544bef0be59f9fdff9231ce85cd41e4149975 Author: Jason Gerecke Date: Fri May 25 10:09:37 2012 -0700 Re-enable relative wheel scrolling from pad devices Commit 477a261e does not handle the case where relative wheel events come from a pad device. The Graphire4 produces such events, with the result that scrolling with one has been broken ever since. Signed-off-by: Jason Gerecke Reviewed-by: Chris Bagwell Reviewed-by: Peter Hutterer commit 6973a8e0256ba2b2d84ce73058da23b2fd1668c6 Author: Jason Gerecke Date: Wed May 2 11:16:03 2012 -0700 Align returned type of wcmEventAutoDevProbe with expected type There's some cognitive dissonance when reading "return FALSE" in a function that returns a pointer (despite FALSE and NULL being equivalent). Signed-off-by: Jason Gerecke Reviewed-by: Chris Bagwell Reviewed-by: Peter Hutterer commit fb22158f3361afa68808a10e2eece00617921faf Author: Jason Gerecke Date: Wed May 2 12:31:25 2012 -0700 Fix warning: Re-scope variable in wcmPreInitParseOptions ../src/wcmValidateDevice.c: In function 'wcmPreInitParseOptions': ../src/wcmValidateDevice.c:801:9: warning: declaration of 'b' shadows a previous local [-Wshadow] ../src/wcmValidateDevice.c:708:22: warning: shadowed declaration is here [-Wshadow] Signed-off-by: Jason Gerecke Reviewed-by: Chris Bagwell Reviewed-by: Peter Hutterer commit 19681d6a8bb0a4dbcf5fb9174d79ea6232ac895a Author: Jason Gerecke Date: Wed May 2 12:02:09 2012 -0700 Fix warning: Remove variable re-definition in wcmSerialValidate ../src/wcmISDV4.c: In function 'wcmSerialValidate': ../src/wcmISDV4.c:167:7: warning: declaration of 'n' shadows a previous local [-Wshadow] ../src/wcmISDV4.c:161:6: warning: shadowed declaration is here [-Wshadow] Signed-off-by: Jason Gerecke Reviewed-by: Chris Bagwell Reviewed-by: Peter Hutterer commit def7b5fd2776b0455eca09641df8ed1c5e17bd37 Author: Jason Gerecke Date: Fri May 25 12:18:05 2012 -0700 Fix warning: Swap empty string for NULL in wcmIsHotpluggedDevice ../src/wcmConfig.c: In function 'wcmIsHotpluggedDevice': ../src/wcmConfig.c:442:2: warning: passing argument 3 of 'xf86CheckStrOption' discards 'const' qualifier from pointer target type [enabled by default] In file included from /usr/include/xorg/xf86str.h:43:0, from /usr/include/xorg/xf86.h:44, from ../src/xf86Wacom.h:33, from ../src/wcmConfig.c:24: /usr/include/xorg/xf86Opt.h:87:24: note: expected 'char *' but argument is of type 'const char *' Signed-off-by: Jason Gerecke Reviewed-by: Chris Bagwell Reviewed-by: Peter Hutterer commit b798ae8012a13a0dcaa903e0fdb4ad8e38106b41 Author: Jason Gerecke Date: Wed May 2 12:22:30 2012 -0700 Fix warning: Swap empty string for NULL in wcmIsAValidType ../src/wcmValidateDevice.c: In function 'wcmIsAValidType': ../src/wcmValidateDevice.c:139:2: warning: passing argument 3 of 'xf86CheckStrOption' discards 'const' qualifier from pointer target type [enabled by default] In file included from /usr/include/xorg/xf86str.h:43:0, from /usr/include/xorg/xf86.h:44, from ../src/xf86Wacom.h:33, from ../src/wcmValidateDevice.c:23: /usr/include/xorg/xf86Opt.h:87:24: note: expected 'char *' but argument is of type 'const char *' Signed-off-by: Jason Gerecke Reviewed-by: Chris Bagwell Reviewed-by: Peter Hutterer commit afac3b0430386d92d31623b065e9ed206e9cdcdd Author: Jason Gerecke Date: Wed May 2 12:20:23 2012 -0700 Fix warning: Swap empty string for NULL in wcmNeedAutoHotplug ../src/wcmValidateDevice.c: In function 'wcmNeedAutoHotplug': ../src/wcmValidateDevice.c:574:2: warning: passing argument 3 of 'xf86CheckStrOption' discards 'const' qualifier from pointer target type [enabled by default] In file included from /usr/include/xorg/xf86str.h:43:0, from /usr/include/xorg/xf86.h:44, from ../src/xf86Wacom.h:33, from ../src/wcmValidateDevice.c:23: /usr/include/xorg/xf86Opt.h:87:24: note: expected 'char *' but argument is of type 'const char *' Signed-off-by: Jason Gerecke Reviewed-by: Chris Bagwell Reviewed-by: Peter Hutterer commit de33b3dffbb959ec77c9bd89c7d9d3e7a8451c15 Author: Jason Gerecke Date: Wed May 2 12:18:17 2012 -0700 Fix warning: Swap empty string for NULL in wcmIsDuplicate ../src/wcmValidateDevice.c: In function 'wcmIsDuplicate': ../src/wcmValidateDevice.c:85:2: warning: passing argument 3 of 'xf86CheckStrOption' discards 'const' qualifier from pointer target type [enabled by default] In file included from /usr/include/xorg/xf86str.h:43:0, from /usr/include/xorg/xf86.h:44, from ../src/xf86Wacom.h:33, from ../src/wcmValidateDevice.c:23: /usr/include/xorg/xf86Opt.h:87:24: note: expected 'char *' but argument is of type 'const char *' Signed-off-by: Jason Gerecke Reviewed-by: Chris Bagwell Reviewed-by: Peter Hutterer commit cff344b105318854ae2b0a9dec3684be38c5ae02 Author: Jason Gerecke Date: Wed May 2 12:16:16 2012 -0700 Fix warning: Swap empty strings for NULL in wcmCheckSource Also cleans up variable scope. ../src/wcmValidateDevice.c: In function 'wcmCheckSource': ../src/wcmValidateDevice.c:37:2: warning: passing argument 3 of 'xf86CheckStrOption' discards 'const' qualifier from pointer target type [enabled by default] In file included from /usr/include/xorg/xf86str.h:43:0, from /usr/include/xorg/xf86.h:44, from ../src/xf86Wacom.h:33, from ../src/wcmValidateDevice.c:23: /usr/include/xorg/xf86Opt.h:87:24: note: expected 'char *' but argument is of type 'const char *' ../src/wcmValidateDevice.c:52:4: warning: passing argument 3 of 'xf86CheckStrOption' discards 'const' qualifier from pointer target type [enabled by default] In file included from /usr/include/xorg/xf86str.h:43:0, from /usr/include/xorg/xf86.h:44, from ../src/xf86Wacom.h:33, from ../src/wcmValidateDevice.c:23: /usr/include/xorg/xf86Opt.h:87:24: note: expected 'char *' but argument is of type 'const char *' Signed-off-by: Jason Gerecke Reviewed-by: Chris Bagwell Reviewed-by: Peter Hutterer commit d691c978d695c2b4882b4ba3e02178bd3aacddb3 Author: Jason Gerecke Date: Wed May 2 12:08:28 2012 -0700 Fix warning: Constify 'name' argument of InitWcmAtom ../src/wcmXCommand.c: In function 'InitWcmDeviceProperties': ../src/wcmXCommand.c:175:3: warning: passing argument 2 of 'InitWcmAtom' discards 'const' qualifier from pointer target type [enabled by default] ../src/wcmXCommand.c:121:13: note: expected 'char *' but argument is of type 'const char *' ../src/wcmXCommand.c:179:2: warning: passing argument 2 of 'InitWcmAtom' discards 'const' qualifier from pointer target type [enabled by default] ../src/wcmXCommand.c:121:13: note: expected 'char *' but argument is of type 'const char *' ../src/wcmXCommand.c:186:3: warning: passing argument 2 of 'InitWcmAtom' discards 'const' qualifier from pointer target type [enabled by default] ../src/wcmXCommand.c:121:13: note: expected 'char *' but argument is of type 'const char *' ../src/wcmXCommand.c:194:2: warning: passing argument 2 of 'InitWcmAtom' discards 'const' qualifier from pointer target type [enabled by default] ../src/wcmXCommand.c:121:13: note: expected 'char *' but argument is of type 'const char *' ../src/wcmXCommand.c:197:2: warning: passing argument 2 of 'InitWcmAtom' discards 'const' qualifier from pointer target type [enabled by default] ../src/wcmXCommand.c:121:13: note: expected 'char *' but argument is of type 'const char *' ../src/wcmXCommand.c:201:3: warning: passing argument 2 of 'InitWcmAtom' discards 'const' qualifier from pointer target type [enabled by default] ../src/wcmXCommand.c:121:13: note: expected 'char *' but argument is of type 'const char *' ../src/wcmXCommand.c:205:2: warning: passing argument 2 of 'InitWcmAtom' discards 'const' qualifier from pointer target type [enabled by default] ../src/wcmXCommand.c:121:13: note: expected 'char *' but argument is of type 'const char *' ../src/wcmXCommand.c:209:2: warning: passing argument 2 of 'InitWcmAtom' discards 'const' qualifier from pointer target type [enabled by default] ../src/wcmXCommand.c:121:13: note: expected 'char *' but argument is of type 'const char *' ../src/wcmXCommand.c:212:2: warning: passing argument 2 of 'InitWcmAtom' discards 'const' qualifier from pointer target type [enabled by default] ../src/wcmXCommand.c:121:13: note: expected 'char *' but argument is of type 'const char *' ../src/wcmXCommand.c:216:3: warning: passing argument 2 of 'InitWcmAtom' discards 'const' qualifier from pointer target type [enabled by default] ../src/wcmXCommand.c:121:13: note: expected 'char *' but argument is of type 'const char *' ../src/wcmXCommand.c:220:2: warning: passing argument 2 of 'InitWcmAtom' discards 'const' qualifier from pointer target type [enabled by default] ../src/wcmXCommand.c:121:13: note: expected 'char *' but argument is of type 'const char *' ../src/wcmXCommand.c:225:2: warning: passing argument 2 of 'InitWcmAtom' discards 'const' qualifier from pointer target type [enabled by default] ../src/wcmXCommand.c:121:13: note: expected 'char *' but argument is of type 'const char *' ../src/wcmXCommand.c:228:2: warning: passing argument 2 of 'InitWcmAtom' discards 'const' qualifier from pointer target type [enabled by default] ../src/wcmXCommand.c:121:13: note: expected 'char *' but argument is of type 'const char *' ../src/wcmXCommand.c:234:2: warning: passing argument 2 of 'InitWcmAtom' discards 'const' qualifier from pointer target type [enabled by default] ../src/wcmXCommand.c:121:13: note: expected 'char *' but argument is of type 'const char *' ../src/wcmXCommand.c:238:3: warning: passing argument 2 of 'InitWcmAtom' discards 'const' qualifier from pointer target type [enabled by default] ../src/wcmXCommand.c:121:13: note: expected 'char *' but argument is of type 'const char *' ../src/wcmXCommand.c:244:3: warning: passing argument 2 of 'InitWcmAtom' discards 'const' qualifier from pointer target type [enabled by default] ../src/wcmXCommand.c:121:13: note: expected 'char *' but argument is of type 'const char *' ../src/wcmXCommand.c:249:2: warning: passing argument 2 of 'InitWcmAtom' discards 'const' qualifier from pointer target type [enabled by default] ../src/wcmXCommand.c:121:13: note: expected 'char *' but argument is of type 'const char *' ../src/wcmXCommand.c:254:2: warning: passing argument 2 of 'InitWcmAtom' discards 'const' qualifier from pointer target type [enabled by default] ../src/wcmXCommand.c:121:13: note: expected 'char *' but argument is of type 'const char *' Signed-off-by: Jason Gerecke Reviewed-by: Chris Bagwell Reviewed-by: Peter Hutterer commit 3639e07e837eefe7a6820899548ef0d6eb2d0722 Author: Jason Gerecke Date: Wed May 2 12:05:35 2012 -0700 Fix warning: Remove superflous 'event' pointer in usbParseBTNEvent ../src/wcmUSB.c: In function 'usbInitToolType': ../src/wcmUSB.c:1378:30: warning: cast discards '__attribute__((const))' qualifier from pointer target type [-Wcast-qual] Signed-off-by: Jason Gerecke Reviewed-by: Chris Bagwell Reviewed-by: Peter Hutterer commit 39145f819b745fe0122e70d0686d3b4dbf80cca1 Author: Jason Gerecke Date: Wed May 2 11:52:06 2012 -0700 Fix warning: Constify _WacomCommonRec.device_path ../src/wcmConfig.c: In function 'wcmPreInit': ../src/wcmConfig.c:507:26: warning: assignment discards 'const' qualifier from pointer target type [enabled by default] Signed-off-by: Jason Gerecke Reviewed-by: Chris Bagwell Reviewed-by: Peter Hutterer commit 912ed64c594bfc03b99b693df32fe3fa6a9c82c3 Author: Jason Gerecke Date: Wed May 2 11:41:12 2012 -0700 Fix warning: Change default_options to be const ../src/wcmConfig.c: At top level: ../src/wcmConfig.c:212:2: warning: initialization discards 'const' qualifier from pointer target type [enabled by default] ../src/wcmConfig.c:212:2: warning: initialization discards 'const' qualifier from pointer target type [enabled by default] ../src/wcmConfig.c:213:2: warning: initialization discards 'const' qualifier from pointer target type [enabled by default] ../src/wcmConfig.c:213:2: warning: initialization discards 'const' qualifier from pointer target type [enabled by default] ../src/wcmConfig.c:214:2: warning: initialization discards 'const' qualifier from pointer target type [enabled by default] ../src/wcmConfig.c:214:2: warning: initialization discards 'const' qualifier from pointer target type [enabled by default] ../src/wcmConfig.c:215:2: warning: initialization discards 'const' qualifier from pointer target type [enabled by default] ../src/wcmConfig.c:215:2: warning: initialization discards 'const' qualifier from pointer target type [enabled by default] ../src/wcmConfig.c:216:2: warning: initialization discards 'const' qualifier from pointer target type [enabled by default] ../src/wcmConfig.c:216:2: warning: initialization discards 'const' qualifier from pointer target type [enabled by default] ../src/wcmConfig.c:217:2: warning: initialization discards 'const' qualifier from pointer target type [enabled by default] ../src/wcmConfig.c:217:2: warning: initialization discards 'const' qualifier from pointer target type [enabled by default] Signed-off-by: Jason Gerecke Reviewed-by: Chris Bagwell Reviewed-by: Peter Hutterer commit 706d2a77396d9c912e1d9157359e07923c8c718b Author: Jason Gerecke Date: Wed May 2 11:19:04 2012 -0700 Fix warning: Have wcmEventAutoDevProbe return const ../src/xf86Wacom.c: In function 'wcmEventAutoDevProbe': ../src/xf86Wacom.c:527:5: warning: return discards 'const' qualifier from pointer target type [enabled by default] Signed-off-by: Jason Gerecke Reviewed-by: Chris Bagwell Reviewed-by: Peter Hutterer commit 1d203a20bd21f8bdb22e36e93b67b651dd73743c Author: Jason Gerecke Date: Wed May 2 11:10:10 2012 -0700 Fix warning: Remove superflous casts in getScrollDelta ../src/wcmCommon.c: In function 'getScrollDelta': ../src/wcmCommon.c:333:13: warning: cast from function call of type 'double' to non-matching type 'int' [-Wbad-function-cast] ../src/wcmCommon.c:334:9: warning: cast from function call of type 'double' to non-matching type 'int' [-Wbad-function-cast] ../src/wcmCommon.c:335:10: warning: cast from function call of type 'double' to non-matching type 'int' [-Wbad-function-cast] Signed-off-by: Jason Gerecke Reviewed-by: Chris Bagwell Reviewed-by: Peter Hutterer commit 2adab89eb2c73b7806aade5b422adba4056d8fd8 Author: Ping Cheng Date: Mon May 14 16:56:02 2012 -0700 Add 0xED and 0xEF Signed-off-by: Ping Cheng Signed-off-by: Peter Hutterer commit 7ee27fee0741cc756dfd20a60afb3de1c9e0ed1b Author: Peter Hutterer Date: Wed May 2 14:22:27 2012 +1000 conf: add Intuos4 WL (PTK-540WL) to fdi file 4709394d76267df05f8dfa7f13e6beb1f9c7394f added it to the xorg.conf.d snippet. For those stuck on HAL add it to the fdi file too. Signed-off-by: Peter Hutterer Reviewed-by: Przemo Firszt commit 904443623df7f293f6d87e85e0b808183afe67c9 Author: Jason Gerecke Date: Wed May 2 10:25:01 2012 -0700 wacom 0.15.0 Signed-off-by: Jason Gerecke commit 311be3952d3557720bbb5e0203066ca1864f74ef Author: Jason Gerecke Date: Tue Apr 24 11:40:58 2012 -0700 wacom 0.14.99.1 Signed-off-by: Jason Gerecke commit 5fab61b10aabdc5b5461798f9002669adf18f263 Author: Adam Nielsen Date: Wed Apr 11 16:13:08 2012 +1000 Add support for the DTI-520 Signed-off-by: Adam Nielsen Signed-off-by: Peter Hutterer commit 35d855025bb26e0a2daac9b08b4ea868512fb9ab Author: Jason Gerecke Date: Tue Mar 6 14:10:00 2012 -0800 Add support for the Intuos5 Signed-off-by: Jason Gerecke Reviewed-by: Chris Bagwell commit 466b119b12a0e149a3b79a031878e04d89c628c4 Author: Jason Gerecke Date: Tue Apr 3 13:13:22 2012 -0700 Fix off-by-one error in xsetwacom's button handling Signed-off-by: Jason Gerecke Reviewed-by: Chris Bagwell commit 52a795d2fb1fee5b13e95a2c7089dd87c37d2ea8 Author: Nikolai Kondrashov Date: Wed Mar 21 22:27:22 2012 +0200 conf: Only match tablet Waltop devices Only match Waltop event devices classified as tablets. Advanced Waltop tablets have on-the-frame controls such as multifunction dials (controlling scrolling, zooming, volume and keyboard navigation) and keyboard modifier buttons. These are represented as separate event devices and are better handled by xf86-input-evdev. Signed-off-by: Nikolai Kondrashov Reviewed-by: Peter Hutterer Signed-off-by: Peter Hutterer commit 5e0c6ff52e9fb25e0fcd8228992ffc7a41b1db8e Author: Peter Hutterer Date: Wed Mar 21 15:36:47 2012 +1000 Don't dereference priv before checking it for NULL Signed-off-by: Peter Hutterer Reviewed-by: Ping Cheng commit d23809af1613a93ad5b68623cadd4d122da32820 Author: Peter Hutterer Date: Wed Mar 21 15:36:04 2012 +1000 Plug minor memory leak Signed-off-by: Peter Hutterer Reviewed-by: Ping Cheng commit 99a9542cb14b763ddf417c71d4966f80eda417fe Author: Peter Hutterer Date: Wed Mar 21 15:34:06 2012 +1000 Avoid buffer overrun Signed-off-by: Peter Hutterer Reviewed-by: Ping Cheng commit f0e338a4bb54d69a0c83207651efb739d843a469 Author: Peter Hutterer Date: Wed Mar 21 15:32:55 2012 +1000 Don't pass NULL to fclose(3) Signed-off-by: Peter Hutterer Reviewed-by: Ping Cheng commit 8b59c9ff369c1b148f716dbc6234ead68311fa21 Author: Peter Hutterer Date: Wed Mar 21 15:29:56 2012 +1000 Fix broken NULL check This check was ok until 7958bb9b1ddef9e8238615fd1b3d15996f00effe, when more code was moved here and it made no sense this way anymore. Change it to return early in the case of NULL allocation. Signed-off-by: Peter Hutterer Reviewed-by: Ping Cheng commit 61146662a1c3ffff87b71506f3f0c06a18a069a6 Author: Peter Hutterer Date: Wed Mar 21 15:28:17 2012 +1000 Check ioctl return value Really, this shouldn't ever fail but at least it shuts up some static analysers. Signed-off-by: Peter Hutterer Reviewed-by: Ping Cheng commit fe2d108dbd2d0769e314a32c9b11376919adcea6 Author: Jason Gerecke Date: Wed Mar 14 12:24:04 2012 -0700 Don't share names of action atoms across properties The names of action atoms are currently created without regard to the property they will be stored in. This results in both e.g. button 1 and StripLeftUp using atoms with the name "Wacom button action 1". When setting either button 1 or StripLeftUp, we ask the server for an atom named "Wacom button action 1" and in both cases receive the *same* atom. This means button 1 is nothing more than an alias for StripLeft up (and similarly for the other actions which share the same name). This patch uses the name of the property the action will be stored in as the prefix to prevent this aliasing from occuring. commit 220d3fb0bc1cbc9cee4f771f310c36cb07d7af68 Author: Peter Hutterer Date: Thu Mar 15 08:05:27 2012 +1000 man: fix typo in xsetwacom man page Signed-off-by: Peter Hutterer commit 2ec45ba39ad5c43e97e8ed02e37ebbdc3f41668c Author: Jason Gerecke Date: Fri Mar 9 18:17:58 2012 -0800 wacom 0.14.0 Signed-off-by: Jason Gerecke commit c2c1a42d4dd97b26dee395b5911bee209fddf030 Author: Jason Gerecke Date: Tue Mar 6 16:33:31 2012 -0800 wacom 0.13.99.2 Signed-off-by: Jason Gerecke commit 8e22ba6d8cfe9a21ea40b959152318efe8e0b338 Author: Colin Walters Date: Fri Mar 2 07:24:17 2012 +1000 wcmXCommand: Fix invalid array size for serial values. Introduced in c21b6876b435bb34112956716fea14477ef9e8d7 Signed-off-by: Peter Hutterer Reviewed-by: Jason Gerecke commit 60b4c868ac5baf5dba82c8c9146dfac068c06eef Merge: e7564c941e8a 28abd26ba937 Author: Jason Gerecke Date: Thu Mar 1 09:48:50 2012 -0800 Merge branch 'master' of git://people.freedesktop.org/~whot/xf86-input-wacom commit 28abd26ba9379004db8667eaa2fcd2aa0b3d6fc4 Author: Peter Hutterer Date: Tue Feb 28 11:27:28 2012 +1000 xsetwacom: fix compiler warning xsetwacom.c: In function ‘set_output’: xsetwacom.c:2359:6: warning: variable ‘success’ set but not used [-Wunused-but-set-variable] Signed-off-by: Peter Hutterer Reviewed-by: Jason Gerecke commit 6a862efd7f3d8504b600e9d67c2b9b43e41ee8d5 Author: Peter Hutterer Date: Tue Feb 28 11:18:12 2012 +1000 xsetwacom: re-add ToolID with the current tool ID in proximity Signed-off-by: Peter Hutterer Reviewed-by: Jason Gerecke commit ef11021997c850d0d3e579777468ec6d52f28f20 Author: Peter Hutterer Date: Tue Feb 28 11:16:57 2012 +1000 xsetwacom: ToolID is actually ToolType ToolID should be the ID of the tool in proximity. Signed-off-by: Peter Hutterer Reviewed-by: Jason Gerecke commit c21b6876b435bb34112956716fea14477ef9e8d7 Author: Peter Hutterer Date: Wed Feb 22 16:52:52 2012 +1000 Export current tool ID in the property too Previously, we exported old serial number, old tool ID and current serial number. Export the current tool ID as well. Signed-off-by: Peter Hutterer Reviewed-by: Chris Bagwell Tested-by: Bastien Nocera commit e7564c941e8ac5ab9549332730844b2380b9e641 Author: Jason Gerecke Date: Wed Feb 29 15:24:31 2012 -0800 wacom 0.13.99.1 Signed-off-by: Jason Gerecke commit 00b784202448dfc8f1e142c3745053ae1e82b042 Author: Jason Gerecke Date: Wed Feb 29 15:12:27 2012 -0800 Change return type of 'test_flag_set' to void Compiler complains that nothing is being returned, but nothing *should* be returned. commit 632134f4697935ada00d72bc19286f551b42da53 Author: Jason Gerecke Date: Fri Feb 10 12:00:03 2012 -0800 Extend length of wheel_actions array to 6 This array was apparently overlooked when adding support for the second touch ring present on the 24HD. Signed-off-by: Jason Gerecke Reviewed-by: Chris Bagwell commit 45fd72c9031ed88e4af26b43cbb51d1c64e88602 Author: Jason Gerecke Date: Thu Dec 22 13:41:43 2011 -0800 Remove AC_CORE status print Flag is deprecated, has no effect, and serves no purpose anymore. Remove from the DBG statement. Signed-off-by: Jason Gerecke Reviewed-by: Peter Hutterer commit 6240c226ef429ade3926be0a65341117de2b24e5 Author: Jason Gerecke Date: Thu Feb 9 11:07:39 2012 -0800 Check for appropriate number of properties when setting buttons Commit 7e92aca6 changed the length of the Wacom Button Actions property to be dynamically calculated, but did not take this into account for the property setter (preventing xsetwacom from updating them). This patch replaces the constant length with an identical calculation to ensure we check for the proper size. Signed-off-by: Jason Gerecke Reviewed-by: Peter Hutterer commit 5a2221de13f73c7edbe4221909225ef5c7c5c18a Author: Jason Gerecke Date: Tue Feb 7 10:57:05 2012 -0800 Remove redundant redeclaration of 'wcmInitialScreens' From GCC: In file included from ../src/xf86Wacom.c:46:0: ../src/xf86Wacom.h:147:13: warning: redundant redeclaration of 'wcmInitialScreens' [-Wredundant-decls] ../src/xf86Wacom.h:146:13: note: previous declaration of 'wcmInitialScreens' was here Signed-off-by: Jason Gerecke Reviewed-by: Peter Hutterer commit 4709394d76267df05f8dfa7f13e6beb1f9c7394f Author: Przemo Firszt Date: Fri Feb 10 17:55:16 2012 +0000 Add Wacom Intuos4 Wireless to 50-wacom.conf Intuos4 Wireless doesn't match list of devices in 50-wacom.conf, so evdev was taking over. This patch fixes it, so now wacom driver is used fo Intuoe4 WL PTK-540WL Signed-off-by: Przemo Firszt Signed-off-by: Peter Hutterer commit 96a2e90c0f6a727fe6942c7b8f05b37167a10ab1 Author: Peter Hutterer Date: Sat Feb 4 19:20:44 2012 +1000 Move some usb-specific keys to wcmUSBData. nbuttons and npadkeys is only used for USB-specific parsing, move them there. Signed-off-by: Peter Hutterer Reviewed-by: Chris Bagwell commit 7e92aca68a666499c7d6f1946cc849cfb5653ae0 Author: Peter Hutterer Date: Fri Feb 3 19:15:54 2012 +1000 Initialize button action properties for the correct button number (#45557) Previous code had the number of properties for button actions hardcoded to 16 (WCM_MAX_MOUSE_BUTTONS). Drop that define and instead initialize the same number of properties that we have on the device as well. X.Org Bug 45557 Signed-off-by: Peter Hutterer Reviewed-by: Chris Bagwell commit b6fd73d4f79b4731caee4dc72e9f6fcecd2b5161 Author: Peter Hutterer Date: Fri Feb 3 19:21:28 2012 +1000 Compress button counting statement No functional change, just compressing several lines into one. Signed-off-by: Peter Hutterer Reviewed-by: Chris Bagwell commit bc7db7f1ef57beab2a149ca9589cea08f5e69af2 Author: David Foley Date: Sun Jan 29 11:18:43 2012 -0600 man.wacom: Fix typo in Touch Gestures. Fix initiates typo in TOUCH GESTURES' Vertical scroll. Signed-off-by: David Foley Signed-off-by: Peter Hutterer commit 16749eb2d82166a3389fe6209c654bb1fce2e639 Author: David Foley Date: Thu Jan 26 13:10:23 2012 -0600 man.wacom: Add gesture description. Add description of the touch gestures to the wacom manual. Signed-off-by: David Foley Signed-off-by: Peter Hutterer commit dbc25fa4fd86af7ccd42af04e6360dfdd0336735 Author: Peter Hutterer Date: Thu Jan 12 13:40:27 2012 +1000 Allow for a threshold of -1 to reset to the built-in default (#43221) This switches interpretation of the property from unsigned to signed. Not a big deal, since the maximum value has always been 2048 anyway and on 32-bit that doesn't actually change anything. X.Org Bug 43221 Signed-off-by: Peter Hutterer Reviewed-by: Ping Cheng commit 09b1aa6538cd48e20928da9a835999dfc851f62c Author: Peter Hutterer Date: Tue Jan 10 11:55:14 2012 +1000 Fix wrong check for configdir We care about configdir, not sysconfigdir. Otherwise, --with-config-dir="" on a server that does support xorg.conf.d has no effect and the fdi files do not get installed. Signed-off-by: Peter Hutterer Acked-by: Ping Cheng commit 8a8931cc77babbd84a4ec7a1df04e995aaa1e980 Author: Jason Gerecke Date: Mon Jan 16 10:03:10 2012 -0800 wacom 0.13.0 Signed-off-by: Jason Gerecke commit a94a6fbaa5bde44d1d6fc2f33f56d6ffddefca75 Author: Peter Hutterer Date: Fri Jan 6 13:26:19 2012 +1000 release.sh: set announces' Reply-To to the linuxwacom-discuss Signed-off-by: Peter Hutterer commit 933905070d6fd6e438b7a5ff445570e1fad1e70a Author: Jason Gerecke Date: Tue Jan 3 09:29:51 2012 -0800 wacom 0.12.99.1 Signed-off-by: Jason Gerecke commit 5ca665dd77b074d95fd0d9191f544b022eaaddd8 Author: Alexey Osipov Date: Tue Jan 3 15:13:48 2012 +0700 'Left mouse button' dragging support. First, we define two new GESTURE_ modes: - GESTURE_PREDRAG_MODE - when first tap happen and we wait for second touch. - GESTURE_DRAG_MODE - when actual drag happening (left button pressed). Second, we define tap timeout function wcmSingleFingerTapTimer(), which simulate single click if no drag operation started within timeout. Third, we make an exception for GESTURE_DRAG_MODE in wcmCommon.c, because we actually want cursor movements while dragging. This exception is made through new function wcmTouchNeedSendEvents(). Now, to do a single tap you just tap (touch and untouch). Actual click happens after TapTime period. To drag something you make a tap (touch and untouch) and then quickly (in TapTime period) touch device again. Then drag. Signed-off-by: Alexey Osipov Reviewed-by: Chris Bagwell commit 1c5c25d7b4a4ce0686f6a088d282e437dbadadfe Author: Alexey Osipov Date: Tue Jan 3 15:13:45 2012 +0700 Create wcmTouchFilter.h Moving declarations for touch filter from xf86Wacom.h to wcmTouchFilter.h Signed-off-by: Alexey Osipov Reviewed-by: Chris Bagwell commit a119545769f208d5722561a928a93824f87cdc81 Author: Alexey Osipov Date: Tue Jan 3 15:13:42 2012 +0700 Fix cursor jumping after zoom and scroll gestures when in Relative mode. When touchpad is in Relative mode of operation, we need allow driver update internal old{x,y,z} variables to eliminate cursor jump after gesture ended. That update performed in wcmSendEvents() function in wcmCommon.c. So, when we in gesture mode, allow call wcmSendEvents() to update variables, but don't allow actual events sending to X server. Unnecessary axes modification removed from wcmSendButtonClick() in wcmTouchFilter.c, which was causing cursor movement in Absolute mode while gestures are active with respect to above changes. Call to xf86PostButtonEvent() replaced by call to xf86PostButtonEventP(). Signed-off-by: Alexey Osipov Reviewed-by: Chris Bagwell commit 7a7af3eb1c5e809aa7020795b3c170f6360d6c5f Author: Alexey Osipov Date: Tue Jan 3 15:13:38 2012 +0700 Extra right clicks removed. As right click performed with second finger, then we only interested in second finger touch when trying to match 'right click' gesture. Signed-off-by: Alexey Osipov Reviewed-by: Chris Bagwell Acked-by: Ping Cheng commit ba851feb1a5f28ff3e68ef07bc84a7d75e3444ea Author: Jason Gerecke Date: Fri Dec 30 09:26:00 2011 -0800 Remove testing code This bit of code slipped in between v4 and v5 of the "add abswheel2" patch. It was testing code that was never intended to be part of the 24HD patch set, and wasn't caught until too late. Signed-off-by: Jason Gerecke commit 3989bdb4b42cbd44f7dd99b244eeb4d1618a7ff3 Author: Jason Gerecke Date: Wed Dec 21 13:13:11 2011 -0800 Expose the second touch ring's raw value in a new 7th valuator This patch expands the number of valuators reported by devices to seven. The new seventh valuator reports the raw value provided from the kernel for the second touch ring. Signed-off-by: Jason Gerecke Reviewed-by: Peter Hutterer Reviewed-by: Chris Bagwell commit 7e3b2b9223629119472469569a2e23150e5c0c68 Author: Jason Gerecke Date: Wed Dec 21 09:30:22 2011 -0800 Have the second touch ring emulate wheel events by default Touch strips as well as the first touch ring are set up to emulate mouse wheel events by default. This patch duplicates this behavior for the second touch ring, so that it behaves in an identical manner. Signed-off-by: Jason Gerecke Reviewed-by: Peter Hutterer commit ced9465599434c68fa40210aa890970386a08b84 Author: Jason Gerecke Date: Mon Oct 17 17:11:19 2011 -0700 Add 'abswheel2' to device state for dual-ring devices This patch adds an 'abswheel2' field to the _WacomDeviceState structure, along with corresponding 'oldWheel2' field to the _WacomDeviceRec structure. These fields store the state of the second touch ring on dual-ring devices such as the Cintiq 24HD. Signed-off-by: Jason Gerecke Reviewed-by: Chris Bagwell Reviewed-by: Peter Hutterer commit fe1dc1753010809a7741f05784b5abe9d2ee5cff Author: Jason Gerecke Date: Mon Dec 12 09:20:31 2011 -0800 Add basic support for Cintiq 24HD Adds the Cintiq 24HD (056a:00f4) to the device lists. The 24HD has two features not found on prior tablets: three capacitive buttons, and a second touch ring. Subsuquent patches will address adding support for them. Signed-off-by: Jason Gerecke Reviewed-by: Chris Bagwell Reviewed-by: Peter Hutterer commit 477a261ef79172d6378613fc4cab0026ed49d02f Author: Jason Gerecke Date: Wed Dec 21 09:26:46 2011 -0800 De-duplicate code for wheel/strip scrolling Replaces sendWheelStripEvents and getWheelButton with several small functions to reduce unnecessary code duplication. As a side-effect, it is now possible for the driver to handle simultaneous scrolls on multiple axes. Previously, getWheelButton would go through all the axes but was limited to returning a single button/action. Signed-off-by: Jason Gerecke Reviewed-by: Peter Hutterer commit a60e59a4730d6a11f999085aa8754fd0de5dfbaf Author: Peter Hutterer Date: Mon Dec 19 13:18:03 2011 +1000 test: fix linker error 'input_option_new' undefined We need a copy of it in the driver. This is just the one the driver uses for pre-ABI 14 compatibility, we don't need the server's exact copy since we're not testing that API (that's the server's job), only our use of the API. Signed-off-by: Peter Hutterer Reviewed-by: Chris Bagwell Reviewed-by: Jason Gerecke commit d54d936146fa58fb10a1b6839e1413671f96f86e Author: Peter Hutterer Date: Mon Dec 19 13:01:35 2011 +1000 test: add more #defines to fix build issues. sigh, upstream changed the option function prototypes without bumping the ABI. This is the best we can do, though there will be a period between the actual abi bump and this commit where we get test build errors now. commit 09e4b78f7944234865f4648940453303af0c2663 Author: Alan Coopersmith Date: Mon Nov 7 19:19:47 2011 -0800 Fix gcc -Wwrite-strings warnings in xf86 ddx Signed-off-by: Peter Hutterer Reviewed-by: Chris Bagwell Reviewed-by: Jason Gerecke commit 388c2630881d74b10bcd0aad57796c9e09341471 Author: Peter Hutterer Date: Mon Dec 19 12:59:53 2011 +1000 test: drop duplicate definition of xf86FindOptionValue Signed-off-by: Peter Hutterer Reviewed-by: Chris Bagwell Reviewed-by: Jason Gerecke commit c6dba3dab054be19921a11f8ee38f847e4ef8962 Author: Chris Bagwell Date: Tue Nov 22 20:18:44 2011 -0600 Remove wcmTapTimeDefault variable Its not really needed anymore. The whole *Default variable concept is at least partially related to historically the PAD device was Init'ed before the TOUCH device on Bamboo's but that is no longer true. And since the TOUCH device is now Init'ed before PAD, when PAD got Init'ed, wcmTapTimeDefault would override Touch's TapTime value; probably not what user wanted. For times *Default was really useful, I think wcmPostInitParseOption() is probably a better replacement concept. I'll slowly remove these *Defaults as I have time to test each behavior. Signed-off-by: Chris Bagwell Reviewed-by: Jason Gerecke commit b0aab508269acb3a8bf9e6699a4a283f374e8488 Author: Chris Bagwell Date: Tue Nov 22 20:12:21 2011 -0600 default gesture distance values based on hw maximums 2 finger Gestures will start working on a wider range of hardware with different resolutions now. Signed-off-by: Chris Bagwell Reviewed-by: Jason Gerecke commit f9fe7c7b74418378a5fc09a03c2da381a87b4561 Author: Chris Bagwell Date: Mon Nov 21 21:52:28 2011 -0600 Break option parsing into two init phases This is ground work to allow much easier overriding of default values for case were exact default value is not known until after init phase (for example, if default value depends on resolution of hardware which is not known until after init phase). Signed-off-by: Chris Bagwell Reviewed-by: Jason Gerecke commit 31dbd9fc9fdd3691d9ef43c707ecc780e0c62d24 Author: Jason Gerecke Date: Mon Nov 14 11:43:56 2011 -0800 xf86-input-wacom 0.12.0 Signed-off-by: Jason Gerecke commit 22a26f34ba4f47a648cd01d87aa649033db2e1e1 Author: Jason Gerecke Date: Mon Nov 14 11:12:00 2011 -0800 Fix include reference to wacom-util.h Running "make distcheck" fails under the quoted path. Signed-off-by: Jason Gerecke commit e4aa352f0ded30fcc3ec90a187957f6f8920fd8e Author: Jason Gerecke Date: Mon Nov 14 16:52:35 2011 -0800 Have usbInitToolType return the old tool type if available If the tool was not specified within an event packet, the usbInitToolType function would return TOUCH_ID. This caused problems for combined pen+touch devices when the pen was in range, since only the first packet (which explicitely specified the STYLUS tool) would not be filtered as "single touch" data. This patch passes along the old tool type, so that if no tool is found in the current packet, the old tool type may be adopted. Signed-off-by: Jason Gerecke Reviewed-by: Chris Bagwell commit f7c0a64bf6550ac8ada19345bd03916bd4aa8890 Author: Jason Gerecke Date: Mon Nov 14 13:04:24 2011 -0800 Fix usbInitToolType to not always return TOUCH_ID Commit ca922994 changed usbInitToolType to use the tool TOUCH_ID by default. Because of the way the 'for' loop just below is handled though, the function would never return anything but TOUCH_ID. This patch changes things to only return TOUCH_ID if no data for an alternate tool type could be found in the event packets. Signed-off-by: Jason Gerecke Reviewed-by: Chris Bagwell commit 20958f84eef0b40f91e4559099f342f28650c183 Author: Jason Gerecke Date: Wed Oct 26 12:33:48 2011 -0700 Use xf86PostButtonEventP for held button action releases It appears that commit 485137ef partially missed this particular call in its mass-migration away from xf86PostButtonEvent. This results in the pointer jumping away from the correct location when a held button action is finally released. It is most noticible when the action "button +1" is assigned to the stylus or eraser and a window is dragged. Signed-off-by: Jason Gerecke Reviewed-by: Peter Hutterer commit 2f233f62544f9419a6f12e201d09189339f7c1d2 Author: Jason Gerecke Date: Wed Nov 9 11:41:23 2011 -0800 Migrate Tablet(Has|Set)Feature to use the wacom-util macros In addition to consolidating code, this happens to fix a bug in the implementation of TabletHasFeature which would return true provided *any* bit of a multi-bit mask was set. Ever since 7c667678 when WCM_TPC was changed to a multi-bit mask, tablets with WCM_LCD set have been (mis-)treated as tablet PCs. Signed-off-by: Jason Gerecke Reviewed-by: Chris Bagwell commit 2c4360d7be38f242a89f2da291e075b28e0dfc51 Author: Jason Gerecke Date: Wed Nov 9 09:14:14 2011 -0800 Only convert I4 tilt bits to rotation for the I4 mouse (v2) This re-implements commit 9be9719d78af035c45ea4b191c21fab0ee54f198. Ping pointed out the device_type field that I had somehow missed when making the earlier commit. This provides essentially the same information as the IsCursor() macro that the original patch went through so much trouble to use. Signed-off-by: Jason Gerecke Reviewed-by: Peter Hutterer commit ef47fa044b6bc3949c0b8d96c665d18937da719b Author: Jason Gerecke Date: Wed Nov 9 08:59:58 2011 -0800 Revert "Only convert I4 tilt bits to rotation for the I4 mouse" This reverts commit 9be9719d78af035c45ea4b191c21fab0ee54f198. Under the right conditions, the 'tool' pointer can be NULL, leading to the X server crashing. An easy way to trigger the crash is to spam pad events (such as button presses) while holding the stylus on the edge of proximity. Rather than fix this with additional checks for NULL, Ping clued me into a much more elegant (and bug-free) way to implement the check for an I4 mouse. See next patch. Signed-off-by: Jason Gerecke Reviewed-by: Peter Hutterer commit 882795767a975854f373d58a9b15a57dfa244f28 Author: Peter Hutterer Date: Fri Oct 21 16:22:53 2011 +1000 Deal with opaque InputOption in ABI 14 Input ABI 14 makes the InputOption struct opaque, so use the new API provided (and wrap for older ABIs). Signed-off-by: Peter Hutterer commit 5cdd524f9986bc8bc628d953379c5eb8c0003c9b Author: Jason Gerecke Date: Sun Oct 30 20:13:51 2011 -0700 wacom 0.11.99.1 Signed-off-by: Jason Gerecke commit ee6abf754d08b6b073c2494353db68b7275fdac3 Author: Jason Gerecke Date: Thu Oct 20 16:59:46 2011 -0700 Add 0x10804 to recognized Art Pen device IDs Intuos4 Art Pens may have an ID of 0x10804 for their tip and 0x1080C for their eraser. There may be other IDs which need matching as well, but that is a "to investigate" item for the moment. Note that due to a mostly-benign issue in the kernel driver, the highest nybble of the ID is placed one nybble *too* high. Until a proper fix is made and tested for the kernel, we need to check for an ID of "0x100804" instead of "0x10804". Signed-off-by: Jason Gerecke Signed-off-by: Peter Hutterer commit 64f72480396f4398f0ad03aabc7b570d606c290c Author: Jason Gerecke Date: Thu Oct 20 16:59:45 2011 -0700 Correct Cintiq 21UX2 features to advertise touch strips, not rings Moves the 0xCC case (21UX2) to be in the proper spot. There are touch strips, not rings on this device. Signed-off-by: Jason Gerecke Signed-off-by: Peter Hutterer commit 9be9719d78af035c45ea4b191c21fab0ee54f198 Author: Jason Gerecke Date: Thu Oct 20 16:59:44 2011 -0700 Only convert I4 tilt bits to rotation for the I4 mouse The comment claims that the conversion is to be performed for the I4 mouse only, but doesn't actually check to see if the tool is indeed a mouse. This patch adds in the necessary check, allowing the I4 stylus to properly report tilt data. Signed-off-by: Jason Gerecke Signed-off-by: Peter Hutterer commit fff28802c2a803525d30cb8cb27c385f3e589f8a Author: Ping Cheng Date: Wed Oct 19 17:01:08 2011 -0700 Process pressure only when it is supported normalizePressure crashes if wcmMaxZ is 0. Signed-off-by: Ping Cheng Acked-by: Chris Bagwell Signed-off-by: Peter Hutterer commit 8a803975522bbb94e7df41c806dd2a573f058585 Author: Peter Hutterer Date: Tue Aug 23 14:23:31 2011 +1000 Handle ABI 14 option types Signed-off-by: Peter Hutterer commit 5544d3aeec362f09d2a68b10834f2be31c7bd1f0 Author: Eduard Hasenleithner Date: Sun Oct 9 15:22:19 2011 +0200 Make InitWcmAtom support arbitrary property types InitWcmAtom could only create properties of type XA_INTEGER or XA_ATOM. This commit adds support for any atom type by means of adding a type parameter to InitWcmAtom. All instances of InitWcmAtom use are adapted to the new parameters. This is a preparation for a new parameter of type XA_PIXMAP needed for the upcoming OLED commit. Signed-off-by: Eduard Hasenleithner Signed-off-by: Peter Hutterer commit 594deceed76e46617838dab2560ecbdf6b42421d Author: Thomas Jaeger Date: Sun Oct 9 12:18:19 2011 -0400 Exit gesture mode when pen comes in range Otherwise, the driver will be in an unusable state until the pen is lifted and the user touches the device. Signed-off-by: Thomas Jaeger Reviewed-by: Chris Bagwell Signed-off-by: Peter Hutterer commit 705c6df5a75e3408b048d15cadd1652124767893 Author: Eduard Hasenleithner Date: Sun Oct 9 15:01:43 2011 +0200 Fixing format strings in list_mod Two printf calls in xsetwacom.c were using a "%d" for output of an expression of type size_t. Changing format string to use correct "%zd" in order to avoid the format string warning at compile time: xsetwacom.c:787:2: warning: format '%d' expects argument of type 'int', but argument 2 has type 'long unsigned int' [-Wformat] Signed-off-by: Eduard Hasenleithner Signed-off-by: Peter Hutterer commit c0504a80c5b94323072326e0b1d78ed2378817e7 Author: Jason Gerecke Date: Wed Sep 28 11:52:44 2011 -0700 Return boolean where required This particular return statement was missed in e9d9ddc3. Signed-off-by: Jason Gerecke commit f2ee4f22f2ab258f3c2cd615342c56c793835362 Author: Peter Hutterer Date: Tue Sep 20 11:25:22 2011 +1000 Move DebugLevel options up. Having them in wcmParseOptions() means we don't get debug messages until we hit wcmParseOptions(). For new devices that don't initialize (for whatever reason) this makes debugging a lot harder. Signed-off-by: Peter Hutterer Acked-by: Chris Bagwell commit e9d9ddc309746f6e8537223fcf946d434ea188c0 Author: Jason Gerecke Date: Tue Sep 27 15:47:08 2011 -0700 Have MapToOutput helpers return booleans to indicate success MapToOutput helper functions now return 'true' when they sucessfully change the transformation matrix, and 'false' otherwise. Though this information is not used at the moment, it will be used with the KeepShape patch to ensure that the active area is only modified if the output mapping occured sucessfully. commit b1f0c9ac801e48de16c6afe3bf680565a4e5c5db Author: Jason Gerecke Date: Fri Sep 9 15:44:37 2011 -0700 Have 'MapToOutput' require the keyword "desktop" to do such Instead of allowing zero arguments to map the tablet to the entire desktop, we require the use of the keyword "desktop" to accomplish this. This is to make it easier to figure out the user's intent later on when we introduce KeepShape. commit 6da898eba50a8499d770214684bd3d2d46033037 Author: Jason Gerecke Date: Fri Sep 9 15:43:29 2011 -0700 Add 'set_output_next' helper for MapToOutput Adds a helper function for MapToOutput which determines which output the device is currently mapped to, and moves to the next available output. Repeatedly calling this function will result in the device being mapped to every available output (including the desktop as a whole) in turn. commit f09def951b7bd8ca57894e15ea3a47cda96c6a00 Author: Jason Gerecke Date: Fri Sep 16 17:25:12 2011 -0700 Allow 'MapToOutput' to accept X geometry strings This patch allows the MapToOutput command to accept fully- specified X geometry strings as valid output names. The XParseGeometry function describes these strings as having the folowing format: [=][{xX}][{+-}{+-}] Strings with width, height, xoffset, and yoffset defined will be accepted and the device mapped to the rectangle it describes. This patch also renames the function '_set_matrix' to bring its naming in line with the other set_output_XXXX functions. commit d0f15345546fc9396261ceaf2268cf0ddc7b32af Author: Jason Gerecke Date: Tue Sep 6 18:13:49 2011 -0700 Have 'set_output' check and convert arguments as necessary The 'set_output' function is now responsible for parsing the command-line arguments to both determine the proper function to call, as well as converting them into a form that can be more easily used by the helper functions. This patch also breaks the RandR compatibility check out into its own function to improve readability. commit a19be46042e8e8213cc7f302429977590d0081f7 Author: Jason Gerecke Date: Fri Aug 5 10:34:20 2011 -0700 Free RandR resources more-quickly We now call XRRFreeScreenResources as soon as practical to allow the now-following logic to return at its leisure. Additionally, we also copy the data from 'crtc_info' locally and free it ASAP. commit 53633de3854f815682ca92ebf5c949a778697993 Author: Jason Gerecke Date: Fri Sep 16 17:24:16 2011 -0700 Create wacom-util.h for generally handy defines The new wacom-util.h should be the place to store defines which may be handy to use anywhere. At the moment this includes things like ARRAY_SIZE, bit manipulation, and mask manipulation defines. commit 59c54a39fae39fb580cce3c3b676d658e7ad593b Author: Peter Hutterer Date: Fri Sep 9 08:36:33 2011 +1000 Revert "make gesture distances be relative to hw maximums." Accidental push, this patch is still pending a few more modifications before it's ready. See the thread at http://sourceforge.net/mailarchive/message.php?msg_id=28006798 This reverts commit 259616580c1ef3f624d8f984f69f3991d57bbe9c. Reported-by: Chris Bagwell Signed-off-by: Peter Hutterer commit fb11287b1ca76a838e2fdde67d6267d8dd5979b4 Merge: 259616580c1e a9c7b56aa139 Author: Peter Hutterer Date: Thu Sep 8 14:14:39 2011 +1000 Merge branch 'gesture5' of git://github.com/cbagwell/xf86-input-wacom commit a9c7b56aa13992ec11b87c726699cf685857640c Author: Chris Bagwell Date: Sat Jun 25 19:38:51 2011 -0500 do not send touch button during gesture holdoffs Moved 4 different places were the touchscreen button press was done to a single location. This allows to NOT send a button pressure while gesture detection is being performed. That unwanted button press could do some annoying things when trying to do a 2 finger scroll on a touchscreen. Signed-off-by: Chris Bagwell commit cb92037af882d2479d0f677eba8be83b11632dcd Author: Chris Bagwell Date: Wed Aug 24 18:26:29 2011 -0500 improve 1 finger tap validation Added check for wcmGesture for 1 finger gestures since it couldn't make use of generic check. Skip 1 finger tap on touchscreens based on LCD feature instead of is_absolute() value. Also, since this is gesture specific validation, moved to inside function. Signed-off-by: Chris Bagwell commit 89c88966f0adbf56abcd8087fe51a4ee36e17102 Author: Chris Bagwell Date: Tue Aug 23 20:52:45 2011 -0500 Add a GESTURE_NONE_MODE in place of 0 values Signed-off-by: Chris Bagwell commit c1ba7642b7a8567fd945e04cc9ad9e1bd1014576 Author: Chris Bagwell Date: Sun Sep 4 22:10:01 2011 -0500 look at current packet during 2 finger gesture lag Probably the original logic meant to be doing something like: "if (ds[0].proximity && dsLast[0].proximity && ds[1].proximity)" but it left out the ds[0].proximity part. This had two issues: 1) We got 1 extra packet worth of movement because of delay in going into LAG mode upon 2 finger touch. 2) It could go into LAG mode upon releasing 1st finger before second finger. Signed-off-by: Chris Bagwell commit 68daad26c11d70aeaffd8d4d4f81f14487f321c2 Author: Chris Bagwell Date: Tue Aug 23 20:42:28 2011 -0500 improve initial 2 finger behavior When trying to do a 2 finger scroll, the cursor was previously moving around until taptime because wcmGestureMode was mistakenly being set back to zero. It was falling into 1 finger else {} case once past WACOM_GESTURE_LAG_TIME. To see issue, try scrolling in a web browser or terminal window on a Tablet PC and you'll see lots of unwanted text selection because of cursor movement + button press. Rearrange code so that coming out of LAG will never happen in two finger case. Also, rearrange related logic to be more obvious for 1 finger vs 2 finger case. Signed-off-by: Chris Bagwell commit 3005fc0f7caff5a375fa2e353d3bcbadfd59382e Author: Chris Bagwell Date: Tue Aug 23 19:31:51 2011 -0500 reduce 2-finger scroll holdoff time The only reason not to immediately go into 2 finger scroll and zoom mode are: 1) Make sure user is not going to do a 2 finger time based gesture (only 2 finger tap supported). Waiting only taptime is fine for this. 2) Wait for some movement of fingers to see if its a zoom vs. scroll. This is movement based and not time based. Reducing time doesn't seem to change behavior here. Signed-off-by: Chris Bagwell commit 259616580c1ef3f624d8f984f69f3991d57bbe9c Author: Chris Bagwell Date: Sat Aug 27 12:03:19 2011 -0500 make gesture distances be relative to hw maximums. Signed-off-by: Chris Bagwell Signed-off-by: Peter Hutterer commit b4c5e7047e32635d958ba0181eb63451b930521c Author: Peter Hutterer Date: Wed Aug 24 11:50:25 2011 +1000 Don't compare unsigned values to < 0 Signed-off-by: Peter Hutterer Acked-by: Jason Gerecke commit df7db361dd8ce04bec486ee7215ae51a2e339d0e Author: Peter Hutterer Date: Wed Aug 24 11:46:46 2011 +1000 No need to check for pInfo != NULL in PreInit We've dereferenced it several times already and having the check in there confuses static analyzers who don't know that the server allocates this for us. This is a leftover from pre-ABI 12 where the drivers had to allocate pInfo themselves. Signed-off-by: Peter Hutterer Acked-by: Jason Gerecke commit 557a52b8a1ea7f10773f49e3d43074bb3952120e Author: Peter Hutterer Date: Wed Aug 24 09:38:45 2011 +1000 man: clarify rotation on hotplugged devices Dependent devices take the parent device's rotation, not hotplugged devices in general. Signed-off-by: Peter Hutterer Reviewed-by: Ping Cheng commit f1519288f53144860379a193c7c1c579d014a04c Author: Peter Hutterer Date: Fri Aug 12 10:29:53 2011 +1000 man: document gesture-related options Signed-off-by: Peter Hutterer Acked-by: Ping Cheng Reviewed-by: Chris Bagwell commit 1fa07c06020c8d6c983002999c04c519b58c4892 Author: Peter Hutterer Date: Fri Aug 12 10:04:47 2011 +1000 man: Add RawSample to man page Text copied from xsetwacom. Signed-off-by: Peter Hutterer Acked-by: Ping Cheng commit 21985216fe57eba9c7419f2c1e9dc3989833e5cd Author: Peter Hutterer Date: Fri Aug 12 10:03:53 2011 +1000 Update comments for wheel and TwinView resolution properties A bit more detail on the wheel property to make it easier to understand without reading the code. TV resolution is deprecated, mark it as such. Signed-off-by: Peter Hutterer Acked-by: Ping Cheng commit cf5986b7e546443f16cd86dbb46c8ba334382081 Author: Peter Hutterer Date: Tue Aug 23 13:38:14 2011 +1000 Sanitize condition to check for complex gestures. Signed-off-by: Peter Hutterer Acked-by: Ping Cheng Acked-by: Chris Bagwell commit 992738ff9f0d0c3eb2b6f3be9851d3c2c506ad4f Author: Peter Hutterer Date: Tue Aug 9 15:02:26 2011 +1000 Fix an error message. This error may have been in wcmEvent now, it's not anymore. Either way, one can just grep for the string, the function name is irrelevant. Signed-off-by: Peter Hutterer commit 473e339593d79e8e4d417698ff61ccaeb6e53096 Author: Jason Gerecke Date: Mon Aug 1 17:53:12 2011 -0700 Allow zero-argument use of MapToOutput to reset map to entire desktop If zero commandline arguments are provided to 'set_output', we now interpret that as the user's desire to remap their tablet to the entire desktop. This is accomplished by loading the identity matrix. Signed-off-by: Peter Hutterer commit 7f3da2baed602d75559003066d41c77f7ee96056 Author: Jason Gerecke Date: Mon Aug 1 17:51:55 2011 -0700 spellfix: "Dize" -> "Size" Signed-off-by: Peter Hutterer commit b2e5813935f6897bd3a2c7ee5be4a3db17f58745 Author: Jason Gerecke Date: Mon Aug 1 17:51:00 2011 -0700 xsetwacom: Have 'get_param' respect PROP_FLAG_INVERTED Running e.g. `xsetwacom get stylus TabletPCButton` would display the wrong value to the user because the property is inverted. This checks to see if PROP_FLAG_INVERTED is set, and to swap the result if so. Signed-off-by: Peter Hutterer commit 7353f1dbd4472c485bd7e248413a9d21d3a77a89 Author: Peter Hutterer Date: Wed Jul 20 15:21:19 2011 +1000 If the type isn't valid for our device, say so. Don't just quietly fail PreInit. Signed-off-by: Peter Hutterer Reviewed-by: Ping Cheng commit ad82c03c9ca876d2c2518b2fc2c1a652ea74ce8b Author: Peter Hutterer Date: Mon Jul 18 16:02:40 2011 +1000 Use xf86SetStrOption to get type This call prints the value (if set) to the log, making it easier to debug if something has gone wrong. Signed-off-by: Peter Hutterer Reviewed-by: Ping Cheng commit 5e2f39a390bbbebe59d49ec35a79641dba7de7fe Author: Peter Hutterer Date: Mon Jul 18 15:58:29 2011 +1000 Print error to the log if the Type option is missing. Static configuration devices only. Signed-off-by: Peter Hutterer Reviewed-by: Ping Cheng commit 16d30d475d1997fe7271236dc18854eabe1c2dc7 Author: Peter Hutterer Date: Mon Jul 18 15:08:05 2011 +1000 Protect against NULL-pointer dereference in UnInit If priv is NULL the DBG macro would dereference it. priv may be null if wcmAllocate() fails or the event device cannot be found.. Signed-off-by: Peter Hutterer Reviewed-by: Ping Cheng commit c1368da8e637a9a6bb1b1c09b30b3c8e63442ec3 Author: Peter Hutterer Date: Mon Jul 18 09:50:19 2011 +1000 test: Fix tests for Capacity removal Removal of capacity caused a few tests to fail. Fix this. Introduced in xf86-input-wacom-0.11.0-36-g6c9c05e Signed-off-by: Peter Hutterer Reviewed-by: Chris Bagwell commit 4f1041122f1544b660f80b5a9aad086a3f6da372 Author: Peter Hutterer Date: Mon Jul 18 09:45:56 2011 +1000 isdv4: fix pressure parsing Missing shift would report the wrong pressure maximum. Reported-by: Chris Bagwell Signed-off-by: Peter Hutterer Reviewed-by: Chris Bagwell commit 983185c64b9fa725519ff5a1e0863e7bac00bea4 Author: Peter Hutterer Date: Wed Jul 13 10:03:40 2011 +1000 man: reshuffle Authors list Not to discredit Frederic's work, but he is not involved with the project anymore. Users have a tendency to email the first person on the list, let that go to someone who is currently involved and likely to respond. Signed-off-by: Peter Hutterer Reviewed-by: Ping Cheng commit 4c3b4e0a88401a55fbdd98ba4db128d9a52583d1 Author: Peter Hutterer Date: Wed Jul 13 10:02:19 2011 +1000 man: use placeholders to man pages listed in See Also These are substituted on build, the sections aren't the same on all platforms. Not that this really matters for us (linux-only) but it's in-line with other X.Org projects. Signed-off-by: Peter Hutterer Reviewed-by: Ping Cheng commit 3a72150505eb8077215029c365c31740ca966bd6 Author: Peter Hutterer Date: Wed Jul 13 10:00:18 2011 +1000 man: add link to our website in See Also Signed-off-by: Peter Hutterer Reviewed-by: Ping Cheng commit f63be64a58629cfac2077da8be335e02d10f3c5d Author: Peter Hutterer Date: Wed Jul 13 10:05:42 2011 +1000 man: add paragraph before the link to linuxwacom.sf And spell out sf as sourceforge Signed-off-by: Peter Hutterer Reviewed-by: Ping Cheng commit 44a25ab9305e452465b0bbf7547624f18c896459 Author: Peter Hutterer Date: Tue Jul 5 14:03:15 2011 +1000 Fix comment typo Signed-off-by: Peter Hutterer commit 66925f068638c4cc3181478008e5a909de389940 Author: Peter Hutterer Date: Tue Jul 5 14:01:01 2011 +1000 ISDV4: swap packet parsing condition around. No negative conditions where not nessary please. Signed-off-by: Peter Hutterer Reviewed-by: Ping Cheng commit 7ab2f8a74a4dc7b1f795490f3850129d43fdb3c8 Author: Peter Hutterer Date: Tue Jul 5 13:41:43 2011 +1000 Split isdv4Parse into two functions for touch/pen packets. No functional changes. Signed-off-by: Peter Hutterer Reviewed-by: Ping Cheng commit 42132efc7f22a353f5d5976cb898abd1ea04e761 Author: Peter Hutterer Date: Fri Jul 1 09:15:55 2011 +1000 xsetwacom: plug minor memory leak data is allocated, needs to be freed. No real impact since xsetwacom will exit anyway after this. Signed-off-by: Peter Hutterer Reviewed-by: Ping Cheng commit 70afb81f6de2f29e23eded3d1db74749e98e6daa Author: Peter Hutterer Date: Fri Jul 1 09:14:50 2011 +1000 Remove unused variable "device" ../src/wcmValidateDevice.c: In function 'wcmHotplugOthers': ../src/wcmValidateDevice.c:515:8: warning: variable 'device' set but not used [-Wunused-but-set-variable] Signed-off-by: Peter Hutterer Reviewed-by: Ping Cheng commit aa4e458e50150bfc976afcb32034f0a30a404bf1 Merge: f8e6ccc0a494 a8829f06de49 Author: Peter Hutterer Date: Thu Jun 30 16:22:53 2011 +1000 Merge branch 'capacity2' of git://github.com/cbagwell/xf86-input-wacom commit a8829f06de49585c2bbc3d47c86cdea0720ee1ff Author: Chris Bagwell Date: Sat Jun 25 12:34:36 2011 -0500 Support pressure curve with touch pressure Signed-off-by: Chris Bagwell Reviewed-by: Peter Hutterer commit 6c9c05e7dfadb6fc49f11a6541a18b1f84f8c844 Author: Chris Bagwell Date: Sat Jun 25 12:07:12 2011 -0500 Remove unused Capacity logic on touch devices The feature never fully worked and bits have slowing been removed. Remove remaining in one swoop. As apart of removing logic, now store ABS_PRESSURE values in the more appropriate "pressure" location so that it can eventually be exposed in the Pressure axis that touch devices create but do not currently send. Additional changes beyond this patch are required to get Pressure Axis working on touch devices. Signed-off-by: Chris Bagwell commit f8e6ccc0a494d6bf82afbd81698baa2f78436cd6 Merge: 006bc892fa13 7fe557d404a2 Author: Peter Hutterer Date: Wed Jun 29 08:54:16 2011 +1000 Merge branch 'nvidia-twinview' commit 006bc892fa132f4ba71ef23bb2043847bb3ece2e Author: David Foley Date: Mon Jun 27 20:43:58 2011 -0500 Add 3 new models: 6A, 6B, and 97 Adds the new Bamboo1 small (6A) and medium (6B). Adds a slate form factor tablet PC (97). Tested-by: Alex Tervoort for 6A Signed-off-by: David Foley Signed-off-by: Peter Hutterer commit ca92299423980a9be5560f6eb29ba949356d638f Author: Chris Bagwell Date: Sat Jun 25 13:05:52 2011 -0500 Default to touch tool for multi-touch devices We really need to add hooks to query pre-existing device state when input driver starts up because slot ID is almost never sent when touching 1 finger to screen. In mean time, it makes sense to default device_type to most likely value of TOUCH (the T in MT) for this function used only by MT devices. The default of zero is causing some events to be filtered mistakenly. Signed-off-by: Chris Bagwell Signed-off-by: Peter Hutterer commit 7b67f9e0d59811af879f7cea3422395fb83d0663 Author: Chris Bagwell Date: Sat Jun 25 13:05:50 2011 -0500 Show maxZ value for touch devices in debug output Some, but not all, touch devices support pressure. Signed-off-by: Chris Bagwell Signed-off-by: Peter Hutterer commit ed83c973802c4f3f34faa166ccfebbfdc5414e49 Author: Chris Bagwell Date: Thu Jun 23 22:06:59 2011 -0500 Set WCM_TPC when generic tablet is detect. This allows unknown touchscreens to work as expected (default to absolute mode for example). We no longer need to update case statement in wcmDeviceTypeKeys() each time a new ID is used with new hardware. Signed-off-by: Chris Bagwell Reviewed-by: Ping Cheng Signed-off-by: Peter Hutterer commit 3e0aea20fd9e262edb717e046f9d1cc1f9e12834 Author: Chris Bagwell Date: Thu Jun 23 22:06:58 2011 -0500 remove redundant WCM_LCD setting for WCM_TPC's WCM_TPC definition already includes WCM_LCD. Signed-off-by: Chris Bagwell Reviewed-by: Ping Cheng Signed-off-by: Peter Hutterer commit 85d82c3279ffc0dec3be14a7da2e00e375f87f03 Author: Chris Bagwell Date: Thu Jun 23 22:06:57 2011 -0500 Fix CintiqV5 LCD defaults by using new TabletSetFeature() Some of the previous usage of "=" instead of "|=" could cause previous settings to be lost. Only known case was for CintiqV5 losing WCM_LCD value. Signed-off-by: Chris Bagwell Reviewed-by: Ping Cheng Signed-off-by: Peter Hutterer commit 6ec94774890452c5c82b0b9db64d7738948fbe19 Author: San Date: Thu Jun 23 17:53:56 2011 +0200 Correct the up/down orientation of Touch Strips Tested on cintiq and intuos 3. Signed-off-by: San Reviewed-by: Ping Cheng Tested-by: Ping Cheng Signed-off-by: Peter Hutterer commit 47e13394f468c8a500428f62752ab60aaf1d0ce0 Author: David Foley Date: Tue Jun 21 21:14:49 2011 -0500 conf: Add WALTOP back into MatchProduct The WALTOP kernel driver patches are in the mainline kernel tree now. Signed-off-by: David Foley Signed-off-by: Peter Hutterer commit 7fe557d404a2e7aa192ff68ebdec5436696c9f4a Author: Peter Hutterer Date: Mon Jun 20 13:52:30 2011 +1000 xsetwacom: Support MapToOutput for TwinView. The NVIDIA binary driver doesn't support RandR 1.2 but it does support Xinerama. Due to a server bug, we still get the current server's RandR version back when we query, so we need to check to the binary driver-specific NV-CONTROL extension first. If that or a RandR < 1.2 version is present fall back to Xinerama if we need to. User commands: xsetwacom set "device name" MapToOutput HEAD-0 xsetwacom set "device name" MapToOutput HEAD-1 Signed-off-by: Peter Hutterer Tested-by: Jason Gerecke commit 4578d4f4b84e5bb23855e7aa66e6b54fe3b836fc Author: Peter Hutterer Date: Mon Jun 20 13:38:02 2011 +1000 xsetwacom: move matrix calculation into a separate function Signed-off-by: Peter Hutterer Tested-by: Jason Gerecke commit c684649cde60772402407f398f3dbec7e8e7b909 Author: Peter Hutterer Date: Mon Jun 20 13:06:33 2011 +1000 xsetwacom: split output setting into set_output_xrandr Preparation work for NVIDIA TwinView support. Signed-off-by: Peter Hutterer Tested-by: Jason Gerecke commit f5fcbd8b4a74d1087b7efb4129a1240e86eaf2b5 Author: Peter Hutterer Date: Mon Jun 20 13:49:43 2011 +1000 xsetwacom: add missing linebreak in error message. Signed-off-by: Peter Hutterer Reviewed-by: Jason Gerecke commit 36fca6055911d86e902555671b4d206f6fae1835 Author: Ping Cheng Date: Mon Jun 20 17:34:07 2011 -0700 Fix invalid rotation values For a rotation of "NONE", the rotation would be whatever happened to be on the stack. Signed-off-by: Ping Cheng Signed-off-by: Peter Hutterer commit c5a0be2d944f28c944d605ccc5e03371e15d97ee Author: Peter Hutterer Date: Sun Jun 5 08:08:07 2011 +1000 Export the device node as property (fixed version) Signed-off-by: Peter Hutterer commit d79a302ae4c9ae7bf9386ec683ae502023878015 Author: Peter Hutterer Date: Sun Jun 5 08:06:46 2011 +1000 Revert "Export the device node as property." This reverts commit 2e9972c4419cef47ac08528bbaf02846ae4fc915. Broken patch, XI_PROP_DEVNODE replacement wasn't consistent. Conflicts: src/wcmXCommand.c Reported-by: Andrzej Giniewicz Signed-off-by: Peter Hutterer commit 1ba90110b34a287ffce92e9cf2700179fbab4400 Author: Peter Hutterer Date: Thu Jun 2 12:33:11 2011 +1000 Add support for Device Product ID property. This property is now used in input drivers to export product/vendor ID to clients. Signed-off-by: Peter Hutterer Reviewed-by: Chris Bagwell commit 2e9972c4419cef47ac08528bbaf02846ae4fc915 Author: Peter Hutterer Date: Thu Jun 2 12:10:12 2011 +1000 Export the device node as property. X doesn't provide a mapping between physical devices and X device IDs other than what can be extrapolated from the device name. Export the device node so clients that need e.g. sysfs or other information from the kernel can map the devices. Signed-off-by: Peter Hutterer Reviewed-by: Chris Bagwell commit 8713d0c90b994b259f7c0430ac4726884c7e3d10 Author: Peter Hutterer Date: Thu Jun 2 12:25:38 2011 +1000 Clarify a comment Signed-off-by: Peter Hutterer Reviewed-by: Chris Bagwell commit 933db3e4627ecaf448f3fd5c457b2f5b455edcbc Author: Peter Hutterer Date: Thu Jun 2 11:58:23 2011 +1000 Fix a wrong comment Signed-off-by: Peter Hutterer Reviewed-by: Chris Bagwell commit 5c45c941493651ab9108e1416737ef89e485d67b Author: Peter Hutterer Date: Fri May 27 09:34:11 2011 +1000 release.sh: add reminder to bump configure.ac after a release Signed-off-by: Peter Hutterer commit 05280f008d2de2dade0d9b15bd8551b1dbee7e51 Author: Peter Hutterer Date: Fri May 27 09:33:33 2011 +1000 Bump to 0.11.99 Signed-off-by: Peter Hutterer commit c6b979e24d56823f30c5ee922a86c138dbe64341 Author: David Foley Date: Tue May 24 17:12:22 2011 -0500 wcmValidateDevice.c: Add 0xE6 Adds the E6 2FGT tablet PC. Tested-by: Ethan Schoonover Signed-off-by: David Foley Signed-off-by: Peter Hutterer commit 4e42edf896dfb4facab9c4f8b217226648100109 Author: Peter Hutterer Date: Wed May 18 15:32:27 2011 +1000 man: note that parent devices can't be matched. MatchProduct "stylus" won't work since the "stylus" bit is appended by the driver, after the server has already applied the MatchProduct directives. This only applies to the parent device. Signed-off-by: Peter Hutterer Acked-by: Chris Bagwell commit 63c885670bde3b10b4755075bb4af6466b3dc46d Author: David Foley Date: Thu May 12 14:19:28 2011 -0500 wcmCommon.c: fix cw and ccw swap Return cw and ccw to expected behavior. Tested-by: Buran Ayuthia Signed-off-by: David Foley Signed-off-by: Peter Hutterer commit 85dd620e2664d1f374a2c4aad27bf0bed41118ab Author: Peter Hutterer Date: Thu May 5 14:32:56 2011 +1000 Force all serials to be unsigned. Signed-off-by: Peter Hutterer Reviewed-by: Chris Bagwell commit 429e9d569d9907f7954384dab433f2a267f173e1 Author: Peter Hutterer Date: Thu May 5 15:30:34 2011 +1000 Add a property to bind the device to a serial number. This is a read/write property to force the device to a single serial number only. xsetwacom parameter BindToSerial Signed-off-by: Peter Hutterer Reviewed-by: Chris Bagwell commit a4ce692ea35911fa597eff477e209c4ec49af79e Author: Peter Hutterer Date: Thu May 5 15:03:44 2011 +1000 Rename iserial to serial iserial is confusing. It may be hungarian notation or it may be an index for the serial. In this case, it's simply the serial number, so name it "serial". Signed-off-by: Peter Hutterer Reviewed-by: Chris Bagwell commit 59b985c939e70a530db7726a3cf5e84bbb1b74ed Author: Peter Hutterer Date: Thu May 5 15:02:56 2011 +1000 Add some more documentation to the new serial hotplugging code. Signed-off-by: Peter Hutterer Reviewed-by: Chris Bagwell commit aa89172deace263fca239ce9fdbcdc1e928d4e62 Author: Peter Hutterer Date: Thu May 5 15:01:52 2011 +1000 Make wcmHotplugSerials static This isn't called from anywhere but the hotplugging code. Signed-off-by: Peter Hutterer Reviewed-by: Chris Bagwell commit acd2181f87dfc1f7d20a6eca7b80914ced48c62c Author: Peter Hutterer Date: Thu May 5 13:16:07 2011 +1000 xsetwacom: add ToolSerialPrevious to retrieve the last tool in proximity. Signed-off-by: Peter Hutterer Reviewed-by: Chris Bagwell commit 488782ca502074821aeec026e2e940add068e819 Author: Peter Hutterer Date: Thu May 5 12:58:19 2011 +1000 Only update old_serial when going out of proximity. And set cur_serial to 0 when that happens. Signed-off-by: Peter Hutterer Reviewed-by: Chris Bagwell commit a88102fafbab8075162032b1d3ee0bce4da625b5 Author: Peter Hutterer Date: Thu May 5 12:48:42 2011 +1000 Update the device's serial number when it comes in. Split serial number internally into - serial: the serial number this device is bound to, 0 if unbound. - cur_serial: current serial number in proximity Then update the serial property with the current serial. Because of SIGIO malloc restrictions, the property must be updated through a timer function. Signed-off-by: Peter Hutterer Reviewed-by: Chris Bagwell commit 85a2c91fb8b489968ac21f848d75a7c8b3d1c207 Author: Alexia Death Date: Thu May 5 11:40:57 2011 +1000 Get the latest values for serial numbers when a client asks for them. Whenever a client requests the property values, update them from the current device state. Due to race conditions with the SIGIO handler, we have a window between updating the device state (during the handler) and updating the property and sending events (requires alloc, thus not in the handler). If a client asks for the property value, update from the state so the window only affects property events, not actual values. Signed-off-by: Peter Hutterer Reviewed-by: Chris Bagwell commit 8f1c120bc68231d312794bc6479514f45820b74f Author: Peter Hutterer Date: Thu May 5 11:25:47 2011 +1000 improve documentation for serial property - document serial ID property as read-only. It is already read-only in code, add a comment to say so in the header file. - serial values are unsigned. - document hw device id as such, it's not the device ID libXi clients see Signed-off-by: Peter Hutterer Reviewed-by: Chris Bagwell commit 2c94cc7554c3874567ab999a64ef086505576e83 Author: Peter Hutterer Date: Thu May 5 13:11:16 2011 +1000 xsetwacom: add missing arg_count to a serial/tablet ID parameters Signed-off-by: Peter Hutterer Reviewed-by: Chris Bagwell commit 7af794a2acdee4bdc6e3ad73d6c4f42598e9a87e Author: Peter Hutterer Date: Thu May 5 13:15:24 2011 +1000 xsetwacom: add a bit more tracing to the get code. Signed-off-by: Peter Hutterer Reviewed-by: Chris Bagwell commit 21c25ef7b3eda57ab00c1f2576cfba0e4ef9dba4 Author: Alexia Death Date: Mon Apr 18 11:26:43 2011 -0700 man: Describe ToolSerials option Adds a description of the "ToolSerials" option to the driver manpage. Slightly modified from Alexia's original patch (breaks the list of types out into the description) Signed-off-by: Jason Gerecke Signed-off-by: Peter Hutterer commit 1284bc5a858557a2739b67de401d25bcab3e1cf6 Author: Alexia Death Date: Mon Apr 18 11:26:40 2011 -0700 Add ToolSerials option for hotplugging pens Provide a new "ToolSerials" option which describes tools that should be automatically hotplugged along with the standard devices. This is achieved by parsing "ToolSerials" while the master device is being initialized to create a WacomTool list. This list is then used while hotplugging child devices to create tool-specific devices with the "Serial" option set appropriately. The "ToolSerials" option should be added to the 50-wacom.conf file in /etc/X11/xorg.conf.d so that it is applied to hotplugged tablets. The option takes the following format: Option "ToolSerials" "serial[,type[,label]][;...]" Or, for a more concrete example: Option "ToolSerials" "113246231,airbrush,Airbrush;85983311,artpen,Artpen" ToolSerials recognizes the "pen", "airbrush", "artpen", and "cursor" types. Unknown (or unspecified) types default to creating "pen"-type tools with both 'stylus' and 'eraser' devices. Signed-off-by: Alexia Death Acked-by: Jason Gerecke Signed-off-by: Peter Hutterer Squashed in: Have ToolSerials patch re-use existing infrastructure This tweaks the prior ToolSerials patch to use the existing infrastructure where appropriate. For instance, using the 'WacomTool' struct instead of the custom 'WacomToolSerial' struct. This should actually be integrated as a "fixup", but is included here to more easily see the changes from the original. Signed-off-by: Jason Gerecke Signed-off-by: Peter Hutterer commit 74a53cf8aa9ded9978d8f085446871d266dd4bf4 Merge: 0d7790b80ded ec23bdd01334 Author: Peter Hutterer Date: Tue Apr 19 16:04:25 2011 +1000 Merge branch 'next' commit 0d7790b80ded4a33b6a81ebc0f8f11ccfbd27fa9 Author: Peter Hutterer Date: Tue Apr 19 14:05:44 2011 +1000 wacom 0.11.0 Signed-off-by: Peter Hutterer commit ec23bdd01334dbb655d97c85b1a366ac7eaf830c Author: Ping Cheng Date: Thu Apr 14 17:06:11 2011 -0700 Retrieve resolution from the kernel whenever we can The resolution table has been added to the kernel driver. Let's use it when we can. Signed-off-by: Ping Cheng Reviewed-by: Chris Bagwell Signed-off-by: Peter Hutterer commit 5b073528db237c46fdd3281e73a36f81ef494791 Author: Peter Hutterer Date: Tue Apr 12 11:12:20 2011 +1000 Add mask checking macros. Signed-off-by: Peter Hutterer commit 7958bb9b1ddef9e8238615fd1b3d15996f00effe Author: Peter Hutterer Date: Thu Apr 7 15:23:28 2011 +1000 Move common default values to wcmNewCommon() No functional change, just moving initialisation to where it belongs. Signed-off-by: Peter Hutterer Reviewed-by: Ping Cheng commit 3081ecb428d29c639cb2874958b8f95be6978ede Author: Ping Cheng Date: Wed Apr 13 15:43:49 2011 -0700 Fake resolution for 9F and E2 9F and E2 are touch only devices, for which we need to retrieve the resolution from the kernel. So, the resolution defined in WacomModelDesc does not count for anything. However, to avoid future questions about the weird "394", align them with their cousins. Signed-off-by: Ping Cheng Reviewed-by: Chris Bagwell Signed-off-by: Peter Hutterer commit 3beefe834692048dd04d877a05bb85e0ed7c4c80 Author: Jason Gerecke Date: Tue Apr 12 12:06:11 2011 -0700 man: Use __drivername__ instead of "wacom" Because hardcoding things is uncool Signed-off-by: Jason Gerecke Signed-off-by: Peter Hutterer commit 432f3cb434d707bc516f930bd9ee1863685e2110 Author: Jason Gerecke Date: Tue Apr 12 12:06:10 2011 -0700 man: Fix __drivername__ macro It seems we've been having this macro dangling in our manpage since 0862aa3d74378abbf9f23289ab864a4d07305d0d Signed-off-by: Jason Gerecke Signed-off-by: Peter Hutterer commit e6743f3c8adc54c4a6d19e2e1fcd884091145c90 Author: Jason Gerecke Date: Tue Apr 12 12:06:08 2011 -0700 man: Update usage information The usage provided by '--help' is more accurate than that provided in the man page, and some arguments to '--set' do not require a value. Signed-off-by: Jason Gerecke Signed-off-by: Peter Hutterer commit 52408eac9cf497a410952284046b8fed3aa32d4b Author: Peter Hutterer Date: Mon Apr 11 13:42:42 2011 +1000 isdv4-serial-debugger: return early if tcgetattr() failed. Fixes compiler warning isdv4-serial-debugger.c: In function ‘set_baud_rate’: isdv4-serial-debugger.c:127:6: warning: variable ‘rc’ set but not used [-Wunused-but-set-variable] Signed-off-by: Peter Hutterer commit 8caa65efe358e12873ef3f8c17cd0d7a990a6419 Author: Peter Hutterer Date: Mon Apr 11 13:40:20 2011 +1000 xsetwacom: remove two unused variables xsetwacom.c: In function ‘keysym_to_keycode’: xsetwacom.c:964:6: warning: variable ‘group’ set but not used [-Wunused-but-set-variable] xsetwacom.c: In function ‘get_actions’: xsetwacom.c:1747:25: warning: variable ‘last_press’ set but not used [-Wunused-but-set-variable] Signed-off-by: Peter Hutterer commit 161bcb48340bb9ef0b694b5bd33c7e5ed5db3ce6 Author: Peter Hutterer Date: Mon Apr 11 12:13:00 2011 +1000 Fix higher button events. Buttons higher than sizeof(int) weren't getting sent. The mod_buttons macro needs to test for the number of bits, not bytes. Introduced in 880512f84c26cddbfc1a8ff495890595424466f2 Reported-by: Andrzej Giniewicz Signed-off-by: Peter Hutterer Reviewed-by: Chris Bagwell commit 58a258600cb1138c160c6625816897ea18e34cf2 Author: Peter Hutterer Date: Fri Apr 8 11:25:01 2011 +1000 wacom 0.10.99.2 Signed-off-by: Peter Hutterer commit 2bbbe4546f56cd825606eff870e4817766d2e654 Author: Peter Hutterer Date: Tue Apr 5 15:37:04 2011 +1000 man: add hotplugging info to man page Signed-off-by: Peter Hutterer commit 1390685854f7eedcb6802adaba8df274e96a4177 Author: Peter Hutterer Date: Tue Apr 5 15:21:07 2011 +1000 man: remove reference about different zones - unsupported We ripped this out with 13a12bb852f8 Purge toolarea from device rec. Signed-off-by: Peter Hutterer commit 77b9f3cafc32adad76100f293fde6599a671f22b Author: Peter Hutterer Date: Tue Apr 5 15:17:45 2011 +1000 man: don't mention the core pointer, it doesn't exist Obsolete since server 1.4 Signed-off-by: Peter Hutterer commit 4d854858ca4de352546de179e1039c43921e15bf Author: Peter Hutterer Date: Tue Apr 5 15:16:23 2011 +1000 man: refer to both xorg.conf and xorg.conf.d Signed-off-by: Peter Hutterer commit 2110435235c371da647a58647535cf8e268fb603 Author: Peter Hutterer Date: Wed Mar 30 09:15:34 2011 +1000 Don't accept invalid device types. Signed-off-by: Peter Hutterer commit 6e10b33b25ac99280b387f8692e46e55d6d9ca8e Author: Peter Hutterer Date: Fri Apr 8 11:38:28 2011 +1000 xsetwacom: fix --help output formatting The excaping of the two quotation marks means we need extra spaces here. Signed-off-by: Peter Hutterer commit b8404011790e4b06ee46b471195eefd05fa304a0 Author: Jason Gerecke Date: Wed Mar 30 13:54:46 2011 -0700 Have wheel and strip properties be "actions" instead of "buttons" Continuing with removing raw button code, we create the wheel and strip properties ready to hold actions. Prior to this, the properties would be initialized with the raw buttons; before xsetwacom could set them to actions they would need to be converted. This does away with the conversion step by following the mold already in place for buttons. With no more need for conversion, we can also nuke the conversion-related bits from xsetwacom. Signed-off-by: Jason Gerecke Signed-off-by: Peter Hutterer commit f3a358796133e04dbf91e57c1bc4760002ba9b3c Author: Jason Gerecke Date: Wed Mar 30 13:54:45 2011 -0700 Decrease minimum number of args to 'set' [allow wheels/strips "reset"] Since the worker functions now check that they have the appropriate number of arguments, its possible to decrease the number of arguments required by 'set'. Since all it really needs is a device number and a property, the minimum argc is now 2. A handy side-effect of this change is that its now possible to run e.g. `xsetwacom --set $ID StripLeftDown` to reset the action to its default. Doing the same with buttons has been supported, but wheels and strips were out of luck because they would require too few arguments to 'set'. Signed-off-by: Jason Gerecke Signed-off-by: Peter Hutterer commit c78c2759a9b87db1078d760a0108b0f5dac5ed58 Author: Jason Gerecke Date: Wed Mar 30 13:54:44 2011 -0700 More strict argument-count checking Add/replace checks in functions to ensure that they have the right number of arguments to do their job properly. The worst offender here was the set() function -- providing too many arguments would result in it walking off the end of data structures (often resulting in a segfault) Signed-off-by: Jason Gerecke Signed-off-by: Peter Hutterer commit d7ea18239de51d84706810b555ff3b2855b8856f Author: Jason Gerecke Date: Fri Apr 8 11:31:23 2011 +1000 Change from prop_extra to arg_count When setting an XInternAtom property, 'prop_extra' listed the number of extra properties beyond the first that needed to be set. For instance WACOM_PROP_TABLET_AREA had a total of 4 properties, so prop_extra=3. To provide better argument validation though, we change this to 'arg_count' and list the total number of arguments expected. This doesn't really do anything for normal properties (since arg_count = prop_extra + 1), but does let us check for the proper number of arguments in odd cases (e.g. ResetArea takes 0 arguments). Signed-off-by: Jason Gerecke commit c5ba63ce8e45bdecb650db78c8e2bb9dd454bfb3 Author: Jason Gerecke Date: Wed Mar 30 13:54:41 2011 -0700 Fail with warnings where possible For many commands, improper arguments cause a silent failure. The user is often given no indication if their command succeeded or failed. I've tried to find all the silent "return;" statements and provide some kind of warning message where possible. In some cases I've added in new checks to ensure that we have the correct number of arguments. I've tried to make checks as pedantic as possible, e.g. throwing errors about number of arguments even if the function ignores arguments. Signed-off-by: Jason Gerecke Signed-off-by: Peter Hutterer commit 19656e837c4bd3711b033992566058be790b5095 Author: Jason Gerecke Date: Wed Mar 30 13:54:42 2011 -0700 More explicit input check for set_rotate Because of how atoi() works, any single non-number (other than the expected cw,ccw,half,none) would be interpreted as being equivlent to 'none'. Since the number of valid arguments is very small, we explicitly check each. Signed-off-by: Jason Gerecke Signed-off-by: Peter Hutterer commit 02f5fe64df98c963c865845e79b3a20cfddb62ca Author: Timo Aaltonen Date: Thu Apr 7 12:25:32 2011 +0300 Add support for Lenovo tablet ID 0xE6 Signed-off-by: Timo Aaltonen Tested-by: Manoj Iyer Reviewed-by: Ping Cheng Signed-off-by: Peter Hutterer commit 86fa0fb17e0cd34217e07671ac8f777c3fbe731f Author: Peter Hutterer Date: Mon Apr 4 10:30:32 2011 +1000 Update all tools rotation property when rotating one of them. All tools on the same tablet share the rotation value, so if one of them is rotated, all of them must be. Since the property value is stored in the server, we need to trigger it explicitly. Test case: $> xsetwacom set "device name stylus" Rotate half $> xsetwacom get "device name eraser" Rotate Should print out the correct rotation value. Fixes #3070450 Signed-off-by: Peter Hutterer Reviewed-by: Ping Cheng commit fd952b4e69bd2b2f39df36d1d489fecb47e2ae3a Author: Peter Hutterer Date: Mon Apr 4 15:33:34 2011 +1000 Don't rotate hotplugged devices. We only rotate on a per-tablet basis, not per-tool. Don't accept rotation values on dependent devices (unless they're the same, then be quiet about it). Signed-off-by: Peter Hutterer Acked-by: Ping Cheng commit 5cf22a3a39799cb1c50298d73c34fd397ad717b1 Author: Jason Gerecke Date: Wed Apr 6 11:24:05 2011 -0700 Expand manpage documentation for "Button" parameter Include list of parameters that are supported, as well as an example of mixing keywords in one action. Signed-off-by: Jason Gerecke Signed-off-by: Peter Hutterer commit 1c76a5942b36844b2fee80ca28b8481744f984cf Author: Jason Gerecke Date: Tue Apr 5 17:49:27 2011 -0700 Swap range of 'RawSample' and 'Suppress' in man page Looks like the range of these two options was confused a while back. Switch them so that the right option has the right range. Signed-off-by: Jason Gerecke Signed-off-by: Peter Hutterer commit 8d57fb1693fe3a78fc6002570a9c132c067f7919 Author: Jason Gerecke Date: Tue Apr 5 17:49:26 2011 -0700 Have man page reflect per-tablet nature of 'Rotate' option Change documentation to indicate that rotation affects all tools associated with the same tablet. Signed-off-by: Jason Gerecke Signed-off-by: Peter Hutterer commit 2c30edb2b6a9542e945623fe0e215a5c04281655 Author: Jason Gerecke Date: Tue Apr 5 17:29:20 2011 -0700 Cause '-V' option to xsetwacom to exit like '--version' Unexpected difference in behavior between two ways of specifying the same thing. '-V' no longer prints the version and continues to run the rest of the program. Signed-off-by: Jason Gerecke Signed-off-by: Peter Hutterer commit 35d14d75a0d06e32f3583733fcc987879c6e15f6 Author: Jason Gerecke Date: Tue Apr 5 17:29:19 2011 -0700 Correct order of arguments to calloc Not that there's much difference between 4*(256 bytes) and 256*(4 bytes) of memory... Signed-off-by: Jason Gerecke Signed-off-by: Peter Hutterer commit 6424d65c613ee024795b4d529c1d2473650e01f5 Author: Peter Hutterer Date: Mon Apr 4 15:31:50 2011 +1000 Factor out rotation parsing and setting. No functional changes, prep work only. Signed-off-by: Peter Hutterer Reviewed-by: Ping Cheng commit da6cbaf3c8b0bb9f5d993ec0291c5919b52ebdee Author: Peter Hutterer Date: Tue Apr 5 13:27:33 2011 +1000 Rename hotplugged to is_primary in wcmParseOption. The parameter is true for the primary device only (i.e. the one that _triggers_ the hotplug). It is false for any driver-hotplugged device and false for xorg.conf devices. So "hotplugged" is a rather misleading name. Rename to is_primary instead. Document this and while we're at it, change the function to use Bool instead of int. Signed-off-by: Peter Hutterer Reviewed-by: Ping Cheng commit 1da14469d2cdfe68ddbe4d451a7e757ad2a4705b Author: Peter Hutterer Date: Mon Apr 4 15:22:36 2011 +1000 Remove superfluous call to wcmRotateTablet(). This is a leftover from the times when we reconfigured the axes based on the rotation. It doesn't do anything these days. Signed-off-by: Peter Hutterer Reviewed-by: Ping Cheng commit e0354b9fde1e489bd0c87aa7f34b827ce3e27778 Author: Peter Hutterer Date: Mon Apr 4 13:34:30 2011 +1000 xsetwacom: add PROP_FLAG_INVERTED for Hover Click/TPCButton The Hover Click property is inverse to the TPCButton xsetwacom option/xorg.conf option. This commit restores the original behaviour for the property as before f1ecd11c619f1f7eb7850dd2fb514307ca1dd1ce but fixes xsetwacom that users of xsetwacom won't notice the difference. Signed-off-by: Peter Hutterer Acked-by: Ping Cheng commit 5984c9aecc6f80d936f8b0f81a63f31cd23f2e19 Author: Peter Hutterer Date: Mon Apr 4 13:29:59 2011 +1000 Revert "Correct TPCButton property inversion" "Hover Click" and "TPCButton" are not the same meaning. TPCButton behaviour is that Hover Click is off and vice versa. Hence the property inversion is there on purpose. Add some documentation to make this public. This reverts commit f1ecd11c619f1f7eb7850dd2fb514307ca1dd1ce. Conflicts: src/wcmXCommand.c Reported-by: Michal Suchanek Signed-off-by: Peter Hutterer Acked-by: Ping Cheng commit d855766a53c005d12a56be23f9fcfce5d5922aa7 Author: Peter Hutterer Date: Mon Apr 4 14:01:46 2011 +1000 xsetwacom: modularise test for bool conversion. No functional changes, just making it easier to test for other features in the future. Some strings to test again have changed, but we really only need to test for sane true/false values anyway ("oFf" is not sane enough to worry about). Signed-off-by: Peter Hutterer Acked-by: Ping Cheng commit 8f2dce908d1a591c315b61fce4d66346d4f2213a Author: Peter Hutterer Date: Mon Apr 4 13:45:00 2011 +1000 xsetwacom: constify convert_value_to_user Signed-off-by: Peter Hutterer Acked-by: Ping Cheng commit 493e673a2e55356b1f53bd9b9229426f171f9094 Author: Peter Hutterer Date: Mon Apr 4 15:45:15 2011 +1000 Revert "Update all tools rotation property when rotating one of them." This commit is incomplete, shouldn't have been pushed. This reverts commit 570b9d06b20e3eb4e93501594d29e3b24d46d24a. Signed-off-by: Peter Hutterer commit 4ed300dbb3002230c578681fd86eebef414dc272 Author: Peter Hutterer Date: Mon Apr 4 12:07:52 2011 +1000 Only update bottomX/bottomY if they haven't been user-configured. wcmInitialToolSize() would xorg-configured overwrite BottomX/Y with the max values read from the tablet. Only set the two if they are non-zero (0 is the default value). Signed-off-by: Peter Hutterer Reviewed-by: Ping Cheng commit 1de7a780a392e363450967dfab8c3dd065fd0348 Author: Ping Cheng Date: Sun Apr 3 16:07:38 2011 -0700 Centralize pen and touch arbitration With the introduction of multi-touch, the chances of getting touch events while pen is in prox have been increased. One obvious use case is that the touch events could be used for gestures while pen is in prox. However, we do not want two cursors compete on the screen. Link the pen and touch device once during the initialization stage instead of every time when we receive a pen event. Then, centralize pen and touch arbitration process so we can store the touch data in wcmUSB.c instead of discarding them. The touch events will only be ignored if it is a single touch event that causes a cursor movement while pen is in prox. Some cleanup in wcmUSB.c is needed. It will be considered when we make MAX_CHANNEL a dynamic value based on MAX_FINGERS. The MAX_FINGERS is going to be the maximum of ABS_MT_SLOT that we retrieve from the kernel. That brings us to the state to support XInput 2.1 and devices that have dynamic number of fingers. Note: this patch is based on the assumption that all devices connected to the same system have unique product IDs. That is, no two or more identical devices are connected. Identical devices will be properly linked when we find a decent way to distinguish them in the driver. Signed-off-by: Ping Cheng Signed-off-by: Peter Hutterer commit 307ad96795605fc39d2c454e4c7efde94ecbed3c Author: Ping Cheng Date: Sun Apr 3 16:05:42 2011 -0700 Add IsPen to cover both IsStylus and IsEraser It will be used more often when we need to compare touch events with pen events. Signed-off-by: Ping Cheng Signed-off-by: Peter Hutterer commit 570b9d06b20e3eb4e93501594d29e3b24d46d24a Author: Peter Hutterer Date: Mon Apr 4 10:30:32 2011 +1000 Update all tools rotation property when rotating one of them. All tools on the same tablet share the rotation value, so if one of them is rotated, all of them must be. Since the property value is stored in the server, we need to trigger it explicitly. Test case: $> xsetwacom set "device name stylus" Rotate half $> xsetwacom get "device name eraser" Rotate Should print out the correct rotation value. Fixes #3070450 Signed-off-by: Peter Hutterer commit bb29b90d29aa8ea25120c3db8b6ce9ca563cf202 Author: Chris Bagwell Date: Sun Apr 3 08:49:13 2011 -0500 fix filter issue on MT bamboos Init tool device type is needed for all MT devices to do correct filtering; not just pen+MT tablets. Signed-off-by: Chris Bagwell Reviewed-by: Ping Cheng Signed-off-by: Peter Hutterer commit b9566151e6029f77dcf22526308dabb262400774 Author: Peter Hutterer Date: Fri Apr 1 14:54:05 2011 +1000 wacom 0.10.99.1 Signed-off-by: Peter Hutterer commit f72c358177a2b588c4915bf6fa5cd00f183c9486 Author: Peter Hutterer Date: Fri Apr 1 14:59:20 2011 +1000 test: update Makefile for include folder Fixes make distcheck. Signed-off-by: Peter Hutterer commit cd0738f41c875c8a2ad5444558c505b47898a7f1 Author: Peter Hutterer Date: Wed Mar 30 13:09:59 2011 +1000 Move npadkeys to fix comment. Fixing the comment would do too, but it really doesn't matter. Signed-off-by: Peter Hutterer Reviewed-by: Ping Cheng commit 81f191d7ed9ec1187f37c1df36db0683f65bd4a3 Author: Peter Hutterer Date: Wed Mar 30 12:55:26 2011 +1000 Replace manual array size with ARRAY_SIZE macro. Signed-off-by: Peter Hutterer Reviewed-by: Ping Cheng commit b522fdb493cb378af3206793e0b44d6652f7427c Author: Ping Cheng Date: Wed Mar 30 16:24:15 2011 -0700 Check predefined serial number as early as we can Don't wait before we can post the events. Verify the serial number as soon as the information is accessible. Signed-off-by: Ping Cheng Signed-off-by: Peter Hutterer commit 155a4b96ae8f03d3c07a93622d4f1f1da266d174 Author: Jason Gerecke Date: Wed Mar 30 10:32:15 2011 -0700 Revamp button/wheel/strip getters 'get_map' is the new getter entrypoint and attempts to determine the mapping present on buttons, wheels, and strips. It calls on 'get_actions' (essentially get_special_button_map) and 'get_button' (an 8-bit XA_INTEGER version of the same) to determine this. If both fail to find a mapping, it falls back to the method originally used for non-actions: punt and ask XGetDeviceButtonMapping for something. When raw buttons are removed from the driver, it should be possible to replace 'get_map' with 'get_actions' (since everything will be an action at that point). Signed-off-by: Jason Gerecke Signed-off-by: Peter Hutterer commit 0f20c9b1d94bd8a53e5e9b6cf1b6f599457a1dca Author: Jason Gerecke Date: Wed Mar 30 10:31:25 2011 -0700 Merge 'map_wheels' and 'map_button' into a unified 'map_actions' These two functions are very similar, and have been merged together to provide a single conduit for all action mappings. Button-handling code requires a little bit of special-casing (we need to be sure to get a button to modify, and to change the arguments appropriately), but nothing remotely worthy of breaking into its own function. Signed-off-by: Jason Gerecke Signed-off-by: Peter Hutterer commit 5f0b0dd0ed106a99d356e95bb4b73fadba21194d Author: Jason Gerecke Date: Tue Mar 29 16:18:36 2011 -0700 Remove 'special_map_wheels' and 'special_map_buttons' Since neither function actually do anything that couldn't just be done in 'map_wheels' and 'map_button' respectively, we simply squash them together. Signed-off-by: Jason Gerecke Signed-off-by: Peter Hutterer commit e9e7397cd1f1bc37f27992114cebd39f4ad93e12 Author: Jason Gerecke Date: Tue Mar 29 16:18:35 2011 -0700 Remove map_button_simple With parse_actions now handling simple button mappings, we remove this function which essentially duplicates its functionality. Note that there is a small difference in how the new parse_actions code and the old map_button_simple code handle things. The former Translates a single numeric argument into an action (e.g. "3" is turned into "button +3"). The latter cleared any existing action and used XSetDeviceButtonMapping to have X remap button events. To better explain the difference, consider the two following commands run in sequence: xsetwacom --set $id button 2 3 xsetwacom --set $id button 3 button 2 Under the old map_button_simple code, both buttons 2 and 3 would produce a right-click event. This is because the first command has X remap all "button 2" events into "button 3" events. Since both button 2 (by driver's priv->button[]) and button 3 (by the explicit action) produce a "button 2" event, X remaps both events into "button 3" events. Under the new parse_actions code, things are what you'd expect: button 2 produces a right click and button 3 produces a middle click. If the user wants, they can use `xinput set-button-map` to remap the buttons the same way that map_button_simple did. Signed-off-by: Jason Gerecke Signed-off-by: Peter Hutterer commit f66bf4568c8b7005ab5611ab1b8c5c0c3819b1e3 Author: Jason Gerecke Date: Tue Mar 29 16:18:34 2011 -0700 Allow parse_actions to parse simple button maps If argv contains only a single numeric argument, we assume the intent is to perform a button press. We add the necessary keywords to make the parser happy, and then parse as normal. This allows map_wheels to handle the "raw button" case that it has been missing. While map_button_simple also does the same* thing, that's another commit :) *Actually, map_button_simple does /almost/ the same thing, but I highly doubt anyone relies on the subtle difference in behavior. Signed-off-by: Jason Gerecke Signed-off-by: Peter Hutterer commit e9dae780cb549f48aaf376af2b6382604c2760a5 Author: Jason Gerecke Date: Tue Mar 29 16:18:33 2011 -0700 Make it clearer when actions are sent When I first saw this, I thought somebody forgot to put an else clause here; I completely missed that tiny return statement. This makes the reality a little clearer. Signed-off-by: Jason Gerecke Signed-off-by: Peter Hutterer commit 357e3c3c50d81bd57bd412d7d6bde9120d367f4b Author: Jason Gerecke Date: Tue Mar 29 16:18:32 2011 -0700 Add WACOM_PROP_WHEELBUTTONS to cursor devices This enables the "Wacom Wheel Buttons" property for cursor devices, allowing xsetwacom to set (rel|abs)wheel(up|down) actions. I'm not sure if there are non-puck cursor devices which should *not* have this enabled, but until somebody says otherwise... :) Signed-off-by: Jason Gerecke Signed-off-by: Peter Hutterer commit c416728a5656748075f6671805d8da3869af2522 Author: Jason Gerecke Date: Tue Mar 29 16:18:31 2011 -0700 Fix strip/wheel mapping Commit 2ce1c6b4 fixed a bug where X would crash after remapping strips or wheels. It made all the "keys" arrays one-indexed so that wcmUpdateButtonKeys would not write beyond the end of the arrays. This patch syncs the action lookup code with the use of one-indexed arrays so that the proper action is returned. Signed-off-by: Jason Gerecke Signed-off-by: Peter Hutterer commit c7058d85a913d2f2a494667a640d4a25e6ca0e34 Author: Peter Hutterer Date: Wed Mar 30 14:04:44 2011 +1000 xsetwacom: add a comment to update button actions in the right order Signed-off-by: Peter Hutterer commit db66113366af1054c625940ba38c207d15bd59c1 Author: Jason Gerecke Date: Tue Mar 29 16:18:30 2011 -0700 Fix "buttons must be set twice" bug from d650b139 *facepalm* I simply can't believe I didn't test this, but there's no denying the bug exists. Looks like the change to 'btnact_prop' *must* occur after the change to 'prop'. If it happens beforehand, then the driver appears to be eternally one step behind xsetwacom. Signed-off-by: Jason Gerecke Signed-off-by: Peter Hutterer commit 9e46d9776f6c57abc128ac12a9ef8c03ad242eac Author: Peter Hutterer Date: Wed Mar 30 08:32:25 2011 +1000 Add some comments for device_id and device_type handling. Signed-off-by: Peter Hutterer Reviewed-by: Ping Cheng commit c5cbebabe796e86b94467bb7de3387e4e708f40a Author: Peter Hutterer Date: Thu Mar 24 20:45:22 2011 +1000 Remove discard_first field from DeviceStateRec Obsolete since the removal of old serial devices. Signed-off-by: Peter Hutterer Reviewed-by: Ping Cheng commit 2cc298863457fe9e171cb2c7494b83f2d971ccdb Author: Peter Hutterer Date: Thu Mar 24 20:45:21 2011 +1000 usb: print invalid max value if we get one. Signed-off-by: Peter Hutterer commit 1421082661074a201ec2bd98b826ac4154cef9f0 Author: Peter Hutterer Date: Thu Mar 24 20:45:20 2011 +1000 usb: swap two checks. If the absbit isn't set, don't bother with the EV_ABS ioctl. Signed-off-by: Peter Hutterer Reviewed-by: Ping Cheng commit 6e21f9c6a7abc79eb89d4c742ffd0cee6bf86552 Author: Peter Hutterer Date: Thu Mar 24 20:45:19 2011 +1000 usb: remove to superfluous linebreaks. Signed-off-by: Peter Hutterer Acked-by: Ping Cheng commit 2d55e561956dc7beb0aa6fd2d814c0540e654e34 Author: Jason Gerecke Date: Mon Mar 28 10:06:56 2011 -0700 Change hardcoded string to already-defined constant WACOM_PROP_BUTTON_ACTIONS is already defined in wacom-properties.h Lets use it instead of all those magic constants. Signed-off-by: Jason Gerecke Signed-off-by: Peter Hutterer commit 32d14dc4a9787356024020fd25e463a90a25f349 Author: Ping Cheng Date: Mon Mar 28 17:51:34 2011 -0700 Resolve the oldHwProx puzzle Change oldHwProx to oldCursorHwProx to better reflect its use. oldCursorHwProx keeps the hardware in/out prox state so we can set the MaxCursorDist for the next round of relative cursor movement when tool first comes in prox. For Protocol 5 devices, distance is reported as the maximum when tool is first detected. Then it is gradually reduced to 0 when getting closer to the tablet. Protocol 4 is the opposite: distance is 0 when tool is first in prox. The value increases as the tool gets closer to the tablet. The maximum distance (wcmMaxDist) is model specific. They are retrieved from the kernel. Reviewed-by: Chris Bagwell Acked-by: Peter Hutterer Signed-off-by: Ping Cheng Signed-off-by: Peter Hutterer commit 5fec376c46e3840fe2e3f838df67cefee1c0d6c6 Author: Peter Hutterer Date: Thu Mar 24 10:55:58 2011 +1000 ISDV4: use libudev instead of manual syspath creation. Signed-off-by: Peter Hutterer Acked-by: Ping Cheng commit 4b475087b827d143df93c2acc0017a9b79ff859a Author: Peter Hutterer Date: Thu Mar 24 11:37:39 2011 +1000 ISDV4: update a comment, we may return tablet id 0x90 on failure. Signed-off-by: Peter Hutterer Reviewed-by: Ping Cheng commit d650b1399d37e6f2b6f151b011d72b219a5405b8 Author: Jason Gerecke Date: Fri Mar 25 17:32:56 2011 -0700 Make set/unset code easier to understand Between the parsing code seperating the two halves of set/unset and the code being confusing in general, I've rewritten this to hopefully make its operation a little clearer for the next person. Signed-off-by: Jason Gerecke Acked-by: Chris Bagwell Signed-off-by: Peter Hutterer commit 5b27df4274ae59e0e279096ac46836564d22c2ea Author: Jason Gerecke Date: Thu Mar 24 18:02:54 2011 -0700 Make parse error more helpful When a set of arguments cannot be parsed, knowing the word that did not make sense doesn't help if you've used it more than once. Signed-off-by: Jason Gerecke Signed-off-by: Peter Hutterer commit d6ac23b79ccf65d30f07dbb1986ad9d6773ecd30 Author: Jason Gerecke Date: Thu Mar 24 18:02:55 2011 -0700 Don't use unset_prop We don't need to bother changing the device property if we're unsetting since we're just going to be deleting it anyway. Signed-off-by: Jason Gerecke Signed-off-by: Peter Hutterer commit c932e062ba894e50d2dd4c2e653e86915597ee52 Author: Jason Gerecke Date: Thu Mar 24 18:02:53 2011 -0700 Return from function on parse error If the arguments to this function are only parseable up to a point, the function prints a warning but still makes the (partial!) requested change. For example, if the user runs: xsetwacom --set 10 Button 1 "key +a notakeyword -a" The program prints a warning about it not recognizing "notakeyword" and maps Button 1 to "key +a". Instead of making partial changes, xsetwacom should instead bail at the first sign of a problem. Signed-off-by: Jason Gerecke Signed-off-by: Peter Hutterer commit c690302586bf352395ca7bd1299866a97cc054da Author: Ping Cheng Date: Thu Mar 24 15:36:03 2011 -0700 Add CursorProximity to xsetwacom.man Signed-off-by: Ping Cheng Signed-off-by: Peter Hutterer commit ed668c1b768967b3bf5a6174c16c6d3732c1b4fe Author: Ping Cheng Date: Wed Mar 23 14:57:51 2011 -0700 PAD is always on PAD_CHANNEL Don't assume the last tool was a pad, which confuses those tools that never receive a serial number. Keep PAD on the PAD_CHANNEL. Signed-off-by: Ping Cheng Signed-off-by: Peter Hutterer commit 6278f4fe4afd3ae627ea676e3c655f1e3968cd8b Author: Ping Cheng Date: Wed Mar 23 14:57:33 2011 -0700 Fix a copy/paste error in usbFindDeviceType comment Signed-off-by: Ping Cheng Signed-off-by: Peter Hutterer commit dfc8404bec1d9d4d5eb65a2d29779d7ae1a18d62 Author: Ping Cheng Date: Wed Mar 23 14:57:12 2011 -0700 Support pen and MT on the same logical port Serial ISDv4 kernel driver, wacom_w8001.ko, provides both pen and touch events on the same logical port. Filtering touch events when pen is in proximity while allowing pen events (ABS_X/Y, etc) pass. Making this action configurable would make sense when XInput 2.1 is ready. At that point, we can post MT valuators while pen events are posted. Some code refactoring is needed to add a new channel to store the pen data as well as the 2FGT data. Defering the code refactoring until we support XInput 2.1. Signed-off-by: Ping Cheng Reviewed-by: Peter Hutterer Reviewed-by: Chris Bagwell Signed-off-by: Peter Hutterer commit 842f2e28f8ce90991bdb60921250c97a11101104 Author: Peter Hutterer Date: Thu Mar 24 12:01:34 2011 -0400 Silence compiler warning. ../src/wcmCommon.c: In function 'sendCommonEvents': ../src/wcmCommon.c:382:2: warning: 'value' may be used uninitialized in this function [-Wuninitialized] ../src/wcmCommon.c:329:22: note: 'value' was declared here Signed-off-by: Peter Hutterer Reviewed-by: Ping Cheng commit 307f50afba024cb6558d7084f5a7d86ec76bd992 Author: Peter Hutterer Date: Tue Mar 22 14:02:32 2011 +1000 Fix strip_keys index, copy/paste error. Signed-off-by: Peter Hutterer Reviewed-by: Ping Cheng commit 880512f84c26cddbfc1a8ff495890595424466f2 Author: Peter Hutterer Date: Tue Mar 22 13:50:44 2011 +1000 wcmUSB: change MOD_BUTTONS macro into a function Values in, values out. No magic state structs, keep it simple. Signed-off-by: Peter Hutterer Reviewed-by: Ping Cheng commit aadf1e0d215e3e7dfe119c3e541d35854de2326a Author: Peter Hutterer Date: Tue Mar 22 12:00:41 2011 +1000 test: drop glib dependency We weren't really using any of the glib-specific stuff anyway, so just replace g_assert with normal assert and drop the dependency. Signed-off-by: Peter Hutterer Acked-by: Ping Cheng commit 91fb559b5b760c345333ec7ac67f429d61b44f9d Author: Ping Cheng Date: Mon Mar 21 17:56:09 2011 -0700 Bring idtotype and findDeviceType to the style Make them into the usb family and follow the style guide. Consolidate tool id for the existing tools into three defines. Update findDeviceType to cover more cases so it may be called by other routines to retrieve tool types. Signed-off-by: Ping Cheng Signed-off-by: Peter Hutterer commit b0a6637a4cf262436fb21c2b734241f376289deb Author: Ping Cheng Date: Mon Mar 21 17:55:41 2011 -0700 Move findDeviceType from wcmCommon to wcmUSB Serial model is not supported. So, findDeviceType is only used by wcmUSB.c. Now it is the individual model's, wcmUSB or wcmISDV4, responsibility to set the device type locally. For wcmUSB, since kernel input filters out duplicated events, we should retrieve the device type and associated events directly from the kernel to cover the case when tool is on the tablet during driver starts. wcmCommon.c will treat packet with undefined device_type as invalid. Signed-off-by: Ping Cheng Signed-off-by: Peter Hutterer commit 201d1c35c7de919714815be18b990e9acc570054 Author: Ping Cheng Date: Mon Mar 21 17:55:18 2011 -0700 Prepare for the removal of BTN_TOOL_FINGER for pad tool in the kernel BTN_TOOL_FINGER was borrowed to group PAD events. With the support of pen and touch on the same logical port, we can not use it any more. PAD events of generic protocol has already manually routed to the pad channel, the last channel of wcmChanel. This patch groups PAD events for protocol 4 and 5 by the device_id sent through ABS_MISC event. In/out proximity event is also set by the ABS_MISC event. Signed-off-by: Ping Cheng Signed-off-by: Peter Hutterer commit 09f6c0faade997da490c1cd0277eb7f2f6cc9ef3 Author: Jason Gerecke Date: Fri Mar 18 18:01:17 2011 -0700 Clear the correct amount of memory Though this doesn't result in any bad behavior at the moment, it could cause some serious headaches in the future. Signed-off-by: Jason Gerecke Reviewed-by: Chris Bagwell Signed-off-by: Peter Hutterer commit 2ce1c6b47ff1596093d48b5cfccaddf17c6d2924 Author: Jason Gerecke Date: Fri Mar 18 18:01:16 2011 -0700 Fix X crash after remapping touchstrips and wheels Crash first appears in ab311bf20535acd6e7201e024bc311e0e15b5b6b. This commit rewrote wcmUpdateButtonKeyActions with one-indexed arrays in mind and extended the 'keys' array in _WacomDeviceRec to make room. However, the 'wheel_keys' and 'strip_keys' were not updated. Running e.g. `xsetwacom --set pad StripLeftDown button 4` results in a call to wcmUpdateButtonKeyActions. Its call to memset oversteps the array bounds and just happens to zero the 'common' pointer. The next tablet event results in a segfault as the driver tries to dereference the pointer. Signed-off-by: Jason Gerecke Acked-by: Chris Bagwell Signed-off-by: Peter Hutterer commit 1427db0bfea8c015ddb713f49eb0f33450266e60 Author: Ping Cheng Date: Mon Mar 21 14:10:42 2011 -0700 Enable left click for MT touchscreen Tools that are in absolute mode emit left click when the tool touches the surface. However, tools in relative mode need to locate the object on the surface before it selects (left click on) the object. That is, a second event (tap/leave/touch) is needed to trigger a left click for relative mode tools. Tools on touchscreen is in absolute mode. So, send left click down/up when the first finger touches/leaves the tablet. Signed-off-by: Ping Cheng Acked-by: Chris Bagwell Reviewed-by: Peter Hutterer Signed-off-by: Peter Hutterer commit 1c0696570c78b3454a9d847e5e9fe91bf0f04e9c Author: Ping Cheng Date: Fri Mar 18 15:07:24 2011 -0700 Remove one FIXME Get the "f" out of the code as well as the root cause. A proper fix would be to use resolution to decide the distance. That can be considered when we push the resolution table to the kernel. Hopefully, at that time, we can also post MT events to XInput 2.1 and push the gesture support to the desktop. Signed-off-by: Ping Cheng Acked-by: Chris Bagwell Signed-off-by: Peter Hutterer commit 1b8287e090c5d994a3f99eed227dbb08ad78c469 Author: Peter Hutterer Date: Wed Mar 16 10:06:01 2011 +1000 xsetwacom: add pgup and pgdwn as special keys. "Prior" and "Next" aren't quite that obvious so specialcasing seems warranted here. Signed-off-by: Peter Hutterer Reviewed-by: Ping Cheng commit 1cfe05195698583e002d19eb12fc6221639283df Author: Peter Hutterer Date: Thu Mar 10 16:22:33 2011 +1000 xsetwacom: update the property when we have items to write Introduced in 22bc3028effbdc79d426c0b3dcf586734d4c7532, changed logic caused the property not to update in all cases. Signed-off-by: Peter Hutterer commit 7ed24d165121e167930e34a3ea8532e358c003f5 Author: Peter Hutterer Date: Tue Mar 15 11:54:49 2011 +1000 Add fake symbols for serverClient and QueueWorkProc Broke linking of unit tests in 94a8eabadd062de6ceed8563089b863d887f8770. Signed-off-by: Peter Hutterer commit 863714247c8d6020748c0cf099f1e06caf6b2b06 Author: Jason Gerecke Date: Mon Mar 14 16:10:59 2011 -0700 Add tests for convert_value_from_user Some basic tests to ensure booleans and non-booleans act like we want them to. Signed-off-by: Jason Gerecke Signed-off-by: Peter Hutterer commit f58feb275b51f1f9e059e668609591434021559f Author: Jason Gerecke Date: Fri Mar 11 15:13:54 2011 -0800 Expand recognized boolean input for convert_value_from_user We remove the case sensitivity requirement for off/on and also allow the use of "true" and "false" Signed-off-by: Jason Gerecke Signed-off-by: Peter Hutterer commit d4f44eddeb497ecfaa99449b565f6bdf46c3b9fa Author: Jason Gerecke Date: Fri Mar 11 15:13:53 2011 -0800 Use strtol instead of atoi in convert_value_from_user atoi provides only the most basic string conversion capabilities, and makes determining if conversion was successful difficult (both "abc" and "0" would return 0). We use strtol and checks to ensure that it converted the entire string sucessfully before returning True. Signed-off-by: Jason Gerecke Signed-off-by: Peter Hutterer commit 12eebced3f004a0bea2c85d2197897de28bf7781 Author: Jason Gerecke Date: Fri Mar 11 15:13:52 2011 -0800 Detect boolean conversion failure in convert_value_from_user Properties with PROP_FLAG_BOOLEAN set can only take on a restricted set of values. We detect if the string matches any of the allowed values and convert if possible. If not possible, the caller is notified. Signed-off-by: Jason Gerecke Signed-off-by: Peter Hutterer commit e5af4b9928b983227cad711496d258cde5d62cfd Author: Jason Gerecke Date: Mon Mar 14 16:19:24 2011 -0700 Change signature of convert_value_from_user Have it return true/false to indicate conversion success/failure. Note that in its current state the function cannot tell if there was a conversion failure... Signed-off-by: Jason Gerecke Signed-off-by: Peter Hutterer commit 9ecc125c1c59b591a89e6f10b79b2e1e49c86165 Author: Chris Bagwell Date: Sun Mar 13 22:27:44 2011 -0500 Initialize USB pad device once up front Streamlines normal execution some but also resolves an issue reported for older Bamboo's since its now executed for all protocol types and not just generic protocols. Older Bamboo's and Graphire series always keep PAD device in proximity so you can pretty much count on never recieving a BTN_TOOL_FINGER event. This does work of that missing event. Signed-off-by: Chris Bagwell Signed-off-by: Peter Hutterer commit 33a031cab73424a0a1ea5ded36fa6631c9a5811e Author: David Foley Date: Mon Mar 14 15:54:52 2011 +1000 xsetwacom.man: Fix whitespace issues Signed-off-by: David Foley Signed-off-by: Peter Hutterer commit 3c0a16ac630603bf966e0a9fc1ee6d5be4276156 Author: David Foley Date: Sun Mar 13 17:57:10 2011 -0500 xsetwacom.man: add RawSample and Suppress parameters Add RawSample and Suppress to parameter description table. Signed-off-by: David Foley Signed-off-by: Peter Hutterer commit 301297d6423a3556fd94006d739a4afca82b5812 Author: Peter Hutterer Date: Thu Mar 10 10:12:48 2011 +1000 Re-vamp source inclusion for test build suite. test/Makefile.am included src/Makefile.am for the driver sources. However, that also lead to the driver being built twice, once in src/ and once in test/. On make install, test/wacom_drv.so would overwrite the src/wacom_drv.so and thus install a driver with all static symbols compiled as non-static. This caused the VCOPY bug worked around in 9d227cd0bd985e7dcb7923974361145ba1d78713. Avoid this by moving the sources into a shared included Makefile and build an independent libwacom-test.la in the test directory. Reported-by: Eduard Hasenleithner Signed-off-by: Peter Hutterer Tested-by: Eduard Hasenleithner Acked-by: Ping Cheng commit 36ea587badc947c027c40ee4387a2d5540a9a5b3 Author: Peter Hutterer Date: Fri Mar 11 09:30:45 2011 +1000 xsetwacom: remove unused need_update Unused since ba77b532e6c2a0b7b05ab129009c1f614b089c37 Signed-off-by: Peter Hutterer Reviewed-by: Chris Bagwell commit a3b6e2079155c5774baabcd9e3c53b3336536e49 Merge: 43c82c3139ef 69d3e9387105 Author: Peter Hutterer Date: Mon Mar 14 15:42:00 2011 +1000 Merge branch 'race-condition' commit 43c82c3139ef8b9abee7eb79a8d9055df9874329 Author: Jason Gerecke Date: Fri Mar 11 08:39:50 2011 -0800 Remove XWACOM_MAX_SAMPLES XWACOM_MAX_SAMPLES is a duplicate of MAX_SAMPLES, and appears to have no reason to be included in the Xwacom.h header. We remove it and retarget all references. Signed-off-by: Jason Gerecke Reviewed-by: Peter Hutterer Signed-off-by: Peter Hutterer commit 676b25e5ec5eb70d45d3228b28bef5c8a68ab7f6 Author: Peter Hutterer Date: Fri Mar 11 10:53:51 2011 +1000 Reset tiltx/y after converting it to rotation. Quote from Ping: "Since tilt is only used as raw value to calculate rotation for I4 mouse, i.e., they are not posted as valuators, resetting them or not does not make a difference." Let's reset it to 0 then so we don't get confusing values during debugging. Signed-off-by: Peter Hutterer Acked-by: Ping Cheng commit abfcc2ac187a4a7131503c0aa80e166ca384034e Merge: 857ef8159451 90ba05056578 Author: Peter Hutterer Date: Fri Mar 11 09:31:23 2011 +1000 Merge branch 'wcmTilt2R-fixes' commit 857ef8159451fe52cd999f523d9c500f6c32c0e1 Author: Jason Gerecke Date: Wed Mar 9 09:52:57 2011 -0800 Perform bounds checking on RawSample I made the mistake of setting this to zero and then bringing my pen into proximity. Ooops. X crashed. Looks like mathematics still can't handle getting the average of zero things ;) Signed-off-by: Jason Gerecke Reviewed-by: Ping Cheng Signed-off-by: Peter Hutterer commit 90ba05056578405307e737620782a581b942ef62 Author: Peter Hutterer Date: Thu Mar 10 14:18:13 2011 +1000 Change signature of wcmTilt2R to return the rotation calculated. Take an input point, calculate the rotation and return it. No need to deal with device state structures, etc. Signed-off-by: Peter Hutterer Acked-by: Ping Cheng commit 1023572644c5f00a418043615e802484fcff6e71 Author: Peter Hutterer Date: Thu Mar 10 14:13:37 2011 +1000 Sanitize wcmTilt2R. Cleaning up the code, rewriting the calculations, documentating the steps taken. It's understandable now. Whoop-dee-doo. Signed-off-by: Peter Hutterer Acked-by: Ping Cheng commit 42dc7cb652c5cf84433aac2aa791dc9fdb39ec2b Author: Peter Hutterer Date: Thu Mar 10 13:08:26 2011 +1000 Add a offset paramater value to wcmTilt2R Say No To Hardcoding. Signed-off-by: Peter Hutterer Acked-by: Ping Cheng commit 08c5fc41ef3f81dafbb50856c589fdf4e9f5f89c Author: Peter Hutterer Date: Fri Mar 4 09:39:15 2011 +1000 Fix wcmTilt2R so it uses defines instead of hardcoded numbers. Every time number is hardcoded deep inside the driver, god kills a kitten and a little part of me dies (unrelated to the kitten death). Use the defines already. Signed-off-by: Peter Hutterer Acked-by: Ping Cheng commit 56c550a11b57ccdc3e0d9ebcdeb323734c7c48f7 Author: Peter Hutterer Date: Fri Mar 4 08:56:57 2011 +1000 Document wcmTilt2R (and add a fixme) Because not everyone has hours to figure out what each function does. Come to think of it, I don't actually either... Signed-off-by: Peter Hutterer Acked-by: Ping Cheng commit 8d61689016b961a33e6950b09f191c16741dd608 Author: Peter Hutterer Date: Thu Mar 10 11:15:01 2011 +1000 test: write a non-test for wcmTilt2R It's non-transparent what wcmTilt2R actually does at the moment, so generate a test table from the current code and test against that. This way we at least know when we're breaking something. Exception: wraparound value generates +900 instead of -900. We must not send +900, our max range is 899, then we wrap again. This function isn't supposed to generate this value, so manually fixed up. Signed-off-by: Peter Hutterer Acked-by: Ping Cheng commit 8e4dabd64a611dd5571aef6aff8dfb5dd258655e Author: Peter Hutterer Date: Fri Mar 4 09:41:48 2011 +1000 Remove superfluous function declaration Signed-off-by: Peter Hutterer Acked-by: Ping Cheng commit 65220fa0276cbec10b51832c2bf9946c4bbfc4e8 Author: Chris Bagwell Date: Wed Mar 9 11:27:14 2011 -0600 remove per-device filter function Over time, we've merged device specific filter routines into single version. So there is no need for historic hook to register at runtime. ISDv4 devices never registered any filter which seems like it would result in jitter. Removed RawFilter() from WacomDevice structure and call wcmFilterCoord() directly from wcmCommon.c. Signed-off-by: Chris Bagwell Reviewed-by: Ping Cheng Signed-off-by: Peter Hutterer commit 1af65269cd22ea69b5d0920922484e0b4be3f9f6 Author: Peter Hutterer Date: Thu Mar 10 12:04:21 2011 +1000 Use xf86ScaleAxis for pressure normalization. And copy the server's xf86ScaleAxis for the test. Not ideal, I guess but oh well. Signed-off-by: Peter Hutterer Acked-by: Ping Cheng commit 0ee2a44a49ababe25dddc2b82dfa5a343fd7e893 Author: Jason Gerecke Date: Tue Mar 8 17:50:44 2011 -0800 Enable RawSample and Suppress The driver apparently didn't look at the RawSample option, and xsetwacom confused it's offset with Suppress. In other words: if you thought you've been tweaking Suppress, you've been tweaking RawSample. If you thought you were tewaking RawSample, you weren't doing anything. Signed-off-by: Jason Gerecke Signed-off-by: Peter Hutterer commit 22fcd2305c1f7464bdf15286c2690fd307629c5d Author: Jason Gerecke Date: Tue Mar 8 17:50:43 2011 -0800 Remove RawFilter from xsetwacom With support for the option completely removed from the driver, remove it from xsetwacom as well. Also modify the deprecation warning to handle cases like this where we don't want a replacement. Signed-off-by: Jason Gerecke Signed-off-by: Peter Hutterer commit ca418548e8c0114df5c7830ae6e4dc28bf38caf4 Author: Jason Gerecke Date: Tue Mar 8 17:50:42 2011 -0800 Remove RawFilter option from driver This option was mostly removed from the driver at some point in the past, with only these vestigal lines remaining. Signed-off-by: Jason Gerecke Signed-off-by: Peter Hutterer commit 7861dc281307d2a8727a99c31009af8ede144479 Author: Jason Gerecke Date: Tue Mar 8 08:53:44 2011 -0800 Fix minor doc style inconsistencies Add/move periods and whitespace, make defaults consistent, and clarify where necessary. Signed-off-by: Jason Gerecke Signed-off-by: Peter Hutterer commit 3282e954f209683ee2026d72b2adfbf1d4c48cb0 Author: Andrzej Pronobis Date: Mon Mar 7 12:42:01 2011 -0800 Decide scroll direction according to tablet orientation Signed-off-by: Andrzej Pronobis Signed-off-by: Ping Cheng Signed-off-by: Peter Hutterer commit fc41fb63dd883fc29236af535b22a2b347dfe326 Author: David Foley Date: Mon Mar 7 12:56:35 2011 -0600 xsetwacom.man: Add 5 parameters Add Mode, PressureCurve, Rotate, TabletPCButton, and Threshold. And other changes. Signed-off-by: David Foley Signed-off-by: Peter Hutterer commit acd8552d83929963d5cc70d6217c5a15da86c6c0 Author: Peter Hutterer Date: Mon Mar 7 14:38:31 2011 +1000 Don't try to update the button mapping if we don't have anything to update. If keyword parsing failed and we have zero items to update to (but we're not trying to reset the property), don't update the button action property. Reproducer: xsetwacom set "device" Button 1 "blah" would print an error about invalid keywords but still update (erase) the button mapping property. Signed-off-by: Peter Hutterer Acked-by: Ping Cheng commit eba6b9416148e5423c5a0c2632d88dbee5589615 Author: Peter Hutterer Date: Mon Mar 7 14:35:54 2011 +1000 xsetwacom: fix button action unsetting xsetwacom set Button 1 should unsets the key action for button 1 (back to button mapping) Signed-off-by: Peter Hutterer Acked-by: Ping Cheng commit 8ed4e95e8e65f569a3639959331f0a95b0917f11 Author: Peter Hutterer Date: Mon Mar 7 14:29:21 2011 +1000 xsetwacom: update a comment for new button map arguments. Signed-off-by: Peter Hutterer Acked-by: Ping Cheng commit 22bc3028effbdc79d426c0b3dcf586734d4c7532 Author: Peter Hutterer Date: Mon Mar 7 14:21:22 2011 +1000 xsetwacom: don't re-use argc, add new var "unset_prop" No functional change, making the code more readable. Signed-off-by: Peter Hutterer Acked-by: Ping Cheng commit fe07179e4976cdcc530bd2dd3cd482a65a3fd43d Author: Peter Hutterer Date: Mon Mar 7 14:16:55 2011 +1000 xsetwacom: print error if an unknown keyword is given. xsetwacom set "device" Button 1 "Ctrl Z" cannot be parsed by xsetwacom, leading to a nonfunctioning button without the user realising why. Print an error and complain if the keyword is unknown/invalid. Bug 3054502 https://sourceforge.net/tracker/?func=detail&atid=525124&aid=3054502&group_id=69596 Signed-off-by: Peter Hutterer Acked-by: Ping Cheng commit c4007437dcd7b24d949b80fb49e5e8e0699b4201 Merge: a8c95a7975ff abb4144f6ec1 Author: Peter Hutterer Date: Mon Mar 7 13:11:56 2011 +1000 Merge branch 'suppress-cleanup' commit abb4144f6ec125fa37fb6cd1f3eb0c4616367359 Author: Peter Hutterer Date: Fri Mar 4 09:37:13 2011 +1000 Don't hardcode the rotation range for cursor RZ, use defines instead. Signed-off-by: Peter Hutterer Reviewed-by: Ping Cheng commit 379be28b51d782c18a2f8ea3b7d59b08329ebbc0 Author: Peter Hutterer Date: Fri Mar 4 09:13:28 2011 +1000 Fix typo for max axis range on the cursor tool. Signed-off-by: Peter Hutterer Reviewed-by: Ping Cheng commit 859d325be9fc303b78ee4b2fde7fd6ca18888b4d Author: Peter Hutterer Date: Fri Mar 4 09:05:09 2011 +1000 Fix indentation in wcmTilt2R. Signed-off-by: Peter Hutterer Reviewed-by: Ping Cheng commit 5ca0e09f9058e47d2a2ff1c5474bc1b5aef92c14 Author: Peter Hutterer Date: Thu Mar 3 14:04:39 2011 +1000 test: remove miPointer wrappers, unneded. Obsolete with a9fe6a0337183c653ede6b5724612a138b022fb9 Signed-off-by: Peter Hutterer Reviewed-by: Ping Cheng commit aa96977dc7ff0b44b7d1dcb5bf524c339d4820e5 Author: Peter Hutterer Date: Thu Mar 3 14:01:21 2011 +1000 test: add tests for wcmCheckSuppress. Signed-off-by: Peter Hutterer Reviewed-by: Ping Cheng commit 1982daf6b13685cc6568a53b85d62089405963a9 Author: Peter Hutterer Date: Thu Mar 3 13:40:08 2011 +1000 Rewrite wcmCheckSuppress Instead of returning rather ambiguous 0, 1 and 2, return enums with readable descriptions. No functional changes, other than that we now skip a few tests in wcmCheckSuppress if we already have the result. Signed-off-by: Peter Hutterer Reviewed-by: Ping Cheng commit a8c95a7975ffa16779cced264062bc64b8631095 Author: David Foley Date: Fri Mar 4 12:50:39 2011 -0600 conf: Add Fujitsu ISDV4 device ID FUJ02e9 to matches Signed-off-by: David Foley Reviewed-by: Ping Cheng Signed-off-by: Peter Hutterer commit 89db1ede87db655b57fb2234194f1c26993ef166 Author: David Foley Date: Fri Mar 4 13:28:24 2011 -0600 wcmUSB.c: Update BambooPT identifier comment Change 0xDB from CTH-661 to CTH-661/L. Reported-by: Pander Signed-off-by: David Foley Acked-by: Chris Bagwell Signed-off-by: Peter Hutterer commit e79f7a730cedee93db363c20ddddc9e90b41ef3b Author: Peter Hutterer Date: Thu Mar 3 12:02:27 2011 +1000 Swap an error message "likely to crash" for one not likely to do so Signed-off-by: Peter Hutterer Reviewed-by: Ping Cheng commit 0250ecbc798b47821ed81e87ab852b6cc342efe1 Author: Peter Hutterer Date: Thu Mar 3 11:54:18 2011 +1000 Remove now-obsolete condition. With the removal of the tool areas, this check became obsolete. Signed-off-by: Peter Hutterer Reviewed-by: Ping Cheng commit fe46ffdd55f877e0750017285724181b3ddf4a4c Author: Peter Hutterer Date: Thu Mar 3 11:53:36 2011 +1000 Document findTool() And rename tooldef to tooldefault, I always get confused by that. Signed-off-by: Peter Hutterer Reviewed-by: Ping Cheng commit 07964dc148767f78fee691981935f9450a1981bf Author: Peter Hutterer Date: Thu Mar 3 11:50:50 2011 +1000 Document is/set_absolute Signed-off-by: Peter Hutterer Reviewed-by: Ping Cheng commit 69d3e9387105e0a92cae95f6f81a62e868506c06 Author: Peter Hutterer Date: Thu Mar 3 15:52:56 2011 +1000 Add a fixme about tool handling. Signed-off-by: Peter Hutterer Acked-by: Ping Cheng commit 751976d32f756197cc7254ae85956eebdf7e8e47 Author: Peter Hutterer Date: Thu Mar 3 14:32:38 2011 +1000 Keep an enabled flag in the tool to avoid racy startup. There is a small time window where a device may try to send an event even though it is not fully setup to send events yet, causing a server crash. This window opens when the tool is added to the list of devices in wcmParseOptions() and closes with the server calling xf86ActivateDevice(). If an event for a dependent device is processed during that time, the tool will be available but the device pointer is still invalid. Crash can be reproduced by putting a breakpoint after wcmParseOptions() for the eraser, then generating events with the eraser. These will cause the tool to dereference tool->device->dev, which is uninitialized. Work around this with a simple "enabled" flag that is set whenever the tool is actually enabled. Signed-off-by: Peter Hutterer Acked-by: Ping Cheng commit 94a8eabadd062de6ceed8563089b863d887f8770 Author: Peter Hutterer Date: Thu Mar 3 11:29:19 2011 +1000 Switch to a WorkProc for device hotplugging. The current approach to hotplugging is to call NIDR directly from the parent device's PreInit. This causes a nested device layout as the dependent devices are initialised fully before the parent device is initialised. Switch to a WorkProc instead. Copy the necessary information to create a new device later and tell the server to call the actual hotplug function when it has time. Signed-off-by: Peter Hutterer Acked-by: Ping Cheng commit 490e345f9d85a73263e96ba0b2918a9a2ca913ad Author: Peter Hutterer Date: Thu Mar 3 15:27:20 2011 +1000 Don't manually UnInit the devices for ABI 12 One of the changes going into ABI 12 were that the server calls Uninit even on driver-hotplugged devices. Signed-off-by: Peter Hutterer Acked-by: Ping Cheng commit 66466dcf8bbe4c633c006863b30d8d022c575842 Author: Ping Cheng Date: Wed Mar 2 15:16:15 2011 -0800 Don't discard the first 2 USB events It was an issue with older kernels. This driver only supports kernels 2.6.26 and later. No need to do that any more. There is a special case that this code may have helped though. If tool is on the tablet while driver started, waiting for more events before processing them would fill some otherwise filtered events from the kernel. Even for this case, the solution should be added inside wcmUSB.c, instead of here. We'll work on that in wcmUSB.c later. Just for the record. The perfect solution would be to retrieve all events from the kernel if important events, such as tool type, serial number, etc, are missing. This would require quite some changes in wcmUSB.c. And, the challenge is that linux-input doesn't provide the means for us to retrieve all of the events that posted from the kernel. At least, we can not retrieve serial number and MT events yet. Signed-off-by: Ping Cheng Reviewed-by: Chris Bagwell Signed-off-by: Peter Hutterer commit 438da502c84e7742acb31e433e42efd5bd003581 Author: Ping Cheng Date: Wed Mar 2 15:16:49 2011 -0800 Set ISDV4 to PROTOCOL_GENERIC in isdv4ProbeKeys isdv4ProbeKeys is the place we set all tool types and other keys. Reset the ProtocolLevel to PROTOCOL_GENERIC here as well. Otherwise, it would be overwrote by the default. Signed-off-by: Ping Cheng Acked-by: Chris Bagwell Signed-off-by: Peter Hutterer commit 22e4410cb3de0ac6b6e2275bd8b8bcc0f2cf7b5a Author: Peter Hutterer Date: Thu Mar 3 10:05:55 2011 +1000 test: fix typos and copy/paste effects. Misplaced closing parens, then copy/pasted everywhere. Introduced in 1d9a055bc8e95f20458d7da5b77967f2e53b7d6f Signed-off-by: Peter Hutterer commit 5c06d9584e1f231bea47aaf1dd33e0502dee34be Author: Peter Hutterer Date: Wed Mar 2 10:40:44 2011 +1000 test: add license header Signed-off-by: Peter Hutterer Acked-by: Chris Bagwell commit b80876c01ce62baa63c2563aeef399ffea73f588 Author: Peter Hutterer Date: Wed Mar 2 10:39:57 2011 +1000 test: add note that we can't test static variables here. Signed-off-by: Peter Hutterer Acked-by: Chris Bagwell commit 1d9a055bc8e95f20458d7da5b77967f2e53b7d6f Author: Peter Hutterer Date: Wed Mar 2 10:03:31 2011 +1000 test: add ifdefs to allow running tests against 1.7 Signed-off-by: Peter Hutterer Acked-by: Chris Bagwell commit 9d227cd0bd985e7dcb7923974361145ba1d78713 Author: Peter Hutterer Date: Wed Mar 2 10:34:36 2011 +1000 Move VCOPY storage out of the function. Not 100% sure why this is needed but it looks like the returned address is invalid, causing memory corruption. Simply moving the variable into a global scope fixes this issue. Fixes crash with server 1.7. Reported-by: Vu Ngoc San Signed-off-by: Peter Hutterer Reviewed-by: Ping Cheng Reviewed-by: Chris Bagwell commit a113f790fe19b0d30b672eb051a3215880df5d3e Author: Timo Aaltonen Date: Wed Mar 2 19:09:27 2011 +0200 xsetwacom.c: Fix a typo preventing Rotate ccw from working Introduced in ac821ba29a828fb9bb531243d0a226a7fe494504 Signed-off-by: Timo Aaltonen Signed-off-by: Peter Hutterer commit 9dba8e81e132561732c3bc6c0645a6af44eab2a0 Author: Peter Hutterer Date: Wed Mar 2 11:47:45 2011 +1000 Bump to 0.10.99. New release versioning scheme until we settle on a stable 1.0. - 0.x.99 is the version number in-between releases - 0.x.99.901 is the first RC - 0.x.99.902 is the second RC - 0.x+1.0 is next the release Signed-off-by: Peter Hutterer commit 1f0cfe5dd48eec52c495c5777d20758563318783 Author: Peter Hutterer Date: Tue Mar 1 15:05:05 2011 +1000 test: add basic check that the tool is initialized correctly. Signed-off-by: Peter Hutterer Reviewed-by: Ping Cheng commit 82e65fc52d497b57dab4bcd008ee64f9f7f08796 Author: Peter Hutterer Date: Fri Jan 21 14:07:55 2011 +1000 Remove now unused overlap checking functions Signed-off-by: Peter Hutterer Reviewed-by: Ping Cheng commit 13a12bb852f845ce5588f1e7dcda18cd2c21cb59 Author: Peter Hutterer Date: Fri Jan 21 13:52:08 2011 +1000 Purge toolarea from device rec. Having multiple areas for tool is feature that has gone untested for possibly years and it's hard to figure out how to even configure it. Purge it. Signed-off-by: Peter Hutterer Reviewed-by: Ping Cheng commit 751065df9bce662f2e1d74746e1ce6b6cb8c73ce Author: Peter Hutterer Date: Fri Jan 21 13:31:15 2011 +1000 Purge KeepShape option (for now, anyway). This option is badly broken since the driver has lost the ability to check for screen coordinates. There is a need for this option, but it will have to come back as a purely client-configured option (i.e. the client feeds the tablet coordinates it should map to). Signed-off-by: Peter Hutterer Reviewed-by: Ping Cheng commit 24019a07a56fb73132273910d36a036d1c811bb9 Author: Chris Bagwell Date: Sun Feb 20 22:49:33 2011 -0600 Make 1 finger tap work based on finger release. Previous behavior required a double-tap to get a single finger tap to work and didn't always work for me. Its behavior was basically tap-and-drag gesture instead of tap-to-click. Converted to standard touchpad behavior of single tap based on finger release. This is arguely the more important gesture to users. Removed wcmTouchpadMode since it wasn't needed for simple tap-to-click gesture. If tap-and-drag gets added back and needs a variable, it can be added back with a name that has "drag" in it to understand its intended usage. Signed-off-by: Chris Bagwell Tested-by: Andrzej Giniewicz Acked-by: Ping Cheng Signed-off-by: Peter Hutterer commit 1b30bd68111b7e08fb9ded4302ba556f16253a8a Author: Chris Bagwell Date: Sun Feb 20 19:19:20 2011 -0600 allow button events while touch is disabled PROTOCOL_GENERIC devices send "pad" buttons along with touchscreen/touchpad events. Since we are emulating "pad" device concept, we need to let "pad" events go through when "touch" is disabled. There seems to be a popular script floating around that toggles "touch" device on/off by using same devices "pad" buttons. This patch allows that to work again. Signed-off-by: Chris Bagwell Reviewed-by: Ping Cheng Signed-off-by: Peter Hutterer commit 85f4c8ed19f8816d0353ee302cf34f8d11e2b14b Author: Peter Hutterer Date: Thu Feb 24 15:28:45 2011 +1000 Disable KeepShape - it's currently unsupported. Will come back once it's hooked up properly again. Signed-off-by: Peter Hutterer Acked-by: Ping Cheng commit 577f42d38b66fd84594a6d3f2932a559e68b5751 Author: Bruno Vasselle Date: Fri Feb 25 08:31:21 2011 +1000 Division by zero in wcmInitArea when KEEP_SHAPE_FLAG is on. Under some circumstances, wcmInitArea faces a division by zero when trying to deal with the "KeepShape" option. The patch disables KeepShape in the situation. Signed-off-by: Bruno Vasselle Acked-by: Ping Cheng Signed-off-by: Peter Hutterer commit 240e694d861fe78d516f43f315dbe2b634368131 Author: Ping Cheng Date: Tue Feb 22 17:23:42 2011 -0800 Retrieve the ABS values through EVIOCGABS only when they are set We get absinfo.maximum = 0 when the ABS_ is not set in the kernel, which is invalid. This issue was found when I work on the resolution. It applies to other ABS_* as well. Signed-off-by: Ping Cheng Signed-off-by: Peter Hutterer commit ac4f60e378150369f7de64045d80e2f2318e0f63 Author: Peter Hutterer Date: Wed Feb 23 09:59:15 2011 +1000 Update README with a few pointers to website, etc. Signed-off-by: Peter Hutterer Reviewed-by: Ping Cheng commit 87d09b7addeee2d7119c81c2f5b415ceebc50931 Author: Gaetan Nadon Date: Fri Feb 18 11:50:52 2011 -0500 distcheck fails, xsetwacom.c needs X11_CFLAGS for UNITTESTS Otherwise it fails to pickup X11/keysym.h and friends. Signed-off-by: Gaetan Nadon Signed-off-by: Peter Hutterer commit 957de9b5a32efaf891e5d4ed55207297b060e605 Author: Gaetan Nadon Date: Fri Feb 18 20:02:12 2011 -0500 Doxygen: add project name in footer. The footer was generated by doxygen based on doxygen.conf Signed-off-by: Gaetan Nadon Signed-off-by: Peter Hutterer commit a52277e7f2864493342affb6a4fc6cda74a9d0af Author: Gaetan Nadon Date: Fri Feb 18 20:02:11 2011 -0500 Doxygen: use $PACKAGE_VERSION for the release number The release number in the main page will always be in sync. This will allow archiving the API documentation for each release, enabling multiple versions to coexist on the web. Signed-off-by: Gaetan Nadon Reviewed-by: Ping Cheng Signed-off-by: Peter Hutterer commit e21033fb505734a934bd0400d9ff72e7ec32c326 Author: Favux Date: Thu Feb 17 21:09:32 2011 -0600 xsetwacom.c: Correct typo-spelling Patch From 6e682f268416db29cb178f1f7f734b7687081d29 Mon Sep 17 00:00:00 2001 From: David Foley Date: Thu, 17 Feb 2011 20:57:38 -0600 Subject: [PATCH] xsetwacom.c: Correct typo/spelling Reported by: Vu Ngoc San Signed-off-by: David Foley Signed-off-by: Peter Hutterer commit 01cf69515fa808c09e2ac80c29d6c638ac8191e7 Author: Gaetan Nadon Date: Fri Feb 18 12:05:31 2011 -0500 Doxygen: add description on the main html page Rather than staring at a blank screen. To be completed. Signed-off-by: Gaetan Nadon Signed-off-by: Peter Hutterer commit af58a7af91c00ef4da56c92d143d6bad1475196d Author: Gaetan Nadon Date: Fri Feb 18 12:05:30 2011 -0500 Doxygen: add "getting started" support. Add Makefile.am and docygen.conf with some customization Signed-off-by: Gaetan Nadon Signed-off-by: Peter Hutterer commit b667dd01313bfbc5c76326de61d7fc659076581c Merge: 244b5ad8f88d 79b3945d3ab3 Author: Peter Hutterer Date: Fri Feb 18 10:07:06 2011 +1000 Merge branch 'next' commit 244b5ad8f88d3db52bdde7ade9087b096e5a12ea Author: Peter Hutterer Date: Thu Feb 17 14:56:06 2011 +1000 Require doxygen. Signed-off-by: Peter Hutterer Acked-by: Ping Cheng Reviewed-by: Gaetan Nadon commit 6ca246bdbb40489490d0b9a72637f997e0629a61 Author: Peter Hutterer Date: Thu Feb 17 11:31:36 2011 +1000 Update release script to deal with SF's shell service I get auth. failures if I log in too often. Signed-off-by: Peter Hutterer Acked-by: Ping Cheng commit 8cdf444fd1f4004b5a0d237b26ebcd72900338c4 Author: Peter Hutterer Date: Wed Feb 16 08:45:04 2011 +1000 wacom 0.10.11 Signed-off-by: Peter Hutterer commit e1acd61df8bad22864352cd6c9703356d46cb112 Author: Peter Hutterer Date: Wed Feb 16 08:41:56 2011 +1000 test: add more symbols to fake-symbols for ABI < 12 Signed-off-by: Peter Hutterer Acked-by: Ping Cheng commit f9725353ba6e82b41abc73adb293676248558a08 Author: Peter Hutterer Date: Wed Feb 16 08:37:02 2011 +1000 test: put guards in for changed APIs in earlier server versions. Addition of const in ABI 12 breaks build if running make check against an earlier server. Signed-off-by: Peter Hutterer Acked-by: Ping Cheng commit a7f85d19ec858c9567b08dbe1819019a1a10b83c Author: Peter Hutterer Date: Wed Feb 16 08:36:19 2011 +1000 test: remove _X_RESTRICT_KYWD from definitions Undefined in earlier server versions, breaks distcheck. Signed-off-by: Peter Hutterer Acked-by: Ping Cheng commit 6e4f971f9dc7d061771712141aff8581ca8ff4ea Author: Peter Hutterer Date: Wed Feb 16 08:21:57 2011 +1000 Remove ABS() macro, just use abs() Signed-off-by: Peter Hutterer Acked-by: Ping Cheng commit a9fe6a0337183c653ede6b5724612a138b022fb9 Author: Peter Hutterer Date: Wed Feb 9 09:50:04 2011 +1000 Check if the device has been initalised before processing the events. This is a stopgap solution only. Due to the current hotplugging approach, the dependent tools are initialised before the parent device. This leaves us with a time window where the parent device does not yet have a DeviceIntPtr attached. If an event from the parent device comes in during this time window, posting the event causes segfaults. Fix this for now by checking if there is a device attached to it yet. Signed-off-by: Peter Hutterer commit b6fb68cf4930d20cb91d9fd939587082ee2e2dfd Author: Peter Hutterer Date: Wed Feb 9 09:48:48 2011 +1000 Rename pDev to pInfo where it is an InputInfoPtr. For consistency with the rest of the code. Signed-off-by: Peter Hutterer Acked-by: Ping Cheng commit 79b3945d3ab3b270e7bd6a7deb8e6b52e0c2b8fa Author: Peter Hutterer Date: Mon Feb 14 14:12:32 2011 +1000 xsetwacom: comment convert_specialkeys. And change a paramter name to be more self-explanatory. Signed-off-by: Peter Hutterer Acked-by: Ping Cheng commit 70e0d864b16c36486e835a79b52699aee5de5a10 Author: Peter Hutterer Date: Mon Feb 14 14:10:10 2011 +1000 xsetwacom: document is_modifier And change a parameter name to make the function more self-explanatory. Signed-off-by: Peter Hutterer Acked-by: Ping Cheng commit f7bbd3a14b796c8d6adef3322cc7a4b19a466c7f Author: Peter Hutterer Date: Mon Feb 14 14:08:11 2011 +1000 xsetwacom: use single exit path in is_modifier. Signed-off-by: Peter Hutterer Acked-by: Ping Cheng commit ba20f19bf66b1e79f1aa56be6deb8aac952ff33e Author: Peter Hutterer Date: Mon Feb 14 14:07:23 2011 +1000 xsetwacom: remove separate modifier list in is_modifier. Simply parse through the existing modifier list. Signed-off-by: Peter Hutterer Acked-by: Ping Cheng commit 5fedf69d653cfbee9ac393643c4cbe0b23e87e19 Author: Peter Hutterer Date: Mon Feb 14 15:12:49 2011 +1000 xsetwacom: add test for parameter numbers. Simple manual check that we remeber to properly deprecate if we ever remove a parameter again. Signed-off-by: Peter Hutterer Acked-by: Ping Cheng commit 0b1462aa27bbf3d8653a762fd8e1648b856a76e3 Author: Peter Hutterer Date: Mon Feb 14 15:06:26 2011 +1000 xsetwacom: add test for convert_specialkey Signed-off-by: Peter Hutterer Acked-by: Ping Cheng commit f6dc39637056adc6fe503654b9f44f225dc4f6ac Author: Peter Hutterer Date: Mon Feb 14 14:59:14 2011 +1000 xsetwacom: hook up to unittests. Includes simple test for is_modifier(). Signed-off-by: Peter Hutterer Acked-by: Ping Cheng commit e1b97d153426d8e8712b09806ad0b0bfc517b485 Author: Peter Hutterer Date: Mon Feb 14 15:10:50 2011 +1000 test: fix indentation to be in-line with the rest of the driver And add the vim tags so this doesn't happen again. Sorry. Signed-off-by: Peter Hutterer Acked-by: Ping Cheng commit c1e18af5794191a5560fb60bd447e05fdafd53cb Author: Przemo Firszt Date: Sun Jan 2 23:06:46 2011 +0000 Add Super and Hyper as modifiers Super_L / _R and Hyper_L/_R were missing from the list of modifiers in is_modifier function in xsetwacom.c. It was causing some troubles, reported as bug 3140393 Signed-off-by: Przemo Firszt Signed-off-by: Peter Hutterer commit f856de8b9d4dd721d3a189665045ea0b9ac6f126 Author: Chris Bagwell Date: Wed Feb 9 12:38:00 2011 -0600 remove unsupported "Speed" option from man page. Use xinput's "Device Accel Constant Deceleration" for similar feature. Signed-off-by: Chris Bagwell Signed-off-by: Peter Hutterer commit 0f9a1371a2498e0c74ecdf381d28b5bc3adfaa25 Merge: 32babb0c89db b49d98a27dc1 Author: Peter Hutterer Date: Thu Feb 10 13:12:47 2011 +1000 Merge branch 'test-suite' commit 32babb0c89db59a73890ae5a989b65fd128486f5 Merge: bf9ba5f101a2 868d768e9144 Author: Peter Hutterer Date: Wed Feb 9 09:51:54 2011 +1000 Merge branch 'xsetwacom-cleanup' commit 868d768e91444ae47cca3ab1902e0161920011ea Author: Peter Hutterer Date: Tue Feb 8 13:31:48 2011 +1000 xsetwacom: print warnings for deprecated parameters. Signed-off-by: Peter Hutterer Acked-by: Ping Cheng commit bf9ba5f101a28db64973b1933debed381ee1654e Author: Ping Cheng Date: Thu Feb 3 21:12:10 2011 -0800 Process USB 1FGT data through BTN_TOUCH Signed-off-by: Ping Cheng Reviewed-by: Chris Bagwell Signed-off-by: Peter Hutterer commit 80b9d51819c48a10914be165720d2c59c587cf01 Author: Ping Cheng Date: Thu Feb 3 20:59:30 2011 -0800 Prepare for Tablet PC MT format We borrowed _TAP_ for 2FGT Tablet PC support when MT protocol was not available (before kernel 2.6.30 was released). MT support in the kernel is getting stable now. To move Tablet PC to MT format, we face two issues: 1. USB Tablet PC 1FGT devices will not emit BTN_TOOL_FINGER event since it is a touchscreen device. 2. Serial Tablet PC 2FGT devices do not emit BTN_TOOL_DOUBLETAP event since they are not touchpads. This patch add those keys back to the supported key array so we can retrieve the proper keys when we need to decide the features that are associated with the device. Changes to v1: 1. Replace usbGenericTPCQuirks with usbGenericTouchscreenQuirks 2. Remove USB from the second item above as suggested by Chris Bagwell. Signed-off-by: Ping Cheng Acked-by: Chris Bagwell Signed-off-by: Peter Hutterer commit 36520328f4b42f2556a8472a66ea2e9986a59ebd Author: Peter Hutterer Date: Tue Feb 8 14:57:00 2011 +1000 man: note that the threshold applies to the normalized pressure range. Signed-off-by: Peter Hutterer Reviewed-by: Chris Bagwell commit e5540823b1b70b4e0a5f91116e7f75d564a40d78 Author: Peter Hutterer Date: Tue Feb 8 14:36:26 2011 +1000 Rename transPressureCurve to applyPressureCurve. More self-explanatory name because with recent refacturing, that's all we're doing here. Signed-off-by: Peter Hutterer Reviewed-by: Chris Bagwell commit f1059805593f52080854d3c3e8a85fb2633f90b6 Author: Peter Hutterer Date: Tue Feb 8 14:34:57 2011 +1000 Return converted pressure, don't set it directly. Allows for constification of the parameter in transPressureCurve(). Signed-off-by: Peter Hutterer Reviewed-by: Chris Bagwell commit 61f1a2ae93a7e801302a27b7ca58ef9806bdec78 Author: Jason Gerecke Date: Wed Feb 9 08:04:05 2011 +1000 Fix spelling error s/none /non-/ Signed-off-by: Jason Gerecke Acked-by: Ping Cheng Signed-off-by: Peter Hutterer commit 1b1c1022e0abe4f0c3f4d749857a788f36b69f84 Author: Ron Lee Date: Sun Feb 6 19:13:54 2011 +1030 xsetwacom: only display usage() once, when asked If we just break out of the switch, then --help and --version will cause the usage() to be displayed again in the !do_list && !do_get && !do_set block. Closes: http://bugs.debian.org/612122 Signed-off-by: Ron Lee Signed-off-by: Peter Hutterer commit 89cf7f4b391a075209b0f2b4752f01da2f90b228 Author: Peter Hutterer Date: Thu Feb 3 15:05:28 2011 +1000 xsetwacom: rename "xyDefault" to "ResetArea" "xsetwacom set ResetArea" seems more self-explanatory than "xsetwacom set xyDefault" Signed-off-by: Peter Hutterer Acked-by: Ping Cheng commit 3d88c0189ee52beadb0021b695cab026b5129c03 Author: Peter Hutterer Date: Thu Feb 3 15:01:28 2011 +1000 xsetwacom: change a few parameters to self-explanatory ones. Affected: PressCurve → PressureCurve TPButton → TabletPCButton CursorProx → CursorProximity All wheel and strip properties. Signed-off-by: Peter Hutterer Acked-by: Ping Cheng commit ac821ba29a828fb9bb531243d0a226a7fe494504 Author: Peter Hutterer Date: Thu Feb 3 14:58:35 2011 +1000 xsetwacom: lowercase rotation values. Don't shout at users, it makes them sad. We take both uppercase and lowercase anyway... Signed-off-by: Peter Hutterer Acked-by: Ping Cheng commit 4f4172a453a92f892007cc0fd3c9104d40138d4c Author: Peter Hutterer Date: Thu Feb 3 14:56:50 2011 +1000 xsetwacom: rename DebugLevel/CommonDBG to ToolDebugLevel/TabletDebugLevel Self-explanatory parameter names ftw! Signed-off-by: Peter Hutterer Acked-by: Ping Cheng commit 766c0064f825c363eb5aa6ed6d944ebdae950e0e Author: Peter Hutterer Date: Thu Feb 3 14:51:01 2011 +1000 xsetwacom: simplify code for Button mappings. This changes the user interface. Instead of xsetwacom set Button1 ... it's now xsetwacom set Button 1 ... (note the space) Other than that, functionality stays the same. Signed-off-by: Peter Hutterer Acked-by: Ping Cheng commit 6360f166c2b9d61b2a0ef4624e6dd0a799da9e04 Author: Peter Hutterer Date: Thu Feb 3 14:23:55 2011 +1000 xsetwacom: remove GetTabletID - duplicate option. We already have the parameter "TabletID". Signed-off-by: Peter Hutterer Acked-by: Ping Cheng commit 8b77d9ddf79c2d91abc011b249698d0b4946917f Author: Peter Hutterer Date: Thu Feb 3 14:23:07 2011 +1000 xsetwacom: remove mmonitor parameter - not hooked up to anything. Removed with the multimonitor support purge. Signed-off-by: Peter Hutterer Acked-by: Ping Cheng commit 4268b647ae42b8a4fa88d531d33334d4e2f379c3 Author: Peter Hutterer Date: Thu Feb 3 14:20:41 2011 +1000 xsetwacom: remove pressurecurve special handling - not needed. The prop_extra field handles this for us automatically now. Signed-off-by: Peter Hutterer Acked-by: Ping Cheng commit 69abda44c2ad460f3b59a94634938c3fa8ed57b9 Author: Peter Hutterer Date: Thu Feb 3 14:18:13 2011 +1000 xsetwacom: purge Screen_No setting, it's not supported anymore. Removed with the multi-monitor removals. Signed-off-by: Peter Hutterer Acked-by: Ping Cheng commit 2bdd897b4a2857d224d3142f0067fd209bb35fea Author: Peter Hutterer Date: Thu Feb 3 14:15:15 2011 +1000 xsetwacom: purge TopX/BottomX/..., replace with Area instead. In almost all cases, a user that needs to set the are will need to set all 4 values. Instead of asking the user to type 4 commands to set the area, just provide one parameter that takes 4 coordinates. Signed-off-by: Peter Hutterer Acked-by: Ping Cheng commit 5da087b0d18078f466209ff52422f82db1a4a362 Author: Peter Hutterer Date: Thu Feb 3 13:38:29 2011 +1000 xsetwacom: s/X.conf/xorg.conf/ in help output Signed-off-by: Peter Hutterer Acked-by: Ping Cheng commit f25ddf2db80e4845f307e3f5c80c863fb33868fd Author: Peter Hutterer Date: Thu Feb 3 13:36:02 2011 +1000 xsetwacom: s/disp_name/display in help output. Signed-off-by: Peter Hutterer Acked-by: Ping Cheng commit c642d60682dde26df9ced9d3d27fc25cd1b7c985 Author: Peter Hutterer Date: Thu Feb 3 13:34:57 2011 +1000 xsetwacom: s/param/parameter/ in help output Signed-off-by: Peter Hutterer Acked-by: Ping Cheng commit 979f964cd7fc80accd470976a3304033f3ea9658 Author: Peter Hutterer Date: Thu Feb 3 13:33:40 2011 +1000 xsetwacom: split help output into multiple lines. Just cleaning up the UI, instead of "list [devices|[parameters]" but a separate "list modifiers", have three separate lines. Also, change from "known" to "supported" or "detected". Signed-off-by: Peter Hutterer Acked-by: Ping Cheng commit 38af5d20b51e69ee60e1c3f34388d636fd04a187 Author: Peter Hutterer Date: Thu Feb 3 13:32:22 2011 +1000 xsetwacom: require "list parameters", not "list param" Making the UI a bit more self-explanatory. "list param" still works to avoid breakage, it's just undocumented. Signed-off-by: Peter Hutterer Acked-by: Ping Cheng commit bac5ac9da3027bef641899762ad6f0ca3785ab75 Author: Peter Hutterer Date: Thu Feb 3 13:30:23 2011 +1000 xsetwacom: require "list modifiers", not list mod Making the UI a bit more self-explanatory. "list mod" still works to avoid breakage, it's just undocumented. Signed-off-by: Peter Hutterer Acked-by: Ping Cheng commit 6e0cd8638f1d94852cb0c779838678364baab6bb Author: Peter Hutterer Date: Thu Feb 3 13:27:47 2011 +1000 xsetwacom: require "list devices", not "list dev" Making the UI a bit more self-explanatory. "list dev" still works to avoid breakage, it's just undocumented. Signed-off-by: Peter Hutterer Acked-by: Ping Cheng commit 1560b55a2b119a35fe7ea42d0ab3bf2674678824 Author: Peter Hutterer Date: Thu Feb 3 13:25:28 2011 +1000 xsetwacom: use "device name" instead of dev_name in help output. Easier to understand, and also illustrates better that most times the device name needs to be in quotes. Signed-off-by: Peter Hutterer Acked-by: Ping Cheng commit 1395e43b2d91ae4614b010c7b7c0f345121cbf90 Author: Chris Bagwell Date: Wed Feb 2 15:00:56 2011 -0600 align Threshold default in man page to software Signed-off-by: Chris Bagwell Signed-off-by: Peter Hutterer commit f175c5e3db41f72031678d040787de7a0b5b89f1 Author: Chris Bagwell Date: Tue Feb 1 21:11:50 2011 -0600 fix cursor jumps when clicking button on relative devices Placing a stylus in relative mode (xinput set-mode x RELATIVE) would result in unexpected mouse movement when a button click occured. Similar reports given for mouse tool which defaults to relative mode on its own. I believe the memset()'s zeros were being scaled to non-zero values for acceleration inside xserver and causing the movement. Change to not post these valuators during button posts since they were just posted. Signed-off-by: Chris Bagwell Signed-off-by: Peter Hutterer commit a453ac1a2f24d931e9ec50787d55effe57ae1d9d Author: Ping Cheng Date: Tue Feb 1 13:36:11 2011 -0800 Convert ISDV4 resolution to points/m Signed-off-by: Ping Cheng Signed-off-by: Peter Hutterer commit de41586f8ed1661921f6b5d07bcd6acc163f11ce Author: Ping Cheng Date: Mon Jan 31 17:21:00 2011 -0800 Change to GENERIC protocol This brings ISDV4 2FGT in sync with USB GENERIC protocol so it goes with the same path as the USB _MT_ support. Signed-off-by: Ping Cheng Signed-off-by: Peter Hutterer commit 84f56edfbcbcb9dd8a6d421858d05784ca25383a Author: Ping Cheng Date: Mon Jan 31 17:21:19 2011 -0800 Add a new Fujitsu 1FGT model Signed-off-by: Ping Cheng Signed-off-by: Peter Hutterer commit 8f9439e206cdedfbf63a7f786634a33bafa84291 Author: Ping Cheng Date: Tue Jan 25 11:48:49 2011 -0800 Streamline the touch resolution Resolution uses different units in the kernel (point/mm), XInput (point/m), and the hardware protocol (point/cm/1000 for touch and point/inch for pen). We have a resolution table for pen in the X driver. But we get the touch resolution directly from the kernel through HID descriptor. For kernels older than 2.6.30, resolution is not part of absinfo. For kernels older than 2.6.35, kernel does not pass resolution to the userland. This patch addresses those issues and correct a conversion bug introduced by the RX/RY workaround. Signed-off-by: Ping Cheng Reviewed-by: Chris Bagwell Signed-off-by: Peter Hutterer commit b49d98a27dc1564d99847691a3f994bc799a1c93 Author: Peter Hutterer Date: Mon Jan 31 09:53:03 2011 +1000 test: expand pressure normalisation range. Try with a rather random variety of maxZ values, make sure the range really goes up to FILTER_PRESSURE_RES. Signed-off-by: Peter Hutterer Acked-by: Ping Cheng commit 170b71a49aa3b6be6233189cdda1ff5fb48d05f2 Author: Peter Hutterer Date: Mon Jan 31 09:46:45 2011 +1000 Add extra checks for lack of rebasing. This would be a bug in the driver, rebase must be called before normalising, but we might as well check for it, test for it, etc. Signed-off-by: Peter Hutterer Acked-by: Ping Cheng commit f4cce2e56b2e819d33613790216b7dbdb8859e8a Author: Peter Hutterer Date: Mon Jan 31 09:33:34 2011 +1000 Split pressure rebase and normalisation. Two different operations, one not necessarily linked to the other one. Split them into two static functions so we don't have a normalizePressure() with a side-effect (setting minPressure). This way, both can be passed consts and testing is easier. Signed-off-by: Peter Hutterer Acked-by: Ping Cheng commit 6f0aba3a659226f7ee0b881c0c122ce3e1ee1615 Author: Peter Hutterer Date: Wed Jan 19 16:43:57 2011 +1000 test: add some tests for pressure normalization Signed-off-by: Peter Hutterer Acked-by: Ping Cheng commit 18e90e89dabe8e4e1574a5eba12f78f72d4f6fc6 Author: Peter Hutterer Date: Wed Jan 19 16:28:37 2011 +1000 test: simple test for WcmCommon refcounting. Signed-off-by: Peter Hutterer Acked-by: Ping Cheng commit 4bc52aba794c3054535e0c2af174b26144d39002 Author: Peter Hutterer Date: Wed Jan 19 10:59:03 2011 +1000 Add a testing framework for the driver. This uses glib's testing framework provided glib-devel was available at configure time (same as the X server's testing framework). How this works: The wacom driver is recompiled for the testing framework and linked into the wacom-tests binary (there's a warning about that but ignore that). Since the .so uses a number of symbols from the Xorg binary, these are provided as stubs in fake-symbols.c. Additional binaries can be added through the check_PROGRAMS automake variable. The driver will be rebuild without static symbols for the test, allowing each function call to be tested. To run the tests, run 'make check'. Signed-off-by: Peter Hutterer Acked-by: Ping Cheng commit 23ed0b11c24582caa6465c8fa083e8e830ce6a75 Author: Peter Hutterer Date: Wed Jan 19 10:58:13 2011 +1000 Use absolute patch from $(top_srcdir) for source files. This is in preparation for the integration of a testing suite. Signed-off-by: Peter Hutterer Acked-by: Ping Cheng commit b5a90be8ab377601cb9d61cb50b0bca5e6063d9b Author: Peter Hutterer Date: Fri Jan 21 14:18:26 2011 +1000 isdv4: let the compiler decide when to inline. Signed-off-by: Peter Hutterer commit a656bc2f05f6ec9cc0182b09cb0f4b7642f7512b Author: David Foley Date: Thu Jan 20 13:59:20 2011 -0600 wcmUSB.c: 2-new-bambooPT-models Adds 2 new Bamboo Pen & Touch models. Signed-off-by: David Foley Signed-off-by: Peter Hutterer commit 1eb933db2d69bfea1069845c9cd895ecf8b75bf8 Author: Peter Hutterer Date: Wed Jan 19 08:41:57 2011 +1000 Purge sizeX/sizeY - can be computed on-the-fly where needed. Signed-off-by: Peter Hutterer Acked-by: Ping Cheng Reviewed-by: Chris Bagwell commit 682c3c4fa27dba83e4b3ca672088d8dbcd548fb2 Author: Peter Hutterer Date: Tue Jan 18 17:11:30 2011 +1000 Remove useless else block. This is the most creative way of not changing a value I've seen so far. Calculation before the if condition: dx = (filtered.x - priv->oldX) * factorX; and this else block then: filtered.x = dx / factorX + priv->oldX; Ignoring rounding errors (which I doubt matter here) we've just set filtered.x to the value it had anyway. Signed-off-by: Peter Hutterer Acked-by: Ping Cheng Reviewed-by: Chris Bagwell commit 77a959ee53af68582dea70b3df7bf5ec5853a038 Author: Peter Hutterer Date: Tue Jan 18 17:01:22 2011 +1000 Change "suppress" from int to bool for readability. Suppress is a user-configured option that defines when events should be sent. The option is a number, defining how much coordinates must change before an event is being sent. The use of suppress here though is as a boolean flag, whether to suppress or not. Signed-off-by: Peter Hutterer Acked-by: Ping Cheng Reviewed-by: Chris Bagwell commit d25cd9b07e673b878f9744e635b40b823d8e1c6c Author: Peter Hutterer Date: Tue Jan 18 16:53:19 2011 +1000 Move pressure-based button1 down/up events into a separate function. No functional changes. Signed-off-by: Peter Hutterer Acked-by: Ping Cheng Reviewed-by: Chris Bagwell commit 6b2dbf720022126ed4ffe8d129132f2f56157438 Author: Peter Hutterer Date: Tue Jan 18 16:44:40 2011 +1000 Move declaration+definition of button into local block. No functional changes. Signed-off-by: Peter Hutterer Acked-by: Ping Cheng Reviewed-by: Chris Bagwell commit a635a0b2f16e5c5fd2fd1894808a813b81511a19 Author: Peter Hutterer Date: Tue Jan 18 16:36:17 2011 +1000 Move pressure normalization into its own function. Signed-off-by: Peter Hutterer Acked-by: Ping Cheng Reviewed-by: Chris Bagwell commit 6e840e770a36bc761c4ebdbcb318e7079408af24 Author: Peter Hutterer Date: Tue Jan 18 16:29:12 2011 +1000 Rename hardProx to oldHwProx. hardProx stores the old hardware proximity. Say so through the variable name. Signed-off-by: Peter Hutterer Acked-by: Ping Cheng Reviewed-by: Chris Bagwell commit 7eb75447f30fbcd0675dd358e31da0f2b26d54ea Author: Peter Hutterer Date: Tue Jan 18 16:26:34 2011 +1000 Simplify an if condition. Signed-off-by: Peter Hutterer Acked-by: Ping Cheng Reviewed-by: Chris Bagwell commit b7a0212cf76e5583b72ced7b37f637c9e75f5017 Author: Peter Hutterer Date: Tue Jan 18 15:41:52 2011 +1000 Move a check for tool existence up a bit. Check whether we have a proper device before trying to get the screen for it. Signed-off-by: Peter Hutterer Acked-by: Ping Cheng Reviewed-by: Chris Bagwell commit 609db722a4cfef05416408d8b1b2044960775232 Author: Peter Hutterer Date: Tue Jan 18 15:38:58 2011 +1000 Move tool finding out of commonDispatchDevice. No user-visible functional changes. Only actual change is that pad events now see a bit more processing though it should not affect them. Signed-off-by: Peter Hutterer Acked-by: Ping Cheng Reviewed-by: Chris Bagwell commit 65fcb6c7a73fe73eeb34c32674ddb242331e893a Author: Peter Hutterer Date: Tue Jan 18 15:26:19 2011 +1000 Factor out finding the device type no functional changes. Signed-off-by: Peter Hutterer Acked-by: Ping Cheng Reviewed-by: Chris Bagwell commit f9144ed2302b0e743a91500e62317d983b2c54e0 Author: Peter Hutterer Date: Tue Jan 18 10:09:05 2011 +1000 xsetwacom: fix compiler warning. xsetwacom.c: In function ‘list_mod’: xsetwacom.c:908:2: warning: format ‘%d’ expects type ‘int’, but argument 2 has type ‘long unsigned int’ xsetwacom.c:912:2: warning: format ‘%d’ expects type ‘int’, but argument 2 has type ‘long unsigned int’ Cast ArrayLength to unsigned int, we won't deal with any arrays larger than UINT_MAX. Signed-off-by: Peter Hutterer commit b330c59409dd32a5bf213795d46e466e7e76ac78 Author: Peter Hutterer Date: Wed Jan 19 08:43:34 2011 +1000 Fix comment: maxX/maxY are the physical max, not logical max. Reported-by: Chris Bagwell Signed-off-by: Peter Hutterer commit 8fc327f5a9151e7d6523ee6e72313c1cc33372fd Author: Peter Hutterer Date: Tue Jan 18 09:45:42 2011 +1000 Note which values are in screen and which are in device coordinates. Signed-off-by: Peter Hutterer Reviewed-by: Ping Cheng commit 7c043460d1f70654035488d1e90e7eaa2e79f71a Author: Peter Hutterer Date: Fri Dec 10 15:20:35 2010 +1000 xf86ProcessCommonOptions doesn't need to be called for ABI 12 Server calls it before PreInit(). Signed-off-by: Peter Hutterer commit 5acbaaf820605f20428603ac35b01fac518b2b19 Author: Chris Bagwell Date: Sun Jan 16 22:02:17 2011 -0600 compute factorX/factorY from bottomX/bottomY. maxWidth and maxHeight are no longer set and this causes relative devices to not work (factor* = 0 which scales to zero values always). bottomX/bottomY is meant to be a value that optionally contains scaling information that can be passed to xf86AxisScale() to scale from tablet to screen ratios. See wcmInitArea() for how that is done. Derive the scaling factor from bottomX/bottomY. Since this normally 1:1, the code is rarely used. This patch fixes a regression where Bamboo touch device would not move cursor any more. Signed-off-by: Chris Bagwell Reviewed-by: Peter Hutterer Signed-off-by: Peter Hutterer commit 263c7f212a7c9735af37f373a6dd6ad2b71c6317 Author: Chris Bagwell Date: Sun Jan 16 22:02:16 2011 -0600 Add comment describing factorX and factorY Signed-off-by: Chris Bagwell Reviewed-by: Peter Hutterer Signed-off-by: Peter Hutterer commit 5276f34b504538bb86ffb9a3c267718f1c5c31c2 Author: Chris Bagwell Date: Sun Jan 16 22:02:15 2011 -0600 Init relative X/Y axis to use tablets min/max size wcmRotateAndScaleCoordinates() uses these values to scale values based on axis initialization. The change to use -1..-1 caused it to scale in a way that cursor was overly accelerated. This is a modified revert to a commit. Before -1..-1 change, the code would set range to 0..maxX/Y but this commit changes to match absolute mode behavior. They both come to same answer anyways. Signed-off-by: Chris Bagwell Signed-off-by: Peter Hutterer commit d7749f35d251ad0fb2988d8063a3eee73d33b9e8 Author: Chris Bagwell Date: Sun Jan 16 21:38:26 2011 -0600 xsetwacom: allow removing special button mapping If a user did a special button mapping, such as key-to-button, and then changed it back to simple button-to-button mapping, the special mapping still occured. The main fix is to memset keys[] to clear out old mapping. The other fix is more cosmetic. We were leaving around a property that was unreferenced by anything. If a user did an "xinput list-props pad", they way scratch there head by old button mapping properties were still around. Signed-off-by: Chris Bagwell Reviewed-by: Peter Hutterer Signed-off-by: Peter Hutterer commit 02403679b8e7f086e6f9a12ac4992771da5b09a6 Author: Chris Bagwell Date: Sun Jan 16 21:38:25 2011 -0600 xsetwacom: allow mapping last ButtonN For button-to-button mappings, the last button was rejected. This may be only now seen because we used to pad button # counts in driver and thats recently been cleaned up. Signed-off-by: Chris Bagwell Reviewed-by: Peter Hutterer Signed-off-by: Peter Hutterer commit ab311bf20535acd6e7201e024bc311e0e15b5b6b Author: Chris Bagwell Date: Thu Jan 13 20:05:37 2011 -0600 make key mappings align with button mappings. So commit is clear, let me define terminology used in describing change. internal buttons - xf86-input-wacom has a fixed set of buttons it maps to internal #0 to 4 (stylus buttons, mouse buttons, and pad buttons). It also has generic list of buttons BTN_0.. BTN_* that it defines to internal #0 to 27. X physical buttons - xf86-input-wacom uses a non-user editable priv->button[] array to map internal button #'s to X physical buttons. The current usage of this array is to skip over physical buttons 4 to 7 since they are used for scrolling events by convention. X logical buttons - both "xinput set-button-map" and "xsetwacom --set X ButtonN N" modify an array that converts X physical buttons to X logical buttons. key mappings - "xsetwacom --set X Button N "key 1"" creates a button-to-key mapping. Before this patch, the key mapping was "internal button" to key mappings; instead of X physical buttons to key mappings. New Bamboo driver maps two middle pad buttons to X physical buttons 8 and 9 because internally they are 4 and 5. This mean for button-to-button mappings, user used Button8/9 but for key mappings they used Button4/5 to change behavior. This is a long explaination for small patch that makes key mappings use X physical button names for consistency. It also changes keys[] array to be ones based to allow with X physical buttons being ones based. Signed-off-by: Chris Bagwell Signed-off-by: Peter Hutterer commit d5af19ae92cb9fccff89b3caf668dbc323a0acfc Author: Chris Bagwell Date: Tue Jan 11 19:34:05 2011 -0600 Set WCM_PEN feature based on wcmKeys A previous commit removed all bamboo ID's which caused it to hit default statement removed in this patch and mistakenly add WCM_PEN for Bamboo touchpad. That flag only seems to be used by a debug statement so not a big deal unless you want that information out of log file. Change to generically set WCM_PEN feature based only on existence of BTN_TOOL_PEN so all PEN enabled tablets will declare that feature; which seems the conceptially correct thing to do and has side affect of getting debug statement working for Bamboo's again. Signed-off-by: Chris Bagwell Acked-by: Ping Cheng Signed-off-by: Peter Hutterer commit 1bb87ee40202c577bd695872489cb6cef57a3bea Author: Chris Bagwell Date: Tue Jan 11 19:34:07 2011 -0600 delete unneeded code in wcmVirtualTabletSize Signed-off-by: Chris Bagwell Reviewed-by: Ping Cheng Signed-off-by: Peter Hutterer commit 2f3514cd085650ebe698330f3bd10ec988a84b88 Author: Chris Bagwell Date: Tue Jan 11 19:34:04 2011 -0600 Init device_type during ABS_MT_TRACKING_ID ABS_MT_SLOT is normally zero which means it will not be sent when xf86-input-wacom first starts up normally. During 2 finger touch, this event will constantly toggle between slot 0 and 1. Move initialization of device_type to ABS_MT_TRACKING_ID because its more effecient to do it at touch transitions instead of constantly during 2 touches and also helps case of initial lost event. There is event lost recovery logic elsewhere but it is mistakenly setting this as a CURSOR device instead of TOUCH and its being discarded until first 2 finger touch occurs. Recent combo of commits caused this discard to start happening. Signed-off-by: Chris Bagwell Reviewed-by: Ping Cheng Signed-off-by: Peter Hutterer commit d00f555a73c7b0e0ba86fc4c88593441fe7cb107 Merge: e9acf4029532 b46c5fc0af5f Author: Peter Hutterer Date: Wed Jan 12 10:03:39 2011 +1000 Merge branch 'tpcbutton-fixes' commit b46c5fc0af5fe848c2b91dda70d94a3baaf56e53 Author: Peter Hutterer Date: Tue Jan 11 12:04:54 2011 +1000 remove now unused WCM_TPCBUTTONS flag Signed-off-by: Peter Hutterer Reviewed-by: Chris Bagwell commit 434e585eb12ea3771c48617760b3f077d842c28f Author: Peter Hutterer Date: Tue Jan 11 12:02:35 2011 +1000 Simplify TPCButton handling. Reduce the 4 near-identical loops with nested conditions into a single for loop and a few conditions beforehand for the TPCButton case. Button behaviour for TPC button on: * if only tip is pressed/released, send button 1 events * if button N is pressed and tip is pressed/released, send button N events. * if tip is already down and button N is pressed/released, send button 1 release, then button N events. Signedoff-by: Peter Hutterer Reviewed-by: Chris Bagwell commit 0b12975a04a2b9c3946769ad80d07812c73f173d Author: Peter Hutterer Date: Tue Jan 11 12:02:13 2011 +1000 man: update TPC button behaviour with a more verbose description. Signed-off-by: Peter Hutterer Reviewed-by: Chris Bagwell commit 017cac970cecfb6549c919abf7a16010de0f5829 Author: Peter Hutterer Date: Tue Jan 11 11:57:52 2011 +1000 Remove broken check for setting wcmTPCbutton At least one ! too many. Just remove the check, overwriting a value with the already existing value in a non-time-critical path is not the end of the world. Signed-off-by: Peter Hutterer Reviewed-by: Chris Bagwell commit e87bd397aa26a2b735aa934fab324fb8957f966d Author: Peter Hutterer Date: Mon Jan 10 13:26:52 2011 +1000 Remove unused TCPBUTTONONE_FLAG define Signed-off-by: Peter Hutterer Reviewed-by: Chris Bagwell commit f37d9c1198685dd9c0bf40b8b1527233c5b8196c Author: Peter Hutterer Date: Mon Jan 10 13:24:29 2011 +1000 man: state that TPCButton is only available on the stylus. Signed-off-by: Peter Hutterer Reviewed-by: Chris Bagwell commit 523f4f11daadc5a463d379c8ebec023563c06d02 Author: Peter Hutterer Date: Mon Jan 10 12:56:27 2011 +1000 Only init TPC button property on the stylus. This behaviour applies only to stylus devices, not for any others. Signed-off-by: Peter Hutterer Reviewed-by: Chris Bagwell commit e9acf402953291b40cbf8ff31a44b35f9d947ebe Author: Peter Hutterer Date: Mon Jan 10 13:20:54 2011 +1000 Abstract USB device check through a macro. Signed-off-by: Peter Hutterer Reviewed-by: Chris Bagwell commit 5b27c1d69010e8ba0600ba8d9fd381b4fb9881c2 Author: Peter Hutterer Date: Mon Jan 10 13:13:31 2011 +1000 Remove one duplicate default option setting. Overwriting the default option with the same value doesn't seem to be useful. Also add a fixme, this code shouldn't be here in the first place. Signed-off-by: Peter Hutterer Reviewed-by: Chris Bagwell commit eaaab6d7352cf1f6f0d94e6e3361b4587fc15801 Author: Peter Hutterer Date: Mon Jan 10 13:04:22 2011 +1000 Split re-used oldButton into self-explanatory variables. Much nicer to read, especially when viewed in patch context only. Signed-off-by: Peter Hutterer Reviewed-by: Chris Bagwell commit e4c1dc1bc5008bee8195f7dc8b07e0a5d2592a2c Author: Peter Hutterer Date: Mon Jan 10 08:49:17 2011 +1000 Move the type properties to wacom-properties.h. We're using them as type field, clients expect them, so let's export them somewhere more visible. Signed-off-by: Peter Hutterer Acked-by: Ping Cheng commit 9bca63fe9758649eb731661b20bde1d570b6c61f Author: Peter Hutterer Date: Mon Jan 10 08:46:08 2011 +1000 Fix comment, XI_STYLUS is not the device name. It's the device type name. The device name (identifier) is whatever the user assigned in the configuration files. Same goes for other device types. Signed-off-by: Peter Hutterer Acked-by: Ping Cheng commit bc5fd9ee7e6a9eb364ff1f2f47bb41fe6bb2842a Author: Peter Hutterer Date: Mon Jan 10 12:29:24 2011 +1000 xsetwacom: fix 64-bit issues with MapToOutput Xlib for XI 1 expects 32 bit properties as long, even if on the given machine architecture the size of long is actually 64 bit. Hilarity ensues. Convert the floats to longs before passing it to XChangeDeviceProperty. Signed-off-by: Peter Hutterer commit c756803f1c7077ea9ad91dcaf42f2304974ae263 Author: Chris Bagwell Date: Sun Jan 9 21:15:28 2011 -0600 fix logic detecting ABS_MT_SLOT Somewhere along cleanups, it got switched to looking at wcmKeys instead of abs. This bug though was making tablet usable with MT Bamboo driver until memset() could be removed. Signed-off-by: Chris Bagwell Acked-by: Ping Cheng Signed-off-by: Peter Hutterer commit 797e59e568cbca2b481824ca202a5fbe191afaee Author: Chris Bagwell Date: Sun Jan 9 21:15:27 2011 -0600 Use previous tools values when switching tools. Kernel side input event filtering forces user land to track previous tools values when switching to new tools. If its not accounted for, sending new-but-duplicate values for new tool would cause confusion. Most cases of cursor jumps when entering proximity can be traced to how its (not) being handled in todays code. For generic and protocol 4 devices, its just a matter of removing existing memset(). For 2FGT protocol 4 devices, its slightly harder because it switches fingers between channels. Protocol 5 DUALINPUT devices are harder. Take example of 2 stylus in proximity at same time and one has tilt support but the other one does not. Current kernel drivers will always report tilt values upon query and require user land to filter out as needed. So we can't just copy previous values between tools. For Protocol 5, this patch contiues to use old approach; at least until kernel side changes can be made. In this change, moved a strange force to in proximity to special case of no tool found. See deleted comments in patch for background on that. Signed-off-by: Chris Bagwell Acked-by: Ping Cheng Signed-off-by: Peter Hutterer commit fa69d0d3f0b0724f1964c470529448f6f3b2b172 Author: Chris Bagwell Date: Sun Jan 9 21:15:26 2011 -0600 add PAD_CHANNEL for when PAD channel is hard code Protocol 4 and Generic hard code PAD device to use only last channel. Create #define for this case to improve readability. Signed-off-by: Chris Bagwell Acked-by: Ping Cheng Reviewed-by: Peter Hutterer Signed-off-by: Peter Hutterer commit a1fe875f59e1fba06787d4a7a99130c31261d491 Author: Chris Bagwell Date: Fri Dec 31 17:18:50 2010 -0600 set 1FGT/2FGT based on wcmKeys instead of ID This allows new tochpad/touchscreens to be supported without modifications to xf86-input-wacom. BTN_TOOL_FINGER/DOUBLETAP/TRIPLETAP have incompatible meanings between generic and protocol 4/5 devices. Add logic to detect generic devices very early and override default value of wcmProtocolLevel to help out wcmKeys parsing. Newer touchscreens will work in relative mode because currently only tablet_id informs this. Generic protocols may eventually have something in kernel that can be queried for touchscreen vs. touchpad. Signed-off-by: Chris Bagwell Reviewed-by: Ping Cheng Signed-off-by: Peter Hutterer commit 3d1e060c6f3f92474c19a39b529ac92323df4ac9 Author: Chris Bagwell Date: Tue Dec 28 19:10:01 2010 -0600 Set touch/gesture properties using features Since wcmKeys can have double meanings (MT Bamboo), switch to tablet featues. Signed-off-by: Chris Bagwell Reviewed-by: Ping Cheng Signed-off-by: Peter Hutterer commit 13734c86be023f2a26c586458e191f2127343a7c Merge: 0f20c2c71e2a 44c6f74b67bb Author: Peter Hutterer Date: Fri Jan 7 11:15:11 2011 +1000 Merge branch 'scroll-ring' commit 44c6f74b67bb4d67c30bb92221275614b2d8ad5a Author: Peter Hutterer Date: Thu Jan 6 16:40:36 2011 +1000 Simplify scroll strip delta calculation. Subtracting two values seems to be a far simpler way of calculating a delta. This fixes the jumping strip on the I3 devices, at least for the vertical one. Horizontal one untested for lack of device. Signed-off-by: Peter Hutterer Reviewed-by: Chris Bagwell Reviewed-by: Ping Cheng commit 996b811a31a0a151878cad552db70b9674cf8a0a Author: Peter Hutterer Date: Thu Jan 6 16:20:26 2011 +1000 Add wraparound detection for the scroll ring. The I4 scrollring appears as absolute axis (0 - 71) to us, but as ring-shaped device to the user. Hence, a coordinate transition from 0..71 or 71..0 is common but must be interpreted as a negative or postive movement direction, respectively. Add code to detect this by simply assuming that if the direct delta of old_x → x is larger than the indirect delta (across the axis range boundary), a wraparound happened. In that casel, switch the delta used for scroll wheel button emulation around. Signed-off-by: Peter Hutterer Reviewed-by: Chris Bagwell Reviewed-by: Ping Cheng commit 97b13e40fcbd4b17becb3bf9fc9f18a18d8edb60 Author: Peter Hutterer Date: Thu Jan 6 16:09:53 2011 +1000 Don't post scroll ring events after proximity events. If we're going out of proximity, don't post an event. Signed-off-by: Peter Hutterer Reviewed-by: Chris Bagwell Reviewed-by: Ping Cheng commit a7eb13bf2edf0b5c55843a10480dde7d20a9219e Author: Peter Hutterer Date: Thu Jan 6 16:02:25 2011 +1000 Add defines for scroll ring min/max values. And reset the scroll ring to an invalid value when leaving proximity. 0 is a valid value for an absolute axis if the min for this axis is 0 too. Signed-off-by: Peter Hutterer Reviewed-by: Chris Bagwell Reviewed-by: Ping Cheng commit 166268aba66b3df0188ae35482e27ec6b12ae394 Author: Peter Hutterer Date: Thu Jan 6 15:47:31 2011 +1000 Send common events if the abswheel has changed. 0 is a valid value for absolute wheels. Don't make the event sending conditional of an abswheel != 0, otherwise we may skip events. Signed-off-by: Peter Hutterer Reviewed-by: Chris Bagwell Reviewed-by: Ping Cheng commit 0f20c2c71e2a275ad57e97b98b5bd7a4f7fffa9d Author: Peter Hutterer Date: Thu Dec 23 10:48:50 2010 +1000 Use AC_USE_SYSTEM_EXTENSIONS for asprintf and friends. To enable asprintf, _GNU_SOURCE must be defined before including stdio.h. Use AC_USE_SYSTEM_EXTENSIONS to define it for us in config.h Signed-off-by: Peter Hutterer Reviewed-by: Gaetan Nadon commit 68351dab43e800b503025ef2f06c794d40bc259b Merge: 2b9eb3db9c7c 6f5f29b49a6e Author: Peter Hutterer Date: Tue Dec 21 16:59:52 2010 +1000 Merge branch 'multimonitor-purge' commit 2b9eb3db9c7c517fe98f32f515cb65372b7bb069 Author: Ping Cheng Date: Mon Dec 20 20:07:15 2010 -0800 Bamboo tablet does not report device_id anymore. Process devices that do not report device_id through ABS_MISC from the kernel as WCM_PROTOCOL_GENERIC in wcmUSB.c. Signed-off-by: Ping Cheng Acked-by: Chris Bagwell Signed-off-by: Peter Hutterer commit 45d3206292db9ec28734ba5020a3b651b2e863fe Author: Chris Bagwell Date: Mon Dec 20 20:15:52 2010 -0600 Enable 2nd touch for newer Bamboo MT driver This patch adds support for processing multi-touch (MT) kernel events. To do this, it must filter out older style single touch (ST) events to prevent conflicts. For Bamboo's/Tablet PC, channel 0 == 1st finger and channel 1 == 2nd finger. In older Bamboo kernel driver, serial #1 == 1st finger and serial #2 == 2nd finger. Mapping to channel was serial # - 1 and events had to come in isolated by separate BTN_TOOL_DOUBLETAP/TRIPLETAP messages. With newer MT kernel driver, MT slot 0 == 1st finger and MT slot 1 == 2nd finger. Take advantage of this straight mapping to channel. Code will ignore ST-style events then MT packets will write to either channel 0 or 1 or both. Signed-off-by: Chris Bagwell Signed-off-by: Peter Hutterer commit ccd06c6e358a28213cf29268730132ce8ee2f297 Author: Peter Hutterer Date: Tue Dec 21 11:50:59 2010 +1000 Fix BIT() macro for 64-bit longs. 1 is an integer, left-shifting it more than 31 places is undefined. Force it to be an unsigned long, so for a sizeof(long) == 64 we're still ok to use the macro. Signed-off-by: Peter Hutterer Acked-by: Ping Cheng commit 3bf705039353300deb31ed8c1e802c6f7195fe4c Author: Ajay Ramaswamy Date: Sun Dec 19 14:46:26 2010 +0530 Add support for the built-in digitizer in the Lenovo W700 Submitted-by: Ajay Ramaswamy Acked-by: Ping Cheng commit 3bcf901d30ef21ccce23a270313a01e91422ff19 Author: Peter Hutterer Date: Wed Dec 15 16:11:40 2010 +1000 Initialise all pad axes as absolute axes. Now that the pad is absolute, we can initialize it the same way as the other tools. Signed-off-by: Peter Hutterer Reviewed-by: Chris Bagwell commit ce98b0a20862291892fc7a3110e4779cd69dd5ba Author: Peter Hutterer Date: Wed Dec 15 15:40:34 2010 +1000 Switch the pad to forced absolute mode. The pad was in relative mode because we kept submitting x/y axes along with the other data (and x/y was always 0/0). Hence the pointer always moved to the screen origin when the pad was used. With the recent changes, we only submit valuators 3, 4, 5 for the pad and can thus switch the pad to absolute mode. Signed-off-by: Peter Hutterer Reviewed-by: Chris Bagwell commit b7f062284aebfab99c2684641fb23702beab26bd Author: Peter Hutterer Date: Fri Nov 26 09:26:59 2010 +1000 Switch wcmSend(Non)PadEvents to use first/num valuators Signed-off-by: Peter Hutterer Reviewed-by: Chris Bagwell commit cd6eb526ecbccaab2887ab831068189d9303aced Author: Peter Hutterer Date: Mon Dec 13 15:37:57 2010 +1000 Invert condition from if (!foo) bar() else foo(). A bit easier to read, no functional changes. Signed-off-by: Peter Hutterer Reviewed-by: Chris Bagwell commit e81da00a831a0951b40ffdacc59102f0a7ff9609 Author: Peter Hutterer Date: Fri Nov 26 08:52:59 2010 +1000 Move non-pad event processing into wcmSendNonPadEvents() No functional changes. Signed-off-by: Peter Hutterer Reviewed-by: Chris Bagwell commit 7fe6247ba92694b41863a45dbf0dbce76ad2f317 Author: Peter Hutterer Date: Fri Nov 26 08:47:54 2010 +1000 Move pad events into wcmSendPadEvents(). No functional changes. Signed-off-by: Peter Hutterer Reviewed-by: Chris Bagwell commit 7e351a1ec942dfce85a45a0b9ade189c89f6a722 Author: Peter Hutterer Date: Fri Nov 26 08:34:54 2010 +1000 Copy valuators passed into xf86Post*EventP. X servers pre 1.9 used the data passed in directly and modified it in the process. A call of e.g. int valuators[]; xf86PostMotionEventP(..., valuators); xf86PostButtonEventP(..., valuators); would thus post garbage data for the button event. Work around this by copying the valuators before passing them in. This is only needed for ABI < 11, server 1.9 duplicates the data passed in before processing. Signed-off-by: Peter Hutterer Reviewed-by: Chris Bagwell commit 485137ef7524aad7d081669736b3a507e8833b13 Author: Peter Hutterer Date: Thu Nov 25 16:10:18 2010 +1000 Switch to first_val/num_vals/valuator coordinate passing. Signed-off-by: Peter Hutterer Reviewed-by: Chris Bagwell commit 85ebaefab2906d1dd0560ec7210501c8b2295eb9 Author: Peter Hutterer Date: Thu Nov 25 15:56:58 2010 +1000 Only delta the values for non-PAD devices. We claim the pad is a relative device, but only because we had troubles with the cursor landing at 0/0 in the past. Pretend we're still a relative device, but post the values as absolute ones to the server. Note that the device mode is to tell how the device _behaves_, it doesn't specify how the device sends valuators. Thus, a relative device may only post absolute coordinates and vice versa. This applies to motion events only, button events for the scroll ring still have the wrong valuator information. Signed-off-by: Peter Hutterer Reviewed-by: Chris Bagwell commit 340760d8547614e07e44574e410d6a0bd217ea7a Author: Peter Hutterer Date: Tue Nov 23 13:58:34 2010 +1000 Use xf86Post{Motion|Proximity}EventP() for Pad tool. Only post the valuators we actually have, not fictious x/y valuators. The server will fill those in for us. Signed-off-by: Peter Hutterer Reviewed-by: Chris Bagwell commit 1e4d3d7060a1c438ac619cb64febb44bc45b47ed Author: Peter Hutterer Date: Thu Nov 25 14:13:51 2010 +1000 Remove wcmInitialCoordinates, move into wcmInitAxes. Signed-off-by: Peter Hutterer Reviewed-by: Chris Bagwell commit 1da851810cac797ebd576a312b029f2d9b6812ab Author: Peter Hutterer Date: Thu Nov 25 14:02:23 2010 +1000 Move wcmRotateTablet() out of wcmInitAxes. And remove erroneous comment in the process, wcmRotateTablet only sets the rotation value, nothing more. Note that this changes the logic. Previously, the rotation was not set for the Pad tool, now it is. Since the pad never sends x/y coordinates though, this is irrelevant. Signed-off-by: Peter Hutterer Reviewed-by: Chris Bagwell commit 9c173b153593d70b616c9e8f06830a9dde6255eb Author: Peter Hutterer Date: Thu Nov 25 13:59:41 2010 +1000 Split axis initialization into wcmInitAxes. And clean up the code to use less ABI ifdefs. Signed-off-by: Peter Hutterer Reviewed-by: Ping Cheng Reviewed-by: Chris Bagwell commit 184809445f29a70f4b8dbcf4a659fa8e51be8c9d Author: Peter Hutterer Date: Tue Nov 23 11:13:21 2010 +1000 Initialize third axis on pads as unknown relative axis. The pad doesn't actually send events on the third axis, it simply acts as a filler so that client's don't misinterpret the actual axis the device has. Initialize it as relative axis, because the rest of the pad is relative too. Signed-off-by: Peter Hutterer Reviewed-by: Chris Bagwell commit 6ef1127f8476135a009f4ef135c98c33de6a19a7 Author: Peter Hutterer Date: Tue Nov 23 09:21:23 2010 +1000 Don't call xf86ScaleAxis for relative devices. If the axis range is invalid, don't try to scale into the axis range. This supresses and error message emitted by xf86ScaleAxis(). Signed-off-by: Peter Hutterer commit ae974beae0ba15678e68ca7684b12ccc143e6273 Author: Peter Hutterer Date: Mon Dec 13 11:38:58 2010 +1000 Don't reset the flags on init. In ABI 12, flags are used by the server and may contain attachment information. Don't reset the flags, we'd end up with floating devices. Since at least server 1.6, the InputInfoRec as calloc'd and flags is thus 0 by default anyway. Signed-off-by: Peter Hutterer Acked-by: Ping Cheng commit 51bbd26a542b12209d9fa5bcaf2ae5ca9acf5790 Author: Peter Hutterer Date: Thu Dec 9 16:24:23 2010 +1000 Resolution needs to be in units/m The X Input Extension requires resolution be exposed in units per m. Signed-off-by: Peter Hutterer commit 2115880799be10021247598680b88851c8a63b72 Author: Peter Hutterer Date: Fri Dec 10 14:47:37 2010 +1000 Fix compiler warning. wcmValidateDevice.c: In function 'wcmOptionDupConvert': wcmValidateDevice.c:319:2: warning: 'Xprintf' is deprecated (declared at /opt/xorg/include/xorg/os.h:271) wcmValidateDevice.c: In function 'wcmDuplicateAttributes': wcmValidateDevice.c:362:2: warning: 'Xprintf' is deprecated (declared at /opt/xorg/include/xorg/os.h:271) wcmConfig.c: In function 'wcmPreInit': wcmConfig.c:515:3: warning: 'Xprintf' is deprecated (declared at /opt/xorg/include/xorg/os.h:271) Signed-off-by: Peter Hutterer commit 4768309e7633152d4b6fb45bfef7d5faf4868165 Author: Peter Hutterer Date: Mon Oct 11 12:43:46 2010 +1000 xsetwacom: change "list dev" output format to something human-readable. Three changes: - Extend device name padding to 32 characters, 16 isn't enough for auto-assigned names. - list the type as "type: " instead of directly after the device name. - list the device ID as well The three fields (name, id and type) are separated by tab characters to ease parsing. Example output is: Wacom Intuos4 6x9 eraser id: 12 type: ERASER Wacom Intuos4 6x9 cursor id: 13 type: CURSOR Wacom Intuos4 6x9 pad id: 14 type: PAD Wacom Intuos4 6x9 stylus id: 15 type: STYLUS Signed-off-by: Peter Hutterer commit 7c667678783741c4694ad023be9d381431449b3f Author: Peter Hutterer Date: Thu Dec 9 15:38:56 2010 +1000 WCM_TPC also implies WCM_LCD, set the bit accordingly. Shuffle PAD up to fill the hole. Signed-off-by: Peter Hutterer Reviewed-by: Ping Cheng commit de04fe18a63563def569e0d718d121a39bab5fde Author: Ping Cheng Date: Wed Dec 8 14:27:31 2010 -0800 Log messages specific to the device No real code change. Only updated xf86Msg so device specific information is posted. Signed-off-by: Ping Cheng Signed-off-by: Peter Hutterer commit a8e9bc43bcd11496b952c34aba4f307fa7300bb7 Author: Peter Hutterer Date: Wed Dec 8 16:11:44 2010 +1000 Don't close devices on read error. If the devices were removed, the hotplugging code will take care of them and remove them. If the devices had some other error happen to them, leave them there and hope whatever it was comes back. If a statically added device was unplugged, the user needs to trigger DEVICE_OFF and DEVICE_ON manually to reopen (e.g. VT switch). Signed-off-by: Peter Hutterer Tested-by: Ping Cheng commit 799bbf2cf9cd54942c66f9117df319e933bbd10b Author: Peter Hutterer Date: Wed Dec 8 16:07:13 2010 +1000 Don't free the device info on a failed PreInit. This data is later freed when the xserver calls UnInit(). Freeing too early means we segfault later when trying to dereference null-pointers. Signed-off-by: Peter Hutterer commit 646fc3656242199bf7a6d52138b69df810dd73f3 Author: Ping Cheng Date: Tue Dec 7 12:29:36 2010 -0800 Touchscreen includes TabletPC and display tablet We assumed TPC == LCD in the capacity check. Signed-off-by: Ping Cheng Signed-off-by: Peter Hutterer commit 65bd54a65d3b9b3bc2ec7a5a497cae35a608a81f Author: Peter Hutterer Date: Wed Dec 8 15:34:05 2010 +1000 Document the tablet feature bitmasks. Signed-off-by: Peter Hutterer Reviewed-by: Ping Cheng commit d46e99e1db656a2655edb3bf69fbfcd1e68387ef Author: Ping Cheng Date: Mon Nov 29 12:41:59 2010 -0800 Use BTN_TOOL_FINGER for generic touch devices As discussed at linux-input, BTN_TOOL_FINGER should be used to report single touch events. Update tool type and event process accordingly. Signed-off-by: Ping Cheng Signed-off-by: Peter Hutterer commit b80d658d2c3a3def87a3c9819535a06274abf3b9 Author: Camille Moncelier Date: Mon Nov 29 09:10:30 2010 +0100 Removed touch resolution check as it is broken for CapPlus devices Signed-off-by: Camille Moncelier Signed-off-by: Peter Hutterer commit 43933eb06c1782067027b3329490c7113c7039a5 Author: Ping Cheng Date: Tue Nov 30 15:02:41 2010 -0800 Don't normalize the abswheel unless it's from an airbrush Due to the limitation of number of valators we can use, Airbrush wheel and Art Pen rotation share the same fifth valuator. But they do not have the same range of values. So, we normalize the airbrush wheel (0, 1023) to the Art Pen rotation (-900, 899). Signed-off-by: Ping Cheng Signed-off-by: Peter Hutterer commit 6a1372676f4daea36028fdcffd32d9090d979cc6 Author: Gaetan Nadon Date: Thu Dec 2 17:11:41 2010 -0500 config: missing randr extension not detected Problem introduced in commit 8f1dd625e00c182ec1b6a92b277214d1b8f88986. # Store the list of server defined optional extensions in REQUIRED_MODULES XORG_DRIVER_CHECK_EXT(RANDR, randrproto) The role of the driver check macro is to supply the name of optional extension to the PKG_CHECK_MODULES through the REQUIRED_MODULES variable. By reversing the order of the statements the variable is empty. The real fix would be to have 2 PKG_CHECK_MODULES statements, one to ensure the server is present at the correct level and one to check the dependencies. This won't be necessary as the RANDR extension is not optional, it is always present. It can simply go next to the others. All the xorg drivers have this flaw. This undetected missing randr ext problem only happens with server 1.8 or prior, as a new Requires.private statement has been added to server 1.9. Signed-off-by: Gaetan Nadon Signed-off-by: Peter Hutterer commit a474d4069f8622b5b158152c16c02118f2a4d415 Author: Peter Hutterer Date: Thu Dec 2 10:28:53 2010 +1000 xsetwacom: fix buffer overflow when printing button configurations. str[10] is not enough to hold a string of e.g. "+Control_L ". Bump to 32, that's probably enough for all keysym to string conversions. Reported-by: Marco Funk Signed-off-by: Peter Hutterer Acked-by: Ping Cheng Tested-by: Marco Funk commit dc010f3a620192e59d1349cb432cd4e6ab1ec619 Author: Peter Hutterer Date: Wed Dec 1 15:40:11 2010 +1000 Fix segfault in case of unplug during PreInit. If the device is removed between wcmHotplugOthers() and the end of PreInit() of the first device, the close(fd) call at the end of PreInit("stylus") will cause a SIGIO on the file descriptor. The read call (wcmReadPacket(), usually on the last hotplugged device, e.g. the pad) will then result in an error, causing this device to close all associated devices through wcmDevProc. The parameter passed in is essentially pInfo->dev. This leads to a NULL-pointer dereference, as pInfo->dev is not yet set up for the first device since we're still in PreInit. Call stack is something like this: PreInit(stylus) wcmHotplugOthers() PreInit(eraser) PreInit(cursor) ... close(fd) ......... unplug device here............. wcmReadInput(pad) read error wcmDevProc(stylus->dev) NULL-pointer dereference Server sets stylus->pInfo->fd Segfault only happens when the device is unplugged when the pad is already active but the stylus is still before the server assigns pInfo->dev. Reproducible test-case: set a break point on the close() call in PreInit for the stylus, then unplug the device before continuing. This patch adds a check whether the device is already set up before calling close. If not, skip it. The DEVICE_INIT following PreInit will see a ENODEV on the fd and thus remove the device and its dependent devices anyway. Reported-by: Camille Moncelier Reported-by: Ping Cheng Signed-off-by: Peter Hutterer commit 7731411ac572438d23ead812c801ff380e65bc2c Author: Peter Hutterer Date: Wed Dec 1 10:19:37 2010 +1000 xsetwacom: assume xorg.conf format for "get all" A list of parameter options is rather pointless given that the order of the parameters is pretty random. Assume xorg.conf format by default for xsetwacom get all Signed-off-by: Peter Hutterer Acked-by: Ping Cheng commit af17bb81c5d74b1f75ce5e90068c263cddf6a325 Author: Peter Hutterer Date: Wed Dec 1 09:29:19 2010 +1000 xsetwacom: don't try to get write-only parameters in "get all" xsetwacom get all should list all parameters, but not write-only ones (currently MapToOutput). While the normal code path through "xsetwacom get " had a guard condition there, the "get all" did not. Add it, to skip those properties that cannot be read from the driver. Reported-by: Marco Funk Signed-off-by: Peter Hutterer Acked-by: Ping Cheng commit 770d13f4399218528535deff4dfa8f050eb83436 Author: Peter Hutterer Date: Tue Nov 30 15:35:20 2010 +1000 xsetwacom: fix property offsets for gesture tap and rotate. Reported-by: Marco Funk Signed-off-by: Peter Hutterer Tested-by: Marco Funk Acked-by: Ping Cheng commit 6f5f29b49a6ebda7ae13ca9c32e6e16cf3181fc2 Author: Peter Hutterer Date: Wed Nov 24 15:21:16 2010 +1000 Purge screen coordinate storage. Input drivers monitoring screens doesn't work out well, all we need to do is use xrandr to change the screens and our driver deals with wrong information. Note that this patch breaks KeepShape (if it worked before), shape proportions should be exported as a property and be controlled by the client instead. Signed-off-by: Peter Hutterer commit 8713147d76e225d28eef941b332ef64baa3f770c Author: Peter Hutterer Date: Wed Nov 24 15:19:20 2010 +1000 Remove numScreens field. Most setups these days only have one ScreenRec, RandR outputs don't show up as ScreenRecs. Signed-off-by: Peter Hutterer commit 2ab868bd9b03aa52ccd31227cd27729d56de3072 Author: Peter Hutterer Date: Wed Nov 24 15:17:05 2010 +1000 Remove currentScreen, it's write-only now. With the recent multi-monitor removal, this field wasn't used anymore. Signed-off-by: Peter Hutterer commit 4ffd3c64ca29a637bf1d2c69b11e360e8d8a82f5 Author: Peter Hutterer Date: Wed Nov 24 15:02:15 2010 +1000 Purge ScreenNo handling. The definition of ScreenNo isn't clear, given that we have RandR screens, ScreenRecs and protocol screens, not all of which overlap totally. Let the mapping of the tablet to a given area on the available desktop be handled by a client. Signed-off-by: Peter Hutterer commit 910dc6378c5e1883145a93ce15d92efa91d8fa79 Author: Peter Hutterer Date: Wed Nov 24 14:56:07 2010 +1000 Remove display toggle switch. Which display do you want to toggle in between? The ScreenRecs or the RandR outputs? Let's not have any multi-monitor handling in the driver, push it to the clients to handle this. Signed-off-by: Peter Hutterer commit 72628cf965203eb2c625bf62b3f2c2324ba1fbeb Author: Peter Hutterer Date: Wed Nov 24 14:47:05 2010 +1000 Purge MMonitor option. Use the coordinate transformation matrix instead, see xserver commit 6cccf0131c8464d8838cae2200730873d7dd9e45 Author: Peter Korsgaard Date: Tue May 25 11:03:28 2010 +0200 dix: add 3x3 transformation matrix xinput property for multi-head handling Signed-off-by: Peter Hutterer commit d678efb371ead5421031e32e590ef6f796e664a4 Author: Peter Hutterer Date: Thu Nov 25 15:31:58 2010 +1000 Print the type_name for debug messages. Instead of a quadruple-nested ternery operator, just print the type_name. Signed-off-by: Peter Hutterer Acked-by: Ping Cheng commit d528d6e9fd9120cf16b8290aa545ff0b3bdf4c5e Author: Peter Hutterer Date: Thu Nov 25 15:25:18 2010 +1000 Print debug level for DBG statement. Seeing which message is printed for which level makes it a lot easier to pick a debug level to narrow down on the data that's interesting. Signed-off-by: Peter Hutterer Acked-by: Ping Cheng commit 6d162d220fd162084e7f8d9ee9abde509d71cdd1 Author: Chris Bagwell Date: Tue Nov 23 15:11:12 2010 -0600 Use single filter routine for all tools. Combining filter routines to reduce upkeep and keep all step step of filtering aligned. There are two steps in filtering. 1) Storing filter and 2) filtering samples. Stage #1 is storing X/Y and optionally storing tiltX/tiltY based on HANDLE_TILT(). Stage #2 is filtering value. It uses device specific callbacks to filter. There are 2 ways currently. Both ways filter X/Y use same math but second also filters tiltX/tiltY. It seems reasonable to do tiltX/tiltY filtering decision at runtime using HANDLE_TILT() to align both steps and reduce duplication. Signed-off-by: Chris Bagwell Signed-off-by: Peter Hutterer commit 3a3f94c2be798634629e92b3f4d14cdde445aafb Author: Chris Bagwell Date: Tue Nov 23 15:11:11 2010 -0600 Make npoints really track samples in filter window. I assume npoints means number points so align with that. Its really only being used as boolean value for init phase in todays code but that may change. Signed-off-by: Chris Bagwell Acked-by: Ping Cheng Signed-off-by: Peter Hutterer commit 6fc0cb7415dc09fb96b242c146466a569b505f85 Author: Chris Bagwell Date: Tue Nov 23 15:11:10 2010 -0600 Stop resetting filter window each sample processed. Up until recent commits there was an if() statement inside reset function which prevented window being reset while in proximity. That got removed which caused a bug were sample size was always size of 1. Remove the blind reset call and rely on existing conditional call while entering proximity. Signed-off-by: Chris Bagwell Acked-by: Ping Cheng Signed-off-by: Peter Hutterer commit a3efb69eac1b2c1082304f5d145527cf52495544 Author: Ping Cheng Date: Tue Nov 23 17:30:21 2010 -0800 Update new device types Added a few new ones in wcmDeviceTypeKeys Signed-off-by: Ping Cheng Signed-off-by: Peter Hutterer commit 038886431562ed5fedc265c4a79b323c11fb329e Author: Ping Cheng Date: Tue Nov 23 14:29:59 2010 -0800 Skip area check for pad tool Since Pad tool does not emit motion events, there is no area defined for pad. Skip those steps in commonDispatchDevice. Signed-off: Ping Cheng Signed-off-by: Peter Hutterer commit 23ec620249d6dda5876a7f7404c360124368fbb5 Author: Peter Hutterer Date: Tue Nov 23 14:07:06 2010 +1000 Don't allow the deletion of active button action properties. If a button action property is currently referenced by the driver, refuse the deletion of it. Clients must unref the property first before they can delete the property. Signed-off-by: Peter Hutterer Acked-by: Ping Cheng commit a2d4620d6f77f5a1f355656d66a52e58612dd8fe Author: Chris Bagwell Date: Sun Nov 21 18:13:40 2010 -0600 Revert part of BTN_TOOL_FINGER removal. It was not allowing BTN_0 or BTN_FORWARD events to be processed for any tablet. Not sure if other negative behavior existed. Signed-off-by: Chris Bagwell Acked-by: Ping Cheng Signed-off-by: Peter Hutterer commit fed765ab1fb90a6c5e48e9a84b787e4e88853f90 Author: Chris Bagwell Date: Sun Nov 21 18:13:39 2010 -0600 Add missing MT Bamboo Touch buttons Newer MT Bamboo drivers send BTN_LEFT, BTN_RIGHT, BTN_FORWARD, and BTN_BACK instead of BTN_0, 1, 2, 3. BTN_LEFT/RIGHT already were handled for mouse tools. Add BTN_FORWARD/BACK and treat same as BTN_SIDE/EXTRA mouse buttons. This is good because by default these go to buttons 8/9 which some apps treat as forward/back. Signed-off-by: Chris Bagwell Acked-by: Ping Cheng Signed-off-by: Peter Hutterer commit 2a0d650011367e4a5f814bdf936ee533c7a200a2 Author: Chris Bagwell Date: Sun Nov 21 18:13:38 2010 -0600 set npadkeys correctly for touchpads Its natural for newer touchpads, such as Bamboo Touch, to report buttons that overlap with mouse tools. These will get remapped to pad device based on previous patches but button count was not correctly initialed to account for this remapping. Now, make sure minimum nkeypad value is based on maximum mouse buttons when it detects supporting one or more mouse buttons. Signed-off-by: Chris Bagwell Acked-by: Ping Cheng Signed-off-by: Peter Hutterer commit a44680f3747a7eb6a884555d96acb830b3427f7d Author: Chris Bagwell Date: Sun Nov 21 18:13:37 2010 -0600 Set maximum tool button count to correct values The code to set nbuttons for non-pad buttons was checking for a lot of buttons that no current wacom tablets send or that is understood by xf86-input-wacom. Remove that dead code. The remaining logic seem to be trying to detect mouse versus other tools (stylus mainly) and set button count based on that. Changed to look for BTN_TOOL_MOUSE to work with wider range of tablets without special checks. Signed-off-by: Chris Bagwell Acked-by: Ping Cheng Signed-off-by: Peter Hutterer commit 2a5d1ae65e40590ada78a63ce7794af161203362 Author: David Foley Date: Sun Nov 21 20:46:45 2010 -0600 wcmValidateDevice.c: add 3-new-bambooPT-models Prevents the Xorg.0.log filling with multiple error lines "No touch device found". Reported-by: IRIE Shinsuke Tested-by: IRIE Shinsuke Signed-off-by: David Foley Acked-by: Ping Cheng Signed-off-by: Peter Hutterer commit 13466334d77bc50986c7392099bd6a8319f72b31 Author: Peter Hutterer Date: Mon Nov 22 09:37:12 2010 +1000 wacom 0.10.10 Signed-off-by: Peter Hutterer commit ea47ab69573fd6dbc13e89f6b33c9cac46ce23d0 Author: Ping Cheng Date: Sat Nov 20 12:20:44 2010 -0800 Accidently removed checking type with wcmType[j].type in wcmValidateDevice.c 2 steps forward 1 step back? What a great three-step waltz! Reported-by: David Foley Tested-by: David Foley Signed-off-by: Ping Cheng Introduced in 4e17f170bc31ed9572be743c6f5d7d705b447c7d. "BTN_TOOL_FINGER no longer a valid type for pad tool" Signed-off-by: Peter Hutterer commit a9d521802ee56c01362164f57516bfd9d7f0d2c4 Author: Peter Hutterer Date: Fri Nov 19 10:41:53 2010 +1000 Fix release script for sourceforge shell service. sf requires the creation of a shell before any operations, see http://sourceforge.net/apps/trac/sourceforge/wiki/Shell%20service The shell creation always requires a username, so take that from $USER. Leave the shell open at the end of the script (i.e. don't forcibly shut it down) in case the user needs to go in and do additional changes. Signed-off-by: Peter Hutterer commit ede7e5263dfea48ba9fbf8d225c00c71b601f58d Author: Peter Hutterer Date: Fri Nov 19 09:49:15 2010 +1000 wacom 0.10.9 Signed-off-by: Peter Hutterer commit 1397c99713e05f705753b083eb46c7c5e9159524 Author: David Foley Date: Wed Nov 10 11:21:58 2010 -0600 wcmUSB.c: 3-new-bambooPT-models Adds 3 new Bamboo Pen & Touch models. Supporting changes to linuxwacom wacom_wac.c also needed. Signed-off-by: David Foley Signed-off-by: Peter Hutterer commit aff73f14eff3fc314412fb4c4d020c185df92801 Author: Ping Cheng Date: Thu Nov 18 14:33:39 2010 -0800 Add WCM_PAD as a tablet feature Not all tablets have tablet buttons. Add WAC_PAD so TabletHasFeature can tell us if the tablet has pad tool or not. Signed-off-by: Ping Cheng Signed-off-by: Peter Hutterer commit cd8259fc1cb3989578f42a5984c6b329acb43760 Author: Ping Cheng Date: Thu Nov 18 14:24:32 2010 -0800 Change wcmDeviceTypeKeys to usbProbeKeys in wcmUSB.c A copy and paste error, I guess. Signed-off-by: Ping Cheng Signed-off-by: Peter Hutterer commit 1bfe863e1abb1bb731edce375ade675d484e5d65 Author: Peter Hutterer Date: Fri Nov 19 08:44:46 2010 +1000 xsetwacom: rename ClickForce to Threshold. Click force is a normalised scale from 0 - 21 for the pressure threshold. If we want to expose this, let the client UI's do this in their respective interfaces, not in xsetwacom. Rename to Threshold, which is the normalised threshold in a 0-2048 range and the data the device actually puts out. Signed-off-by: Peter Hutterer Acked-by: Ping Cheng commit 98e7d4a1c7b1c1c1154a70779c7a02a56f1da367 Author: Ping Cheng Date: Thu Nov 18 13:51:51 2010 -0800 Remove BTN_TOOL_FINGER from wcmUSB.c Since it is no longer used for pad, update the comments and code too. Signed-off-by: Ping Cheng Signed-off-by: Peter Hutterer commit 4e17f170bc31ed9572be743c6f5d7d705b447c7d Author: Ping Cheng Date: Thu Nov 18 11:42:32 2010 -0800 BTN_TOOL_FINGER no longer a valid type for pad tool BTN_TOOL_FINGER is used by mouse driver for the first finger. Before a new BTN_TOOL_ is added in input.h for pad tool, we don't have a BTN_TOOL_. However, we still need to configure those tablet buttons and strips/ring. Let's detect the actual buttons we are going to receive to determine the existence of a pad tool. BTN_0 and BTN_FORWARD are the two unique BTN_s that we use for tablet buttons in the kernel driver. Signed-off-by: Ping Cheng Reviewed-by: Chris Bagwell Signed-off-by: Peter Hutterer commit 203d66651ef8d231e266e29e337f76a92e8ef7d8 Author: Peter Hutterer Date: Thu Nov 18 14:58:16 2010 +1000 xsetwacom: correct default pressure threshold (ClickForce) Since 659daa11dc558a45bfad1b9548f1757fab226ad7 we normalize the threshold into a 0-2048 range. The default is 2048/75, i.e. 27. Signed-off-by: Peter Hutterer commit c23a3a320120069367e067f11973e9d4bacc3b1b Author: Ping Cheng Date: Wed Nov 17 13:48:15 2010 -0800 Add 5 new devices Added DTU2231, DTU1631, Intuos4 WL, and Cintiq 21UX2 tablets. Signed-off-by: Ping Cheng Signed-off-by: Peter Hutterer commit 9d47e17623630b5d53b3b131440f2065fc77eee7 Author: Ping Cheng Date: Tue Nov 16 13:07:03 2010 -0800 Do not initialize (x,y) valuators for pad tool Pad tool does not emit motion events. Leave (x,y) alone. Other valuators, even the pressure, may be used by pad to pass raw data to clients. Signed-off-by: Ping Cheng Signed-off-by: Peter Hutterer commit 647355a888507122078a37d075bb106391f69a5b Author: Chris Bagwell Date: Sun Nov 14 11:08:17 2010 -0600 Ignore return code from filter calls It does not seem like a good idea to ever discard events based on filtering logic. Filters generally should smooth out values and not cause us to discard whole window of samples. Currently, all filter routines hardcode return to 0 anyways and so this dead code only caused some confusion. Signed-off-by: Chris Bagwell Signed-off-by: Peter Hutterer commit 66f8e091932df6fa82df134de8e5550a5ac14823 Author: Chris Bagwell Date: Sun Nov 14 11:08:16 2010 -0600 move storing of raw samples into wcmFilter filer This helps abstract out filtering better and also allows custom behavior on storing of samples as well; such as not moving avg window if no X/Y values have changed in current event cycle. Intent of this change is refactor only (no behavior change). Most off diff is moving logic over to wcmFilter.c. There is minor flow difference because RawFilter() and wcmCheckSuppress() needs to be kept in wcmCommon.c, and so outside logic that stores samples, but intent is same results. Signed-off-by: Chris Bagwell Reviewed-by: Ping Cheng Signed-off-by: Peter Hutterer commit 4080e04ca7535635800deb1af68fab6b37bfa69b Author: Chris Bagwell Date: Sun Nov 14 11:08:15 2010 -0600 Ignore events that occur while out of proximity. When out of proximity, changes to values to X/Y/etc are not meaningful. Some non-wacom tablets will send these values while out of proximity. Although we correctly ignore their values elsewhere, its more efficient to ignore right away. Signed-off-by: Chris Bagwell Signed-off-by: Peter Hutterer commit 22349586a3579bea0c51a2bb42291fb3d432b0ae Author: Chris Bagwell Date: Sun Nov 14 11:08:14 2010 -0600 Removed unused filter variables. Signed-off-by: Chris Bagwell Signed-off-by: Peter Hutterer commit 69cd5d502c9879b8db66adabb343a24529879e4c Author: Chris Bagwell Date: Sun Nov 14 11:08:13 2010 -0600 Reset filter window when entering proximity Old logic was relying on multiple sync windows occuring while out of proximity to reset averaging window; which doesn't always happen. Signed-off-by: Chris Bagwell Signed-off-by: Peter Hutterer commit 08834f051c20b9b794e58a1e2a44d5d7b83ecc68 Author: Chris Bagwell Date: Sun Nov 14 11:08:12 2010 -0600 No need to filter X/Y values when out-of-prox Signed-off-by: Chris Bagwell Signed-off-by: Peter Hutterer commit 9cdb8123a552df881cf8117f6913791e0b586c9f Author: Peter Hutterer Date: Thu Nov 11 13:36:14 2010 +1000 Don't initialize the area property for the pad. The pad tool doesn't send any pointer events, so we don't really need to have a area for it. Signed-off-by: Peter Hutterer Reviewed-by: Ping Cheng commit 9947959a3f224dc927ccf53de975eabdfd74230d Author: Chris Bagwell Date: Thu Nov 4 20:01:41 2010 -0500 Use self describing logic for generic touchpad btns Changed logic to dispatch 1 or 2 channels events to be based on value of wcmBTNChannel instead of based on protocol used. Although previous logic worked, this way is clearer to reason why wcmEvent() needs to be called for 1 or 2 channel's. Signed-off-by: Chris Bagwell Acked-by: Ping Cheng Signed-off-by: Peter Hutterer commit 791de526725abebfa33e1b41097c3e60b500f7f1 Merge: fd6185880c0f c6dcc3a1f78b Author: Peter Hutterer Date: Thu Nov 4 09:21:53 2010 +1000 Merge branch 'next' commit c6dcc3a1f78b6eb2e3d0ac1b7074ec5b94d5c209 Author: Peter Hutterer Date: Mon Oct 25 10:40:16 2010 +1000 Input API 12 requires a valuator mode for each axis. Signed-off-by: Peter Hutterer Acked-by: Chris Bagwell commit ea392a15560e19d28caf082f113e58edb6e56132 Author: Peter Hutterer Date: Fri Sep 10 09:39:14 2010 +1000 Use xf86OptionListDuplicate under input ABI 12. Signed-off-by: Peter Hutterer commit d086b320fef1bde7db149309a6d77f072f8cbdb1 Author: Peter Hutterer Date: Mon Aug 2 12:51:05 2010 +1000 Adjust to new input PreInit from API 12. New PreInit prototype streamlines the process a bit, leaving most of the task up to the server. Signed-off-by: Peter Hutterer commit fd6185880c0f414971adfd67fb34256f73a82f87 Author: Peter Hutterer Date: Wed Nov 3 14:29:58 2010 +1000 Avoid use of unitinialized variable fakeKey There's a path in getWheelButtons() where fakeKey is not set. Check for that. Reported-by: Ping Cheng Signed-off-by: Peter Hutterer Reviewed-by: Chris Bagwell Acked-by: Jon Neal commit 75bfb52f6c36afe9354061de92538c7966d784b9 Merge: ab71355f6e25 09445a03c765 Author: Peter Hutterer Date: Fri Oct 29 15:25:26 2010 +1000 Merge branch 'usb-cleanup' commit ab71355f6e251833f422cf5c591ed42208cf3f91 Author: Peter Hutterer Date: Fri Oct 29 11:43:00 2010 +1000 Limit debug level max values to 12, not 10. Let's do what the man page says. Reported-by: Chris Bagwell Signed-off-by: Peter Hutterer Reviewed-by: Ping Cheng commit ee470480f986470555dbd7b04c53cbc85f7dc779 Author: Peter Hutterer Date: Fri Oct 29 10:43:26 2010 +1000 Enable debugging by default. If a distro doesn't want it, they can always disable it. Most of us building from source definitely want it enabled. Signed-off-by: Peter Hutterer Reviewed-by: Ping Cheng commit cded861562ff05a622609ec76882434940cd5d4f Author: Peter Hutterer Date: Fri Oct 29 10:40:32 2010 +1000 man: reword man page for DebugLevel and CommonDBG - The log file is not in /etc - Don't use "define", it's confusing given that DEBUG must be defined to get it. - CommonDBG doesn't enable debugging for all devices on the tablet, just for common code paths. - Note that debugging must be defined for the options to work. Signed-off-by: Peter Hutterer Reviewed-by: Ping Cheng Reviewed-by: Chris Bagwell commit 09445a03c765df0eef1b70e082058b229767e00f Author: Peter Hutterer Date: Thu Oct 28 10:51:09 2010 +1000 usb: split parsing the SYN event into a separate function. My attention span is too short to handle long functions :) Signed-off-by: Peter Hutterer Reviewed-by: Chris Bagwell commit 0cc05a9f6a437d90451188c35f5b3a7ea41a3bbc Author: Peter Hutterer Date: Thu Oct 28 10:52:27 2010 +1000 usb: Fix a confusing comment "Fall through to dispatch" is arguably better, because that's what we're going to to next and there isn't a guarantee yet that we're actually delivering an X event. Signed-off-by: Peter Hutterer Reviewed-by: Chris Bagwell commit 72786ae0c8d6c1ce2c95741f65de5d11763099bb Author: Peter Hutterer Date: Thu Oct 28 10:47:10 2010 +1000 usb: USE_SYN_REPORTS_FLAG is always set these days, purge it. Signed-off-by: Peter Hutterer Reviewed-by: Chris Bagwell commit a5268935f86046cba74631a9e81cdedd9672274a Author: Peter Hutterer Date: Thu Oct 28 10:38:36 2010 +1000 usb: Use ARRAY_SIZE macro instead of manual size calculation. Signed-off-by: Peter Hutterer Reviewed-by: Chris Bagwell commit 9809863d8ee3931395e245e855b97073566fb7e1 Author: Peter Hutterer Date: Thu Oct 28 10:30:46 2010 +1000 usb: move private allocation up. This is the only failure path, might as well get it out of the way quick. Signed-off-by: Peter Hutterer Reviewed-by: Chris Bagwell commit 856b2891c4dd73e60b7ed59b8aa595ab1e32812a Author: Peter Hutterer Date: Thu Oct 28 10:08:37 2010 +1000 usb: Compress USB model definitions. Use a DEFINE_MODEL macro to de-duplicate the common intializations for the WacomModel struct. Signed-off-by: Peter Hutterer Reviewed-by: Chris Bagwell commit 8d69f6ec166e6165652ec2379a6c9405d5607278 Merge: f27cb29c088b cdfedc95017c Author: Peter Hutterer Date: Thu Oct 28 14:49:03 2010 +1000 Merge branch 'xsetwacom-buttonmaps' commit f27cb29c088b4a2cfe5e6c1d4de1f305a0ac5dff Author: Chris Bagwell Date: Sun Oct 24 14:40:18 2010 -0500 Support tablet buttons without serial #'s. The core of xf86-input-wacom strictly enforces buttons on tools that are out-of-proximity must be cleared except for the special case of the PAD device that is always considered in proximity. Generic tablets (non-wacom) and touchpads will send button presses associated with tablet itself even if no tools are reported as in proximity. Work around this by forcing all non-styus button presses to be routed to hard coded PAD channel and post multiple channel events per sync window. This is for generic tablets only and wacom tablets continue to process events the same way. MT packets could be implemented using same concept and routing to hard coded channel 0 or 1 based on finger #. Signed-off-by: Chris Bagwell Signed-off-by: Peter Hutterer Acked-by: Ping Cheng commit cdfedc95017c0c80f7b1dc5b4dcbb47863ad66aa Author: Peter Hutterer Date: Wed Oct 27 14:20:07 2010 +1000 xsetwacom: unset special button mappings when switching to simple ones. After a special button mapping was assigned, allow switching back to a simple button mapping. The following sequence now works: xsetwacom set Button1 key a b c xsetwacom set Button1 1 Signed-off-by: Peter Hutterer Acked-by: Ping Cheng commit 86449bee044b4887b1341b3db5e51fb84087de80 Author: Peter Hutterer Date: Wed Oct 27 14:10:02 2010 +1000 xsetwacom: fix an outdated comment, map_button only has two variants. Signed-off-by: Peter Hutterer Acked-by: Ping Cheng commit 345db498a60fd788d7bb4d43a3ce05d3a7706434 Author: Peter Hutterer Date: Wed Oct 27 11:16:56 2010 +1000 xsetwacom: for button mappings with keycodes, print the keysyms This isn't really accurate as it relies on the current keymap, but then again, that's what you get for having keysym handling in the driver... Signed-off-by: Peter Hutterer Acked-by: Ping Cheng commit 194b76b9ca716f277c5753d159c446e162c90233 Author: Peter Hutterer Date: Wed Oct 27 10:56:04 2010 +1000 xsetwacom: print special button maps. If a device has something more complex than a simple button mapping for a given button, print it. Note that this doesn't simplify the mappings, so xsetwacom set Button1 "button 1" will print as ... "button +1 -1" instead. Signed-off-by: Peter Hutterer Acked-by: Ping Cheng commit d95ac5e1789841347b458cf95056033f41ad91a6 Author: Peter Hutterer Date: Wed Oct 27 10:49:35 2010 +1000 Deprecate AC_DBLCLICK - use two button clicks in the client instead. Signed-off-by: Peter Hutterer Acked-by: Ping Cheng commit 077d24850fcf36c5a7c56e9a9a56fcc2c4a50a4c Author: Peter Hutterer Date: Wed Oct 27 10:06:27 2010 +1000 Comment AC_CORE as deprecated. Leave it in for now in case someone relies on it but it'll likely be removed in the future. Drivers don't decide on whether to send core events since 1.7. Signed-off-by: Peter Hutterer Acked-by: Ping Cheng commit 09862c15874162c56e7d310f9e5385a76eb616a2 Author: Peter Hutterer Date: Wed Oct 27 09:20:54 2010 +1000 xsetwacom: Extra tracing for button maps. Signed-off-by: Peter Hutterer Acked-by: Ping Cheng commit 2a050b9798dec401311dc8758c903ed6175e07c2 Author: Chris Bagwell Date: Sun Oct 24 14:40:17 2010 -0500 Only call wcmEvent() if valid event received. Signed-off-by: Chris Bagwell Signed-off-by: Peter Hutterer commit 972c3cd6dc580b97565c51cb4260128cc8095c94 Author: Chris Bagwell Date: Sun Oct 24 14:40:16 2010 -0500 Increase MAX_CHANNELS to 3 to handle Bamboo's max. This must have been missed during merge of Bamboo and gestures. It requires 3 channels to track 1st finger, 2nd finger, and pad device. Gestures will not work correctly without this. BTW: This means Intous1 and Intous2 devices can now have 3 tools in proximity at once to match max on kernel side. I assme this works fine since linuxwacom xdrv has increased to 3 as well but I'm unable to test on that device. Signed-off-by: Chris Bagwell Reviewed by: Ping Cheng Signed-off-by: Peter Hutterer commit d4c0c4a1602fa652a10f96e47776a6c0689a6bf9 Author: Chris Bagwell Date: Sun Oct 24 14:40:15 2010 -0500 document special logic done while going in-prox There is an implied agreement between kernel drivers and user land to work around event filtering issues. Document our current approach since it seems not so obvious the importance of a memset(). Our current approach works great with wacom tablets but has some issues with non-wacom tablets. List some TODO's to aid those developers in the future. Also, forcing in proximity handles a few corner cases fine for all wacom devices but document the preferred approach for possible future patch. Signed-off-by: Chris Bagwell Reviewed-by: Ping Cheng Signed-off-by: Peter Hutterer commit 95c8d204070a7e88e71f49542c64047ffd5061d2 Author: Chris Bagwell Date: Sun Oct 24 14:40:14 2010 -0500 Centralize validating of event queue sizes. Changed !type check to type == EV_SYN to make it clear what its doing. Signed-off-by: Chris Bagwell Reviewed by: Ping Cheng Signed-off-by: Peter Hutterer commit e077311a1678ddcdf6cf50bd4c72a4a11ac7820b Author: Chris Bagwell Date: Sun Oct 24 14:40:13 2010 -0500 Refactor channel selection logic usbParseEvent() is for queue'ing up events until a full sync window occurs. It was also selecting a channel related to all queued events. Move channel selection logic to function that processes all events (usbParseChannel()) since its more related to that logic than to queuing logic. Also, rename to usbDispatchEvents() since some WCM_PROTOCOL_GENERIC devices can send events that need to be placed in multiple channels. Signed-off-by: Chris Bagwell Acked-by: Peter Hutterer Signed-off-by: Peter Hutterer commit f1ecd11c619f1f7eb7850dd2fb514307ca1dd1ce Author: Jan Steffens Date: Thu Sep 30 02:40:30 2010 +0200 Correct TPCButton property inversion The property had the inverse meaning (TPCButton on actually meant it was off). Correct this. Signed-off-by: Jan Steffens Reviewed-by: Ping Cheng Tested-by: Jason Alavaliant Signed-off-by: Peter Hutterer commit ef7345fb3d0fce48d7968bbdd108755113a24035 Author: Chris Bagwell Date: Wed Oct 13 21:15:58 2010 -0500 Partial support for Bamboo Touch MT-style interface. Initial changes to support Bamboo Touch input device reporting values using a touchpad-like event interface and MT events for multitouch. This change is backwards compatible with original "serial #" style multiplexing of touch data used by Tablet PC's and Bamboo Touch's. This change allows a generic touchpad to function with xf86-input-wacom; including basic 1 finger gestures such as tap-to-click. Tablet buttons do not work while finger is out-of-proximity. They need to be rerouted to always-in-proximity PAD device (last channel) to work with current framework. MT events are not processed yet and its 2nd finger events need to be rerouted to channel #2 if wacom gesture logic is to work. Signed-off-by: Chris Bagwell Signed-off-by: Peter Hutterer commit 680b9a9a31c2e2cec994e348402af153bd573be5 Author: Chris Bagwell Date: Wed Oct 13 21:15:57 2010 -0500 Use enums for defining protocol used. There is possible plans to support at least one more "protocol" for sending events from Linux input devices to xf86-input-wacom (GENERIC). In preperation for this, switch to enums which allow using names to indicate totally unrelated protocols. Also, add better documentation on what Protocol 4 and Protocol 5 really means in wcmUSB.c. This patch shows that usage of wcmProtocolLevel in commonDispatchDevice() is questionable (hopefully, no protocol specific logic needed in common functions) but that is left for another patch set. Signed-off-by: Chris Bagwell Signed-off-by: Peter Hutterer commit bfffbce420afa57ea7135078938904c13ce6c4a8 Author: Peter Hutterer Date: Wed Oct 13 08:51:12 2010 +1000 Only initialize CursorProx property for the cursor/puck tool. Signed-off-by: Peter Hutterer Acked-by: Ping Cheng commit 19c24dc4e852bae384f16411d5f59add487be5f0 Author: Peter Hutterer Date: Fri Oct 8 08:49:22 2010 +1000 Rework rotation and scaling into tablet areas. For each event, scale into the the range defined by topX, ..., then rotate and invert the axes as required. Don't mess with the topX, ... properties when rotating, the man page claims they apply to the physical topX, ..., regardless of rotation. Since we don't modify these anymore, rotateOneTool() is obsolete and wcmRotateTablet() a lot simpler (to be removed out in the future). Signed-off-by: Peter Hutterer Tested-by: Jan Steffens Acked-by: Ping Cheng Reviewed-by: Chris Bagwell commit c505eca885b8b4f1743b158414236034757eac58 Author: Peter Hutterer Date: Thu Oct 7 14:45:28 2010 +1000 Don't change axis ranges after rotation. Don't change the axis range at runtime, clients cannot cope with that and will process data in a wrong manner. Rotation needs to happen inside the driver, with the rotated axis ranges being squashed into the respective axis ranges announced at startup. Note: This temporarily breaks tablet rotation until the real scaling has been set up. Signed-off-by: Peter Hutterer Tested-by: Jan Steffens Acked-by: Ping Cheng Reviewed-by: Chris Bagwell commit fdc4e91212d0d0fbd5d93e94b0faa9fc6ee72f44 Author: Peter Hutterer Date: Thu Oct 7 14:42:10 2010 +1000 Don't replace the TopX, etc. options when rotating. These options should always refer to the physical tablet's coordinates. Besides, I don't think anything actually accesses these options after the init process. Signed-off-by: Peter Hutterer Tested-by: Jan Steffens Acked-by: Ping Cheng Reviewed-by: Chris Bagwell commit b05b13fdd9dbda2bf1b5c56e5464c55b2cd93849 Author: Peter Hutterer Date: Thu Oct 7 14:36:24 2010 +1000 Don't reset the axis range when changing the tablet area. The axis range must not be modified at runtime. XI2 allows for it (we don't have the hooks for it in the server though), but changing the axis range after a client has started up means the client processes events wrong. Signed-off-by: Peter Hutterer Tested-by: Jan Steffens Acked-by: Ping Cheng Reviewed-by: Chris Bagwell commit 20edad000c0b3ffdeb19494c7a5b888f64fed454 Author: Peter Hutterer Date: Fri Oct 8 08:25:53 2010 +1000 Explain why name must not be moved in the WcmCommonRec/WcmDeviceRec. Signed-off-by: Peter Hutterer Tested-by: Jan Steffens Acked-by: Ping Cheng Reviewed-by: Chris Bagwell commit f4a46bcd99cdaeddb26c2ec5e07f2f7fd03cce77 Author: Peter Hutterer Date: Thu Oct 7 14:32:35 2010 +1000 Rename wcmRegisterX11Devices to wcmDevInit The latter didn't do anything but call wcmRegisterX11Devices, so we might as well skip this step. Signed-off-by: Peter Hutterer Tested-by: Jan Steffens Acked-by: Ping Cheng Reviewed-by: Chris Bagwell commit f2588f9ba25f5b86f9fdbc87ef302ef1cb612e72 Author: Peter Hutterer Date: Thu Oct 7 15:46:08 2010 +1000 Silence two compiler warnings. ../../src/wcmTouchFilter.c: In function 'wcmSendScrollEvent': ../../src/wcmTouchFilter.c:299:21: warning: cast from function call of type 'int' to non-matching type 'double' ../../src/wcmTouchFilter.c: In function 'wcmFingerZoom': ../../src/wcmTouchFilter.c:458:17: warning: cast from function call of type 'int' to non-matching type 'double' Signed-off-by: Peter Hutterer Tested-by: Jan Steffens Acked-by: Ping Cheng Reviewed-by: Chris Bagwell commit 78e955996eb01d952acd9212dfcaef6060130877 Author: Peter Hutterer Date: Wed Sep 1 11:27:03 2010 +1000 Purge STopX/SBottomX config values and the screen property. Input drivers are not in the business of exporting screen coordinates. Especially since these are likely to be incorrect in the light of RandR 1.2 and later. Signed-off-by: Peter Hutterer Acked-by: Ping Cheng commit 2a4447f9d84beac78bc256d436b93a5f8fcc55a7 Author: Peter Hutterer Date: Fri Aug 27 15:33:02 2010 +1000 Purge TwinView driver support. TwinView is a video driver feature that, quite frankly, screws everyone. It exposes only a single ScreenRec but we need to pretend we have 2 when it's activated. We can't get the dimensions of the screen and rely on the user to set it, hoping that everything works in spite of that. For single ScreenRec setups (including RandR multiscreen), we can use the Coordinate Transformation Matrix property to achieve tablet-to-screen mappings (see commit 239822f9f4 "xsetwacom: add "MapToOutput" parameters.") Signed-off-by: Peter Hutterer commit 9ddd9ce76bafd77588de87096c8445fa2719e303 Author: Peter Hutterer Date: Tue Jun 8 14:28:41 2010 +1000 Remove wcmSetScreen(), it's not working. The current behaviour on a single _protocol_ screen is working fine (this includes RandR 1.2 multi-monitor setups). The behaviour on a multi-ple protocol screen is broken, with the center area of the screens being unaccessible. Given two monitors in a left/right layout, the pointer will jump half-way through the first screen to the center of the right screen and continue from there. The areas marked with x in the diagram below are inaccessible. +-----------+ +-----------+ | xxxxxx| |xxxxx | | xxxxxx| |xxxxx | +-----------+ +-----------+ Remove the wcmSetScreen() call and let the X server handle the screen crossing. This isn't quite perfect yet as the pointer gets stuck on the rightmost screen but it's better than the current behaviour. Signed-off-by: Peter Hutterer commit a598ba47028075c0192533e12b825490e361e698 Author: Peter Hutterer Date: Thu Oct 7 15:30:58 2010 +1000 Remove refcnt initialization from InputDriverRec. Removed from the server with commit 6130170e7e9b64c611ee942ec3455dd1a185193d Author: Adam Jackson Date: Sat Sep 18 06:41:35 2010 -0400 xfree86: Remove unused refcounting from input drivers And given that it was unused, we don't need to ifdef it. Signed-off-by: Peter Hutterer commit fd3c86ee1e17df2b186aa52977be71772f7f360a Author: Peter Hutterer Date: Thu Sep 9 14:58:22 2010 +1000 Use the device's name directly, not conf_idev. conf_idev is slated for removal in the server. Signed-off-by: Peter Hutterer Acked-by: Ping Cheng commit 0b9756915d44d9b1f19eb4317533a05295637d52 Author: Peter Hutterer Date: Fri Sep 3 16:18:45 2010 +1000 Don't init close_proc, the server doesn't call it anyway. Also scheduled for removal. Signed-off-by: Peter Hutterer Acked-by: Ping Cheng commit a65857d6e30aec1f8a819b60834d14621f67514d Author: Peter Hutterer Date: Fri Sep 3 16:16:58 2010 +1000 Don't init pInfo->atom, the server will init it for us. Signed-off-by: Peter Hutterer Acked-by: Ping Cheng commit 95aea505990716c1b7d635e5d34a86b37832c173 Author: Peter Hutterer Date: Wed Sep 1 15:38:10 2010 +1000 Don't set private_flags if we don't use it. Scheduled to be removed in the server and neither the server nor we need it. Signed-off-by: Peter Hutterer Acked-by: Ping Cheng commit 8674a77acb141c2e861edbacfd527f32c84a28fd Author: Peter Hutterer Date: Tue Oct 5 16:04:13 2010 +1000 man: fix typo in man page "list mods" → "list mod" Reported-by: Alex Hamon Signed-off-by: Peter Hutterer commit 8f138922837c89bd0b32df64c69cc4cd75821248 Author: Chris Bagwell Date: Mon Sep 6 19:42:31 2010 -0500 Fix Bamboo touchpad "freeze" issue. Remove part of code that tried to detect invalid packets coming from touchpad because of known issues from filtering of events in Bamboo Touch drivers that do not use MT kernel interface. The size BAMBOO_TOUCH_JUMPED is to small and can hit logic during normal finger movements. To end user it will look like touchpad freezes until they remove their finger. This freeze has been reported by at least a couple of end users to mailing list. This is REALY noticable issue when working with MT version of Bamboo driver because its scalled up the reported X/Y values and ANY movement will exceed BAMBOO_TOUCH_JUMPED. Unless code is removed, Bamboo Touch MT can not work with xf86-input-wacom. Removed code instead of trying to fix it because it can't be fixed without also breaking gesture logic and the new MT driver solves root issue. Signed-off-by: Chris Bagwell Acked-by: Ping Cheng Signed-off-by: Peter Hutterer commit 0f409708e745eb20d753ee6e3f18186c9c06d627 Author: Chris Bagwell Date: Mon Sep 6 19:42:29 2010 -0500 Allow valid case of 2 events per sync windows The check to find event sync windows with to little information was to agressive. For example, if only pressure is changing then only two events will be sent: ABS_PRESSURE and EV_SYN. The previous logic would discard in this case. This is also in preparation for simplier tools which do not report serial numbers and in general will send small total events per sync window. Also, fixed comment since MSC_SERIAL events are not strictly required. Signed-off-by: Chris Bagwell Acked-by: Ping Cheng Reviewed-by: Peter Hutterer Signed-off-by: Peter Hutterer commit 1b9a7c2823080d59c7bc8749aa2d52e5722d8773 Author: Chris Bagwell Date: Mon Sep 6 19:42:28 2010 -0500 Refactor usbParseChannel. The function was getting to long and mixing both event processing and device_type validataion. Now, usbParseChannel() is mostly about device_type validation. The intent is no change in logic. Switch to case statements instead of if()'s from precieved increase of readability. Signed-off-by: Chris Bagwell Acked-by: Ping Cheng Reviewed-by: Peter Hutterer Signed-off-by: Peter Hutterer commit c0f7b2e7f1ed6601392c39c0eda3c4c96326c86a Author: Nikolai Kondrashov Date: Sun Sep 26 18:14:06 2010 +0400 Add isdv4-serial-debugger to tools/.gitignore Add isdv4-serial-debugger to tools/.gitignore to avoid git messages about untracked files. Signed-off-by: Nikolai Kondrashov Reviewed-by: Ping Cheng Signed-off-by: Peter Hutterer commit b2aae07353d55eb5f8cdee3ff74f9f253a1b83ed Author: Xing Wei Date: Sun Sep 26 21:22:45 2010 +0800 make hanwang tablet handled by xf86-input-wacom Add support for hanwang tablet in the file .conf. Signed-off-by: Xing Wei Signed-off-by: Peter Hutterer commit 0bd1b1c623866f5757e595f632ecf4fcd01fe127 Author: Nikolai Kondrashov Date: Sat Sep 18 15:40:16 2010 +0400 Add tabstop=8 to vim modelines Add tabstop=8 to vim modelines in source code files to avoid incorrect shifting if the editor has other tabstop setting. Signed-off-by: Nikolai Kondrashov Signed-off-by: Peter Hutterer commit c5675de9e4aeb3c4bb65735d1135567046f58ec1 Author: Xing Wei Date: Sun Sep 12 16:01:43 2010 +0800 make hanwang tablet handled by xf86-input-wacom This trival patch make Hanwang Art Master III tablet handled by xf86-input-wacom driver in the X system. Signed-off-by: Xing Wei Signed-off-by: Peter Hutterer commit 3a8a601f1b73a7b7d56d2a1635a7522751477fdf Author: Przemo Firszt Date: Tue Sep 7 23:27:26 2010 +0100 Remove "curve" from debug message - trivial fix Signed-off-by: Przemo Firszt Signed-off-by: Peter Hutterer commit f968420695d72240ef6cb56febd195f8724b9f6e Author: Peter Hutterer Date: Mon Sep 6 13:36:03 2010 +1000 Allow 0 for TwinView resolution if TwinView is NONE. Signed-off-by: Peter Hutterer commit 045a4c3635dbcad9bd0a06aff78b0a960e405c95 Author: Peter Hutterer Date: Wed Sep 1 13:22:02 2010 +1000 Remove custom keymap assignment. Any client that applies keymaps after the device was detected will overwrite this custom keymap. This is the case with e.g. GNOME, so going through the effort of defining a keymap is short-lived. If a special keymap is required, the XKB options can be set accordingly though they will suffer from the same issue described above. Signed-off-by: Peter Hutterer Acked-by: Ping Cheng commit 2515103d4672c1cdf4c2d0ac6e7a55ab1201da24 Author: Peter Hutterer Date: Wed Sep 1 14:15:17 2010 +1000 Don't set old_x/old_y on init. These fields are unused and to be removed soon anyway. Don't init them, we don't access them at any time. Signed-off-by: Peter Hutterer Acked-by: Ping Cheng commit ae868c4eecb71b99f2c3f6c54af88ef4e553f391 Author: Peter Hutterer Date: Tue Aug 31 11:31:09 2010 +1000 ISDV4: support FUJ02e7 serial device in isdv4ProbeKeys Device supports two-fingers. Signed-off-by: Peter Hutterer Acked-by: Ping Cheng Tested-by: Jorge Juliá commit 038087940b764abc4ffc69eafff6b5b2de1ec9af Author: Peter Hutterer Date: Tue Aug 31 11:25:09 2010 +1000 ISDV4: rework WACf id matching to be more generic. Preparation work to match other vendors as well. Signed-off-by: Peter Hutterer Acked-by: Ping Cheng Tested-by: Jorge Juliá commit 602c64950c11138b76a3c9b5d1bb14f64a3525ba Author: Peter Hutterer Date: Fri Aug 27 13:42:04 2010 +1000 Remove unused prop_screen_area property. prop_screen is the one used for the screen area configuration. Signed-off-by: Peter Hutterer commit e74d5977127641d4406a9d6f6a8b80feabf4c826 Author: Peter Hutterer Date: Fri Aug 27 11:04:44 2010 +1000 xsetwacom: merge TVResolution into a single command Instead of TVResolution0 and TVResolution1, merge them into a single 4-value command. This saves us from guesswork in xsetwacom where we have to figure out what the remaining coordinates may be. Signed-off-by: Peter Hutterer Acked-by: Ping Cheng commit 7ed7906ee51b17cc26e49d34321d77ba96f149dc Author: Peter Hutterer Date: Fri Aug 27 10:45:59 2010 +1000 xsetwacom: set the TVResolution property to some sane values. When TwinView is changed, init the TVResolution property to some sane values. The user can always change them afterwards. Signed-off-by: Peter Hutterer Tested-by: Przemo Firszt commit 642d2d6dec01ba7b57a10c953368dfb0ffe02596 Author: Peter Hutterer Date: Fri Aug 27 13:23:32 2010 +1000 xsetwacom: fix property offset for TVResolution1 Signed-off-by: Peter Hutterer commit 0cfee57dccaf7e32804341ac87669c78fd3d47f8 Author: Peter Hutterer Date: Wed Aug 25 15:21:04 2010 +1000 xsetwacom: add parsing for prop_nextra items in property. Automatic handling of properties that take several items, eg. TVResolution0 and TVResolution1. Signed-off-by: Peter Hutterer commit 6eb3084ba5df9c29ec75d58ab328a505b700a021 Author: Peter Hutterer Date: Wed Aug 25 14:55:48 2010 +1000 Remove superfluous checks for TVResolution property values. A CARD32 is unsigned and cannot be less than 0. Remove the checks and move the one leftover check down to the switch statement. commit d542c1015ab58cc49b933c6b96b9792c85ae308a Author: Peter Hutterer Date: Wed Aug 25 14:54:23 2010 +1000 Fix up value check for TVResolution property. The properties cannot match up in height _and_ width, only one of the two. Which one depends on the TwinView settings. We also require that at least one resolution matches the screen resolution and that neither of the values is larger than the screen resolution for the given dimension. Signed-off-by: Peter Hutterer commit c606980e2a6d65f26d03d3baa26bfbf47a174da7 Author: Peter Hutterer Date: Wed Aug 18 13:13:51 2010 +1000 xsetwacom: support aboveof, belowof, leftof, rightof in xsetwacom TwinView. I don't actually know what this is really supposed to do in the end, the driver does the same thing irrespective of whether leftof or rightof is specified. Signed-off-by: Peter Hutterer Acked-by: Przemo Firszt Acked-by: Ping Cheng commit 4307dc3522ce6948cf943d4c5b51d4714a630216 Author: Peter Hutterer Date: Wed Aug 18 13:11:18 2010 +1000 Update a comment in the light of the driver sending keycodes now. The property values now refer to keycodes, not keysyms. Signed-off-by: Peter Hutterer Acked-by: Ping Cheng commit 71a16329df21bf8451eabb090f2785061cbe2573 Author: Peter Hutterer Date: Wed Aug 18 12:51:14 2010 +1000 xsetwacom: fix up error message for TwinView setting. Signed-off-by: Peter Hutterer commit 50ac409a986237f5ed1975a9a7ff51cf92143e57 Author: Peter Hutterer Date: Tue Aug 17 16:07:03 2010 +1000 xsetwacom: add super and hyper to modifiers. Signed-off-by: Peter Hutterer Acked-by: Ping Cheng Revieved-by: Przemo Firszt commit 239822f9f4973dc2b3a51fd8af74bfda0349dece Author: Peter Hutterer Date: Mon Aug 9 15:19:19 2010 +1000 xsetwacom: add "MapToOutput" parameters. Provides a new xsetwacom parameter to restrict the tablet to a given RandR 1.2 output. The output has to be active. The command xsetwacom set "MapToOutput" VGA1 maps the coordinates of the tablet to the given output. This is a once-off effect only. xsetwacom does not track the output for reconfiguration. If the output is reconfigured, re-running the command will re-configure the tablet with the new configuration. A list of outputs can be obtained with e.g. xrandr. If used together with rotation, the tablet must be rotated before being mapped to the output. Requires the "Coordinate Transformation Matrix" property to be present and handled by the X server. Signed-off-by: Peter Hutterer Acked-by: Ping Cheng commit ba77b532e6c2a0b7b05ab129009c1f614b089c37 Author: Peter Hutterer Date: Mon Aug 9 12:14:00 2010 +1000 xsetwacom: always update the parent property for wheel/strip actions. With the new support for wheel actions, the actual action would be delayed by one invocation, i.e. any action would always reflect the last xsetwacom command, not the current one. Caused by the driver now calls XIGetProperty() during the update but the property hasn't actually set the value yet. Hack around this by always updating the parent property, triggering a reload of all actions. Signed-off-by: Peter Hutterer commit e3e122be074df52ce62ed7146410979c5eb03734 Author: Peter Hutterer Date: Mon Aug 9 11:38:17 2010 +1000 Remove unused skeys2 field. Signed-off-by: Peter Hutterer commit 0ff60c02ed5e3e0b16cc3b214e6d81890cc706f7 Merge: 9f5a39c56d0b 3299bf3b4bde Author: Peter Hutterer Date: Mon Aug 9 10:39:04 2010 +1000 Merge branch 'wheel-keys' commit 9f5a39c56d0bb7b4372cdf965f83c6b245b0c1ca Author: David Foley Date: Sat Aug 7 13:02:10 2010 -0500 xsetwacom: add Tab key to special keys Signed-off-by: David Foley Signed-off-by: Peter Hutterer commit fdc825b8ca6f4e60d964ac567edcbadf13e5e4a4 Author: Peter Hutterer Date: Fri Aug 6 16:12:25 2010 +1000 Add a FIXME about the fixed value of naxes. naxes is always 6 and parts of the code rely on this. Making it less is probably alright, more will definitely make the driver do misc things. Signed-off-by: Peter Hutterer Acked-by: Ping Cheng commit 3299bf3b4bde4f605a7ac6e9c632e4b4149af0e4 Author: Peter Hutterer Date: Fri Aug 6 13:55:54 2010 +1000 De-duplicate wheel/strip action assignment code. Use a temporary struct to assign the pointers we need to set based on the property and pass that one around. Removes the need for two virtually identical functions. Should probably be fixed with better refacturing, but for now it does the job. Signed-off-by: Peter Hutterer commit 1a0ab20624038869b95b0017f71cc5e50507af69 Author: Peter Hutterer Date: Fri Aug 6 13:45:31 2010 +1000 Use ARRAY_SIZE instead of the maxbutton define. commit eea34fadf7d04eda413b8632503ed0967a111241 Author: Peter Hutterer Date: Thu Aug 5 11:13:45 2010 +1000 xsetwacom: support action mappings for wheels. Signed-off-by: Peter Hutterer commit b987cb048c8a15488e7e075f9175704efab10e08 Author: Peter Hutterer Date: Wed Aug 4 16:20:01 2010 +1000 xsetwacom: split button property handling from actual property setting. Preparation work for wheel/strip button/key event parsing. Signed-off-by: Peter Hutterer commit 0827722beb04cb6a073670edd579808f2105c573 Author: Peter Hutterer Date: Wed Aug 4 16:07:23 2010 +1000 Support actions for wheels and strips. This patch adds key support to wheel and strip events, allowing for e.g. xsetwacom set AbsWDn "key a b c" Requires an update for wheel/strip properties to allow for either 8 or 32 bit values. 8 bits aren't enough to hold messages of type AC_. Allow for either 8 bit integers (normal button assignment) or 32 bit Atoms modeled after the same principle as button events. Signed-off-by: Peter Hutterer commit c47165dcbd9669c3330b37fad9d2b22f57eddc0d Author: Peter Hutterer Date: Thu Aug 5 14:03:27 2010 +1000 Return the key array from getWheelButton(). Instead of just the button, also return a pointer to the array containing the actions for wheel and strip events. Then use this array to send action events if required. Note that clients cannot set those arrays yet, this commit provides no user-visible functionality. Signed-off-by: Peter Hutterer commit 889f300f534148adb75844ceb35648145d3edcfb Author: Peter Hutterer Date: Thu Aug 5 10:20:30 2010 +1000 Reshuffle struct for wheel/strip key actions. No-one is currently reading these values, this commit is a noop. Signed-off-by: Peter Hutterer commit 37307256f3df51bdce3f8ab767a7d730a268cf9f Author: Peter Hutterer Date: Thu Aug 5 13:04:54 2010 +1000 Move property sanity check up. No real changes, just work to integrate wheel/strip action properties later. Signed-off-by: Peter Hutterer commit 9591a62b5ea395836fa8ba9943b0284edfc5a151 Author: Peter Hutterer Date: Thu Aug 5 12:26:13 2010 +1000 Rename mask to "press" in sendAction. It's not actually used as a mask here. Signed-off-by: Peter Hutterer commit 624c1f4b40e54933fc6fadfd59a01974a48ff6b7 Author: Peter Hutterer Date: Thu Aug 5 12:16:32 2010 +1000 Split sendAButton button action processing into sendAction. Signed-off-by: Peter Hutterer commit e28ace8578c6749255ca2f06b632884ba3ed9238 Author: Peter Hutterer Date: Thu Aug 5 10:42:11 2010 +1000 Split button action property setting into a separate function. wcmUpdateButtonKeyActions updates the device's key actions from the given property. Work needed for wheel/strip action property support. Signed-off-by: Peter Hutterer commit df41ad586a3fb464c58c6b0d09423d12a5b0e5e9 Author: Peter Hutterer Date: Thu Aug 5 10:31:23 2010 +1000 Split action property updating into a separate function. Modularization work for wheel/strip action property support. Signed-off-by: Peter Hutterer commit eda27ecc1aba9bdbed11409b07225c69402cfa25 Author: Peter Hutterer Date: Thu Aug 5 10:17:09 2010 +1000 Split property sanity checking into a separate function. More modularization work for wheel/strip action properties. Signed-off-by: Peter Hutterer commit 52c63720929e1cae2a74478823abb436a21bb559 Author: Peter Hutterer Date: Thu Aug 5 10:13:19 2010 +1000 Split action property lookup into a separate function. More modularization work for wheel/strip action properties. Signed-off-by: Peter Hutterer commit 15a7eecc06072f1c4364c72874695e6d636f4553 Author: Peter Hutterer Date: Thu Aug 5 09:43:46 2010 +1000 Split action property checking into a separate function. No functional changes, just modularization work. Prepration for wheel/strip action properties. Signed-off-by: Peter Hutterer commit 04f76b16dd6b34c2f9edb60df236c940fb7b5cda Author: Peter Hutterer Date: Thu Aug 5 10:04:55 2010 +1000 Exit early if the the btnaction wasn't found. No functional changing, just reduces one shift level by changing code that's. if (foo) { do stuff } to if (!foo) return do stuff Signed-off-by: Peter Hutterer commit aa93e8c6352779b23cb91b4cfbf36fe6b361b018 Author: Peter Hutterer Date: Mon Aug 2 12:40:49 2010 +1000 Rename LocalDevicePtr local to InputInfoPtr pInfo. The LocalDevicePtr is removed with the upcoming input ABI 12. InputInfoPtr has been around for several years so we don't need to safeguard here. Signed-off-by: Peter Hutterer Tested-by: Przemo Firszt Tested-by: Thomas Spura Acked-by: Ping Cheng commit 9a51dd110c72726a5b78265011cb610e7d526074 Author: Peter Hutterer Date: Mon Aug 2 13:08:08 2010 +1000 Remove usage of COREEVENT_FLAG - it's write-only. No-one seems to care if this is set or not. Signed-off-by: Peter Hutterer Acked-by: Ping Cheng commit 74645df081575eaff7e2ce2c8325df9d47261dfb Author: Peter Hutterer Date: Mon Aug 2 12:40:24 2010 +1000 Remove usage of XI86_CORE_POINTER and XI86_POINTER_CAPABLE.. This flag has been write-only since server 1.4. Signed-off-by: Peter Hutterer Acked-by: Ping Cheng commit f14e8a710c17b1c15412911bf910e0d318609225 Author: Rafi Rubin Date: Wed Jul 28 20:04:10 2010 -0400 Add ntrig vendor and device codes. Signed-off-by: Rafi Rubin Tested-by: Thomas Spura Signed-off-by: Peter Hutterer commit 2a101e07e1c94940b37244bdeccde4673d563d31 Author: Ping Cheng Date: Tue Jul 27 21:07:46 2010 -0700 Use wcmUSBData to access USB-specific information We defined it. Let's use it. Signed-off-by: Ping Cheng Signed-off-by: Peter Hutterer commit 56a2eaeed466145b0f39eb80e7237638bbc8b940 Author: Ping Cheng Date: Tue Jul 27 21:03:57 2010 -0700 Reset wcmLastToolSerial when tool is leaving wcmLastToolSerial should not be reset by every event. It is valid for the whole life of a tool when it is in-prox. Signed-off-by: Ping Cheng Signed-off-by: Peter Hutterer commit 92fa84ea9563716d5d3e0a12432416bcb2d62c4f Author: Peter Hutterer Date: Wed Jul 28 09:55:44 2010 +1000 Add a release script for xf86-input-wacom This is a modified copy of the release.sh script from X.Org's util/modular repository. http://cgit.freedesktop.org/xorg/util/modular/tree/release.sh Signed-off-by: Peter Hutterer Acked-by: Ping Cheng commit ed7332094f56b30f1eb3fef4fc50089476b9801f Author: Ping Cheng Date: Mon Jul 26 23:40:25 2010 -0700 Purge serial number as an input for usbChooseChannel Serial number is stored as wcmLastToolSerial in common. No need to explicitly introduce it to usbChooseChannel as an input. Signed-off-by: Ping Cheng Signed-off-by: Peter Hutterer commit cbcd2af677e339de5d925b64b062363ed3aa74e4 Author: Jan Steffens Date: Mon Jul 19 05:43:51 2010 +0200 Use IsStylus template Signed-off-by: Jan Steffens Signed-off-by: Peter Hutterer commit 56d258a8fd70f386d3ff285ae69f10ad4ce7657c Author: Jan Steffens Date: Mon Jul 19 05:31:08 2010 +0200 Eliminate TPCButtonDefault The code to set TPCButton in wcmUSB.c should be redundant, as it is already handled by wcmParseOptions. In that case, we can eliminate the TPCButtonDefault member completely. Signed-off-by: Jan Steffens Reviewed-by: Ping Cheng Signed-off-by: Peter Hutterer commit 7c24037457076446aff7e51c94a52b50d2594238 Author: Jan Steffens Date: Tue Jul 20 01:19:16 2010 +0200 Fix CintiqV5 type The LCD type was overwritten later, in what appears to be an obvious bug. Signed-off-by: Jan Steffens Reviewed-by: Ping Cheng Signed-off-by: Peter Hutterer commit ccea1e7be7daa42464d1aa140fde068ce797a8b0 Author: Peter Hutterer Date: Mon Jul 26 14:39:29 2010 +1000 wacom 0.10.8 Signed-off-by: Peter Hutterer commit d45d6dbaefe03b466a9a631f400d8e252efbb754 Merge: bcc477d08b93 03a1f3ccce1a Author: Peter Hutterer Date: Mon Jul 26 14:33:09 2010 +1000 Merge branch '19200-issues' commit 03a1f3ccce1abe592665b5dab52a7a6193c035b7 Author: Jan Steffens Date: Sat Jul 24 03:06:01 2010 +0200 Create a new function wcmFree to free wacom data Fix a segfault in wcmPreInit introduced by the previous commit. Signed-off-by: Jan Steffens Tested-by: Ping Cheng Signed-off-by: Peter Hutterer commit 2a1b00d8f73c496ee724bc8509047082e055988f Author: Jan Steffens Date: Sat Jul 24 02:26:24 2010 +0200 Do duplicate device detection before wcmOpen Opening the device using xf86OpenSerial would reset the baudrate, so don't do it if we're going to reject the device anyway. Signed-off-by: Jan Steffens Tested-by: Ping Cheng Signed-off-by: Peter Hutterer commit 87f93ada66dcd4e0930927afb50b010436c9c560 Author: Jan Steffens Date: Mon Jul 26 02:53:52 2010 +0200 Disallow sending more than one QUERY to the device This was broken by c771159. Restore the old behavior by introducing a second variable. This unbreaks multiple devices in a non-hotplugging config. Signed-off-by: Jan Steffens Tested-by: Ping Cheng Signed-off-by: Peter Hutterer commit 0419aee87127fe7269f5d23af482e99a83c8a50f Author: Jan Steffens Date: Wed Jul 21 20:47:44 2010 +0200 Create a single exit path in isdv4GetRanges Signed-off-by: Jan Steffens Tested-by: Ping Cheng Signed-off-by: Peter Hutterer commit bcc477d08b93b59e93c32940a721ecedfad4cfb6 Author: Peter Hutterer Date: Thu Jul 22 14:49:00 2010 +1000 Gesture: send ctrl + scroll wheel events instead of +/-. The number of apps supporting scroll wheel zoom events is higher than the ones supporting ctrl +/-. And the ctrl key can be assumed on the same key for most keyboards, leaving us with a more stable zoom gesture than the previous approach of hardcoding the position of +/-. Suggested-by: Ping Cheng Signed-off-by: Peter Hutterer Acked-by: Ping Cheng commit 8b2d4ea4718f4cd8750e44cbd4258e936daaeab0 Author: Jan Steffens Date: Mon Jul 19 06:07:49 2010 +0200 Swap stylus buttons 2 and 3 for Tablet PCs There are only a few TPC pens with 2 buttons, and arguably right-click is more useful than middle-click. Signed-off-by: Jan Steffens Signed-off-by: Peter Hutterer commit ef4d20f98e53d181dcdec4cab34dbf391e919586 Author: Peter Hutterer Date: Thu Jul 15 11:04:53 2010 +1000 Don't load keysyms into the driver, use keycodes instead. This addresses a hang in the driver when buttons are configured to send keystrokes. The current code calls XkbGetCoreMap() which allocates during the signal handler, causing server hangs. This patch changes the driver to use keycodes instead of keysyms. There are a number of reasons for this: - XkbCoreMap() only hands us a core keymap, not the XKB one that everyone uses these days. There are some differences between the core and the XKB map (mainly the use of modifiers), hence we should be focusing on the XKB map anyway. - Parsing the XKB map manually in the driver is complicated and not something we want to do, especially when trying to maintain ABI compat with multiple X server versions. On the other hand, the client-side API for XKB is frozen like all of Xlib. - The driver is not notified of XKB layout changes, thus a cached map would potentially be out of date. Moving keysym to keycode conversion to the client avoids this. - The server does not communicate through keysyms to any client, keycodes are the only information. It is up to the client to pick the keysym (and glyph) based on the keycode. Note that this changes the property API. Clients that would write straight to a button mapping property will need to change. AFAICT, only xsetwacom does this at this point and xsetwacom is updated with this patch. Note that the current xsetwacom implementation will only focus on level 0 keys. It will not automatically fill in the modifier states. Thus, to get e.g. a string of "aBc", the following configuration is required: xsetwacom set "device" "Button1" "key a +shift B -shift c" xsetwacom releases modifiers at the end of the configuration, thus to get a single uppercase letter (or multiple letters), the following is enough: xsetwacom set "device" "Button1" "key shift A" Note: this breaks Ctrl+/- zoom support for keyboard layouts that have +/- on a different key than the 'us' keyboard layout. Did I mention that hacking up gestures in the driver is a bad idea? Signed-off-by: Peter Hutterer Acked-by: Ping Cheng commit 0b6096ec3b536bba240539c1a6b3f4cd11ba459c Author: Peter Hutterer Date: Mon Jul 19 10:04:25 2010 +1000 xsetwacom: implement "--list mod" to list specialkeys and modifiers. Not exactly the same output as the old xsetwacom but it's close enough. Signed-off-by: Peter Hutterer Reviewed-by: Ping Cheng commit fa5669719e0fc2a7754015f42a23237dd611d4a9 Author: Jan Steffens Date: Tue Jul 20 01:23:35 2010 +0200 Make 19200 the default baud rate for 0x90 TPCs This implements using 19200 as a default baudrate for some tablets instead of always using 38400. The baudrate switching logic in isdv4GetRanges is extended to be able to switch to 38400 as well. It also now outputs a warning. My WACf004 needs a baudrate of 19200, and is included in the 0x90 tablet_id. This seemed like the easiest way, but I'm unsure whether all 0x90 tablets use 19200. Signed-off-by: Jan Steffens Signed-off-by: Peter Hutterer commit 864ca6138b46e0db8798cf9f562cfe31db6a6d7d Author: Jan Steffens Date: Wed Jul 21 03:28:19 2010 +0200 Make sure the baudrate is properly set If the BaudRate option isn't set, X will use the default, which issues2 9600. Make sure we properly set this option. Also make sure the it is set properly before we try to query the tablet. Signed-off-by: Jan Steffens Signed-off-by: Peter Hutterer commit 8c13a91089b35f3ec7d36ce5f6bef0928ff2e8be Author: Ping Cheng Date: Sat Jul 17 21:31:06 2010 -0700 Normalize Airbrush absolute wheel to ArtPen rotation So they can share the sixth valuator. Signed-off-by: Ping Cheng Signed-off-by: Peter Hutterer commit 6c5a0d71e23c925b2cc0af75e08c8049f6ea7c3f Author: Peter Hutterer Date: Mon Jul 19 10:11:38 2010 +1000 debugger: don't send trace messages to stderr. Send them to stdout instead, they're already prefixed with ... for grepping anyway. Signed-off-by: Peter Hutterer commit 20daf76d154cc8fb9e095c97824a747e9cb80324 Author: Peter Hutterer Date: Tue Jul 20 10:11:26 2010 +1000 ISDV4: use case range statements instead of nested ifs. Just to make it a bit easier to read on a glance. Signed-off-by: Peter Hutterer commit eb8d83f63f255f27c7116ac3d57e986501bd482d Author: Peter Hutterer Date: Mon Jul 19 15:50:02 2010 +1000 ISDV4: if the BaudRate was autodetected to 19200, replace it in the options. xf86OpenSerial() uses the BaudRate option to set the serial port. If the baud rate was autodetected to 19200, replace this so that the next DEVICE_ON call will use the right one. Signed-off-by: Peter Hutterer commit de7c2ee2d5411c7394a38d13dea274e6b04e51a0 Author: Peter Hutterer Date: Mon Jul 19 15:44:45 2010 +1000 ISDV4: don't overwrite the baud setting for 19200 tablets. This patch changes isdv4Query to just execute the query passed in and do some additional sanity checking. If it fails, return the failure to the caller isdv4GetRanges(). isdv4GetRanges() can then change the baud rate and re-query if required. If the query at 19200 succeeds, skip the touch query. All touch devices have 38400. Signed-off-by: Peter Hutterer commit 764ea40f32827f27112ffa44ca42ab592398faae Author: Peter Hutterer Date: Mon Jul 19 15:44:06 2010 +1000 ISDV4: document the init process. List which order the functions are called in to avoid having to re-read the code every single time I look at this... Signed-off-by: Peter Hutterer commit 49fc694e0d2db4d5ef8d26def9d07c497e1bfb9c Author: Ping Cheng Date: Sat Jul 17 21:31:06 2010 -0700 Normalize Airbrush absolute wheel to ArtPen rotation So they can share the sixth valuator. Signed-off-by: Ping Cheng Signed-off-by: Peter Hutterer commit 0c4e029a99292c93db984dd07e604af7b26c881f Author: Peter Hutterer Date: Mon Jul 19 10:11:38 2010 +1000 debugger: don't send trace messages to stderr. Send them to stdout instead, they're already prefixed with ... for grepping anyway. Signed-off-by: Peter Hutterer commit 999da490cb43f0606a9142f6c97916c8ec088db3 Author: Peter Hutterer Date: Mon Jul 19 10:00:02 2010 +1000 xsetwacom: implement "--list mod" to list specialkeys and modifiers. Not exactly the same output as the old xsetwacom but it's close enough. Signed-off-by: Peter Hutterer commit 6d0b11e16c32c0b7704dbf673d6566b4522be58a Author: Rumen Zarev Date: Sat Jul 3 19:35:56 2010 -0400 Fix pressure curve size in "xf86WacomDefs.h". Since the possible levels are 0 to MAX, need to allocate MAX+1 entries. Otherwise, when the pressure is at maximum, it reads as some random value (one of the control points in this case). Signed-off-by: Rumen Zarev Signed-off-by: Peter Hutterer commit 8f1dd625e00c182ec1b6a92b277214d1b8f88986 Author: Peter Hutterer Date: Fri Jul 16 14:27:20 2010 +1000 configure: use XORG_DRIVER_CHECK_EXT after xorg-server has been found. Reported by Pablo Castellano, patch modified for current tree. From the tracker: "It was crashing like this if xserver-xorg-dev wasn't found: ./configure: line 11635: syntax error near unexpected token `XINPUT,' ./configure: line 11635: `XORG_DRIVER_CHECK_EXT(XINPUT, inputproto)' Now it's shown a message saying that the dependency is not found, which is more intuitive." https://sourceforge.net/tracker/?func=detail&aid=2960774&group_id=69596&atid=525126 Reported-by: Pablo Castellano Signed-off-by: Peter Hutterer commit fc649a2f7c5ee774974481d9c4ea46460f7a402f Merge: 00f56eda2c1e ef45111bb2e2 Author: Peter Hutterer Date: Wed Jul 14 13:01:10 2010 +1000 Merge branch 'serial-debugger' commit ef45111bb2e2cdcfce63172b66fdc20962cfde84 Author: Peter Hutterer Date: Tue Jul 13 10:21:38 2010 +1000 ISDV4: don't set the tablet_id in isdv4InitISDV4. Since the new init process, the tablet ID is set during isdv4ProbeKeys(). Hardcoding a tablet_id of 0x90 here overwrites the previously set value. Since the tablet_id is used for determining if a device has two-finger touch and other features, this loses the ability to perform gestures. Signed-off-by: Peter Hutterer Tested-by: Ping Cheng commit 00f56eda2c1eca5cfd9aafd5e0483c19c58d8d42 Author: Peter Hutterer Date: Mon Jul 12 15:03:12 2010 +1000 xsetwacom: allow for numeric Rotation value. Allow for values 0, 1, 2, 3 as rotation setting in addition to NONE, CW, CCW and HALF. Signed-off-by: Peter Hutterer Acked-by: Ping Cheng commit 7131fed2580843ea423f406a62282de25e0e2571 Author: Peter Hutterer Date: Mon Jul 12 18:41:19 2010 +1000 Open the device as serial device in PreInit. A simple open(2) call works fine for USB devices but for serial devices the right port parameters need to be set. By luck, sometimes these may be correct and the device works, other times it won't, leading to unpredictable serial tablet behaviour. wcmOpen() already does this for us correctly with xf86OpenSerial(). Re-use it to get the right port parameters. xf86OpenSerial() ignores serial parameters for non-serial devices, thus it is safe to use on USB devices as well. Signed-off-by: Peter Hutterer Tested-by: Ping Cheng commit 364d37fd6ed22bd76af8714bcd034ef6a1e08594 Author: Peter Hutterer Date: Fri Jul 9 23:01:06 2010 +1000 ISDV4: after stopping the tablet, discard any data still on the line. Signed-off-by: Peter Hutterer Tested-by: Ping Cheng commit 3546d8ab1bf8e2a22e285c377df9a363a79b78b0 Author: Peter Hutterer Date: Tue Jul 6 22:52:11 2010 +1000 tools: add isdv4-serial-debugger test program. Simple program to debug the serial output and analyse the behaviour a client needs to have to get data off a serial device. Run with $> isdv4-serial-debugger /dev/ttyS0 Signed-off-by: Peter Hutterer Tested-by: Ping Cheng commit a09bee1d307bf1f91fb637dbd4ee68d801f1cda7 Author: Peter Hutterer Date: Mon Jul 12 17:26:14 2010 +1000 ISDV4: move isdv4 parsing header to the include/ folder. Signed-off-by: Peter Hutterer Tested-by: Ping Cheng commit 6babd5be57adf4f03d870d5bac96ea4397848274 Author: Peter Hutterer Date: Fri Jul 9 19:28:28 2010 +1000 ISDV4: make all parser functions take an unsigned char*. This currently requires casts in the callers but they can be fixed up eventually. Signed-off-by: Peter Hutterer Tested-by: Ping Cheng commit d2d02d60cb605004e14f53b35864e5d9833b3f29 Author: Peter Hutterer Date: Fri Jul 9 19:13:23 2010 +1000 ISDV4: memdump the data array in case of an error. Aids debugging. The DBG macro isn't suited for this kind of printing, so we need to do it manually. Signed-off-by: Peter Hutterer Tested-by: Ping Cheng commit 75a08052db2afa16550b9c8e65f70d1385f6ebdc Author: Peter Hutterer Date: Fri Jul 9 18:51:45 2010 +1000 ISDV4: print debug messages for query parsing errors. Signed-off-by: Peter Hutterer Tested-by: Ping Cheng commit 3587a8bac50aaf2c317288be5704cccc53916aad Author: Peter Hutterer Date: Wed Jul 7 23:12:18 2010 +1000 ISDV4: externalise ID to packet length mapping. For touch devices, the serial ID corresponds to a packet length. Add that to a lookup table (and since the ID's are sequential, just use an array). Signed-off-by: Peter Hutterer Tested-by: Ping Cheng commit 5d1a904ca41a69df60c6ea9b47c72e406787cb6c Author: Peter Hutterer Date: Tue Jul 6 22:55:38 2010 +1000 ISDV4: move ISDV4 parse functions into a separate file. Make them available for other in-tree tools to. Signed-off-by: Peter Hutterer Tested-by: Ping Cheng commit e2fcc4440f3d3f5636b33dd005ccaf9358eaa4f2 Author: Peter Hutterer Date: Mon Jul 12 17:15:18 2010 +1000 ISDV4: add RESET command. We don't use it in the driver, but it's there nonetheless. Signed-off-by: Peter Hutterer Tested-by: Ping Cheng commit ae95888fa9220e0c88e6089065259ea9b783c914 Author: Peter Hutterer Date: Tue Jul 6 22:03:20 2010 +1000 ISDV4: move ISDV4 control commands to header file. They can be used by the soon-to-come auxiliary program. Signed-off-by: Peter Hutterer Tested-by: Ping Cheng commit c771159c0bb7c478434745a414ff8cc7c34bcc47 Author: Peter Hutterer Date: Fri Jul 2 17:00:20 2010 +1000 ISDV4: don't start the tablet until the last device is enabled. Only send one SAMPLING command to the tablet for the last device. If sampling is started before the last device was enabled, that device may not work. This is a quickfix, there is bound to be a better way to solve this but meanwhile we might as well try to make the tablet work again. Signed-off-by: Peter Hutterer Tested-by: Ping Cheng commit da95e23c1b0fc548992d49f3da410718ecd0900f Author: Peter Hutterer Date: Fri Jul 2 16:44:46 2010 +1000 ISDV4: Calloc, not malloc the private data. This could explain inconsistent behaviour, intialized was accessed uninitialized (oh, the irony!). For good effort, calloc _and_ initialize "initialized". Two zeros are more than one, after all. Signed-off-by: Peter Hutterer Tested-by: Ping Cheng commit 09f37e253b889ad4a2f0adb690f6323c8a5db24d Author: Peter Hutterer Date: Mon Jul 12 11:02:25 2010 +1000 Squash compiler warning "unused variable priv". priv is only used if DEBUG is enabled. Signed-off-by: Peter Hutterer commit 6d5a4bea3319901ab872550ddfd703d601b873e9 Author: Peter Hutterer Date: Mon Jul 5 14:27:36 2010 +1000 xsetwacom: fix button mapping for button clicks. Misplaced scanf caused button mappings to always be 0 if no + or - was specified or the button number was < 10. Signed-off-by: Peter Hutterer Acked-by: Ping Cheng commit 8d10fa406c5c98e3c34f29a2043cfc3de7b0aa42 Author: Gaetan Nadon Date: Sun Jul 4 09:46:51 2010 -0400 config: check for an xserver >= 1.7.0 The support statement is for server versions 1.7 and above. Builders save time when a problem is detected early. Signed-off-by: Gaetan Nadon Acked-by: Ping Cheng Signed-off-by: Peter Hutterer commit 2acb91f0292ac07cf1c89d7264a1f02b618a4b70 Author: Gaetan Nadon Date: Thu Jul 1 20:54:23 2010 -0400 config: add comment regarding MAN_SUBSTS variable usage Signed-off-by: Gaetan Nadon Signed-off-by: Peter Hutterer commit e7bbe77a021a379756957fdb8d722092826e365e Merge: b97a670276ac ef82a62b771a Author: Peter Hutterer Date: Thu Jun 24 15:21:43 2010 +1000 Merge branch 'serial-rework' of git://people.freedesktop.org/~whot/xf86-input-wacom Signed-off-by: Peter Hutterer Tested-by: Ping Cheng commit b97a670276ac4d2675af1c5b90abcd8809b1817a Author: Peter Hutterer Date: Tue Jun 22 12:54:46 2010 +1000 Debug message format - remove line break. Signed-off-by: Peter Hutterer commit 23698917748419185217cf891b6aef03dedab093 Author: Peter Hutterer Date: Thu Jun 24 13:55:20 2010 +1000 Fix build error against current master - ScreenRec has changed. dixScreenOrigins was removed in xserver commit commit a83cff9f4d622b069c96a68b4e87a669bf1f6446 Author: Jamey Sharp AuthorDate: Sun May 23 10:11:47 2010 -0700 Move each screen's x/y origin into ScreenRec. the x/y fields were moved into the ScreenRec. The ABI wasn't bumped (thanks guys, ...) , so we have to resort to this ifdef check. This leaves us with unbisectable state between a83cff9f and 1.8.99.901 (83 commits) where the patch has to be manually applied. Sorry. Signed-off-by: Peter Hutterer Acked-by: Ping Cheng commit ef82a62b771a0465afcec65cba156b38cc3539bc Author: Peter Hutterer Date: Tue Jun 22 12:06:15 2010 +1000 Move ProbeKeys() into the respective backends. Signed-off-by: Peter Hutterer commit 5664bc804f65fb06afcc26da8887211e136ec81a Author: Peter Hutterer Date: Tue Jun 22 12:03:24 2010 +1000 Move device class detection up. This is one of the first things we need to know about our device. Signed-off-by: Peter Hutterer commit fa4462582418582fcfaae758db723b98a4965fc0 Author: Peter Hutterer Date: Tue Jun 22 11:54:24 2010 +1000 Return the shared common struct from wcmMatchDevice. This reduces the need for variable juggling in the caller and the caller knowing about what happens in wcmMatchDevice(). Signed-off-by: Peter Hutterer commit 34a0af1f085a99300a944716eb17552bccf9095a Author: Peter Hutterer Date: Tue Jun 22 11:48:16 2010 +1000 Avoid "common" juggling to prevent future errors. Signed-off-by: Peter Hutterer commit d8154ed5711d8df109abbc2c281cf81d1b032fda Author: Peter Hutterer Date: Tue Jun 22 11:45:01 2010 +1000 Remove superflouous linebreak in DBG message. Signed-off-by: Peter Hutterer commit 95c5777f87db35ad0191af9139e3a1daca7eb0d3 Author: Peter Hutterer Date: Tue Jun 22 11:40:34 2010 +1000 Remove wcmAutoProbeDevice - it's not doing anything anyway. Call wcmEventAutoDevProbe() directly. The latter returns the path to the device file and we can use that At the time wcmAutoProbeDevice is called, the common pointer is the generic one allocated during wcmAllocate. Hence, there's no way it can compare itself with any of the other devices anyway. Signed-off-by: Peter Hutterer commit 4131383c9ca618c3a25592dea6bff97de43f11df Author: Peter Hutterer Date: Tue Jun 22 11:36:48 2010 +1000 Remove AUTODEV_FLAG - was only set, not read. Signed-off-by: Peter Hutterer commit 19e0951239f9a24c60469bf1bf7f872358bd4e78 Author: Peter Hutterer Date: Mon Jun 21 16:19:02 2010 +1000 Only execute GetRanges() once for ISDV4 devices. ISDV4 tablets don't seem to like multiple query commands in a row, the reply for those are garbage. Hence, put a barrier in to prevent this. Since the isdv4data is shared between all devices off the same port, this simply skips the work of the isdv4GetRanges() and returns early with success. Signed-off-by: Peter Hutterer commit cc4aa77eddbbe02ab7c9263dfd75ecf45f89fb96 Author: Peter Hutterer Date: Thu Jun 17 16:06:47 2010 +1000 Move baud rate into ISDV4-specific backend. Signed-off-by: Peter Hutterer commit 69d53ac51115af9f34a48451e13b717e48c06079 Author: Peter Hutterer Date: Thu Jun 17 15:40:20 2010 +1000 Move class-specific option parsing into the device classes. This is only the BaudRate for ISDV4 devices but nonetheless, it's nicer abstracted this way. Signed-off-by: Peter Hutterer commit 3ecabe9bd95b666fdd2a913ef1623751263e221d Author: Peter Hutterer Date: Thu Jun 17 15:32:37 2010 +1000 Purge ForceDevice option - unneeded. We're smart enough to detect if the device is running off a serial port or off a USB port. The only thing we did with the ForceDevice option was to set it once (based on a serial ioctl) and then check for it later during the BaudRate xorg.conf option parsing. Get rid of the field, parse the BaudRate for all devices even though we don't actually care about it in the USB code. So setting an invalid baud rate for a USB device will fail the device init but then again - don't do that. Signed-off-by: Peter Hutterer commit aa382e6c8818e97538b2dad5d9b121a9cb533ed7 Author: Peter Hutterer Date: Thu Jun 17 15:22:50 2010 +1000 Factor out device class detection. Signed-off-by: Peter Hutterer commit 4e363076599b038ad032805f2a3023dd9f46826b Author: Peter Hutterer Date: Thu Jun 17 15:16:28 2010 +1000 Remove serial class detection into the serial code. Both ISDV4 and USB have their model class with a Detect() function. Use it, instead of having parts of the serial code in wcmConfig.c. Signed-off-by: Peter Hutterer commit b5c27a694278641a0507e8d8cf883f02bdf69a49 Author: Peter Hutterer Date: Wed Jun 16 17:00:42 2010 +1000 Split model probing, DEVICE_INIT and DEVICE_OPEN into separate functions. Probe for the model during PreInit and get the important bits off the device here. During DEVICE_INIT, just register the X server bits required for the device to be a device. DEVICE_OPEN actually opens the device, but by then we already know everything about it anyway. A large hunk of this patch is just whitespace change due to a indentation level change in wcmRegisterX11Devices. This also removes the need for wcmDevOpenCount and wcmInitKeyClassCount. Signed-off-by: Peter Hutterer commit d3e71615529aaa843b8005ab3b04fdf425a26f64 Author: Peter Hutterer Date: Wed Jun 16 16:47:02 2010 +1000 Move the EVIOCGRAB to the model-specific Start(). Don't grab until the device is being enabled. This is a preparation work for the DEVICE_INIT, DEVICE_ON split. Signed-off-by: Peter Hutterer commit abd3dc68c8d4008b80eb1f71aa9af8275c17a3d9 Author: Peter Hutterer Date: Mon Jun 21 14:57:12 2010 +1000 Implement basic refcounting for the common struct. Introduce three new functions to create a new common struct and add/remove references to it. This fixes the occasional ABORT caused by double-freeing the common struct. A better approach for this may be talloc(3), but for now this will do. Signed-off-by: Peter Hutterer commit 15abfc592377ad444edfae6f4ddd90f0fa7ecafc Author: Peter Hutterer Date: Wed Jun 16 16:16:29 2010 +1000 Remove superfluous fd check. wcmOpen() has no path where it can return Success and the fd is -1. Signed-off-by: Peter Hutterer commit b49bd935c0be4cb0e4b5976093eabf6c5b77bdef Author: Peter Hutterer Date: Wed Jun 16 16:15:06 2010 +1000 Don't auto-probe the device on DEVICE_OPEN. Autoprobing happens during PreInit already, probing again during DEVICE_OPEN (when the device is enabled) is superfluous. If you need this for hotplugging, use hotplugging instead. Signed-off-by: Peter Hutterer commit ee7b2142d83d02b0c3d99748957e9be3bf44f409 Author: Peter Hutterer Date: Thu Jun 17 16:00:17 2010 +1000 usb: plug memory leak - backend storage only needs allocation once. usbWcmInit is called for each tool, only allocate the event data store once. Signed-off-by: Peter Hutterer commit fc9b60c6926f887a5b341927e70502addabcb126 Author: Peter Hutterer Date: Thu Jun 17 16:36:13 2010 +1000 Remove stray misplaced comment. Looks a bit lost there, let's send it home to papa. Signed-off-by: Peter Hutterer commit 14c4f5044e0e49bbce39796e255045c35ac816a0 Author: Peter Hutterer Date: Tue Jun 22 08:14:34 2010 +1000 Rename common->wcmDevice to common->device_path. common->wcmDevice stores the device path. common->wcmDevices stores the WacomDevicePtrs. This is slightly confusing in the code, rename wcmDevice to point "device_path" instead. That's slightly less ambiguous. Signed-off-by: Peter Hutterer commit d284a2a884ff44ab49819215d0b163ed09481667 Author: Peter Hutterer Date: Tue Jun 22 08:04:53 2010 +1000 Reassign common after wcmMatchDevice(). wcmMatchDevice() may modify "common" if it finds another tablet hanging off the same port. If that's the case, "common" is freed and points to an invalid area. Move this assignment down to after wcmMatchDevice(). Signed-off-by: Peter Hutterer commit e11332120daa1e04be5b5321cbdf4bac7fbdde1c Author: Peter Hutterer Date: Tue Jun 22 10:02:16 2010 +1000 Add some vim tags to the header file. Signed-off-by: Peter Hutterer commit 3770aaf4a4b91454e9c6894e240583dace2afbbc Author: David Foley Date: Mon Jun 21 11:07:11 2010 -0500 xsetwacom.c: Add BackSpace key to special keys Signed-off-by: David Foley Signed-off-by: Peter Hutterer commit 92c8ce2c9baf0a138ca563acc068d6e07a44878f Author: Peter Hutterer Date: Mon Jun 21 16:49:17 2010 +1000 Add missing linebreak in error message. Signed-off-by: Peter Hutterer commit 75868adf0e83318a13ff2924c338c02bfe6730a0 Author: Peter Hutterer Date: Mon Jun 21 14:40:08 2010 +1000 Use Xprintf instead of malloc + strcpy. Xprintf() is the X server's version of asprintf(3) - the latter isn't available on all platforms. We could in theory use asprintf but given that there are patches for solaris floating around we might as well not prevent those. Signed-off-by: Peter Hutterer Reviewed-by: Ping Cheng commit 9e15b6273b1d836bacf136d0335cda3c9c5f84b1 Author: Peter Hutterer Date: Fri Jun 18 16:18:48 2010 +1000 wacom 0.10.7 Signed-off-by: Peter Hutterer commit ef091d0d88df268e387f0bf59590d7c8fc8cc875 Author: Peter Hutterer Date: Fri Jun 18 10:04:54 2010 +1000 Always initialize pressure curve. Since we always allocate the pressure curve now, make sure it's filled with reasonable values if the config doesn't specify otherwise. The default is the linear pressure curve. Signed-off-by: Peter Hutterer Reviewed-by: Ping Cheng commit 94843eb2db5a066f27923ebfeb21646310cf3beb Author: Peter Hutterer Date: Fri Jun 18 07:59:11 2010 +1000 Revert "Silence compiler warning if DEBUG is off." priv is used again without DEBUG since 55ef4e1ad841dda08161009. "Revert "Don't pass the axes around to sendCommon() and friends." This fixes the following build error with --disable-debug: wcmCommon.c: In function ‘sendWheelStripEvents’: wcmCommon.c:671: error: ‘priv’ undeclared (first use in this function) wcmCommon.c:671: error: (Each undeclared identifier is reported only once wcmCommon.c:671: error: for each function it appears in.) This reverts commit 8f69888a353e75a41abc90e85fba61805b9b97bd. Conflicts: src/wcmCommon.c Signed-off-by: Peter Hutterer commit 119fda6af71707495a79d566bce78851ec16a95d Author: Peter Hutterer Date: Wed Jun 16 15:30:48 2010 +1000 Always test if pad proximity events needs to be sent. Both USB and ISDV4 backends fill in ds->proximity. Hence, if it's set and we don't have a previous proximity event, send ProximityIn. Likewise, send ProximityOut on the opposite case. Signed-off-by: Peter Hutterer Reviewed-by: Ping Cheng commit 485b5b6904ca55ab059edd94054b4737bdbbda6e Author: Peter Hutterer Date: Wed Jun 16 15:04:21 2010 +1000 Don't check for dev->proximity, it's always set. Judging by wcmRegisterX11Devices, we always register a proximity class and fail if that fails. Signed-off-by: Peter Hutterer Reviewed-by: Ping Cheng commit d446c321e11e5c8984fa94719201aab5f10577e1 Author: Peter Hutterer Date: Wed Jun 16 14:51:37 2010 +1000 Don't mangle proximity state for the pad. When the pad is relative (i.e. always, since we force it to), the first value from the abswheel is stored in priv->oldWheel and then subtracted from the current state - leading to a v5 of 0. That again leads to a dead wheel, since we never get any values but 0 from the wheel. The pad provides proximity values anyway, so don't hack around it - accept what the hardware says. Signed-off-by: Peter Hutterer Reviewed-by: Ping Cheng commit 55ef4e1ad841dda08161009c7466afbfd2cd6cf6 Author: Peter Hutterer Date: Thu Jun 10 16:27:47 2010 +1000 Revert "Don't pass the axes around to sendCommon() and friends." This patch (the one reverted hereby) had an interesting side-effect. Since the valuators were passed down to the button event, they were included in the XI events. Thus any client listening to button events would also obtain the current coordinates with that event. Once the valuators weren't passed down anymore, there was no way for clients to get the current state of the valuators with the event itself, they'd have to listen to motion events and interpolate from that the positions during the button event. Patch reverted, so that button events include the coordinates again. This reverts commit 579f31c628f0b0036f3c238cc7f32ccfc32adab1. Conflicts: src/wcmCommon.c Signed-off-by: Peter Hutterer Reviewed-by: Ping Cheng commit f0191b406b879a403dfdb831be2a119128a4b580 Author: Peter Hutterer Date: Wed Jun 16 14:47:07 2010 +1000 commonDispatchDevice: return early if no device was found. This patch has no functional changes, it simply reduces by one indentation level. Instead of if (pDev) { } return; It now does: if (!pDev) return; Signed-off-by: Peter Hutterer Reviewed-by: Ping Cheng commit f00df659cec57309acc5e6eeafcde2cc09a00f56 Author: Peter Hutterer Date: Tue Jun 8 15:50:19 2010 +1000 Move numScreen initialization into option parsing. Let's not hide it somewhere else, parse and set all options and defaults in one place. Signed-off-by: Peter Hutterer Reviewed-by: Ping Cheng commit f1d3c1b1486c99ef64d0a34f354d7f89c3d181c8 Author: Peter Hutterer Date: Tue Jun 8 14:57:48 2010 +1000 xsetwacom: support "displaytoggle" as special button event. Signed-off-by: Peter Hutterer Reviewed-by: Ping Cheng commit c07573ae8e975185ae8e904402baeda3b9a2926a Author: Peter Hutterer Date: Fri Jun 4 13:25:54 2010 +1000 Don't reconfigure the axes when switching mode. Run-time axis configuration is not really allowed. The XI2 protocol permits it but it's forbidden for XI1 clients since they have no notification mechanisms. And we don't have any server APIs for the XI2 stuff yet. If a client issues ListInputDevices and the driver reconfigures _after_ that, the client assumes wrong coordinate ranges, causing possible scaling issues. The right way to handle axis reconfiguration is to scale _inside_ the driver only. Signed-off-by: Peter Hutterer Reviewed-by: Ping Cheng commit eb07751c929ea458c9512683b8aa890a4c0e4dff Author: Peter Hutterer Date: Fri Jun 11 09:18:59 2010 +1000 xsetwacom: change storage for getopt_long return value to int. char is unsigned by default on PPC, so getopt_long's return value of -1 for "end of options" isn't interpreted properly and xsetwacom always displays the usage() output. man page for getopt_long says it returns an int anyway, so let's conform to the man page. Signed-off-by: Peter Hutterer commit 8f69888a353e75a41abc90e85fba61805b9b97bd Author: Peter Hutterer Date: Fri Jun 11 12:37:18 2010 +1000 Silence compiler warning if DEBUG is off. Signed-off-by: Peter Hutterer commit ec6866c717c5824c7a6be2da2af59305089b9413 Author: Peter Hutterer Date: Tue Jun 8 16:14:56 2010 +1000 Reshuffle error handling in wcmDevProc. Signed-off-by: Peter Hutterer Acked-by: Ping Cheng commit 1f973e3a630165a76b17463a6925c61aaddd5d7b Author: Peter Hutterer Date: Tue Jun 8 16:11:57 2010 +1000 Update an error message, if the DeviceProc mode is wrong it's not our fault. Signed-off-by: Peter Hutterer Acked-by: Ping Cheng commit a9e91d5d3e8dad176938449c66351ef141157dd6 Author: Peter Hutterer Date: Tue Jun 8 16:00:23 2010 +1000 Update comment describing wcmDevProc. Signed-off-by: Peter Hutterer Acked-by: Ping Cheng commit ca901f3b3b566c601b07bf7659d708ef02d428c7 Author: Peter Hutterer Date: Tue Jun 8 15:51:34 2010 +1000 Reshuffle and group some code to make it easier to understand at a glance. Signed-off-by: Peter Hutterer Acked-by: Ping Cheng commit f934866ab79570602fae3ebf953b81e3ac15ba86 Author: Peter Hutterer Date: Thu Jun 3 16:01:24 2010 +1000 Remove wcmScaling - it is unused and always 0. Has been hardcoded to 0 since the fork at least. Signed-off-by: Peter Hutterer Acked-by: Ping Cheng commit 9ae676e4646dc5ec0f3c411c3fe54f9803a28a9a Author: Peter Hutterer Date: Thu Jun 3 14:39:30 2010 +1000 Remove superfluous option setting. Setting this option after the driver has been initialized has no effect. Signed-off-by: Peter Hutterer Acked-by: Ping Cheng commit c5a2829459df2d95a60527f1e5af279150a28fd9 Author: Peter Hutterer Date: Thu Jun 10 09:56:31 2010 +1000 xsetwacom: support up/down/left/right as special keys. Signed-off-by: Peter Hutterer Reviewed-by: Ping Cheng commit 522c2ae930ccb046a78cc0c64f73474f283714b4 Author: Peter Hutterer Date: Tue Jun 8 16:12:35 2010 +1000 Remove superfluous break. Signed-off-by: Peter Hutterer Reviewed-by: Ping Cheng commit f05af0e5a5b8489233df1d43b1485fd8ca484fb3 Author: Peter Hutterer Date: Tue Jun 8 16:08:08 2010 +1000 Purge support for X server 1.5 and earlier. Driver still supports 1.6, 1.7, 1.8 and the upcoming 1.9. That should be enough. Signed-off-by: Peter Hutterer Reviewed-by: Ping Cheng commit cceb65940448c0c7c780e2314a369261cd767adb Author: Peter Hutterer Date: Wed Jun 9 16:04:56 2010 +1000 Revert "Don't add the OutOfProximity flag to the axis mode." This reverts commit 060ad78cf464508f1d123c00b7340838a27f19e3. Error on my side, this mistake was caused by a bug in the X server code when listing XI2 devices. According to the XI1 protocol spec, the device mode for a ListInputDevices request may only be Relative or Absolute, the mode obtained from a QueryDeviceState request may be binary OR'd with OutOfProximity. The server uses the same field (dev->valuator->mode) to store this information but returns only the LSB from ListInputDevices. The XI2 code missed this part, returning the mode field as a whole, thus sometimes causing clients to misinterpret the mode field. Conflicts: src/xf86Wacom.c Signed-off-by: Peter Hutterer Reviewed-by: Ping Cheng commit 8df8899a6b11aa5e85c949a9cb8bb94f8388a8f0 Author: Peter Hutterer Date: Wed Jun 9 11:44:21 2010 +1000 Move wheel button initialization into wcmParseOptions. This isn't strictly correct since it's not an option, but the IsPad() during wcmAllocate() doesn't do anything - we only have the required bits set later during wcmSetType(). Result was that the pad never had the wheel buttons initialized, leading to a broken wheel on Intuos4 series tablets. Signed-off-by: Peter Hutterer Reviewed-by: Ping Cheng commit 35c5e283d606febfbbfe2270b034e8f5e0827162 Author: Peter Hutterer Date: Wed Jun 9 11:05:18 2010 +1000 Remove two empty lines with whitespaces. No changes, just a sed -e "s/^ *$//". If you're using vim, set c_space_errors=1 in your vimrc to help spot these errors. Signed-off-by: Peter Hutterer Reviewed-by: Ping Cheng commit 83714d87560e70c3fbf3aeb19bf28aae10da79c0 Author: Peter Hutterer Date: Wed Jun 9 10:47:46 2010 +1000 Add is_absolute() and set_absolute() utility functions. And get rid of manual priv->flags handling. Only exception is in the inital per-type assignment of the absolute flag, the flag setting is left there so the code is more obvious. Signed-off-by: Peter Hutterer Reviewed-by: Ping Cheng commit 0c2d24d47218368f769355fc49042cbebd40fc57 Author: Peter Hutterer Date: Wed Jun 9 10:33:55 2010 +1000 Remove some superfluous variables. These ones were always set to whatever the device state (ds) contained. Unlike the others (x, y, tx, ty, etc.) they didn't need adjustment on a per-type basis. Drop them to make the code a bit more obvious to read. Signed-off-by: Peter Hutterer Reviewed-by: Ping Cheng commit 52d95845b0912cc4d72c6abcb99fc4bed82e489e Merge: fb46bef0b542 b42bdad2a799 Author: Peter Hutterer Date: Thu Jun 10 15:09:02 2010 +1000 Merge branch 'pingc' commit b42bdad2a799f573447ea953b3fa416f979cbe57 Author: Ping Cheng Date: Tue Jun 8 17:50:59 2010 -0700 Default touch tools to Absolute mode Touch tools for all LCD devices, not just Tablet PCs, should be in Absolute mode by default Signed-off-by: Ping Cheng commit 96929dbf32d573234d50bfec8c581db8e22e9c88 Author: Ping Cheng Date: Tue Jun 8 17:46:17 2010 -0700 Retrieve device type from the kernel If a tool is on an USB tablet before the driver is loaded, the driver loses the initial state of the tool since kernel input device driver filters repeated events. To initialize the tool with the proper device type, we call EVIOCGKEY to retrieve it from the kernel. Signed-off-by: Ping Cheng commit 6fc592969a14fa6fe442567dce8b4676f3a1564d Author: Ping Cheng Date: Tue Jun 8 16:57:45 2010 -0700 Add PAD_DEVICE_ID to the device_id switch in commonDispatchDevice Signed-off-by: Ping Cheng commit d71e81a63bdecd352065654ce885dce777b75619 Author: Ping Cheng Date: Tue Jun 8 16:51:17 2010 -0700 TabletHasFeature is associated with tablet_type not tablet_id Signed-off-by: Ping Cheng commit 6f92c53fab330bd1491dba8d8724cff0ee988508 Author: Ping Cheng Date: Tue Jun 8 16:32:45 2010 -0700 Free toolarea and common->private Changed the freeing order to free inner items first; Free toolarea that is associated with the priv instead of the whole arealist that are of the same type; Free private of common before we free common. Signed-off-by: Ping Cheng commit fb46bef0b54211be0a0a58a58dc484c33fe815e2 Author: Peter Hutterer Date: Mon Jun 7 15:05:17 2010 +1000 Append first type name to device. Dependent devices get their type append already ("eraser", "cursor", etc.) but the first device is unmodified. For consistency and to allow easier match rules, append the type to the first device as well. Signed-off-by: Peter Hutterer Reviewed-by: Ping Cheng commit 86a1ff5ede952228d23502cbee1053956ea88d17 Author: Peter Hutterer Date: Tue Jun 8 16:55:16 2010 +1000 Revert "Append first type name to device." Sorry, merged the wrong patch. This one leads to segfaults or simple hangs when a device is removed or on server shutdown. Only the parent device may free it's name, the rest must leave them as-is. This reverts commit d360214713b54faeba954f1d21d51c3747b466f9. Reported-by: Ping Cheng Signed-off-by: Peter Hutterer commit d360214713b54faeba954f1d21d51c3747b466f9 Author: Peter Hutterer Date: Mon Jun 7 15:05:17 2010 +1000 Append first type name to device. Dependent devices get their type append already ("eraser", "cursor", etc.) but the first device is unmodified. For consistency and to allow easier match rules, append the type to the first device as well. Signed-off-by: Peter Hutterer Reviewed-by: Ping Cheng commit 034eec8cd606cd38b8774a8f792f8fbebcaa6eff Author: Przemo Firszt Date: Sun Jun 6 09:49:12 2010 +0100 Plug memory leak - some structures were never freed. "Common" struct is allocated in wcmAllocate, but it was never freed. The same comment applies to priv->tool->arealist and priv->tool. Signed-off-by: Przemo Firszt commit 282f7a33cd5f36753cbbcb3772fae04b049234a5 Author: Przemo Firszt Date: Wed May 19 20:10:11 2010 +0100 Add backend-specific data allocation The data allocation takes place in usbWcmInit (for usb devices). Release of the data is part of wcmUninit (for all devices). Structure wcmUSBData is not used yet, but it's required to allocate memory. Signed-off-by: Przemo Firszt Signed-off-by: Peter Hutterer commit c1567fc48cec0251b61942532c689737c21f5961 Author: Przemo Firszt Date: Tue May 18 20:35:53 2010 +0100 Introduce pointer to backend specific information This pointer will handle backend specific data that shouldn't be part of WacomCommonRec structure (like usb event queue). Pointer will be initialised in usbWcmInit/isdv4Init and relased in wcmUninit. Signed-off-by: Przemo Firszt Signed-off-by: Peter Hutterer commit 0862aa3d74378abbf9f23289ab864a4d07305d0d Merge: 370cd8bcce46 7581a5f62697 Author: Peter Hutterer Date: Thu Jun 3 14:02:37 2010 +1000 Merge branch 'master' of git://people.freedesktop.org/~gnadon/xf86-input-wacom Conflicts: configure.ac man/Makefile.am commit 370cd8bcce46a091da2479fdb8171b1b58a8616c Author: Peter Hutterer Date: Wed Jun 2 13:45:42 2010 +1000 Drop pressure back into the state after processing. In the cleanup in 659daa11dc558a45bfad1b9548f1757fab226ad7 "Normalize pressure sensitivity", the line to drop the calculated value back into the state got lost. Signed-off-by: Peter Hutterer Reviewed-by: Ping Cheng commit 28149d660f0b4b7f30da9c2fdfe44442bbb075c0 Author: Peter Hutterer Date: Wed Jun 2 13:19:47 2010 +1000 Always allocate pressure curve. There was only one malloc for it and that was hardcoded. Just add it to the struct as-is. Signed-off-by: Peter Hutterer Reviewed-by: Ping Cheng commit f4e060d450bddb93a9d0f8c3c00c7309db80c880 Author: Peter Hutterer Date: Wed Jun 2 12:05:57 2010 +1000 man: add myself to Authors. I think I've done enough work on the driver now to justify this ;) Signed-off-by: Peter Hutterer Acked-by: Ping Cheng commit 312e8565b1d9dff4455a5c92aee8a1242c7b0959 Author: Peter Hutterer Date: Wed Jun 2 11:48:46 2010 +1000 man: explain how the pressure curve works. Including some mini-formatting to get rid of some excessive space. Signed-off-by: Peter Hutterer Reviewed-by: Ping Cheng commit 48bbc89e7cc4e263a04287fff68ac109a8727910 Author: Peter Hutterer Date: Tue Jun 1 16:13:06 2010 +1000 xsetwacom: support "modetoggle" keyword. Signed-off-by: Peter Hutterer commit 20715a4a066435b1d785a5b5df50b96c7bc5dcb5 Author: Peter Hutterer Date: Tue Jun 1 15:40:45 2010 +1000 xsetwacom: "core" as keyword is not supported, tell users so. The driver has no say whether a key is to be sent as core event or not, the attachment of the device will decide this (since X server 1.7). To let users know that their old configurations may not do the same thing, print a notice. Signed-off-by: Peter Hutterer Acked-by: Ping Cheng commit de4a3690c25b822d0bdc54602befa9a09c2af54b Author: Peter Hutterer Date: Tue Jun 1 15:31:07 2010 +1000 xsetwacom: add Escape key to special characters. Signed-off-by: Peter Hutterer Reviewed-by: Ping Cheng commit 7aea4b8a96b7562cba828b703d70c288eac29938 Author: Peter Hutterer Date: Tue Jun 1 15:27:07 2010 +1000 xsetwacom: remove "not implemented" labels. We've implemented/kicked out all parameters that weren't implemented. Signed-off-by: Peter Hutterer Reviewed-by: Ping Cheng commit 7581a5f62697b8a49cff1d534bc2713f33612e7c Author: Gaetan Nadon Date: Tue Jun 1 10:21:45 2010 -0400 config: comment and layout adjustments Fix warning for AC_HELP_STRING Signed-off-by: Gaetan Nadon commit 158edda13853dbd977acce55b173756e12ef4377 Author: Gaetan Nadon Date: Tue Jun 1 17:47:20 2010 -0400 config: use automake "dir" pattern for simplification configdir is where the config file is installed dist_config_DATA lists the filename Signed-off-by: Gaetan Nadon commit c82218973ab7ab47e11d9ae76a9d5e2a246bf420 Author: Gaetan Nadon Date: Tue Jun 1 17:40:05 2010 -0400 config: close a loophole where user input means x server has a feature If a user provides a path in --with-xorg-conf-dir, the configuartion assumes the server does have a config path which may not be the case. Signed-off-by: Gaetan Nadon commit a8d9fb1c59ef2e7ce4bbaaab30b43ca3d00e93de Author: Gaetan Nadon Date: Tue Jun 1 09:09:02 2010 -0400 config: remove check for compiler characteristics Further analysis shows that these checks suggested by Autotools are not relevant to the platforms supported by xorg. Signed-off-by: Gaetan Nadon commit 28a45cd759051ad13bfa5e8c9c13e729472f3e20 Author: Gaetan Nadon Date: Mon May 31 16:28:05 2010 -0400 config: wacom driver requires xextproto and kbdproto These protocols are required to compile the driver. Signed-off-by: Gaetan Nadon commit 0464db90a874af87d299bb2f0a5b17f337913a34 Author: Gaetan Nadon Date: Mon May 31 16:22:30 2010 -0400 config: wacom depends on RANDR through xf86.h The xf86.h file contains external declarations specific to RANDR If this extension is defined (installed) wacom will not compile if randrproto is not installed under the same prefix. Because this is an optional extension, XORG_DRIVER_CHECK_EXT must be used. move inputproto check to PKG_CHECK_MODULES: The XORG_DRIVER_CHECK_EXT macro conditionally adds inputproto to PKG_CHECK_MODULES if this extension is defined in xorg-server.h. It allows a module to use ifdef XINPUT if the extension is available. In the case of inputproto, it is part of server and always defined. In this module, the extension is required and not optional. Signed-off-by: Gaetan Nadon commit 0a4c5228ccb65b672ea96d06d6508da66db902f7 Author: Gaetan Nadon Date: Sat May 29 10:24:41 2010 -0400 config: xsetwacom: specifying -lm is redundant. It is added in LIBS by AC_CHECK_LIB No need for per target LDFLAGS Signed-off-by: Gaetan Nadon commit 0d000207e80832a66bc5c30089dfec730adb66d6 Author: Gaetan Nadon Date: Fri May 28 10:15:50 2010 -0400 config: remove AC_PROG_CC as it overrides AC_PROG_C_C99 XORG_STRICT_OPTION from XORG_DEFAULT_OPTIONS calls AC_PROG_C_C99. This sets gcc with -std=gnu99. If AC_PROG_CC macro is called afterwards, it resets CC to gcc. Signed-off-by: Gaetan Nadon commit f93ad73accf06799ab027d82655677391725dc65 Author: Gaetan Nadon Date: Fri May 28 10:10:30 2010 -0400 config: use AC_PROG_INSTALL now supplied by XORG_DEFAULT_OPTIONS It depends on util-macros 1.8 The existing statement can now be removed from the configuration file. Signed-off-by: Gaetan Nadon commit 9e24d7c75e4ae0adc5360e75e431faefdeb29f7d Author: Gaetan Nadon Date: Fri May 28 10:09:17 2010 -0400 config: upgrade to util-macros 1.8 for additional man page support Use MAN_SUBST now supplied in XORG_MANPAGE_SECTIONS The value of MAN_SUBST is the same for all X.Org packages. Use AC_PROG_SED now supplied by XORG_DEFAULT_OPTIONS Signed-off-by: Gaetan Nadon commit 17016ade9269cdfdd85bd1c4f1b76ca211fd63d3 Author: Peter Hutterer Date: Tue Jun 1 15:03:58 2010 +1000 Add a man page for xsetwacom. Signed-off-by: Peter Hutterer commit 88e9fe19e307b18cac176e7e8815dd5640e9aa8b Author: Ping Cheng Date: Tue May 25 20:08:00 2010 -0700 Add two finger gestures for Bamboo with touch Both src and tools/include are updated. This "feature" will be removed when gesture is supported in X server or in desktop environment. Peter Hutterer's comment: "just for the record: I am deeply opposed to implementing gestures in the driver. This way every driver needs to cook their own soup, there is hardly any possibility to let clients configure the gestures, clients won't know when a gesture has been applied or when a gesture should be skipped instead, there is virtually no chance of standardization of gestures as all drivers will end up using slighlty different parameters, etc. the list is rather long. that's also why I kinda pretend that the code doesn't exist and do cursory checks only (I can't test it anyway). having said that, I realise that the lack of gesture support in the server is currently blocking any other attempts. So I'll reluctantly keep saying yes to this gesture approach, but expect it to be temporary only." Signed-off-by: Ping Cheng Signed-off-by: Peter Hutterer commit 0aef8254c96a8f299411fd7fc115b8ad694c600e Author: Peter Hutterer Date: Mon May 24 12:34:41 2010 +1000 Duplicate the InputAttributes for dependent devices. This allows for the configuration of dependent devices by creating the appropriate match rules. Note that for the input attributes - just as for the device name the type is simply appended to the end of the product name. Signed-off-by: Peter Hutterer Acked-by: Ping Cheng commit 63be00c8a4faadd2251b5f695e6b049d70943ae3 Author: Peter Hutterer Date: Tue Jun 1 13:55:17 2010 +1000 xsetwacom: remove XSCALING parameter. XSCALING was compile-time defined as either 1 or 0 and a workaround for a bug in the X server release 1.4.0 (not 1.4.1) that required special scaling handling. It's not needed for xf86-input-wacom. Signed-off-by: Peter Hutterer Acked-by: Ping Cheng commit 49d7635e1905fd33a59581232418a6c7d5edc77f Author: Peter Hutterer Date: Mon May 31 13:21:44 2010 +1000 In relative mode, subtract the old pressure value from the new one. Otherwise the pressure builds up to the maximum and stays there, even when the pen is lifted off the tablet. Same goes for tilt, wheel and rotation/throttle https://sourceforge.net/tracker/?func=detail&atid=525124&aid=2996451&group_id=69596 Signed-off-by: Peter Hutterer commit 579f31c628f0b0036f3c238cc7f32ccfc32adab1 Author: Peter Hutterer Date: Mon May 31 14:41:53 2010 +1000 Don't pass the axes around to sendCommon() and friends. The only events generated here are button events, there's no need to send the axis values around. This also fixes a bug where axis values are sent twice to the X server: The following call order is possible in wcmSendEvents xf86PostMotionEvent(..., axisvalues[]) -> sendCommonEvents() xf86PostButtonEvent(..., axisvalues[]) This is fine for absolute mode but in relative mode this would result in the axis values applied twice. By not passing the values down, this bug is avoided. Signed-off-by: Peter Hutterer Reviewed-by: Ping Cheng commit a36262f30418c5b57d9dd21aafe0b95d81bbf7d7 Merge: 6569c0577b04 8916bf839dff Author: Peter Hutterer Date: Mon May 31 10:54:56 2010 +1000 Merge branch 'waltop' commit 6569c0577b04c3c8b7ddc737cbc030893fe0fe0e Author: Ping Cheng Date: Tue May 25 20:07:59 2010 -0700 Add a new define (WAC_LCD) for tablet_id WCM_LCD is added to distingush the tablets that are used as LCD digitizers, such as Tablet PC and Cintiq/PL series. They have common features that regular tablets may not have. Signed-off-by: Ping Cheng Signed-off-by: Peter Hutterer commit b19576fc4fa7939bf0774aa8f49a90ebbfe1a6e8 Author: Peter Hutterer Date: Thu May 27 14:13:26 2010 +1000 xsetwacom: remove unimplemented NumScreens setting. AFAICT, NumScreens in linuxwacom returns screenInfo.numScreens - the same value as reported by ScreenCount(3). If this is 1 and TwinView is enabled, this value is hardcoded to 2. This logic can be replicated in the client, there's no need to export this from xsetwacom. The driver does not export this anymore anyway - was unimplemented since the fork. Note: the driver does not export this setting as input driver do not hook into the RandR notification mechanisms. The input driver thus would not be notified when a new screen is plugged in, resulting in stale values being stored in the driver. Note: this logic is incorrect if RandR 1.2 drives multiple screens. Although there are two physical screens, there is only one protocol screen. Signed-off-by: Peter Hutterer Reviewed-by: Chris Bagwell Acked-by: Ping Cheng commit 8916bf839dff04d1db551ee962ee68608fc42885 Author: Peter Hutterer Date: Thu Apr 8 16:10:58 2010 +1000 Add a whole bunch of Waltop device IDs as "supported". These are taken from Waltop's driver download page, a bit more info might be nice. Signed-off-by: Peter Hutterer commit 2ce763b3299c78f6824ff7ff7c3fc8a26106c597 Author: Peter Hutterer Date: Thu Apr 8 15:56:23 2010 +1000 Add Waltop as recognized vendor ID for autoprobe. Signed-off-by: Peter Hutterer commit a8e535d4bcb56e20b172c2cb7559b72557f9c88e Author: Peter Hutterer Date: Thu Apr 8 15:57:55 2010 +1000 Incorporate the vendor ID into the model descriptions. This opens up the way for more vendor IDs to be matched with the right options. Signed-off-by: Peter Hutterer commit 14f64d9837160cd4b0c0d63ed2e05e7babfc2db8 Author: Peter Hutterer Date: Thu May 20 14:54:54 2010 +1000 xsetwacom: print an error if the property does not exist on the device. Custom get_funcs that do not have a property name skip this part and go straight to the get_func, all others get the property tested. Signed-off-by: Peter Hutterer Reviewed-by: Ping Cheng commit 3c7af6a1aaab296620b442d93375f02f050e65d9 Author: Peter Hutterer Date: Mon May 24 08:05:37 2010 +1000 xsetwacom: add a descriptive comment on how xsetwacom works these days. Signed-off-by: Peter Hutterer Signed-off-by: Ping Cheng commit 9ab46c7113ecda88bcf40b936b147dbfcd87d996 Author: Peter Hutterer Date: Mon May 24 08:06:39 2010 +1000 Fix typo in usage output. } should be ] Signed-off-by: Peter Hutterer commit 44f4b81300b63fb01857197a96993bd85cc873ea Author: Peter Hutterer Date: Fri May 21 22:10:26 2010 +1000 Remove libc wrappers. The X server is just deprecating them from the headers and the wrapping never had the desired effect anyway (which was to have alternative allocation implementations). This patch brought to you by sed. Signed-off-by: Peter Hutterer Acked-by: Ping Cheng commit b3143b525d3e91e616b8b5329966b559f1c24a86 Author: Ping Cheng Date: Wed May 19 22:42:14 2010 -0700 Centralize TPCButton/Touch/Gesture initialization Moved TPCButton initialization from other routines to wcmParseOptions of wcmValidateDevice.c. For hotplugged tablets, TPCButton will be initialized once since wcmParseOptions will only be called once. For tools defined through xorg.conf, we only allow stylus to define this option. Moved wcmTouch inside ISBITSET BTN_TOOL_DOUBLETAP check since only the devices that support touch would have this option. Same rule applies to wcmGesture. For hotplugged tablets, these two options will be initialized once since wcmParseOptions will only be called once. For tools defined through xorg.conf, only touch can change these options. If a tool other than touch tries to set those common touch options, a warning will be reported and the option will be ignored. Signed-off-by: Ping Cheng Signed-off-by: Peter Hutterer commit fcd8a63993c0fb81b5c9f6246ebd40105c245cee Author: Peter Hutterer Date: Fri May 21 22:07:30 2010 +1000 Revert "Remove now-unused variable oldButton." I applied Ping's patches out-of-order, this variable is needed for the next patch. This reverts commit dc81246c2ff6d38a09ee438e6c490df5c9b50c1f. Signed-off-by: Peter Hutterer commit 060ad78cf464508f1d123c00b7340838a27f19e3 Author: Peter Hutterer Date: Thu May 20 16:41:02 2010 +1000 Don't add the OutOfProximity flag to the axis mode. The server and many clients tends to check for Absolute and/or Relative, but don't use Absolute as a flag. The XI protocol spec only allows for 0 or 1 (Relative or Absolute), not for an extra flag. As a result, a device set up with (Absolute|OutOfProximity) will be interpreted as Absolute by some clients and relative by others. Signed-off-by: Peter Hutterer Reviewed-by: Ping Cheng commit dc81246c2ff6d38a09ee438e6c490df5c9b50c1f Author: Peter Hutterer Date: Thu May 20 14:36:39 2010 +1000 Remove now-unused variable oldButton. Obsolete with 62ae0d30494577b2a9de2d440b0f728e85b13e2a. Signed-off-by: Peter Hutterer commit 62ae0d30494577b2a9de2d440b0f728e85b13e2a Author: Ping Cheng Date: Tue May 18 17:44:05 2010 +1000 Purge unnecessary option check xf86SetIntOption will get and set the button value as needed. No need to call xf86SetStrOption first. Signed-off-by: Ping Cheng Signed-off-by: Peter Hutterer commit 80cca0796f727a68e7695d5e82c57167471533a0 Author: Rafi Rubin Date: Fri May 14 10:07:36 2010 +1000 conf: force second button on N-Trigs to be right click. N-Trigs styli only have two buttons, having a middle click is less useful than having a right click. [split out into a separate commit by Peter] Signed-off-by: Rafi Rubin Signed-off-by: Peter Hutterer commit aa95e1364cf2fcaba6514f6b10c9f8ee30855c7f Author: Ping Cheng Date: Mon May 10 21:18:50 2010 -0700 xf86-input-wacom: Button 4 and 5 events are only for touch ring Only absolute wheels on the pad (normally touch rings) can send button events. Absolute wheels that are defined for the stylus, such as airbrush wheel or ArtPen rotation should only report raw data. It would be up to the client/application to translate those raw data in a way they like. Signed-off-by: Ping Cheng Signed-off-by: Peter Hutterer commit ea2769f8efbffffb13d2971a7f829a5590daee6d Author: Peter Hutterer Date: Tue May 11 08:24:14 2010 +1000 Revert "Always init wheel buttons to 4/5." This commit leads to weird button events on tools like the Art Pen. http://sourceforge.net/mailarchive/forum.php?thread_name=AANLkTil9O7b5Q7k03-zBWS_mSEJ79dDuh0ZqsBhuOI2v%40mail.gmail.com&forum_name=linuxwacom-discuss This reverts commit 0fbd3e34d792cb17163c1974d7e8ce93c24242a0. Signed-off-by: Peter Hutterer commit 24caba4577364a6b7fad2eb1a39964598c9e5e01 Author: Przemo Firszt Date: Wed May 5 19:34:48 2010 +0100 Remove redundand MAX_USB_EVENTS definition from xf86Wacom.h There is no need to define MAX_USB_EVENTS in xf86Wacom.h as that definition is not used anywhere in the code. Signed-off-by: Przemo Firszt Signed-off-by: Peter Hutterer commit 83db7fb4a71c6460ac2aaee3476fb49c36f9cbb6 Author: Rafi Rubin Date: Tue May 4 12:00:36 2010 +1000 Adjust N-Trig pattern. The old pattern is the default name set by hid and along with some other changes I added descriptive names for the event devices. For people using the older versions of the kernel driver, they are probably better off just using the wacom driver to support both pen and touch. For the current versions of the driver, there isn't much of an advantage to continue using wacom for touch, and some distinct advantages to moving to evdev (particularly as MT support matures). The wacom driver is still better for the pen. Signed-off-by: Rafi Rubin Signed-off-by: Peter Hutterer commit 5178eec046e160218df088363394b4b117976725 Author: Peter Hutterer Date: Thu Apr 29 14:40:27 2010 +1000 wcmUSB: add some parentheses where parentheses are due. No functional change, just improving readability. Let's not have constructs like for (....) if (....) { } If a block is multi-line, always surround it with parentheses. Signed-off-by: Peter Hutterer Acked-by: Ping Cheng commit 1d0f629f8f95621f107ff3031b805613447ed275 Author: Ping Cheng Date: Sat Apr 24 21:59:54 2010 -0700 Replace Bamboo touch tablet_id check with tablet_type Signed-off-by: Ping Cheng Reviewed-by: Chris Bagwell Signed-off-by: Peter Hutterer commit cda653b2690f5ed99ca48fcaf33c24539b5529e3 Author: Ping Cheng Date: Sat Apr 24 21:33:59 2010 -0700 Change WacomModel->name check to WacomModel->tablet_type tablet_type will be used to decide tablet common options. Signed-off-by: Ping Cheng Reviewed-by: Chris Bagwell Signed-off-by: Peter Hutterer commit df7f16509194b7c778f2b823fd480043a2dbce86 Author: Ping Cheng Date: Sat Apr 24 21:26:02 2010 -0700 Add tablet_type to WacomModel tablet_type is introduced to distingush the specific features that a group of tablets supported. It will be used to replace the wcmModel->name check. Signed-off-by: Ping Cheng Reviewed-by: Chris Bagwell Signed-off-by: Peter Hutterer commit de3953f34c5da03baee443186c64f852ea675fef Author: Peter Hutterer Date: Fri Mar 26 14:34:49 2010 +1000 Facture out state resetting from the device state. Signed-off-by: Peter Hutterer Reviewed-by: Ping Cheng commit cde6ce3ab13d158b2f7b4d725ae84d36cfc33f02 Author: Peter Hutterer Date: Fri Mar 26 11:58:01 2010 +1000 Fix minor style issue. No changes, just whitespace fixes to make the else block look more like an else block and less like the start of an unrelated one. Signed-off-by: Peter Hutterer Reviewed-by: Ping Cheng commit 120ca4e2846c2fcc12f6f67105da5c17886b73f0 Author: Peter Hutterer Date: Fri Mar 26 11:55:50 2010 +1000 Use 'buttons' instead of hardcoded 0. No functional change, it just makes the code more obvious. Signed-off-by: Peter Hutterer Reviewed-by: Ping Cheng commit ec90c6d93561f1acbf574b45b75312b1079f2815 Author: Peter Hutterer Date: Tue Apr 27 13:51:17 2010 +1000 conf: add WACf, FUJ02e5 and FUJ02e7 to serial identifers. Signed-off-by: Peter Hutterer Reviewed-by: Ping Cheng commit c5543682306775f1ba42e44cd8b3db4eb460f20d Author: Peter Hutterer Date: Thu Apr 22 13:20:54 2010 +1000 wacom 0.10.6 Signed-off-by: Peter Hutterer commit 68f30e01567278cb474b9d54bb14ec74766584ab Author: Peter Hutterer Date: Thu Apr 22 14:26:33 2010 +1000 Fix some indentation in xf86WacomDefs.h. Every time I look at it this confuses me... Signed-off-by: Peter Hutterer Acked-by: Ping Cheng commit ca4f2a860c16f1181cb9e82ad27a5f890f165d4d Author: Peter Hutterer Date: Thu Apr 22 13:46:14 2010 +1000 conf: move 20-wacom.conf to 50-wacom.conf. alnum sorting with a 2-digit prefix gives us 100 different possibilities for distro/driver provided configuration files. Let's move the config towards the middle to allow for convenient pre- and post-placement of other configurations. Signed-off-by: Peter Hutterer commit b5084f000d05d5f14d3ba272b6b7ac145002b771 Author: Ron Lee Date: Sat Apr 17 18:25:47 2010 +0930 Install 20-wacom.conf to the sysconfigdir variable exported by the server Don't install the .fdi if we're using the xorg.conf dir. Based on a patch from Julien Cristau , based on a patch by Peter Hutterer for xf86-input-synaptics. Signed-off-by: Ron Lee Signed-off-by: Peter Hutterer commit 9be9ab331210aed2a3045f60d3d8a0d13d9ea0ef Author: Gaetan Nadon Date: Thu Apr 15 17:58:07 2010 -0400 config: fix checking for extensions section A hidden dependency on statement order was discovered. The REQUIRE_MODULES variable was removed but needed. Comments added to clarify the situation. Signed-off-by: Gaetan Nadon Signed-off-by: Peter Hutterer commit 659daa11dc558a45bfad1b9548f1757fab226ad7 Author: Ping Cheng Date: Wed Apr 14 21:38:28 2010 -0700 Normalize pressure sensitivity Instead of reporting the raw pressure, the normalized pressure from 0 to FILTER_PRESSURE_RES (which is 2048) is reported. This is mainly to deal with the case where heavily used stylus may have a "pre-loaded" initial pressure. This patch checks the in-prox pressure and subtract it from the raw pressure to prevent a potential left-click before the pen touches the tablet. Left click threshold and pressure curve are updated accordingly. Signed-off-by: Ping Cheng Signed-off-by: Peter Hutterer commit c853f3230a28c75c06bde20606b37ce28afc356b Author: Ron Date: Fri Apr 16 02:01:03 2010 +0930 Don't match WALTOP in the wacom.conf just yet On the advice of Timo about how ready it is right now. Signed-off-by: Ron Lee commit d65004559e21150fdc12bf58d03d3ddfe861efd6 Author: Ron Date: Thu Apr 15 16:09:21 2010 +0930 Use 20-wacom.conf instead of 10- This leaves a bit more space for people to override things if needed. Signed-off-by: Ron Lee commit 32ebba3eeb537dc70e1dfa45496bc65e66aeb9a2 Author: Ron Date: Thu Apr 15 16:06:44 2010 +0930 Rename the fdi subdir to conf Signed-off-by: Ron Lee commit ff59bc20e8ed549ca7ef17801851777907af79b1 Author: Ron Date: Wed Apr 14 22:19:17 2010 +0930 Add an initial xorg.conf.d snippet for xserver 1.8 Drop this in the fdi subdir for now, just to keep all the config together. That dir can be renamed later, as the .fdi will eventually go away anyhow. Signed-off-by: Ron Lee Acked-by: Ping Cheng commit 7813328083de1d6f6d9bd028ff4c18f222e81ff3 Author: Gaetan Nadon Date: Mon Apr 12 13:05:49 2010 -0400 config: comment usage of PKG_CHECK_MODULES There are two separate targets for which config should not be mixed. Follow-up from review. Signed-off-by: Gaetan Nadon Signed-off-by: Peter Hutterer commit c36de6947dfb23946926d041aa08d482ffd96a0f Author: Gaetan Nadon Date: Mon Apr 12 13:05:48 2010 -0400 config: disable inadvertently re-enabled static library creation AC_DISABLE_STATIC must be places before AC_PROG_LIBTOOL, requirement which is not documented in libtool. This will prevent the creation of src/.libs/wacom_drv.a Signed-off-by: Gaetan Nadon Signed-off-by: Peter Hutterer commit 2795fc26832ee31546216f07ff5f3616cb2dea95 Author: Peter Hutterer Date: Thu Apr 8 16:29:17 2010 +1000 Use SETBIT and CLEARBIT macros to set the tool types. Macros like this are in common use in the kernel, X server, etc. and are slightly more readable than the |= and &= ~ expressions. Signed-off-by: Peter Hutterer Acked-by: Ping Cheng commit 42e8b791249b3d5c40d1117696deec8966c2e7e1 Author: Pengcheng Chen - Sun Microsystems - Beijing China Date: Fri Apr 9 09:00:05 2010 +1000 Remove duplicated definition: ARRAY_SIZE Signed-off-by: Pengcheng Chen - Sun Microsystems - Beijing China Signed-off-by: Peter Hutterer commit 5087865cbea0ff16e3edbcc532ed9776434b9e0f Author: Ping Cheng Date: Mon Mar 29 10:44:47 2010 -0700 All user defined types are valid Since there are types that we can not decide during device initialization stage, we allow all types defined in xorg.conf pass wcmIsAValidType check. Signed-off-by: Ping Cheng Signed-off-by: Peter Hutterer commit d83ad3afe27feb1d055cfeeef448d5045089c6f0 Author: Ping Cheng Date: Mon Mar 29 10:00:05 2010 -0700 TPCButton is on by default for ISDV4 devices The recent updates for ISDV4.c missed this bit. Signed-off-by: Ping Cheng Signed-off-by: Peter Hutterer commit 037eafa0240b342fd6ab35bd88edab6d2b66c30a Author: Peter Hutterer Date: Thu Mar 25 14:46:25 2010 +1000 xsetwacom: handle special button mappings. As with keystrokes, this handles usecases like "button +5 4 -5" for a button 5 down, button 4 click, button 5 up. Signed-off-by: Peter Hutterer Acked-by: Ping Cheng commit 76544c491821aa5208371324872e7759d7f087b8 Author: Peter Hutterer Date: Thu Mar 25 14:30:33 2010 +1000 xsetwacom: refacture button mapping code. This loses the ability do do "xsetwacom --set Button1 button 5" to make Button1 do what button 5 does. Really, just run the command twice... Signed-off-by: Peter Hutterer Acked-by: Ping Cheng commit 47d00b15a2a1afbff08d2899d2c071fbeff61b33 Author: Peter Hutterer Date: Thu Mar 25 13:57:00 2010 +1000 xsetwacom: rearrange keyword matching for future multi-keyword assignment. In the future, xsetwacom should support a --set Button1 "key a b c button 1 key a" mapping. This is the first step towards it. Signed-off-by: Peter Hutterer Acked-by: Ping Cheng commit 967f90c75a7ad17c8e26bb89f5b348c43bbd146e Author: Peter Hutterer Date: Fri Mar 26 11:18:59 2010 +1000 xsetwacom: fix strjoinsplit. silly. Signed-off-by: Peter Hutterer Acked-by: Ping Cheng commit 8a911e348fb17ad40cc0130d4ad4d862d0dd096d Author: Peter Hutterer Date: Fri Mar 26 11:21:24 2010 +1000 xsetwacom: trace the special button key mapping if running verbose. Output is something like: ... Key map 97 ('a') [press,release] Signed-off-by: Peter Hutterer Acked-by: Ping Cheng commit eabc771985c88fcf99dbc12d84705cf2faace3da Author: Peter Hutterer Date: Fri Mar 26 11:07:25 2010 +1000 xsetwacom: fix offset for special key mappings. offset was always 0 + nitems which wasn't a problem as long as we don't support multiple keywords ("key a button 1 key b"). If multiple keywords are supported, the offset needs to move to the current, otherwise we overwrite. Signed-off-by: Peter Hutterer Acked-by: Ping Cheng commit 2bc39947855842a04f1e40d8004fe094f44f62ee Author: Peter Hutterer Date: Thu Mar 25 15:07:00 2010 +1000 Split button action property handling into two static functions. No code changes, just making the SetProperty handler less of a beast. Signed-off-by: Peter Hutterer Acked-by: Ping Cheng commit 132504227b487a7fdfa6e4e6964f5d7058c0e794 Author: Peter Hutterer Date: Thu Mar 25 09:59:56 2010 +1000 Factor out retrieving the wheel button. No functional changes, just making code hopefully more readable. Signed-off-by: Peter Hutterer Acked-by: Ping Cheng commit 476b5da0ae5a8fa7c72dc5086f46a28184a0f79f Author: Peter Hutterer Date: Wed Mar 24 16:52:08 2010 +1000 Remove unused wheel key assignment. keyP isn't actually used anywhere. Signed-off-by: Peter Hutterer Acked-by: Ping Cheng commit 5f4bc4d43bce84dd84192d3cc9fb7a9ad5b1031d Author: Peter Hutterer Date: Fri Mar 26 10:52:45 2010 +1000 Don't allow the pad to be switched to absolute mode. See 2038ad187823b "Always put the pad in relative mode" for a more detailed explanation. Reported-by: Ping Cheng Signed-off-by: Peter Hutterer commit 30c8356cb98536e539bbc81e72e3dd7e1e9e255d Author: Peter Hutterer Date: Thu Mar 25 11:22:06 2010 +1000 Fix build error with --enable-debug. Introduced with 09e01eda07de "Call wcmRotateCoordinates only when we get real motion events". wcmCommon.c: In function ‘wcmSoftOutEvent’: wcmCommon.c:1646: error: invalid use of void expression This patch also changes the message to the usual DBG format (the DBG macro will fill in the device name and the function name automatically). Signed-off-by: Peter Hutterer Acked-by: Ping Cheng commit 2038ad187823b770fcb3b5e77dacf4bad27617e6 Author: Peter Hutterer Date: Thu Mar 25 10:49:02 2010 +1000 Always put the pad in relative mode. Fixes Intuos3 scrolling issues. The pad cannot be in absolute mode as it sends the axis values to the server. Since the pad never gets x/y coordinates from the tablet the server will fill in the defaults (0/0) for it - even if first_valuator is always > 1. This results in the pointer being reset to the screen origin each time the pad's scroll strip is used. Signed-off-by: Peter Hutterer Acked-by: Ping Cheng commit 09e01eda07decdbd2350fa46aea8c705bbdd968b Author: Ping Cheng Date: Wed Mar 24 15:14:01 2010 -0700 Call wcmRotateCoordinates only when we get real motion events Out-prox events don't send reliable motion events. So, don't rotate those coordinates. Signed-off-by: Ping Cheng Signed-off-by: Peter Hutterer commit 898caa97dec7af1cae3bf05ae6eb598732aa1141 Author: Ping Cheng Date: Tue Mar 23 22:13:37 2010 -0700 Add wcmSoftOutEvent and wcmGetPhyDeviceID wcmSoftOutEvent is used to send an out-prox event for the current invalid tool before switching to a new tool. This routine will be used by new gesture code. wcmGetPhyDeviceID is called by wcmSoftOutEvent and wcmSetType. Signed-off-by: Ping Cheng Signed-off-by: Peter Hutterer commit 40f344803460f7f1e5e07a67d4e10e7c6d2fcdc8 Author: Ping Cheng Date: Tue Mar 23 17:43:53 2010 -0700 Move BTN_TOOL_TRIPLETAP to the header file Move BTN_TOOL_TRIPLETAP definition from wcmUSB.c to xf86WacomDefs.h since it is also used by wcmValidateDevice.c and wcmISDV4.c Signed-off-by: Ping Cheng Signed-off-by: Peter Hutterer commit 0bdabe85a09b4c522b4237a0ee95326cbcb23740 Author: Gaetan Nadon Date: Tue Mar 23 15:36:24 2010 -0400 config: layout and comments change. No functional changes. Signed-off-by: Gaetan Nadon commit 43ee2f9907a82018eff3a7103eed22e0fc01a444 Author: Gaetan Nadon Date: Tue Mar 23 15:32:38 2010 -0400 config: separate sdkdir assignement from distcheck workaround sdkdir in needed for other purposes. Signed-off-by: Gaetan Nadon commit 0eb3ddb627487bb37be354c2dd943d03525f395e Author: Gaetan Nadon Date: Tue Mar 23 14:57:59 2010 -0400 config: bump Autoconf version to 2.60 This version matches the content of the configuration as it was before this patch series. Signed-off-by: Gaetan Nadon commit 82cb6c9cd5d8e3fb1a9e63aa101699a3d8c97731 Author: Gaetan Nadon Date: Tue Mar 23 14:55:45 2010 -0400 config: AC_OUPUT with parameters is obsolete Use AC_CONFIG_FILES Signed-off-by: Gaetan Nadon commit bf45c3c546bbd672a8b604ed6924b4c862888419 Author: Gaetan Nadon Date: Mon Mar 22 19:16:57 2010 -0400 man: use $(SED) for better portability $(AM_V_GEN) is for Automake 1.11 silent rule. Signed-off-by: Gaetan Nadon commit 8f28c5640b8e33719b52ae7ae9b6843104cc2032 Author: Gaetan Nadon Date: Tue Mar 23 14:52:47 2010 -0400 config: add portability macros As suggested by autoscan for this module. These will provide default values if none defined on the system. Signed-off-by: Gaetan Nadon commit d184685aca7fe27a7c5c9403c5a993d761bece35 Author: Gaetan Nadon Date: Tue Mar 23 14:51:27 2010 -0400 config: add libm.a library check used by xsetwacom As suggested by Autoconf. Checked with SunCC compiler docs. Signed-off-by: Gaetan Nadon commit 1d6d34e905d297f6dbf91f6703f874f16262c233 Author: Gaetan Nadon Date: Tue Mar 23 14:45:02 2010 -0400 config: remove unrequired defines for ISO C90 header files. Autoconf: This macro is obsolescent, as current systems have conforming header files. Signed-off-by: Gaetan Nadon commit ca2502dc24801d58bb7c9a285a668631df596211 Author: Gaetan Nadon Date: Tue Mar 23 14:40:49 2010 -0400 config: remove unrequired auxiliary config dir By default, autotools scripts are generated in source dir Signed-off-by: Gaetan Nadon commit a2b8b5207909a23550461467ba82f7e68f44b70d Author: Gaetan Nadon Date: Tue Mar 23 14:38:13 2010 -0400 config: move foreign option to AM_INIT_AUTOMAKE Signed-off-by: Gaetan Nadon commit ba708b40fb607ea6defdd55aef29b0837a076fed Author: Gaetan Nadon Date: Sat Mar 20 14:40:07 2010 -0400 config: obsolete AC_HELP_STRING is replaced with AS_HELP_STRING Fix autoconf warning. Signed-off-by: Gaetan Nadon commit e84d1f61dce03b04a90b3430c3fa1f571f37e0dd Author: Gaetan Nadon Date: Tue Mar 23 14:35:35 2010 -0400 config: AC_FATAL is obsolete, use m4 ac_fatal Update util-macros level to 1.4 due to INSTALL file. Signed-off-by: Gaetan Nadon commit e67658fa5685527d3ec2d0d1863380e37903fe19 Author: Gaetan Nadon Date: Tue Mar 23 14:33:25 2010 -0400 config: obsolete AM_CONFIG_HEADER replaced with AC_CONFIG_HEADERS Fix autoconf warning Signed-off-by: Gaetan Nadon commit 1b7dd740d42aaa6559439b26f5ffd6adc94cbb32 Author: Gaetan Nadon Date: Tue Mar 23 14:30:41 2010 -0400 make: rename INCLUDES to AM_CPPFLAGS Fix autoconf warning, INCLUDES is deprecated. Signed-off-by: Gaetan Nadon commit 47082e462e35a25b1e6413e0347d5fca252f3250 Author: Gaetan Nadon Date: Mon Mar 22 18:59:07 2010 -0400 make: remove unrequired EXTRA_DIST for headers The automake primary HEADERS distribute headers by default. Signed-off-by: Gaetan Nadon commit e8b6829c273f44bd871944d1bd5fdaf187c7d4f7 Author: Gaetan Nadon Date: Mon Mar 22 18:45:48 2010 -0400 make: remove unrequired EXTRA_DIST for wacom.fdi The dist_fdi_DATA statement takes care of distribution. Signed-off-by: Gaetan Nadon commit f32cd91496a8d7aa3dfee00eb694195a60ae936e Author: Gaetan Nadon Date: Tue Mar 23 14:22:38 2010 -0400 config: remove unused AH_TOP #include xorg-server.h It has been included in xf86Wacom.h for over a year. Signed-off-by: Gaetan Nadon commit 8ed7d6955d934d9c0e9b5ee20aa5c61bbbd41f34 Author: Gaetan Nadon Date: Tue Mar 23 14:21:20 2010 -0400 remove unused DEBUG Automake conditional This is not related to AC_DEFINE DEBUG used in C source code. Signed-off-by: Gaetan Nadon commit 70de32b0454a03eff4881653c5254b4bcddd1336 Author: Gaetan Nadon Date: Sat Mar 20 14:46:28 2010 -0400 config: remove unused $REQUIRED_MODULES variable Signed-off-by: Gaetan Nadon commit e19d72ac82efc83b47b7772aa07c56a683b95ecb Author: Peter Hutterer Date: Mon Mar 22 14:17:19 2010 +1000 man: remove linuxwacom reference, replace with current version instead. Signed-off-by: Peter Hutterer Acked-by: Ping Cheng commit 51bd71db2d6f508489d792ddb16d1bcbe21b41f3 Author: Peter Hutterer Date: Mon Mar 22 11:56:53 2010 +1000 ISDV4: unify warning/error messages in the : format Signed-off-by: Peter Hutterer Acked-by: Ping Cheng commit 11a9a43f6fb5f01c5b7d3d0df24be4631625decf Author: Peter Hutterer Date: Mon Mar 22 11:42:44 2010 +1000 ISDV4: replace loop with memset. If the comment is correct, then it would be a bug in libc. Which would need to be investigated but for now I'm giving it the benefit of the doubt and claim that memset works equally well. Signed-off-by: Peter Hutterer commit 62197a303a36a8dbeda69c8867617ce3bfb6380d Author: Peter Hutterer Date: Fri Mar 19 14:59:51 2010 +1000 wacom 0.10.5 Signed-off-by: Peter Hutterer commit e4069c2a7b3b74eebe3d8a30e3121f52730320c8 Author: Chris Bagwell Date: Thu Mar 18 20:57:54 2010 -0500 Do not send button presses for touchpads. Now that we support touchpads (Bamboo P&T), the old logic for button presses on touchscreens needs to consider this. I chose looking at tablet_id instead of ABSOLUTE/RELATIVE setting because we would have to do a for() loop to find correct private structure for touch device. Eventually, we will merge over touchscreen gesture support from linuxwacom which will centralize all gesture logic in either wcmCommon.c or wcmTouchFilter.c. Signed-off-by: Chris Bagwell Signed-off-by: Peter Hutterer commit 3055024b89c5b274a6c7d2cf128ec390fe0ffad3 Merge: fb458cabf079 70e490a5e7a1 Author: Peter Hutterer Date: Fri Mar 19 11:36:28 2010 +1000 Merge branch 'isdv4-cleanup-stage2' For the patch series merged: Acked-by: Ping Cheng Tested-by: Timo Aaltonen Signed-off-by: Peter Hutterer commit fb458cabf07932f7862edbb769f9865ea32e9694 Author: Ping Cheng Date: Thu Mar 18 14:18:32 2010 -0700 Change Copyright Change "Wacom Technology" to "Wacom" to cover all regions Signed-off-by: Ping Cheng Signed-off-by: Peter Hutterer commit 246244fc724b4457e0602a494dfe72bfb9fc254e Author: Ping Cheng Date: Thu Mar 18 14:13:19 2010 -0700 use wcmKeys to check tool type Since wcmKeys can be accessed from usbWcmGetRanges, we retrieve the supported tool types instead of product ID for touch devices that also report pad data. This change makes the code generic to all touch devices that report pad data. Signed-off-by: Ping Cheng Signed-off-by: Peter Hutterer commit 87f2ff0397223c557650ccb1e0aac4bb497a7a93 Author: Ping Cheng Date: Thu Mar 18 14:10:46 2010 -0700 Make keys into wcmKeys Tool type and other device/tool specific characters can be retrieved through the supported events, defined in keys, from the kernel. Make this variable an attribute of common so we only need to retrieve it once in wcmPreInit. Signed-off-by: Ping Cheng Signed-off-by: Peter Hutterer commit 7a078d10266155f87b32b05803d90c62d65fee73 Author: Peter Hutterer Date: Fri Mar 19 08:29:55 2010 +1000 ISDV4: add missing linebreak after wcmWriteWait error message. Signed-off-by: Peter Hutterer commit bd1c20ca8f8187b30d70b3310b5b086f6fc124ed Author: Peter Hutterer Date: Thu Mar 18 17:09:05 2010 +1000 Pressure threshold must be smaller than maxZ, not 21. 21 is a copy-paste error from the ClickForce setting. The default for the pressure threshold is maxZ * 3/50 (245 on my tablet), 21 thus isn't quite sufficient. Signed-off-by: Peter Hutterer Reviewed-by: Ping Cheng commit 61392ced1f604d81a6e7d27036784eb19b595313 Author: Peter Hutterer Date: Thu Mar 18 10:08:20 2010 +1000 Fix build error with --enable-debug on. To reduce the number of ifdefs, a slight reshuffling of the code. Reported-by: Przemo Firszt Signed-off-by: Peter Hutterer commit 70e490a5e7a16639f4a2c2f98d0b203bc6ddec16 Author: Peter Hutterer Date: Thu Mar 18 14:49:20 2010 +1000 ISDV4: print tablet ID after assigning it. Bug triaging is easier if the log file contains the tablet ID assigned by the driver. Signed-off-by: Peter Hutterer commit bda0e2263faabac5e13ae9dee968bd67555d8809 Author: Peter Hutterer Date: Wed Mar 17 23:26:42 2010 -0400 ISDV4: Parse touch and coordinate data packets. Signed-off-by: Peter Hutterer commit c6efe6b87d72448dd7b18bb6f056a064b587bc23 Author: Peter Hutterer Date: Wed Mar 17 22:46:42 2010 -0400 ISDV4: Move some ISDV-specific defines into the new header. Signed-off-by: Peter Hutterer commit 8a497d0c808ab749189501f0f360a1bf56d45770 Author: Peter Hutterer Date: Thu Mar 4 10:39:57 2010 +1000 ISDV4: move parsing code for query and touch query into separate functions. Instead of having the protocol parsing code directly in the matching functions, move it to a separate function and return a struct with the interesting data already set. This eases code readability and improves debugging between protocol parsing errors and general driver bugs. Signed-off-by: Peter Hutterer commit 72231173a14c69c30918f57f0b3be66a9bdd20de Author: Peter Hutterer Date: Tue Mar 16 14:16:09 2010 +1000 xsetwacom: fix wrong option parsing for --display. Reported-by: Andrew Lofthouse Signed-off-by: Peter Hutterer commit 6f98912927116fcf0067e30f010778b0e838f268 Merge: 4c2d47db27f9 d8d70c12395f Author: Peter Hutterer Date: Tue Mar 16 16:03:32 2010 +1000 Merge branch 'isdv4-cleanup-stage1' For the branch merged in: Reviewed-by: Chris Bagwell Tested-by: Thomas Jaeger Signed-off-by: Peter Hutterer commit 4c2d47db27f90907301a67c096096a80383e69d7 Author: Ping Cheng Date: Mon Mar 15 21:14:41 2010 -0700 nbbuttons should be <= WCM_MAX_BUTTONS The workaround that supports at least 7 buttons could cause nbbuttons larger than WCM_MAX_BUTTONS, the maximum number of buttons that is supported by the driver. This patch keeps nbbuttons in its range. This patch also fixes a driver crash issue on ISDV4 with touch systems that may be caused by nbbuttons being larger than WCM_MAX_BUTTONS. The "may be" is backed up by the following testing result: 1. linuxwacom-0.8.5-11 has the same block of code. However, running linuxwacom-0.8.5-11 on the same ISDV4 system (Xorg 1.6.0) without this patch doesn't have the issue. 2. Running xf86-input-wacom without this patch on a pen only ISDV4 system doesn't have the issue either (Thomas Jaeger reported the same positive testing result too). So, there must be some other issues behind the crash that we don't understand yet. Signed-off-by: Ping Cheng Signed-off-by: Peter Hutterer commit d8d70c12395f856cffaeee2dfe02a03a028d2f18 Author: Peter Hutterer Date: Fri Mar 5 16:10:47 2010 +1000 ISDV4: move wcmWriteWait and wcmWaitForTablet errors into those functions. Instead of cluttering up the rest of the code, just complain where it happens. This needs a slight change to the two function signatures so we can print the device name too. Signed-off-by: Peter Hutterer commit 120e7514aef71aa6f2c32d0143f8466479ce02e7 Author: Peter Hutterer Date: Fri Mar 5 16:10:47 2010 +1000 ISDV4: move stopping the device out to isdv4StopTablet() Signed-off-by: Peter Hutterer commit 6d7395dceb215a8b14ebdb1b2903115e4e8a48bd Author: Peter Hutterer Date: Fri Mar 5 16:05:03 2010 +1000 ISDV4: use wcmWriteWait for the start/stop commands. If we already have a wrapper function, we might as well use it. Signed-off-by: Peter Hutterer commit b9317f264230c7aaad909cc83bf6f8d512df22c3 Author: Peter Hutterer Date: Fri Mar 5 11:59:04 2010 +1000 ISDV4: Rename the ISDV4-specific defines ISDV4_foo Signed-off-by: Peter Hutterer commit baafd08d3cfbb9dfee2b84cb74ca480d4e5606c7 Author: Peter Hutterer Date: Wed Mar 10 11:07:18 2010 +1000 ISDV4: use wcmSkipInvalidateBytes from wcmSerialValidate. Untangle the double if inside the loop to perform the same functionality: first check the header byte and if it has the magic bit set. If not, skip along to the next byte that does. Then, check that the remaining bytes don't have the magic bit set. If not, skip up to the first byte that does have the header bit set. This patch also changes the function signature so we can print the name of the device where it happens. Signed-off-by: Peter Hutterer commit 523af161bef98745e0d18814c09f0a22e8f2d453 Author: Peter Hutterer Date: Wed Mar 10 10:46:53 2010 +1000 ISDV4: skip bytes until the next HEADER_BIT if necessary. This is similar to what wcmSerialValidate() does but only does the skipping of an already started invalid packet. At this point we don't have the packet length defined yet so this is just an early exit path. Signed-off-by: Peter Hutterer commit b945afc82e83aab24d9d3d3320717e58c23b5c8f Author: Peter Hutterer Date: Tue Mar 9 15:13:56 2010 +1000 Fix invalid buffer handling in isdv4Parse(). Check the first byte of each packet for the bits that define the packet length, not just the first byte in the buffer. Signed-off-by: Peter Hutterer commit 62e14f05308fb0585fed771cc96280aef717bd91 Author: Peter Hutterer Date: Thu Mar 4 14:26:31 2010 +1000 Remove ISDV4-specific code from wcmReadPacket(). The packet length only matters on ISDV4, the code should be in the matching part of the source. Signed-off-by: Peter Hutterer Reviewed-by: Chris Bagwell commit 60dd6923f6b2df0d3c995c592b2c672960123fcb Author: Peter Hutterer Date: Thu Mar 4 14:15:51 2010 +1000 Pass the length of the buffer into the parsing code. Just handing down a data pointer is risky, since we can't do any model-specific checking for buffer length in the actual model-specific code. So instead, for any buffer size, call the parser. The parser then can return 0 if the length of the buffer isn't sufficient. Signed-off-by: Peter Hutterer Reviewed-by: Chris Bagwell commit f979ad42ef7c571d71f2e4dc9fb69042b276e59a Author: Peter Hutterer Date: Thu Mar 4 16:16:26 2010 +1000 Remove a bunch of now unused defines. Signed-off-by: Peter Hutterer Reviewed-by: Chris Bagwell commit 6703e6c60728cc080f6b194bcaa8f03795afab6a Author: Peter Hutterer Date: Thu Mar 4 14:07:35 2010 +1000 Purge Read() abstraction from the device models. We only support ISDV4 and usb tablets and both use the same read method. Signed-off-by: Peter Hutterer Reviewed-by: Chris Bagwell commit 91d806950738b4cd376066f09836c8fe951249cf Author: Peter Hutterer Date: Thu Mar 4 13:59:54 2010 +1000 Fix a superfluous linebreak. Signed-off-by: Peter Hutterer Reviewed-by: Chris Bagwell commit 546a2ee94aee8278dad5c1cdc9babe82caac94ff Author: Gaetan Nadon Date: Sat Mar 6 20:58:46 2010 -0500 wcmISDV4.c: error on AMD64: conflicting types for int64_t The header should come after xf86Wacom.h as it did when it was in wmValidateDevice.c Problem was introduced by commit 3d5f67417a0939d30a19e581a4f76091cfad4a5d Signed-off-by: Gaetan Nadon Signed-off-by: Peter Hutterer commit bdf6e5239ca4c7e8ab2a9b7c921176473d1e80c2 Author: Chris Bagwell Date: Thu Mar 4 19:41:57 2010 -0600 Fix usbGetRanges() for any load order of touch/pad For Bamboo P&T devices, both a touch and pad type are shared for single input device and can be called in any order based on xorg.conf. And normal HAL order is to invoke usbGetRanges() from pad first. This meant all logic related to IsTouch() was not correctly running. Updated to treat pad type as touch in special case of Bamboo P&T. This is applies to devices that have both BTN_TOOL_FINGER and BTN_TOOL_DOUBLETAP which currently is limitted to Bamboo touch devices. Signed-off-by: Chris Bagwell Reviewed-by: Peter Hutterer Reviewed-by: Ping Cheng Signed-off-by: Peter Hutterer commit 83f932844c8f21e6e4d461a1b754256844dd58d7 Author: Peter Hutterer Date: Mon Mar 1 22:08:48 2010 +1000 Fix pressure curve application check. 4865c30bf0a22ce4083161b1dd953508189b2091 unified the check for when to init the pressure curve. Unfortunately, it didn't actually do so, introducing a wrong if condition. Reported-by: Bryan Hundven Signed-off-by: Peter Hutterer commit d863ffd142919b24bd15fcdde31a9ee19cee39bc Author: Peter Hutterer Date: Mon Mar 1 13:45:56 2010 +1000 static-ify usbWcmInit. Signed-off-by: Peter Hutterer commit 836d30f6eee0e82b7ef874de0deb491ec0b17645 Merge: 701521e9ce99 c1457421d417 Author: Peter Hutterer Date: Mon Mar 1 09:58:09 2010 +1000 Merge branch 'init-process-revamp' For the patch series merged in: Tested-by: Chris Bagwell Acked-by: Ping Cheng Signed-off-by: Peter Hutterer commit c1457421d417f496949362f7fd858bae0f0a3bed Author: Peter Hutterer Date: Thu Feb 25 15:51:56 2010 +1000 man: update pressure curve documentation. Setting is only applicable for stylus and eraser. Reported-by: Chris Bagwell Signed-off-by: Peter Hutterer commit 4865c30bf0a22ce4083161b1dd953508189b2091 Author: Peter Hutterer Date: Thu Feb 25 15:48:36 2010 +1000 Unify the check for application of pressurecurve. The property code and wcmParseOptions should use the same condition for readability. Outcome is the same - the pressure curve is applied only to stylus and eraser. Reported-by: Chris Bagwell Signed-off-by: Peter Hutterer commit 37fa3c2e29a0ca6eadd0e7f054a17bd9c194ad0a Author: Peter Hutterer Date: Thu Feb 25 15:46:19 2010 +1000 Move the check for pressure curve value sanity into its own function. Instead of duplicating the check, move into a single function to avoid the usual bugs of one occurance getting updated but the others don't, etc. Reported-by: Chris Bagwell Signed-off-by: Peter Hutterer commit fb4f167c80290dd7be5c0a47f1e649115b157681 Author: Peter Hutterer Date: Thu Feb 25 14:14:46 2010 +1000 Clear up some ambiguity in the comments for wcmIsDuplicate. Signed-off-by: Peter Hutterer commit 35b3129889b7b51aae8d0b8dba130dad2a9b6a54 Author: Peter Hutterer Date: Thu Feb 25 14:07:41 2010 +1000 Refacture wcmMatchDevice to iterate over the devices. No functional change, it just removes complexity from wcmPreInit into wcmMatchDevice to make the former easier to read. Signed-off-by: Peter Hutterer commit 196cd5033311e9b3d30d121ed1e45046a1a99725 Author: Peter Hutterer Date: Thu Feb 25 14:00:16 2010 +1000 Purge wcmEraserID - unused. This field was only ever set, but never read from anywhere. It seems to have been removed with commit 088dab520184: Support dual Cintiq with TwinView setup Signed-off-by: Peter Hutterer commit cd9793f484c1f70b630a5cad3556c4966f1984ed Author: Peter Hutterer Date: Thu Feb 25 13:51:24 2010 +1000 Revamp device PreInit process. The new init process: - allocate the generic struct used by all device types. - if no device is given, auto-probe for one (find a wacom device in /dev/input/event? - open the device file - probe the device The allocation process is different now, the common settings are allocated for all devices, type-specific settings are set once some information about this device is available. The auto-dev probe is now invoked for each device that does not have the device option set. For this to work, we need the common->wcmDevice to be initialized to NULL. An option "Device" "auto-dev" is _not_ supported, it would be interpreted as file path and fail. Something for the future maybe. Probing could still be improved by getting more information from the device now instead of during open. Something else for the future. Signed-off-by: Peter Hutterer commit 0fbd3e34d792cb17163c1974d7e8ce93c24242a0 Author: Peter Hutterer Date: Thu Feb 25 13:24:10 2010 +1000 Always init wheel buttons to 4/5. Regardless of the type, we can init the wheel buttons since other device types don't generate them anyway. Signed-off-by: Peter Hutterer commit 43ce982801d6d3d84b98a8f5550df900c621b3b5 Author: Peter Hutterer Date: Thu Feb 25 09:32:17 2010 +1000 Init the pressurecurve property with the values from the device. Don't hardcode the defaults into the property code, use the stuff from priv->nPressCtrl (the actual device's values) instead. Reported-by: Chris Bagwell Signed-off-by: Peter Hutterer commit fa2981ff91fe044b780225edcbe29bb63b66a52c Author: Peter Hutterer Date: Wed Feb 24 16:52:09 2010 +1000 Open the fd only once during PreInit. Instead of having every function open and close the fd, just open it once towards the start of PreInit and then close it at the end again. Anything it between can just re-use it. This reshuffles some of the code in PreInit that was supposedly working when "auto-dev" was set. It wasn't, so this just emphasises the brokenness. Signed-off-by: Peter Hutterer commit 3d5f67417a0939d30a19e581a4f76091cfad4a5d Author: Peter Hutterer Date: Wed Feb 24 16:38:24 2010 +1000 Split wcmDeviceTypeKeys into usb and isdv4 version. The rest of the driver tries to split USB and ISDV4 interface and specifics into the matching source files, let's do the same with the probing. Signed-off-by: Peter Hutterer commit 211792fede6c5422f7cd767a2356b26dd89ba990 Author: Peter Hutterer Date: Wed Feb 24 16:23:30 2010 +1000 Rename wcmInit to wcmPreInit. The hook the server calls is named PreInit, so use the same name to avoid potential confusion with what this call actually does. Since we have misc. wcmInitializeFoobar as well, wcmPreInit somewhat expresses the intent a bit better. Signed-off-by: Peter Hutterer commit cb3e41b9c7709d1943d1bfebc463fe274eeb1a45 Author: Peter Hutterer Date: Wed Feb 24 16:16:29 2010 +1000 Untangle triple-nested ternery condition. Signed-off-by: Peter Hutterer commit 701521e9ce99dc7d0d276291539e2ee2abf8111c Author: Chris Bagwell Date: Tue Feb 23 20:55:38 2010 -0600 Remove user setting of MaxX/MaxY/MaxZ in xorg.conf. Any values specified by user in xorg.conf for MaxX/Y/Z and the MaxTouch* versions were always being overwritten during call to device->GetRanges(). This is a cleanup to remove this broken feature since users really should not need to touch this. Removing is much easier then getting user override values to work correctly for values that are set so late. This broken interface was not document to user in wacom man pages and users are more interested in BottomX/Y and pressure curves then the hopefully rare case of trying to debug new hardware. Signed-off-by: Chris Bagwell Reviewed-by: Peter Hutterer Reviewed-by: Ping Cheng Signed-off-by: Peter Hutterer commit c5425f05394082798207ae53fe0c4e034e59fffc Author: Peter Hutterer Date: Wed Feb 24 13:56:33 2010 +1000 man: remove reference to "USB" option. We don't parse this option anymore, it's implied unless ISDV4 is given. Signed-off-by: Peter Hutterer commit e07c501eb27357e70af85a930556948d5f1d3ac2 Author: Peter Hutterer Date: Wed Feb 24 13:53:21 2010 +1000 Update comment - wacom tool type property is read-only. Signed-off-by: Peter Hutterer commit ee4bb8e381bd52ef2cbaa04b57a07d6adfe5a0fa Author: Peter Hutterer Date: Wed Feb 24 11:21:14 2010 +1000 Only init pressure curve property for stylus and eraser. The mouse doesn't really have a pressure curve. And the pad doesn't either, so no need for this property. Signed-off-by: Peter Hutterer commit ab5672640586ee8b8e92e61b7b0b369768970f92 Author: Peter Hutterer Date: Tue Feb 23 21:24:04 2010 +1000 Only init strip and wheel buttons for the pad. AFAICT, there's no pens with scroll strips out there. Signed-off-by: Peter Hutterer commit 87c1d287b96bf335e16a96ecaf8a91ca085bf738 Author: Peter Hutterer Date: Tue Feb 23 18:01:21 2010 +1000 Only allow absolute mode for pads. The driver doesn't really know anymore whether a device is a core device or not since it may change at any time after an XIChangeHierarchy() call. Even then, a device is never a core device anyway - the master device it is attached to is. This code can't be triggered in server 1.7 or higher anyway, just purge it and return an error when trying to set the pad to relative mode. Signed-off-by: Peter Hutterer commit a3d4c8c5d0fa9eb30f201bd3e85584eb91ff9d98 Author: Peter Hutterer Date: Tue Feb 23 18:03:04 2010 +1000 Return XI_BadMode instead of BadMatch. BadMatch may "occur if an XSetDeviceMode request is made specifying a device that has no valuators and reports no axes of motion." XSetDeviceMode(3) This isn't the case for us, it's an invalid mode that has been selected here. Return XI_BadMode instead, the server will return this as BadMode as of: commit 02d1116e7eb84068fa32477f1640d29b0a81b638 Refs: xorg-server-1.7.99.901-12-g02d1116 Author: Peter Hutterer AuthorDate: Mon Jan 11 16:35:36 2010 +1000 Xi: assume BadMode for non-BadMatch errors returned from SetDeviceMode. Signed-off-by: Peter Hutterer commit 5a5370eda068e0d5271a61cee29e6c9658e242df Author: Peter Hutterer Date: Tue Feb 23 17:50:15 2010 +1000 Remove option replacement on SwitchMode call. I don't quite know why this is there but it strikes me as really really weird and the commit message for this code gives no indication on why it's necessary. Signed-off-by: Peter Hutterer commit 57fdd26c39eefa1c55437e5e1a8d02c51f74d104 Author: Peter Hutterer Date: Tue Feb 23 17:36:35 2010 +1000 Purge conversion proc and reverse conversion proc. The field is still there (for ABI reasons) but the server hasn't called either of these two since about 1.4 or so. Signed-off-by: Peter Hutterer commit 4a6760f71ca1dd5cd9ab0961c7b3519573dd5de1 Author: Peter Hutterer Date: Tue Feb 23 15:54:00 2010 +1000 Fix labelling in wcmInitialCoordinates. The axis lable describes the physical axis, not how the axis is currently used. Hence, the labelling for x/y on a wacom device is always for an absolute axis, even if the usage mode is relative. Signed-off-by: Peter Hutterer commit d8be906ae0509d8e2af30bcfd8398e656374d022 Author: Peter Hutterer Date: Tue Feb 23 15:51:09 2010 +1000 Rearrange wcmInitialCoordinates. Instead of a giant if/else block with essentially the same code, just work on both x/y and then just trigger for the right axis. This call isn't that expensive and readability trumps here. commit 521da1f0aa93dc239012149deef235d65b440bcd Author: Peter Hutterer Date: Tue Feb 23 15:42:54 2010 +1000 Be more explicit about axis check in wcmInitialCoordinates. Don't treat axis as a boolean variable, treat it as a number of 0 or 1 and error out if it is neither. Also - typo fix, "axes" is plural. Signed-off-by: Peter Hutterer commit ba90433d47d42f85cd135242bca9d580d270fd2c Author: Peter Hutterer Date: Tue Feb 23 14:27:38 2010 +1000 Purge unused fields from WacomModel struct. The following fields are not actually supported by any model we currently support, so the hooks are unused: Reset, EnableTilt, EnableSuppress, SetLinkSpeed since the WacomModel isn't exported ABI, we can just add it again if we ever need it in the future. Signed-off-by: Peter Hutterer commit 6cb822b7f7814059dc1302791721d021d843e4c9 Author: Peter Hutterer Date: Tue Feb 23 14:24:00 2010 +1000 Remove obsolete comment. wcmWait is not an XFrer86 V4 function. Signed-off-by: Peter Hutterer commit 68111d0bfa5813aae34d49dc894f5abb21fa0dce Author: Peter Hutterer Date: Tue Feb 23 11:16:51 2010 +1000 man: update man page for ButtonM option. Notes the usage of the driver-internal button mapping in more detail and updates the new default accommodating scroll wheels. Signed-off-by: Peter Hutterer commit 5780e59c43634a1458bb727fd90b63af228edfff Author: Peter Hutterer Date: Fri Feb 19 13:27:32 2010 +1000 Take scroll buttons into accounts when allocating buttons. X expects buttons 4-7 to be the scrolling directions, hence if our device has more than 3 buttons, we need to add 4 to the actual number of buttons reported. If the device has 3 buttons only, use 7 anyway so we can scroll. This affects the internal default button map as well, physical buttons need to be offset by 4 after the first three. Signed-off-by: Peter Hutterer Acked-by: Ping Cheng commit 9f9333c9a14c691cd4d9db483df63c69183c577d Author: Chris Bagwell Date: Tue Feb 23 20:55:39 2010 -0600 remove unused wcmUserResolv* variables. Cleanup. Variables not referenced by any real code. Signed-off-by: Chris Bagwell Signed-off-by: Peter Hutterer commit 00d77e5a913f619a206930009161f0a2da846d92 Author: Peter Hutterer Date: Mon Feb 22 15:52:53 2010 +1000 Remove keysym.h include - already included by Xwacom.h Signed-off-by: Peter Hutterer Acked-by: Ping Cheng commit 0f3e76dc2c62c3befd8f49a0e7498fa9bb183f60 Author: Peter Hutterer Date: Mon Feb 22 15:52:25 2010 +1000 Remove unnecessary fcntl.h include. Signed-off-by: Peter Hutterer Acked-by: Ping Cheng commit 102d57d618195cedb9cf90157e05eb282987345f Author: Peter Hutterer Date: Mon Feb 22 15:50:57 2010 +1000 Move exevents.h include to the files that need it. Signed-off-by: Peter Hutterer Acked-by: Ping Cheng commit 10e98ff6f6841a35ab5a89d2bb3202320e0cb32d Author: Peter Hutterer Date: Mon Feb 22 15:48:35 2010 +1000 Remove misc.h include - not needed. Signed-off-by: Peter Hutterer Acked-by: Ping Cheng commit c5c82b0fb4fdfccdc4a5e57684b9a359c9a488b1 Author: Peter Hutterer Date: Mon Feb 22 15:46:35 2010 +1000 Remove xisb.h include, use unistd.h instead. What we really need is usleep() and close(), both in unistd.h. Signed-off-by: Peter Hutterer Acked-by: Ping Cheng commit 49a633ea2913cf3df4c76a75760dc49224dc7818 Author: Peter Hutterer Date: Mon Feb 22 15:45:33 2010 +1000 Move xf86_OSproc include to the files that need it. Signed-off-by: Peter Hutterer Acked-by: Ping Cheng commit 8464a563ff9733d4c9f157c110328e2022ae4027 Author: Peter Hutterer Date: Mon Feb 22 15:42:56 2010 +1000 Move linux/input includes to wcmUSB.c Signed-off-by: Peter Hutterer Acked-by: Ping Cheng commit 0bb106dd19d3efea6a2bca21569f943a60ba2599 Author: Peter Hutterer Date: Mon Feb 22 15:34:50 2010 +1000 Move RESET_RELATIVE into ISDV4 code. This macro isn't needed anywhere else. Signed-off-by: Peter Hutterer Acked-by: Ping Cheng commit 705b881397589ceae57027e1b0840d25ed44cbac Author: Peter Hutterer Date: Mon Feb 22 15:29:12 2010 +1000 Remove QNX support defines. I doubt anyone has tested this driver on QNX for a while. Support for QNX was removed from the server in July 2008. (X server commit 0ff5bc404842f7264a8e77f9e2a0bd8d0b051356) Signed-off-by: Peter Hutterer Acked-by: Ping Cheng commit f1fb5c2037508fde409fd6f00bfaa62c4eb7cf69 Author: Peter Hutterer Date: Mon Feb 22 15:27:45 2010 +1000 Include config.h from wcmTouchFilter. Not including config.h may lead to quite interesting effects, often on 64 bit boxes. Signed-off-by: Peter Hutterer Acked-by: Ping Cheng commit d1fdc839fd1a0bbbb70c2063c2bd36f78c5bcf88 Author: Peter Hutterer Date: Mon Feb 22 15:25:35 2010 +1000 Declare functions once, then include the header files. Instead of declaring functions in the C file and externing them from wherever they are used, just declare them once in the header file. Signed-off-by: Peter Hutterer Acked-by: Ping Cheng commit e6d2b3c8a7c09c4258e5d25f11bcca1c8c4d5501 Author: Peter Hutterer Date: Mon Feb 22 15:12:40 2010 +1000 Remove unneeded function declaration. Signed-off-by: Peter Hutterer Acked-by: Ping Cheng commit 0815cc870bc242756b6b9743d975f3c5dcb9d7e4 Author: Ping Cheng Date: Thu Feb 18 10:54:28 2010 +1000 Fix copy/paste error in license header referring to LGP instead of GPL. xf86-input-wacom (and linuxwacom) is licensed under the GPL, not the LGPL as the first paragraph of the license blurb states: * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License * as published by the Free Software Foundation; either version 2 * of the License, or (at your option) any later version. The reference to LGPL to see the details of the license was the result of a copy/paste error and has spread through all source files thanks to more copy/paste. Signed-off-by: Ping Cheng Signed-off-by: Peter Hutterer commit cd2ed486b739c1b240a85394e819a93e55cd119c Author: Peter Hutterer Date: Wed Feb 17 16:36:26 2010 +1000 Remove unnecessary static declaration. This function is defined just three lines down, we don't need a declaration for it. Signed-off-by: Peter Hutterer Reviewed-by: Ping Cheng commit 58c9e59b03c7e439b81bb5c05841bbb02883404f Author: Chris Bagwell Date: Sun Feb 14 15:14:46 2010 -0600 centralize setting default values to single place Setting relative mode default for bamboo was delayed only because common->tablet_id wasn't avaliable early enough. Now that its value is around, move setting default values to single location. Signed-off-by: Chris Bagwell Signed-off-by: Peter Hutterer commit 2805bae9797104b641db32740b5ba41d4642d5c6 Author: Chris Bagwell Date: Sun Feb 14 13:43:43 2010 -0600 Find tablet_id earlier in init sequence. common->tablet_id is used in wcmInit() to decide things like defaulting to relative mode for bamboo P&T's but it is not set until after return from first call to wcmInit(). Now query and store the tablet_id at same time that we are discovering its other features. Signed-off-by: Chris Bagwell Reviewed-by: Ping Cheng Signed-off-by: Peter Hutterer commit 052efcae93994eb17bbe7532c3bbbfb3443b37ab Author: Przemo Firszt Date: Sat Feb 13 13:15:09 2010 +0000 Fix typo ; -> , in xsetwacom.c The typo is in xsetwacom: .prop_offset = 10; should be .prop_offset = 10, Signed-off-by: Przemo Firszt Signed-off-by: Peter Hutterer commit 12ad08b854b631556171e7a9c1028aa51082f038 Author: Przemo Firszt Date: Wed Feb 10 22:31:14 2010 +0000 Add missing .prop_offset = 10 to SBottomX2 property Another one attached -- Przemo From 058aa88f7b320d743f3642b8f543be6736d33192 Mon Sep 17 00:00:00 2001 From: Przemo Firszt Date: Wed, 10 Feb 2010 22:19:41 +0000 Subject: [PATCH 3/3] Add missing .prop_flag to SBottomY2 Signed-off-by: Przemo Firszt Signed-off-by: Peter Hutterer commit a6620e2c8b04482e52d5674623deac2c00c2e4e2 Author: Przemo Firszt Date: Wed Feb 10 22:08:58 2010 +0000 Add missing .prop_offset = 10 to SBottomX2 property Signed-off-by: Przemo Firszt Signed-off-by: Peter Hutterer commit a7b543f4fa2c09df52db5c0819ef7684eee9e442 Author: Gaetan Nadon Date: Mon Feb 8 20:42:23 2010 -0500 config: move compiler flags to src/Makefile.am The -fno-strict-aliasing option was added in CWARNFLAG some times ago. Aside from the issue that it isn't a warning flag, being in this macro had the side-effect of affected all modules when just a few needed it. The plan is to transfer this option back to the module that are actually using CWARNFLAG. Each module can then decide if they really want it or not. This patch is just prep work. The net change will be that strict aliasing optimization will be performed (by default in -O2) and -Wstrict-aliaing=2" will be added to flag suspicious code. This has not been submitted for review yet. Signed-off-by: Gaetan Nadon Signed-off-by: Peter Hutterer commit 2ceff910bfe6d7a8a92ff3d7373e5ff4d0a19105 Author: Peter Hutterer Date: Sat Jan 23 20:32:04 2010 +1300 man: remove leftover CVS tag. Signed-off-by: Peter Hutterer Reviewed-by: Ping Cheng commit e90cb9a4ebaf68d4b417b71feee0a26d17d12349 Author: Peter Hutterer Date: Mon Feb 8 11:35:36 2010 +1000 xsetwacom: shut up compiler warning. d cannot be used uninitialized given the code flow, but gcc doesn't know that. Signed-off-by: Peter Hutterer Reviewed-by: Ping Cheng commit cbc8e88b1440af3f9206797a199374a8c6f991d9 Author: Peter Hutterer Date: Fri Feb 5 15:58:59 2010 +1000 Remove a few excessive braces. Signed-off-by: Peter Hutterer Reviewed-by: Ping Cheng commit 065ba1d4d90e4cbeb38a8475a75217c2081ad0b1 Author: Peter Hutterer Date: Fri Feb 5 15:52:59 2010 +1000 Remove a bunch of unused defines. Looks like they became obsolete with b3cba4e3543a98103282ba8fa55bf38012d23d9f. Signed-off-by: Peter Hutterer Reviewed-by: Ping Cheng commit cf182bb4c65c0a43dad15bcff48c0c17fb652506 Author: Peter Hutterer Date: Fri Feb 5 15:22:11 2010 +1000 wcmDeviceTypeKeys: use sscanf instead of manual conversion. Signed-off-by: Peter Hutterer Reviewed-by: Ping Cheng commit 939bb7e9dad031926252e9da6f329f62b2366bcd Author: Peter Hutterer Date: Fri Feb 5 15:12:57 2010 +1000 wcmDeviceTypeKeys: Move some serial-only stuff into the serial condition. Neither the strstr nor the memset is needed for USB devices. Signed-off-by: Peter Hutterer Reviewed-by: Ping Cheng commit 59e9e97e6e21fbb01856e89b5a2dfe7ede0a7823 Author: Peter Hutterer Date: Fri Feb 5 15:09:12 2010 +1000 Add explanatory comment about what wcmDeviceTypeKeys actually does. Signed-off-by: Peter Hutterer Reviewed-by: Ping Cheng commit 3402bd24b91f651215cc60f255cd9678f24a64fe Author: Peter Hutterer Date: Fri Feb 5 15:07:08 2010 +1000 Un-nest ID check. This doesn't have a functional change, but it makes the code a tad easier to read. Signed-off-by: Peter Hutterer Reviewed-by: Ping Cheng commit a8d82d4a94b06b715f55d686d567cc6d34f87968 Author: Peter Hutterer Date: Fri Feb 5 15:04:24 2010 +1000 Remove erroneous comment. This part doesn't test if the tool is available, it simply copies the bits from the kernel. Testing is done later, somewhere else. Signed-off-by: Peter Hutterer Reviewed-by: Ping Cheng commit c90350d148d3c2feec2bceedb83c61a81608a4fc Author: Chris Bagwell Date: Sun Feb 7 20:49:55 2010 -0600 Fix zoom gesture crash. Make emitKeysym public. emitKeysym is used by multiple files so can't be static. Made public and renamed to wcmEmitKeysym to better prevent symbol name conflicts. This also fixes a crash with zoom gestures. Signed-off-by: Chris Bagwell Signed-off-by: Peter Hutterer commit 9a25bb87e7e7dc9ddf80b842b856c9bab6641460 Author: Denis Auroux Date: Thu Feb 4 10:27:46 2010 +1000 xsetwacom: stop processing options after the last option was encountered. Adding a "+" at the beginning of the getopt_long parameter string so that it won't try to look for options after non-options (in particular, a negative number in a set command is no longer considered to be an invalid command-line option). Signed-off-by: Denis Auroux Signed-off-by: Peter Hutterer commit f18af429dd7eddbb5df64a337d138ad9596c87c7 Author: Przemysław Firszt Date: Tue Feb 2 19:46:29 2010 +0000 Rename xf86Wcm{Read,Write} to xf86{Read,Write}Serial The xf86Wcm{Read,Write} macros no longer exist, so the modified comments are more precise with xf86{Read,Write}Serial Signed-off-by: Przemo Firszt Reviewed-by: Ping Cheng Signed-off-by: Peter Hutterer commit 77e3aba3ed9bf2ed09f25f277a2647887c9f23fe Author: Przemo Firszt Date: Sun Jan 24 16:53:58 2010 +0000 Rename xf86Wcm* to wcm* - part 3 xf86WcmInitialToolSize -> wcmInitialToolSize xf86WcmSetPadCoreMode -> wcmSetPadCoreMode xf86WcmDevSwitchModeCall -> wcmDevSwitchModeCall xf86WcmChangeScreen -> wcmChangeScreen xf86WcmInitialCoordinates -> wcmInitialCoordinates xf86WcmVirtualTabletSize -> wcmVirtualTabletSize xf86WcmSendButtons -> wcmSendButtons xf86WcmVirtualTabletPadding -> wcmVirtualTabletPadding xf86WcmFingerTapToClick -> wcmFingerTapToClick xf86WcmSetScreen -> wcmSetScreen xf86WcmAllocate -> wcmAllocate xf86WcmInitialTVScreens -> wcmInitialTVScreens xf86WcmSendEvents -> wcmSendEvents xf86WcmDevConvert -> wcmDevConvert xf86WcmDevReverseConvert -> wcmDevReverseConvert xf86WcmDevProc -> wcmDevProc xf86WcmDevControlProc -> wcmDevControlProc xf86WcmDevChangeControl -> wcmDevChangeControl xf86WcmDevOpen -> wcmDevOpen xf86WcmInitTablet -> wcmInitTablet xf86WcmDevSwitchMode -> wcmDevSwitchMode xf86WcmSetProperty -> wcmSetProperty xf86WcmReady -> wcmReady xf86WcmDevReadInput -> wcmDevReadInput xf86WcmDevClose -> wcmDevClose xf86WcmOpen -> wcmOpen xf86WcmInitArea -> wcmInitArea xf86WcmRegisterX11Devices -> wcmRegisterX11Devices xf86WcmKbdCtrlCallback -> wcmKbdCtrlCallback xf86WcmBellCallback -> wcmBellCallback xf86WcmKbdLedCallback -> wcmKbdLedCallback xf86WcmCheckSource -> wcmCheckSource xf86WcmFingerZoom -> wcmFingerZoom xf86WcmFingerScroll -> wcmFingerScroll xf86WcmSwitchLeftClick -> wcmSwitchLeftClick xf86WcmSendVerticalScrollEvent -> wcmSendVerticalScrollEvent xf86WcmSendHorizontalScrollEvent -> wcmSendHorizontalScrollEvent xf86WcmUninit -> wcmUninit xf86WcmInit -> wcmInit xf86WcmMatchDevice -> wcmMatchDevice xf86WcmVersionRec -> wcmVersionRec xf86WcmPlug -> wcmPlug xf86Wcmplug -> wcmUnplug Signed-off-by: Przemo Firszt Reviewed-by: Ping Cheng Signed-off-by: Peter Hutterer commit 1a5dd3a205c4a3a1d5f14305f5d3e98b1573017d Author: Przemysław Firszt Date: Fri Jan 29 20:13:03 2010 +0000 Fix typo in comment: xf86WcmReadSerial is xf86ReadSerial From 482e08fd52c95a0b1197a004086907a9e6ed3230 Mon Sep 17 00:00:00 2001 From: Przemo Firszt Date: Fri, 29 Jan 2010 18:42:19 +0000 Subject: [PATCH 1/2] Fix typo in comment: xf86WcmReadSerial is xf86ReadSerial Signed-off-by: Przemo Firszt Signed-off-by: Peter Hutterer commit e756c8e0e013340e91589a5576ec83f847e5a689 Author: Gaetan Nadon Date: Mon Jan 25 15:38:02 2010 -0500 config: add make target to provide the INSTALL file. The file is globally provided by the util-macros module through the XORG_INSTALL macro in XORG_DEFAULT_OPTIONS. Signed-off-by: Gaetan Nadon Signed-off-by: Peter Hutterer commit d1aaa376207b5aef6a058c5f3a4cae7121f918a0 Author: Przemo Firszt Date: Sun Jan 17 11:54:40 2010 +0000 Move wcmTilt2Rotation function to wcmFilter.c wcmTilt2Rotation function is now in wcmFilter.c, so wcmTilt2Rotation.c has been removed. Signed-off-by: Przemo Firszt Tested-by: Ping Cheng Signed-off-by: Peter Hutterer commit 69aa4e1139cc81436ea7658b8e9d97f5c6860607 Author: Ping Cheng Date: Sat Jan 16 10:12:12 2010 +0000 Being part of the tilt2Rotation team For the fun of coding and hopefully, as a by-product, improving the precision Signed-off-by: Ping Cheng Signed-off-by: Peter Hutterer commit e4aed3e13f00d7e6fc2d2d1379a92187203413a2 Author: Przemo Firszt Date: Sat Jan 16 10:01:01 2010 +0000 Remove hardcoded rotation tables from wcmTilt2Rotation.c Rotation tables are replaced with atan2 function. It gives the same functionality as rotation tables. Signed-off-by: Przemo Firszt Tested-by: Ping Cheng Signed-off-by: Peter Hutterer commit c8176267aec7dbc6cd248f9bd2a9c36df88c84cd Author: Gaetan Nadon Date: Sun Jan 17 09:20:16 2010 -0500 .gitignore: use common defaults with custom section # 24239 Using common defaults will reduce errors and maintenance. Only the very small or inexistent custom section need periodic maintenance when the structure of the component changes. Do not edit defaults. Signed-off-by: Gaetan Nadon Signed-off-by: Peter Hutterer commit ad4f40386739ac87adefce5493554df6a8a118e2 Author: Chris Bagwell Date: Thu Jan 14 13:32:52 2010 -0600 Default touch Mode to Relative for Bamboo P&T Touch screens and Touch Pads are sharing same type. Make their Mode defaults match normal operating behavior which means change Bamboo P&T default to relative. Simplify error case and rely of default values from initialization phase. Signed-off-by: Chris Bagwell Tested-by: Ping Cheng Signed-off-by: Peter Hutterer commit d6a194c80623c5306d60ee3f234863b3b4bacc6d Author: Peter Hutterer Date: Fri Jan 15 15:42:49 2010 +1000 wacom 0.10.4 Signed-off-by: Peter Hutterer commit edf28df08b557ea6b7edb6c721670745c9e59cb6 Author: Peter Hutterer Date: Thu Dec 24 21:18:10 2009 +1000 Protect against input ABI 9 and the input attributes. XINPUT_ABI 9 introduced InputAttributes to NIDR. Attributes are assigned by the config backend (or the configuration). Hence, by the time they hit the driver they've been converted into options already. From the driver's POV, duplicating the options is enough, especially since the driver cannot know which attributes apply to the device anyway. Signed-off-by: Peter Hutterer commit 01ff37c1a0a1bf74c8efb0ad2ee7b1c1792f98df Author: Przemo Firszt Date: Sat Jan 9 17:18:01 2010 +0000 Add Meta keys to xsetwacom Signed-off-by: Przemo Firszt Signed-off-by: Peter Hutterer commit 216c61a249c73aa44d98d837f1b5ae94a5a51559 Author: Ron Lee Date: Sat Jan 9 22:38:58 2010 +1030 Install the fdi as DATA not a SCRIPT This is xml it isn't executable. Signed-off-by: Ron Lee Signed-off-by: Peter Hutterer commit d4d6dd1aca5c2b79cfb68211491c01442f7597d2 Author: Peter Hutterer Date: Wed Jan 6 13:14:23 2010 +1000 xsetwacom: the capacity property is 32 bit. Reported-by: Chris Bagwell Signed-off-by: Peter Hutterer commit edf71d2a664f6ed2a3ecccf77760c31410017444 Author: Przemo Firszt Date: Mon Jan 4 23:13:06 2010 +0000 Remove duplicate comment in xf86WacomDefs.h Signed-off-by: Przemo Firszt Signed-off-by: Peter Hutterer commit 118027d6704ad8b3162ed06fc02d1dbdcc877485 Author: Przemo Firszt Date: Mon Jan 4 18:48:54 2010 +0000 Fix wacom.fdi location in Makefime.am Signed-off-by: Przemo Firszt Signed-off-by: Peter Hutterer commit e9ab3c9c35d0991fb7c7624cccd76baae4e02bcf Author: Ping Date: Wed Dec 30 21:12:47 2009 -0800 Restore valid small data packets Protocl 4 devices may send small, such as 2 or less, valid events in one data packet Signed-off-by: Ping Cheng Signed-off-by: Peter Hutterer commit 1583ee5a9fd9486d540ecf639dda53d5e2e7502e Author: Peter Hutterer Date: Tue Dec 29 21:01:43 2009 +1000 Update README to reflect current state a bit better. This driver is an X11 driver only, and the configure options are explained by configure --help. Let's not mirror this in the README, it may diverge otherwise. Add a very simple explanation on how to set up the driver fro hotplugging with HAL, xorg.conf configuration is better explained in the man page. Signed-off-by: Peter Hutterer commit 27addb06d4ebf6f8988a14174b2823c1a4ab1504 Author: Przemysław Firszt Date: Wed Dec 23 15:20:57 2009 +0000 Rename xf86Wcm* to wcm* - part 2 Rename xf86WcmTilt2R to wcmTilt2R Rename xf86WcmMappingFactor to wcmMappingFactor Change xf86WcmWrite to wcmWriteWait in comment Rename xf86WcmInitialScreens to wcmInitialScreens Rename xf86WcmDesktopSize to wcmDesktopSize Reneme xf86WcmIsWacomDevice to wcmIsWacomDevice Rename xf86WcmRotateTablet to wcmRotateTablet Rename xf86WcmSuppress to wcmCheckSuppress It's wcmCheckSuppress instead of wcmSuppress to avoid collision with variable with the same name used in xf86WacomDefs.h Rename some Wcm* to wcm* to keep function names consistent Signed-off-by: Przemo Firszt Signed-off-by: Peter Hutterer commit 2a388e56688300c437926eff2915b10e6e6a06d9 Author: Peter Hutterer Date: Sun Dec 27 08:27:31 2009 +1000 xsetwacom: get "all" is a read-only parameter. Signed-off-by: Peter Hutterer commit 7972d9a18fba31d3f7da71aab8f10c10b84c3dd4 Author: Peter Hutterer Date: Sun Dec 27 08:23:49 2009 +1000 xsetwacom: special output for write-only options. So far we only have xyDefault as write-only option but having some more user-friendly output is helpful. Signed-off-by: Peter Hutterer commit 25abbc8e8268466bd720378e7c1e2156206d66e5 Author: Peter Hutterer Date: Thu Dec 24 21:20:48 2009 +1000 xsetwacom: Print error message when attempting to change read-only options. Signed-off-by: Peter Hutterer commit 62900e48b54855daec8a74f6b28591411c2f76fa Author: Peter Hutterer Date: Thu Dec 24 21:07:58 2009 +1000 Re-indent property code to what's used in the rest of the driver. All files use 8-char tab indentation, not 4 spaces. Re-indent to be conform with the rest of the code. Signed-off-by: Peter Hutterer commit 988bc36f58da94eb67f83e33b9b1f2499acaba36 Author: Peter Hutterer Date: Thu Dec 24 08:55:16 2009 +1000 wacom 0.10.3 Signed-off-by: Peter Hutterer commit 0ac1c3810824b43fb8439d72d116e379e01e5030 Author: Ping Cheng Date: Tue Dec 22 18:06:34 2009 -0800 Fix a tablet rotation bug. Caused by the misuse of maximum X and Y. Signed-off-by: Ping Cheng Signed-off-by: Peter Hutterer commit 82408de786df12efa1f5f0ec9d0f5754f9c61bf7 Author: Ping Cheng Date: Tue Dec 22 17:59:41 2009 -0800 Validate the active tablet area before initializing the area Signed-off-by: Ping Cheng Signed-off-by: Peter Hutterer commit 72c69cfc60d6b762415828930a63e485aa00185f Author: Ping Cheng Date: Tue Dec 22 17:48:09 2009 -0800 Add local maxX, maxY, resolX, and resolY Instead of switching maximum and resolution back and forth between touch and penabled devices globally, we define them into WacomDevice. The values are initialized in xf86WcmInitialToolSize once and used through out the life of the device. Signed-off-by: Ping Cheng Signed-off-by: Peter Hutterer commit fe2d108ac2e2bbddc1a8dba96550e737a15aee9e Author: Ping Cheng Date: Tue Dec 22 17:12:05 2009 -0800 Add routine wcmRotateCoordinates Both wcmCommon.c and wcmTouchFilter.c need to rotate x and y before sending X input events. wcmRotateCoordinates is added to wcmCommon.c so it can serve both cases. Signed-off-by: Ping Cheng Signed-off-by: Peter Hutterer commit aa5c91c68ce9e3c758b584359f9c18f6ce88250e Author: Ping Cheng Date: Tue Dec 22 18:14:58 2009 -0800 xsetwacom: update usage help for Rotate option Signed-off-by: Ping Cheng Signed-off-by: Peter Hutterer commit 398689d3a26bd5aa4ea715e9690a233b7a02fd70 Author: Peter Hutterer Date: Wed Dec 23 13:29:28 2009 +1000 xsetwacom: make parameters case-insensitive. This replicates the behaviour of the old xsetwacom, making xsetwacom ... TopX the same as xsetwacom ... topx. Reported-by: Ping Cheng Signed-off-by: Peter Hutterer commit c68fed3f13ca1335af548b88da72c27362d10ebd Author: Peter Hutterer Date: Wed Dec 23 11:25:20 2009 +1000 Add "Wacom Debug Levels" property. This property is only present if compiled with --enable-debug and allows for run-time modification of the debug levels. Values supported are 0 to 10, with 10 being the most verbose. xsetwacom --set "device name" DebugLevel 10 xsetwacom --set "device name" CommonDBG 10 Since this is a driver-internal property clients are discouraged from using this property for any purpose. It may disappear or change without warning in future releases of the driver. Signed-off-by: Peter Hutterer commit 2e03f1cde879fb9d16d21d79f4c71fcab703a578 Author: Peter Hutterer Date: Wed Dec 23 11:07:52 2009 +1000 Remove now superfluous name prints. The DBG macro prints the device name/device file automatically. Signed-off-by: Peter Hutterer commit 2429513915ee11e42e44068c1f8f66ff179cd534 Author: Peter Hutterer Date: Wed Dec 23 10:38:11 2009 +1000 Auto-prepend device name/file to debug messages. Add a new "name" field to the WacomDeviceRec. This field is at the same offset as the wcmDevice Field of the WacomCommonRec, hence the access to either is the same if casted. Then use this field to auto-prepend either the device name or the device file wherever a DBG macro is used. The output for DBG on priv is now (II) Wacom Intuos4 6x9 (xf86WcmMappingFactor): X factor = 0.0258, Y factor = 0.0309 and for DBG on common (II) /dev/input/event13 (wcmReadPacket): buffer has 112 bytes Signed-off-by: Peter Hutterer commit bdc40d1a769229082cf91f8fd344f230996a6440 Author: Peter Hutterer Date: Wed Dec 23 10:25:05 2009 +1000 common and priv both have debugLevel, just pass them in as-is. Signed-off-by: Peter Hutterer commit ea0591783f7c32dc9c650bc1b1f12a7c62379991 Author: Peter Hutterer Date: Wed Dec 23 10:03:16 2009 +1000 Merge the function name into the DBG macro. Each time DBG is called, prefix with __func__ regardless of the actual message. An empty DBG string thus prints "function name:". Signed-off-by: Peter Hutterer commit 0501b9977050dbec74c72dbd8c78f2b72df43ab9 Author: Peter Hutterer Date: Wed Dec 23 09:43:12 2009 +1000 Merge the xf86Msg into the DBG macro. All DBG macros call this function, there's no need to have it inside the macro, we might as well leverage __VA_ARGS__. Signed-off-by: Peter Hutterer commit 2fa1308110639d89c63a197efb53bd3b3791a51f Author: Przemo Firszt Date: Tue Dec 22 19:49:54 2009 +0000 Rename xf86Wcm* to wcm* Rename xf86WcmFilterCoord to WcmFilterCoord Rename xf86WcmSetPressureCurve to wcmSetPressureCurve Rename xf86WcmFilterIntuos to wcmFilterIntuos Rename xf86WcmSerialValidate to wcmSerialValidate Rename xf86WcmWaitForTablet to wcmWaitForTablet Rename xf86WcmWriteWait to wcmWriteWait Rename xf86WcmWait to wcmWait Rename xf86WcmReadPacket to wcmReadPacket Rename xf86WcmEvent* to wcmEvent* Signed-off-by: Przemo Firszt Signed-off-by: Peter Hutterer commit a2f89b40e54e2abc854af42453160488ff22499f Author: Ping Cheng Date: Mon Dec 21 16:52:28 2009 -0800 Remove area overlap check for area property Temporarily change the area to the new coordinates, do the range overlap check and then change it back to the original. This is needed since otherwise the area overlap check always fails (since the new area will be mostly identical to the current one). New behaviour: all four coordinates set to -1 reset the area to the defaults. Signed-off-by: Ping Cheng commit 781bb48a2ccfb2f6c12f53bc93f5a123af65bc26 Author: Ping Cheng Date: Mon Dec 21 13:32:54 2009 -0800 Send horizontal scroll gesture with button 6 and 7 events On older X servers, button 6 and 7 don't do anything special; on X server 1.7 and later, they are being translated into left and right scroll events. This patch changes left/right arrow to button 6/7 for horizontal scroll events. Signed-off-by: Ping Cheng Signed-off-by: Peter Hutterer commit e243805faabc14826bcea227c6ed2d0a13a3467a Author: Peter Hutterer Date: Tue Dec 15 07:34:10 2009 +1000 Use xf86Msg instead of ErrorF for debug messages. ErrorF is supposed to be used in the server, drivers are better off calling xf86Msg since this uses the appropriate prefixes. Signed-off-by: Peter Hutterer commit c04fb18412be3908678cf3fc68a899272e6835bb Author: Peter Hutterer Date: Mon Dec 21 16:49:35 2009 +1000 Fix touch property out-of-bounds memory access. 4fd2af39a5432eaad03af6a48cd16988a165fbbb split out the touch setting from a combined property into its own separate one. The index didn't get updated though, which means wcmTouch was assigned random garbage. Signed-off-by: Peter Hutterer Tested-by: Ping Cheng commit a6ac60245f3c121979c18e70b40045aa751d6c54 Author: Peter Hutterer Date: Thu Dec 17 11:44:38 2009 +1000 xsetwacom: add support for "xsetwacom --get all" Signed-off-by: Peter Hutterer commit c6c8f23a17390d7f11d92e7cbbe70ca1a57b62e2 Author: Peter Hutterer Date: Thu Dec 17 11:43:00 2009 +1000 xsetwacom: split get() into get() and get_param(). This makes get_param() the same signature as the other, specific, get() functions and get() a simple wrapper around it. Signed-off-by: Peter Hutterer commit 0937d89a8d364b1150d68097527f2e92ba2639c6 Author: Peter Hutterer Date: Thu Dec 17 10:24:00 2009 +1000 xsetwacom: init nwords to 0 before adding to it in strjoinsplit. nwords is a return value and needs to be initialized before adding to it. Reported-by: Przemysław Firszt Signed-off-by: Peter Hutterer commit b7e90296453b536b00a2857d978fd53a72d77c0b Author: Przemo Firszt Date: Thu Dec 17 20:24:38 2009 +0000 Remove redundant xf86WcmMappingFactor calls No need to call xf86WcmMappingFactor before xf86WcmInitialCoordinates because xf86WcmInitialCoordinates calls it anyway. Signed-off-by: Przemo Firszt Signed-off-by: Peter Hutterer commit 463c5d1effa3505d54a5a520d143919ad1befc69 Author: Ping Cheng Date: Tue Dec 15 21:05:38 2009 -0800 Support 2FGT gesture There are 3 gesture features: second finger tap to right click (GESTURE_TAP_MODE) vertical/horizontal scroll (GESTURE_SCROLL_MODE) and zoom in/out (GESTURE_ZOOM_MODE) Signed-off-by: Ping Cheng Signed-off-by: Peter Hutterer commit dea6383b30e1695acc6183aa098a4e056640596c Author: Peter Hutterer Date: Thu Dec 17 11:50:34 2009 +1000 xsetwacom: don't line-break after 32 bit values and Absolute/Relative. Signed-off-by: Peter Hutterer commit a11cbb104b7a511d0f1292d169a9738ae4f91476 Author: Peter Hutterer Date: Tue Dec 15 13:48:44 2009 +1000 xsetwacom: don't release modifiers unless explicitly stated modifiers are interpreted as "+keysym" only if the + or - are missing. This allows for configurations like "key shift" to work properly. Signed-off-by: Peter Hutterer commit dbec45bbd0d594a1f4229f6ad7e7a71890331305 Author: Peter Hutterer Date: Tue Dec 15 13:33:51 2009 +1000 xsetwacom: fix handling of unknown modifiers. Previous conditions were broken, key F1 wouldn't parse (key f1 would though) and providing a real modifier (Shift_L) would break too. Function keys (lowercased) are now handle like modifier keys, if a modifier couldn't be mapped check with XStringToKeysy if it's valid. Signed-off-by: Peter Hutterer commit b9d5e7319f83ee608a216a17e9a59621bedb7e58 Author: Peter Hutterer Date: Tue Dec 15 12:29:17 2009 +1000 Release keys still down when a button is released. xsetwacom --set "Button1" "key +shift" keeps the shift key down until the button is released, allowing it to work like a real modifier. Signed-off-by: Peter Hutterer commit b009e88c4ca2a72d286d15b44426150e792acd5d Author: Peter Hutterer Date: Tue Dec 15 12:11:12 2009 +1000 Fix up btnaction property setting. Buggy behaviour meant that unsetting a property got never removed from the property handlers. Since we only support one action per button anyway, simply overwriting the current one is enough. The static array isn't enough either, it's shared within the driver, hence updating the property on one device will update it on the other. Move it into the priv struct. Signed-off-by: Peter Hutterer commit 1721220517c2e5d4833ea1bb116b10c1e4e2fa62 Author: Ping Cheng Date: Mon Dec 14 20:51:13 2009 -0800 Set Touch and Gesture options during the configuration We moved the touch and gesture option check from usbWcmInit to wcmValidateDevice.c since usbWcmInit gets called every time the device is opened, which is unnecessary for option check in most cases. The Tablet PC Button option should also be dealt in the same way. But it requires extra defines to make it clean, which will affect more files in the driver. We'll do it in a separate patch later. Signed-off-by: Ping Cheng Signed-off-by: Peter Hutterer commit 7c3c5c02cc80596f89a56b19eae40a28627162bb Author: Ping Cheng Date: Wed Dec 16 09:38:40 2009 +1000 Enable Serial ISDV4 2FGT tool type in wcmDeviceTypeKeys Signed-off-by: Ping Cheng Signed-off-by: Peter Hutterer commit c1c5e4c91b2474fc3bce7029181af61e369bd7d3 Author: Ping Cheng Date: Mon Dec 14 21:29:53 2009 -0800 Report time stamp for 2FGT gesture 2FGT gesture needs to know the time that an event was received to decide what gesture mode users may want. Signed-off-by: Ping Cheng Signed-off-by: Peter Hutterer commit 44ee577ee561c4c27cf05c9c32e57b947972c982 Author: Peter Hutterer Date: Tue Dec 15 11:56:29 2009 +1000 xsetwacom: button numbers are one-indexed, store button action accordingly. Signed-off-by: Peter Hutterer commit 5e94aa26a263de8184695fb66a7e95e89a6df0bf Author: Peter Hutterer Date: Mon Dec 14 16:42:27 2009 +1000 Fix typo: xf86WcmVirtualTabletSize → xf86WcmVirtualTabletSize Signed-off-by: Peter Hutterer Reviewed-by: Ping Cheng commit 7958f096a82d7c8c5f27b9a37ae1e9036343d5e5 Author: Peter Hutterer Date: Mon Dec 14 16:50:55 2009 +1000 Remove stray semicolon after if condition No wonder changing the TopY didn't work... Signed-off-by: Peter Hutterer commit 05c37b09260ee0388cb4de2e0a5825df8e96b2aa Author: Peter Hutterer Date: Mon Dec 14 16:14:56 2009 +1000 xsetwacom: don't crash on xsetwacom get without a param. Signed-off-by: Peter Hutterer commit 70a1a852f62d9439cbd3ca09ca500cc95716d88a Merge: bffe7c23591c 3977da27de92 Author: Peter Hutterer Date: Mon Dec 14 09:01:42 2009 +1000 Merge branch 'xsetwacom' Conflicts: src/wcmXCommand.c commit bffe7c23591c0d1ae70e73a27fab669d4a190ade Author: Przemo Firszt Date: Sun Dec 13 17:28:59 2009 +0000 Quiet gcc warning about not used xf86WcmKbdLedCallback function xf86WcmKbdLedCallback is used only for ABI < 5, so there is no need to define it for newer ABI. Signed-off-by: Przemo Firszt Signed-off-by: Peter Hutterer commit 3977da27de9240041a64b7c8a1c731d2102b0104 Author: Peter Hutterer Date: Fri Dec 11 11:54:16 2009 +1000 xsetwacom: handle "on"/"off" for boolean properties. Reported-by: CJ van den Berg Tested-by: CJ van den Berg Signed-off-by: Peter Hutterer commit a8a0a65457d2f7516c5781bddba23acfdd263889 Author: Ping Cheng Date: Fri Dec 11 14:21:47 2009 -0800 Update TPCButton check Also updated some TPCButton related comments Signed-off-by: Ping Cheng Signed-off-by: Peter Hutterer commit 3c5ce9f7052c1a51208458c588c82bff56ca9ff2 Author: Przemo Firszt Date: Wed Dec 9 20:17:17 2009 +0000 Rename xf86Wcm* generic area check functions to Wcm* (xf86)WcmPointInArea, (xf86)WcmAreasOverlap & (xf86)WcmAreaListOverlaps are not part of X interface, so xf86 prefix is not needed. Signed-off-by: Przemo Firszt Signed-off-by: Peter Hutterer commit 34042b54581ad02b64452c4a898f2307718ae511 Author: Przemo Firszt Date: Wed Dec 9 19:56:47 2009 +0000 Move xf86WcmPointInArea, xf86WcmAreasOverlap & xf86WcmAreaListOverlap Those 3 functions shouldn't be in wcmConfig.c as they have nothing to do with configuring the device. wcmCommon.c is much better place for generic functions. Signed-off-by: Przemo Firszt Signed-off-by: Peter Hutterer commit 29aea09089a670141744843ea904afd500acc6c5 Author: Ping Cheng Date: Thu Dec 10 20:37:24 2009 -0800 2FGT data parsing was misplaced Signed-off-by: Ping Cheng Signed-off-by: Peter Hutterer commit 5040b6d74c10376edd755bbf58e97d4b45df9eb9 Author: Peter Hutterer Date: Fri Dec 11 13:25:39 2009 +1000 Silence valgrind warning about unitialized bytes. valgrind doesn't understand the ioctl so it believes that the matching bitfields are unitialized. Simply init to 0 to reduce the noise. Signed-off-by: Peter Hutterer commit 5838c6a32dfdac7badd91e6ab3d20cef8dc2cb37 Author: Ping Cheng Date: Thu Dec 10 20:11:04 2009 -0800 Gesture for 2FGT devices Add Gesture option and defines for two finger touch devices Signed-off-by: Ping Cheng Signed-off-by: Peter Hutterer commit e99834b9229734823fbe3fbc3618769224db6f37 Author: Ping Cheng Date: Thu Dec 10 19:44:03 2009 -0800 retrieve usb device and tool type from the kernel Touch device can be decided by checking if BTN_TOOL_DOUBLETAP is defined in the kernel or not TPCButton is on for all penabled TabletPCs Signed-off-by: Ping Cheng Signed-off-by: Peter Hutterer commit a1c22a8457ad1902f313969e1f7822af61591c8f Author: Ping Cheng Date: Thu Dec 10 19:25:34 2009 -0800 Move Touch and TPCButton options check Touch and TPCButton options are global. They should be checked for all USB devices. Signed-off-by: Ping Cheng Signed-off-by: Peter Hutterer commit ca130158eb75947abe1d33378af9603850e975d5 Author: Peter Hutterer Date: Thu Dec 10 11:44:16 2009 +1000 Don't set calloc'd fields to zero. xf86WcmAllocate uses calloc for internally used fields. There's no need to reset all defaults to zero, we can assume they are. Removing those that are initialized to zero reduces the noise, anything listed in xf86WcmAllocate has a default that's not zero and is easy to grep for. Signed-off-by: Peter Hutterer commit f78f78897b8ae211b8dc8d1e9919b665c7f357ba Author: Peter Hutterer Date: Thu Dec 10 15:55:53 2009 +1000 xsetwacom: handle string commands for TwinView setting Signed-off-by: Peter Hutterer commit b4fe899d1f23bf1c7caa44554b46ae64fbcf5be3 Author: Peter Hutterer Date: Thu Dec 10 15:22:43 2009 +1000 xsetwacom: Be more flexible for multi-value properties. xsetwacom set PressCurve 1 2 3 4 is the same as xsetwacom set PressCurve "1 2 3 4" Signed-off-by: Peter Hutterer commit 5f442c7fd5b6f490d2ec9d4dc4efef5bc3319b00 Author: Peter Hutterer Date: Thu Dec 10 13:58:07 2009 +1000 xsetwacom: enable -x and -s get flags xsetwacom -x get "device name" "option name" returns the matching line for the xorg.conf xsetwacom -s get "device name" "option name" returns the matching line for xsetwacom Signed-off-by: Peter Hutterer commit f4fbe2ebbb48391c3449fad756300c4f34e432ee Author: Peter Hutterer Date: Wed Dec 9 16:47:09 2009 +1000 xsetwacom: implement xyDefault - reset to driver-internal defaults. Signed-off-by: Peter Hutterer commit 73c09e8b574752239a6f6fb46da24f08e58347f4 Author: Peter Hutterer Date: Wed Dec 9 16:41:37 2009 +1000 xsetwacom: plug minor memory leak in set() The data returned by the first xGetDeviceProperty was never freed. Signed-off-by: Peter Hutterer commit 6f515f56a456ff01b7df17874c1c55994518bcc0 Author: Peter Hutterer Date: Wed Dec 9 16:15:02 2009 +1000 xsetwacom: support GNU-style for --list, --get, etc. The old interface without "--" is still supported, hence xsetwacom --list is the same command as xsetwacom list Signed-off-by: Peter Hutterer commit 39ed1971e19825cf164098c5896aba813fc99a1d Author: Peter Hutterer Date: Tue Dec 8 17:05:25 2009 +1000 xsetwacom: implement verbosity. Signed-off-by: Peter Hutterer commit d5db667f469b7fe960039e6a486ff49fbced4158 Author: Peter Hutterer Date: Mon Dec 7 17:20:36 2009 +1000 xsetwacom: switch to use of named initializers. This slightly improves the mess that is the parameters list. Signed-off-by: Peter Hutterer commit 4b0b1c10ca53ce0b2206888fd14f93e65178b823 Author: Peter Hutterer Date: Mon Dec 7 16:10:51 2009 +1000 xsetwacom: implement get_mode. Signed-off-by: Peter Hutterer commit d8e5b1f2f9aa6290de03bc9abbc593b58ba5d647 Author: Peter Hutterer Date: Mon Dec 7 15:21:06 2009 +1000 xsetwacom: support get/set rotate. Signed-off-by: Peter Hutterer commit bcccd6657acc5fbd13c81461fe664bfeba693e77 Author: Peter Hutterer Date: Mon Dec 7 15:08:44 2009 +1000 xsetwacom: error out if a property offset doesn't exist. Signed-off-by: Peter Hutterer commit 05200225c3f07e4745c933792a48683180bc02e6 Author: Peter Hutterer Date: Mon Dec 7 15:06:25 2009 +1000 xsetwacom: a few parameters aren't implemented for get either. Signed-off-by: Peter Hutterer commit 6f85ae4365528d6ff7bd1bea27f68edaa40f1b5c Author: Peter Hutterer Date: Mon Dec 7 15:05:20 2009 +1000 xsetwacom: don't try to get/set nonexistant buttons. Signed-off-by: Peter Hutterer commit dc990a09b03de914da94cb2423323b000a426217 Author: Peter Hutterer Date: Mon Dec 7 14:59:38 2009 +1000 xsetwacom: abstract extracting the button number. Signed-off-by: Peter Hutterer commit 4d2c3d19dce4822022fe84d699ce7b87d2da3f67 Author: Peter Hutterer Date: Mon Dec 7 14:57:13 2009 +1000 xsetwacom: implement "get Button1" for simple mappings. Signed-off-by: Peter Hutterer commit 80afd187ee59c7adc04cf304dc428c1390d44f91 Author: Peter Hutterer Date: Mon Dec 7 14:52:53 2009 +1000 xsetwacom: Add special hook for 'get PressCurve' PressCurve returns 4 integers, needs a special hook. Signed-off-by: Peter Hutterer commit 119da3793d77815f7d6419a7ea5d79fdbd95d9f1 Author: Peter Hutterer Date: Mon Dec 7 14:41:23 2009 +1000 xsetwacom: split func into set_func and get_func. Signed-off-by: Peter Hutterer commit 0f722b17964e095cabcc8e6986034ab553093a32 Author: Peter Hutterer Date: Fri Dec 4 16:20:24 2009 +1000 xsetwacom: add "-" and "+" notation and modifier parsing to key sending. Keys prefixed with + are down only. Keys prefixed with - are up only. Keys without a prefix are down + up. e.g. xsetwacom set "device" Button1 "key +ctrl c -ctrl" Is equivalent to lctrl down, type c, lctrl up. Signed-off-by: Peter Hutterer commit 63f4df5334c5daaa0c732b3336b58da23254a816 Author: Peter Hutterer Date: Fri Dec 4 12:31:41 2009 +1000 xsetwacom: keystroke button mapping support. Adds ability to map keys to button events in the form of xsetwacom set "device" Button1 "a b c d" Signed-off-by: Peter Hutterer commit 8b188a4b1016d61b7db00bc3a040436c4cbabf4b Author: Peter Hutterer Date: Fri Dec 4 11:04:35 2009 +1000 xsetwacom: Remove getdefault option, not implemented anyway. Signed-off-by: Peter Hutterer commit d65ba449ccb2372022dc2d5df8dfa7180c011d06 Author: Peter Hutterer Date: Fri Dec 4 10:45:32 2009 +1000 xsetwacom: remove CoreEvent option - not a driver choice. In server 1.7 and higher, whether core events are sent by a device depends on their attachment, not on a driver setting. Signed-off-by: Peter Hutterer commit bafa7b22388c812dfffac3a64233912a55708317 Author: Peter Hutterer Date: Fri Dec 4 10:42:37 2009 +1000 xsetwacom: implement 'xsetwacom get' for basic properties. Signed-off-by: Peter Hutterer commit 5ac72a6e4499e3f85b1b9268a674454b4040cf4f Author: Peter Hutterer Date: Fri Dec 4 10:16:35 2009 +1000 xsetwacom: remove SpeedLevel and Accel options. Unimplemented, and they're not handled through the server's accel methods, not in the driver. That's not to say that xsetwacom can't provide an interface to the accel methods, but this isn't it it. Signed-off-by: Peter Hutterer commit 49957a6f2c2b61fd07aa46be53cab4dfa356e8f8 Author: Peter Hutterer Date: Wed Nov 11 14:10:04 2009 +1000 xsetwacom: announce not-implemented options and parameters as such. Signed-off-by: Peter Hutterer commit a0c314880f03e2d6fb2c37f1eda047f11de0f179 Author: Peter Hutterer Date: Wed Nov 11 13:28:52 2009 +1000 xsetwacom: fill in property for TPCButton, RawFilter, ClickForce. Signed-off-by: Peter Hutterer commit 1ae52b2bfeaa8534e36212b75c5731f7832a3e22 Author: Peter Hutterer Date: Wed Nov 11 13:26:05 2009 +1000 xsetwacom: implement rel/abs mode setting. Signed-off-by: Peter Hutterer commit d0acbf567104542ee41694fca33ee6bd3c22fd5b Author: Peter Hutterer Date: Wed Nov 11 13:10:36 2009 +1000 xsetwacom: allow for multi-value properties (PressCurve) Signed-off-by: Peter Hutterer commit 235ac5ebca6d0b15909c765df9a69751e9fda380 Author: Peter Hutterer Date: Wed Nov 11 11:27:25 2009 +1000 xsetwacom: Support xsetwacom set Button1 for buttons and references. Supported functions: xsetwacom set Button1 4 xsetwacom set Button1 "button 5" Signed-off-by: Peter Hutterer commit 08613765c18bc1dc8c14a7e3fed3e95e7f879973 Author: Peter Hutterer Date: Fri Nov 6 16:38:42 2009 +1000 xsetwacom: Add property hooks for xsetwacom set/get support. This uses a similar principle as synclient, the option table contains the offsets into the matching properties, these are automatically changed. One exception - some options xsetwacom provides don't map into a concreate property, for these special functions are required (e.g. all the ButtonX options). Signed-off-by: Peter Hutterer commit 1efdc8606b59c90167967b074230c9e2a76c9edf Author: Peter Hutterer Date: Wed Nov 11 10:43:56 2009 +1000 xsetwacom: Add find_device() helper function. Does pretty much the same as the one from xinput. Signed-off-by: Peter Hutterer commit b456d47fef3b56a2b62f026e6abd04f91c1b7b40 Author: Peter Hutterer Date: Fri Nov 6 13:35:46 2009 +1000 xsetwacom: Implement xsetwacom list. Signed-off-by: Peter Hutterer commit 087655d80d8dfb48ea395b6ae41e85a580f3851a Author: Peter Hutterer Date: Fri Nov 6 11:43:46 2009 +1000 Add tools/xsetwacom, currently a stub. config.h includes xorg-server.h and it's 64 bit magic. xsetwacom can't use this magic, it needs to use the 64-bit interfaces provided by Xlib and thus the matching sizes for all structs. Instead of including xorg-server.h in all driver source files, conditionally include it depending on whether WACOM_TOOLS is defined or not. Signed-off-by: Peter Hutterer commit e1cbd668de52ff3f35c8cc1ca362adc019935288 Author: Peter Hutterer Date: Tue Dec 8 15:51:08 2009 +1000 Support future udev backend. udev support isn't actually in the server yet but it will announce itself as server/udev in the source. If so, hook onto it in the same manner as onto HAL. This allows for easier testing with a udev-enabled development server (which is already in Debian). Signed-off-by: Peter Hutterer commit bad2015301a83c0c50d18c177d57b1105a173673 Author: Enrico Ros Date: Thu Dec 10 02:30:46 2009 +0100 Add USB devices 0xD0, 0xD1, 0xD2, 0xD3, 0xD4, mapped to the Bamboo tablet. Maybe it will be better to map them to the Bamboo Fun functions, even if the commercial name is different. Model checking needs to be cleaned here. Applied most of the wcmUSB.c.patch -r34 as found on UbuntuForums. Signed-off-by: Enrico Ros commit 21526f944f5f7731ce6a661796571c0dfbe802e7 Author: Enrico Ros Date: Thu Dec 10 02:27:51 2009 +0100 Don't crash if model-specific functions are not defined. If the kernel supports a newer device, not handled by this driver, avoid crashing the X server. Signed-off-by: Enrico Ros commit 3149204e553de56f2d9b47990878ff17a3e0f8a4 Author: Ping Cheng Date: Sun Dec 6 15:41:16 2009 -0800 Add new USB devices Updated comments where appropriate for the new devices Signed-off-by: Ping Cheng Signed-off-by: Peter Hutterer commit e965ac7d3d5be6721063f0a4ca28cfd53afac28a Author: Ping Cheng Date: Wed Dec 2 15:51:21 2009 -0800 Remove unused comments Signed-off-by: Ping Cheng Signed-off-by: Peter Hutterer commit d4c3aef2226f39e346fc9b7c22e54a4e97889458 Author: Ping Cheng Date: Wed Dec 2 14:55:45 2009 -0800 Spin-off usbChooseChannel from usbParseEvent Signed-off-by: Ping Cheng Signed-off-by: Peter Hutterer commit e9984c74f00afb7f80cb925d3282fb8151854161 Author: Ping Cheng Date: Wed Dec 2 13:23:30 2009 -0800 Move xf86WcmReady from wcmCompat.c to xf86Wacom.c xf86WcmReady is only needed by xf86Wacom.c. We move this routine from wcmCompat.c to xf86Wacom.c so we can discard the unnecessary wcmCompat.c. Signed-off-by: Ping Cheng Signed-off-by: Peter Hutterer commit f7aaaf8d06902ec32e64b252e28792b6d9bc0c89 Author: Ping Cheng Date: Wed Dec 2 13:13:18 2009 -0800 Move xf86WcmWait from wcmCompat.c to wcmISDV4.c With the removal of regular serial device support, ISDv4 is the only file that needs xf86WcmWait call. The wcmCompat.c file is going to discarded in the next patch. Signed-off-by: Ping Cheng Signed-off-by: Peter Hutterer commit 35322750898d1ba3c0b74f197b6d60a39b7ad781 Author: Peter Hutterer Date: Wed Dec 2 13:58:11 2009 +1000 AC_TYPE of 0 is a valid type for wheel events. 3cfc3f5df754c6266127e3addbd6ee84c8f471d9 introduced button actions. Wheel events by default are simply assigned to a button. In the old code, AC_BUTTON was 0, now AC_BUTTON is a specific event mask. Hence we need to cater for both AC_BUTTON set or unset - they just happen to produce the same result. This is a quickfix, the wheel event processing seems it could use some cleanup. Signed-off-by: Peter Hutterer commit c87e328b047e66969eef1c47f3ac9a6d3b76be3d Author: Peter Hutterer Date: Tue Dec 1 13:29:25 2009 +1000 wacom 0.10.2 Signed-off-by: Peter Hutterer commit 3cfc3f5df754c6266127e3addbd6ee84c8f471d9 Author: Peter Hutterer Date: Wed Nov 25 17:02:34 2009 +1000 Provide "Wacom Button Actions" property and associated button actions. This patch adds a new property that's a list of property references on the same device. The property contains WCM_MAXBUTTONS atoms, each of which provides a zero-terminated sequence of actions to be performed when that button is pressed (but not when released). Possible actions are a combination of AC_* flags and - if appropriate - a value. For example, assume a property with the following values is set for "Wcm Button Actions"[1]: AC_KEY | AC_KEYBTNPRESS | XK_A AC_KEY | XK_A AC_KEY | AC_KEYBTNPRESS | XK_b AC_KEY | XK_c AC_KEY | AC_KEYBTNPRESS | XK_c AC_KEY | XK_c AC_KEY | AC_KEYBTNPRESS | XK_Control_L AC_KEY | AC_KEYBTNPRESS | XK_c AC_KEY | XK_c AC_KEY | XK_Control_L AC_BUTTON | AC_KEYBTNPRESS | 1 AC_BUTTON | 1 AC_BUTTON | AC_KEYBTNPRESS | 1 AC_BUTTON | 1 If button 2 is pressed on this device, the device sends key events equivalend to typing "Abc", Control+C and finally executes a double-click on button 1. If a button has no action set, the default button event for this button is sent. Signed-off-by: Peter Hutterer commit 365338032da115e45d6d0d076323f59bc17291b2 Author: Tomas Carnecky Date: Tue Dec 1 01:13:25 2009 +0100 Fix a crash that would happen when a sysfs device doesn't exist Signed-off-by: Tomas Carnecky Signed-off-by: Peter Hutterer commit 59754d40db384f0d8cd8880fb07a56f43666a1b4 Author: Ping Cheng Date: Sat Nov 28 12:19:58 2009 -0800 Clean up wcmPktLength code for ISDV4 devices. Signed-off-by: Ping Cheng Signed-off-by: Peter Hutterer commit ee65ca1271a59c5704a4c5a83c9b51ca09c5c3dc Author: Ping Cheng Date: Sat Nov 28 12:00:28 2009 -0800 Move xf86WcmOpen from wcmCommon.c to xf86Wacom.c, where it is supposed to be. Signed-off-by: Ping Cheng Signed-off-by: Peter Hutterer commit 94dcb512294a8f229d40a16a5f84c5d61d84ceef Author: Ping Cheng Date: Mon Nov 30 14:05:53 2009 +1000 Move wcmDevCls check to xf86WcmOpen, where it belongs. Get rid of the confusing "usbDetect: can not ioctl version" message for ISDV4 devices. Signed-off-by: Ping Cheng Signed-off-by: Peter Hutterer commit a3b37e27514c3fb26fd000035eb4a63272f31123 Author: Ping Cheng Date: Mon Nov 30 13:52:20 2009 +1000 Let default catch all hotplugged serial ISDV4 devices Signed-off-by: Peter Hutterer commit 693913e55b3244c7728737e55069c3ffc5c6c16f Author: Ping Cheng Date: Fri Nov 27 20:08:52 2009 -0800 Remove ForceDevice option - now unused. Since we only support ISDV4 serial devices with this driver, there is no need to check the "ForceDevice" option any more, which was used to distinguish ISDV4 from regular serial devices. We check if the device is a serial device or not by accessing its file descriptor directly. Device Class is assigned to USB by default. Signed-off-by: Ping Cheng Signed-off-by: Peter Hutterer commit 0c9419360da976c6580af4615b244bc112d748cd Author: Ping Cheng Date: Fri Nov 27 19:49:17 2009 -0800 Support serial hotplugging. USB devices use the KEY_* bits to determine the capabilities. Serial devices fake up those bits depending on the ID announced. Then pass those bits between wcmConfig.c and wcmValidateDevice.c Signed-off-by: Ping Cheng Signed-off-by: Peter Hutterer commit 54387e477904cadf3a0ebfc37567f808d4b94cce Author: Ping Cheng Date: Fri Nov 27 14:25:36 2009 -0800 Only check device type for xorg.conf devices, not HAL devices. HAL devices are hotplugged internally and the type is assigned based on the device's capabilities. xorg.conf devices are user-specified and need to be checked for validity. Signed-off-by: Ping Cheng Signed-off-by: Peter Hutterer commit f2e437e693f1ee482d112e69efdb0a383912c682 Author: Thomas Jaeger Date: Fri Nov 20 22:37:31 2009 -0500 Don't crash if wcmIsAValidType returns False for all types Signed-off-by: Ping Cheng Signed-off-by: Peter Hutterer commit cd0ce8d3fb27e4e6abbec22c02613c89195e9aa0 Author: Thomas Jaeger Date: Thu Nov 26 01:25:21 2009 -0500 Support sending keys on xserver-1.6 Signed-off-by: Peter Hutterer commit 1965720a3050b3d331da580f869d0c3eeed869d0 Author: Ping Cheng Date: Thu Nov 26 14:43:02 2009 +1000 Add two-finger touch support and unify touch support for the new protocol. Signed-off-by: Peter Hutterer commit 8a9fe4a8e22bd20541a0887e74bfe054bf8fca82 Author: Ping Cheng Date: Thu Nov 26 14:32:58 2009 +1000 Add defines for various ISDV packet lengths. Some of these defines aren't yet in use, they will be once new protocol support is added (see future patch titled "Add two-finger touch support and unify touch support for the new protocol.") Signed-off-by: Peter Hutterer commit 680958e276be6a5dbf659135d3e19bc4c0f68f33 Author: Peter Hutterer Date: Tue Nov 24 14:27:43 2009 +1000 Convert a failed ioctl error into a warning only. With hot-plugged devices, we don't know for sure if the device is an USB or serial, so we default it to USB. If the device happens to be a serial device, the ioctl fails with EIO and we try to add it as serial device. Hence a warning, not an error. Signed-off-by: Peter Hutterer commit a6f0df89db2ef1f66cd42d57b19f902edbf23dc7 Author: Ping Cheng Date: Mon Nov 23 12:05:19 2009 +1000 Remove uniq field - not required. We don't allow multiple devices from the same port, and wcmCommon already tracks the parent/dependent devices for us. The uniq field is superfluous. Signed-off-by: Peter Hutterer commit a20fbdd32d14da17933d7bf69fa8542f51febfda Author: Peter Hutterer Date: Thu Nov 19 16:25:48 2009 +1000 Move the ARRAY_SIZE macro into a header file, it's useful elsewhere. Signed-off-by: Peter Hutterer commit a653c3419f7c5854d6fabaf9c4a70ee4308e99dd Author: Peter Hutterer Date: Tue Nov 17 14:58:17 2009 +1000 Init the key class struct for the device (and send keys) on ABI 7. Force a hardcoded keymap to semi-protect against local keymap changes (i.e. other layouts). This doesn't protect against run-time changes of course, so it's arguably pointless if we expect the session to set the RMLVO. This patch restores key sending for the tablets as working before the switch to input ABI 7 removed that bit. Signed-off-by: Peter Hutterer commit 65b6913046c07f38e348d9944a1915785cbbbb48 Author: Peter Hutterer Date: Wed Nov 25 16:15:43 2009 +1000 Remove XWACOM_PARAM_* definitions - unused now. They are required for the old configuration interface through DeviceCtrls. With the switch to properties, these defines are now unused. Signed-off-by: Peter Hutterer commit 4aa6670cbe4403a39c26ba1ac518af9edbc6abb7 Author: Przemo Firszt Date: Tue Nov 24 20:57:31 2009 +0000 Fix comment - xf86WcmInitalprivSize is actually xf86WcmInitialToolSize Signed-off-by: Peter Hutterer commit afa06f3e7186aff4d0f104492a02c44f6132eaf8 Author: Przemo Firszt Date: Tue Nov 24 20:50:39 2009 +0000 Remove duplicate comment for xf86WcmRegisterX11Devices. This function still exists, a duplicate comment got accidentally added in 425351f22821ade814f7f6412d18c1eb25904661. Signed-off-by: Peter Hutterer commit 9c6d34592f75602cfcfa6f61c631aa60d2ee5284 Author: Peter Hutterer Date: Tue Nov 24 15:59:01 2009 +1000 Reset local->private before calling xf86DeleteInput. If local->private is not NULL, then the server will attempt to free it. A rather bad idea if it's already been freed by the driver. Signed-off-by: Peter Hutterer commit 5efc1770a0039994d6ff111d2050bf0c1324b3b3 Author: Ping Cheng Date: Mon Nov 23 12:07:03 2009 +1000 Convert some serial error messages into warnings. Signed-off-by: Peter Hutterer commit eda948d9931aba1396419ec799a1654d20cd7898 Author: Ping Cheng Date: Mon Nov 23 11:16:46 2009 +1000 janitor: Remove commented out include directive. Signed-off-by: Peter Hutterer commit 8d9b358c2454cacbeabb00133af0ebe7bc9fa13f Author: Ping Cheng Date: Mon Nov 23 11:13:18 2009 +1000 janitor: Fix indentation of a debug message. Signed-off-by: Peter Hutterer commit 5c39a35811eaa5232888aa55baf0a598933be610 Author: Ping Cheng Date: Mon Nov 23 10:59:00 2009 +1000 Only support baud rates 19200 and 38400 for ISDV4 devices. 9600 is gone forever. Signed-off-by: Peter Hutterer commit fefa70d932909f2bb7939e05275e30ac7ddba17f Author: Ping Cheng Date: Mon Nov 23 10:57:04 2009 +1000 If the ioctl failed, return FALSE for xf86IsWacomDevice. Signed-off-by: Peter Hutterer commit 9e59900e6fbdc2899524ce258e694f25795d8539 Author: Ping Cheng Date: Mon Nov 23 10:55:52 2009 +1000 janitor: Leave loop early if we found a pos. result. Signed-off-by: Peter Hutterer commit ec2db399def8336275ec12089a86599194667573 Author: Ping Cheng Date: Mon Nov 23 10:54:25 2009 +1000 fdi: compress all WACf0* devices into one. HAL's contains_outof does substring matching, WACf0 should be enough. Signed-off-by: Peter Hutterer commit 68b5cd37f2269a398d95866a4d714c66a57c6b36 Author: Peter Hutterer Date: Mon Nov 23 08:33:32 2009 +1000 fdi: compress the wacom tablet into the first condition. Signed-off-by: Peter Hutterer commit 9e714baf9b84f39eb95c51dda7885cff0afe2704 Author: Peter Hutterer Date: Fri Nov 20 12:19:55 2009 +1000 wacom 0.10.1 Signed-off-by: Peter Hutterer commit 413d600b2fe7f19149ab4c008fa47f697de4895b Author: Peter Hutterer Date: Fri Nov 20 09:34:10 2009 +1000 Fix comment in configure. We need macros 1.3 for the XORG_DEFAULT_OPTIONS Signed-off-by: Peter Hutterer commit 11a79f35ef6d38860044caa36e9fee5de919d78c Author: Przemo Firszt Date: Fri Nov 13 17:53:04 2009 +0000 Remove duplicate of #include "xf86Wacom.h" and #include "wcmFilter.h" [squashed-in: removal of one more wcmFilter.h include directive] Signed-off-by: Peter Hutterer commit 6b51249ad0dd39aa0c6b8ce87273ad2b3fd0cea8 Author: Peter Hutterer Date: Wed Nov 18 14:22:52 2009 +1000 Purge driver-specific speed/accel. The server provides quite complex accel methods since 1.6, let's just use them instead of the accel provided in the driver (which happens to be a bit crude). Signed-off-by: Peter Hutterer Acked-by: Ping Cheng commit ee4b4d3884f93a64941c313eff515f95757c4b96 Author: Peter Hutterer Date: Wed Nov 18 16:05:06 2009 +1000 Remove defines from the ghost of christmas past. Signed-off-by: Peter Hutterer commit 522f578563bbff95a9597c1dcaad61d67ed0cd74 Author: Peter Hutterer Date: Wed Nov 18 16:03:09 2009 +1000 Remove REVISION HISTORY comments. That's what we have git log for. Signed-off-by: Peter Hutterer commit 2082ebcb1afe4a46ecc4ce3d34c5f4479ad1bcef Author: Peter Hutterer Date: Wed Nov 18 14:21:02 2009 +1000 Fix long-standing typos in applying speed factors. Signed-off-by: Peter Hutterer Signed-off-by: Ping Cheng commit 7d51bf5a32d60b9a022daad5fd1d7868ac9aaee1 Author: Peter Hutterer Date: Wed Nov 18 11:07:55 2009 +1000 Add GPL document to dist tarball. Signed-off-by: Peter Hutterer commit b50d86ab73c59b34514165985784d07366aa0261 Author: Peter Hutterer Date: Wed Nov 18 11:06:26 2009 +1000 Remove spurious executable bits from source files. Signed-off-by: Peter Hutterer commit d7dcb7d873c59d3603007565d073b70f04ecea53 Author: Peter Hutterer Date: Wed Nov 11 14:31:57 2009 +1000 Remove some if 0'd code. If a chunk of code has been "not quite ready for prime-time" for over 6 years, it probably won't be anytime soon. Signed-off-by: Peter Hutterer commit a34e42d7e640d2c3fa695a6eac905c0891375bc7 Author: Peter Hutterer Date: Thu Nov 12 16:26:13 2009 +1000 If a device is specified, don't check for a wacom vendor id. Testing for the vendor ID is useful when using auto-dev probe (though it might return false negatives). If a user was capable enough to specify a device option, assume they know what they're doing and just try to init the device. This ensures that the wacom driver works against serial devices that don't return a vendor ID. And it ensures that the driver can be used with other tablets by different vendors but a similar behaviour. Reported-by: Thomas Jaeger Signed-off-by: Peter Hutterer commit 44d8d03e7ffac87a845fc53a28b935afc2247894 Author: Ping Cheng Date: Fri Nov 13 12:54:07 2009 -0800 Remove a duplicated #ifdef in wcmValidateDevice.c Signed-off-by: Ping Cheng Signed-off-by: Peter Hutterer commit 584131b9f6b86a0365663f4ae377cfb155bb5bb7 Author: Ping Cheng Date: Thu Nov 12 20:37:28 2009 -0800 This patch allows multiple tools of the same type to be defined for one device. It is a feature required to define multiple areas for the same physical tool or to distinguish the same type of tools with different serial numbers (for V5 devices). Signed-off-by: Ping Cheng Signed-off-by: Peter Hutterer commit 183baf7a43c1d204401fd21eab7e6ae0b9078b6b Author: Peter Hutterer Date: Fri Nov 13 08:35:02 2009 +1000 Fix an error message to list the device name. (and add the vim tags to the new wcmValidateDevice) Signed-off-by: Peter Hutterer commit a493c5946174f018b6b8fdc312bd7eebc71944f2 Author: Ping Cheng Date: Wed Nov 11 21:10:55 2009 -0800 retrieve all tool types from the kernel Signed-off-by: Ping Cheng Signed-off-by: Peter Hutterer commit 1dce369ffa34e07a88a87b681d904f0ebd8331f1 Author: Ping Cheng Date: Tue Nov 10 21:46:08 2009 -0800 Spin-off validatation from configuration. This patch also retrieves touch type from the kernel. Other types (stylus/eraser/cursor/pad) can use the same mechanism to retrieve type from kernel. Signed-off-by: Ping Cheng Signed-off-by: Peter Hutterer commit 96d28dbbe2bf90092c20a52aabdac728a8708e7b Author: Ping Cheng Date: Tue Nov 10 20:06:25 2009 -0800 report device id for protocol 5 devices Signed-off-by: Ping Cheng Signed-off-by: Peter Hutterer commit e3ed0639d3028ce0171b793a6227b4da40e8b2db Author: Ping Cheng Date: Tue Nov 10 20:01:25 2009 -0800 process second finger touch data Signed-off-by: Ping Cheng Signed-off-by: Peter Hutterer commit 6bb186cb486310b3df687b549af13cde25684120 Author: Ping Cheng Date: Tue Nov 10 19:54:41 2009 -0800 share device size and resolution between penabled and touch of the same product ID Signed-off-by: Ping Cheng Signed-off-by: Peter Hutterer commit 72647504a8f8468ed9b0bdd5743fa543043ff546 Author: Peter Hutterer Date: Fri Nov 6 15:47:37 2009 +1000 Add wacom-properties header file. commit c8bfc5fc86b4cda953d63e31260ce84a0aed5b59 Author: Peter Hutterer Date: Tue Nov 10 17:07:05 2009 +1000 Add 0xFF product as catchall for unknown devices. If a device is not in the table of known product IDs, just try to init all 5 possible devices; Signed-off-by: Peter Hutterer commit 3684235b35897d41f3604c9677a4de2ae81f9be5 Author: Peter Hutterer Date: Tue Nov 10 16:51:57 2009 +1000 Don't fail just because it's not a wacom tablet. Wacom is right now the best driver for touchscreens. Don't require the wacom vendor ID, we just don't get to get all the cool autosetup stuff. Signed-off-by: Peter Hutterer commit 58aadf9bcab9414d25d49061144bcfdffb8f1a0f Author: Thomas Jaeger Date: Sun Nov 8 12:49:02 2009 -0500 Fix TPCButton option Signed-off-by: Peter Hutterer commit ad84294c55803fbb7c4074e88d257e0a7701f9d1 Author: Peter Hutterer Date: Fri Nov 6 13:55:45 2009 +1000 Export tool type as Wacom Tool Type property. Signed-off-by: Peter Hutterer commit 520f07032ac2f744c3e6d920f12df43671694ddb Author: Peter Hutterer Date: Fri Nov 6 11:11:10 2009 +1000 Remove "grabbed event device" log message. The default behaviour is to grab the device, we only need to know about it when it fails. Signed-off-by: Peter Hutterer commit 60983f1ee56670096122bea376a0756a522ad1b6 Author: Peter Hutterer Date: Fri Nov 6 10:55:13 2009 +1000 Move auto-dev probing checks into small static function Signed-off-by: Peter Hutterer commit 98bc71ad5083e97fa9da47519b25f2e35c5c8b18 Author: Peter Hutterer Date: Fri Nov 6 10:51:01 2009 +1000 Move the uniq assignment into wcmNeedAutoHotplug. commit 88251543dd94cf237072322421255b156ed797dd Author: Peter Hutterer Date: Fri Nov 6 10:35:47 2009 +1000 Remove a needless call to xf86CheckStrOption Signed-off-by: Peter Hutterer commit 2313e4ade726d81e5abd13fb868fbb4679140700 Author: Peter Hutterer Date: Fri Nov 6 10:23:33 2009 +1000 Remove log spamming debug message. The log already tells us when a module is unloaded. Signed-off-by: Peter Hutterer commit a54fbd37fad90f06e31493a71c2c32d9b38f7f37 Author: Peter Hutterer Date: Fri Nov 6 10:20:54 2009 +1000 Rip most option parsing out of xf86WcmInit. xf86WcmInit is quite complicated already with hotplugging, etc. Rip the endless lines of option parsing out into a separate static function to help keeping an overview of xf86WcmInit. Signed-off-by: Peter Hutterer commit caeae6bf04cfc5dc8fef614143f7846819a69423 Author: Peter Hutterer Date: Fri Nov 6 10:08:29 2009 +1000 Remove some more useless defines. Signed-off-by: Peter Hutterer commit ffc1137a79d77d5a5557bac138c7804e0a1409d1 Author: Peter Hutterer Date: Fri Nov 6 10:00:29 2009 +1000 Remove Xfree86 4 serial wrapper defines Signed-off-by: Peter Hutterer commit 5d89d256862e5cba64c1349899003021c2f359d0 Author: Peter Hutterer Date: Fri Nov 6 09:53:09 2009 +1000 BaudRate only needs checking for ISDV4 devices. Remove BaudRate from default_options, supply as default to xf86SetIntOption instead - has the same effect. Signed-off-by: Peter Hutterer commit d90519b2f95c5da17659a1efbd41f1a0039435bc Author: Peter Hutterer Date: Fri Nov 6 09:49:56 2009 +1000 vim tags for the coding style. Wacom uses a different style than evdev, synaptics and the server and I'm sick of having to manually change it each time I open a file. Signed-off-by: Peter Hutterer commit ae6fa7e8da68e2e487da5ad84f9d924204a5e1d4 Author: Peter Hutterer Date: Fri Nov 6 09:49:23 2009 +1000 Don't accept invalid Rotate and ForceDevice options. Signed-off-by: Peter Hutterer commit 613d455c118b92ba784aff007df57bd6bac92196 Author: Peter Hutterer Date: Fri Nov 6 09:14:29 2009 +1000 Remove unecessary debug statements. Any option that is set by the user will show up in the log if xf86SetFooOption is used. All other options are built-in defaults. Signed-off-by: Peter Hutterer commit be806b5487db9c592366237a55651e53fe7d7c50 Author: Peter Hutterer Date: Thu Nov 5 14:53:03 2009 +1000 Support auto-hotplugging in the driver. If a device is added without the "Type" option set (a previously invalid configuration), it is assumed to be hotplugged. Check the list of known products for the supported tool types and init a new device for each tool type. All devices added as a group have a 'uniq' identifier (current timestamp). If the parent device is being removed, check for still-existing devices with the same uniq and remove those too. The server closes devices in-order, since the dependent devices are added before the parent, this is a noop during CloseDownDevices. The .fdi file doesn't to merge the type now. Signed-off-by: Peter Hutterer commit e8e0011c31de0415aeff993c17424c9fd720d33f Author: Peter Hutterer Date: Thu Nov 5 16:54:09 2009 +1000 On unplug, remove the device from the commonWcmDevices list. Signed-off-by: Peter Hutterer commit dac8e0a108df0fb045dfda517f814fd37d5aa09e Author: Peter Hutterer Date: Thu Nov 5 15:47:45 2009 +1000 Abstract product lookup into a static function. Signed-off-by: Peter Hutterer commit fd9230a2efcfd356690847ae543f336b6ab4c6d3 Author: Peter Hutterer Date: Thu Nov 5 14:59:03 2009 +1000 Break out of the loop once we found a valid type. Signed-off-by: Peter Hutterer commit c13d97b0de5acfcddcb378d117c8d7652e45d4e5 Author: Peter Hutterer Date: Thu Nov 5 11:52:57 2009 +1000 Pass type into wcmIsAValidType. Spares the need to check the options twice for the type set. Signed-off-by: Peter Hutterer commit d0c6c701a06bc6a43b37b84130603f6f553009fa Author: Peter Hutterer Date: Thu Nov 5 15:45:55 2009 +1000 Use ARRAY_SIZE macro instead of manual sizeof(). Signed-off-by: Peter Hutterer commit 78499b39f6270f6e9e04d750575695e07224d32e Author: Peter Hutterer Date: Thu Nov 5 11:09:59 2009 +1000 Remove needless NULL checks before xfree. xfree handles NULL pointers fine. Signed-off-by: Peter Hutterer commit 73e8d0640af9ec8fe587454c316e0426e418dc89 Author: Peter Hutterer Date: Thu Nov 5 10:33:56 2009 +1000 Don't overwrite the name with the XI type. Since the local device is now the actual device, not the fake local, we don't need to set the name here. Also, the name is the identifier, I don't know if it ever actually was used for the XI defined names (wich are the type_name instead). This has the potential to break clients that were looking for the "Wacom erasor" type name instead of the XI defined types ("ERASOR"). If so, a simple change fixes this. Signed-off-by: Peter Hutterer commit eda93933e1d0e2cc6a51968c02bfebc542fc88c3 Author: Peter Hutterer Date: Wed Nov 4 17:02:23 2009 +1000 Remove fakeLocal init device. Instead of allocating a fake device at the top of init and then using this to check a few options, just allocate the device itself. If it fails, remove the device again. Signed-off-by: Peter Hutterer commit 91ec102688fd5b041436224975c620dc25d9e5c9 Author: Peter Hutterer Date: Thu Nov 5 10:18:55 2009 +1000 Fix a comment Signed-off-by: Peter Hutterer commit c5d5b1e16272f5e330801241448c5e02ad01a89e Author: Peter Hutterer Date: Wed Nov 4 16:44:33 2009 +1000 Move allocation of type out of xf86WcmInit No semantic change, just trying to reduce the xf86WcmInit a bit. Signed-off-by: Peter Hutterer commit 23bbbfe09f502fdfa89a64d7e2cfca9299948731 Author: Peter Hutterer Date: Tue Nov 3 16:23:45 2009 +1000 Unify log messages to a common format. : blah blah with local->name used consistently as device name where applicable. Signed-off-by: Peter Hutterer commit e4502dd8774ba43beeacbaa87499b1b08a244800 Author: Peter Hutterer Date: Tue Nov 3 16:18:21 2009 +1000 Localize lookup for other devices of the same device. Signed-off-by: Peter Hutterer commit c5c8acd9d012c151a7d4919f5d1a941807c4c2cb Author: Peter Hutterer Date: Tue Nov 3 16:03:53 2009 +1000 Streamline xf86WcmAllocate a bit Signed-off-by: Peter Hutterer commit 506d8357f769a6fbc125899c433c7ea8cc92729f Author: Peter Hutterer Date: Tue Nov 3 15:58:16 2009 +1000 Don't cast xalloc returns. Not needed, we have void pointers these days. Signed-off-by: Peter Hutterer commit 53de2f1a6d8fb6050d8ac2e238fd9fb07c754923 Author: Peter Hutterer Date: Tue Nov 3 15:38:49 2009 +1000 Abstract the vendor ID into a #define Signed-off-by: Peter Hutterer commit 7587c95411cd41f3c63f8ed87f3832b79ba490e1 Author: Ping Cheng Date: Sun Oct 25 21:03:59 2009 -0700 Validate tool type before adding it Signed-off-by: Ping Cheng Signed-off-by: Peter Hutterer commit ccbef11c5cb1e4426543a7d121de842c50d29fa1 Author: Peter Hutterer Date: Tue Nov 3 15:20:13 2009 +1000 Silence compiler warnings if DEBUG is off. Signed-off-by: Peter Hutterer commit d2c46348880b62a47fcad777cb7251866aa0900f Author: Peter Hutterer Date: Tue Nov 3 16:47:22 2009 +1000 Use the SYSCALL macro for opening the fd Signed-off-by: Peter Hutterer commit af163fe3106c834418e772eb94a10a5d250950cf Author: Ping Cheng Date: Sun Oct 25 20:54:09 2009 -0700 Avoid adding duplicated devices/tools from hotplugging Signed-off-by: Ping Cheng Signed-off-by: Peter Hutterer commit 12cf6e8a97e6c1e02a77590b96da56ccc9f1d33b Author: Peter Hutterer Date: Tue Nov 3 14:41:43 2009 +1000 wacom 0.10 Signed-off-by: Peter Hutterer commit 7fe803bef235516ac6778234768c5d3077a539a6 Author: Peter Hutterer Date: Wed Oct 28 15:47:18 2009 +1000 Add --enable-debug to configure Signed-off-by: Peter Hutterer commit c79c899c9609faf3a0ab4828745114a8667432ef Author: Peter Hutterer Date: Fri Oct 30 16:07:33 2009 +1000 Fix three typos in debug statements. Signed-off-by: Peter Hutterer commit 41dc915563a453e2e35aef34dad8e8164d9e6699 Author: Peter Hutterer Date: Fri Oct 30 16:06:30 2009 +1000 Remove remainder of old XWACOM_PARAM code This code has been replaced by the properties. Signed-off-by: Peter Hutterer commit 08a1149461794a4a35d93dc3093012ffe529cd8c Author: Ping Cheng Date: Thu Oct 29 22:28:16 2009 -0700 Touch doesn't have pressure and distance Signed-off-by: Ping Cheng Signed-off-by: Peter Hutterer commit 76bbaf6bb473e7194a5b096a078df76e52e4e587 Author: Peter Hutterer Date: Wed Oct 28 15:51:06 2009 +1000 Include config.h everywhere Signed-off-by: Peter Hutterer commit 61706e52b757582beebdc95fb9af35dfeec86f4d Author: Peter Hutterer Date: Fri Oct 30 15:52:35 2009 +1000 Use xf86Msg instead of ErrorF ErrorF() is the one used by the DIX, xf86Msg is the driver API. Signed-off-by: Peter Hutterer commit 15ddfbac957d6e60b4a7c7cbd57495bfaf9d3bfa Author: Peter Hutterer Date: Wed Oct 28 14:28:40 2009 +1000 Remove identification string, use the package version instead. The default output for the driver loading is: (II) Module wacom: vendor="X.Org Foundation" compiled for 1.6.99.901, module version = 0.9.1 Module class: X.Org XInput Driver ABI class: X.Org XInput driver, version 7.0 where the module version is now filled in by the package version set in configure. An extra identification string is superfluous. Signed-off-by: Peter Hutterer commit 428fc3e3ceb7adab7da5f6ecff90849ef174013e Author: Peter Hutterer Date: Wed Oct 28 13:41:48 2009 +1000 Remove unused extern declaration Signed-off-by: Peter Hutterer commit 676b80bfe02a6447fe289d46c64ab4037b9c761b Author: Peter Hutterer Date: Fri Oct 30 11:07:44 2009 +1000 Add the sample fdi file. Distributions most likely want to fine-tune this fdi file and apply their custom configurations. For those building from source without the distro package installed, a sample FDI file helps to get the driver going. Taken from Fedora, but with the hal callouts removed. We're trying to fix this in another, more flexible and less HAL-dependent manner. Signed-off-by: Peter Hutterer commit ae66fc0e2ec0afd4f8e376ba5c15dd3e93bfeb30 Author: Peter Hutterer Date: Wed Oct 28 15:33:43 2009 +1000 wcmUsb: use struct input_absinfo instead of an integer array. kernel 2.6.31 introduced a resolution field in the absinfo struct, thus the nValues[5] array wasn't large enough. This again leads to a memory overrun and random crashes on init. Instead of increasing nValues, replace it with input_absinfo which is the correct struct to pass in anyway. Do the same for the sID array (of type struct input_id). Signed-off-by: Peter Hutterer commit a51f9e1872c1d564d11775dd3ad814aa38145ad2 Author: Ping Cheng Date: Tue Oct 20 11:43:42 2009 -0700 Add touch support to USB TabletPC's with touch feature Prepare for Two Finger Touch (2FG) support Signed-off-by: Ping Cheng Signed-off-by: Peter Hutterer commit e39c346c84812df1eef1b3aa932718dea1dddf3a Author: Ping Cheng Date: Tue Oct 20 11:15:31 2009 -0700 Clean up kernel 2.4 support debug logs and comments. Signed-off-by: Ping Cheng Signed-off-by: Peter Hutterer commit 0b6891c4ed46882da46f6ee85eab9cf6f4a70942 Author: Ping Cheng Date: Sun Oct 18 16:06:33 2009 -0700 Add backup (*~) and patch (*.patch) files to .gitignore Signed-off-by: Ping Cheng Signed-off-by: Peter Hutterer commit 10e0036f5b398b08ddddcea1ace534e1188e1abe Merge: afdf5565895a 3718c605520f Author: Peter Hutterer Date: Wed Oct 14 10:51:29 2009 +1000 Merge branch 'property-rework' commit afdf5565895a4c340681e9dc48b63a390f8eba9d Author: Ping Cheng Date: Mon Oct 12 14:45:32 2009 -0700 Fix a problem introduced by "Remove kernel 2.4 support" patch Brought the serial number if-clause back since the Intuos CintiqV5 series need serial numbers to distinguish tools and to keep 2 channels of records. Also added an else-statement to catch and discard the unexpected serial number equal zero case. Signed-off-by: Ping Cheng Signed-off-by: Peter Hutterer commit 872b6a3f191a65a929d18f3ff9348ab27da67a76 Author: Ping Cheng Date: Mon Oct 12 14:41:38 2009 -0700 Update Authors for xf86-input-wacom Signed-off-by: Ping Cheng Signed-off-by: Peter Hutterer commit 3718c605520fd1d992e0fdedbdc1136581b808e5 Author: Ping Cheng Date: Tue Oct 13 09:07:00 2009 +1000 Clean up more properties. Signed-off-by: Peter Hutterer commit 4fd2af39a5432eaad03af6a48cd16988a165fbbb Author: Thomas Jaeger Date: Mon Oct 5 12:32:37 2009 -0400 wcmTouch and wcmTPCButton should be distinct properties Expose wcmTouch as "Wacom Enable Touch" and !wcmTPCButton as "Wacom Hover Click". Signed-off-by: Peter Hutterer commit 14ded312e419ebd35ead237c25c6fbdd8ddb0639 Author: Ping Cheng Date: Thu Oct 8 14:41:42 2009 +1000 Whitespace fixes, shift back by 4 Signed-off-by: Peter Hutterer commit c630873429e7dac0eafd3b966a0a515f861b7bb9 Author: Ping Cheng Date: Thu Oct 8 14:24:55 2009 +1000 Add m4 to gitignore Signed-off-by: Peter Hutterer commit ebc81447dd251b401455768fe3d3a274ec9d58c0 Author: Peter Hutterer Date: Mon Sep 28 16:42:12 2009 +1000 Reduce the number of available properties and standardize the naming. Instead of a property per xsetwacom option, compress them into groups like "Wacom Area" (instead of TOPX, TOPY, BOTTOMX, BOTTOMY). Since this isn't handled quite as simply as looping over the params, there's a fair bit of moving code in this patch. TODO: some properties need the transition. Signed-off-by: Peter Hutterer commit 72329bc103009bb84d574f57c3fac897f3c7fa77 Author: Peter Hutterer Date: Tue Sep 29 16:56:20 2009 +1000 Remove XYDefault property - this can be implemented in policy. This option is from xsetwacom to reset the area to the defaults. For properties, we don't need an extra one, we can implement it as a policy if invalid ranges are given for the area. Signed-off-by: Peter Hutterer commit edbc0bfa2d434af21966716d07d1a65454313cf6 Author: Peter Hutterer Date: Mon Sep 28 16:35:11 2009 +1000 Remove NUMSCREEN property Querying the number of screens is not the driver's job. Signed-off-by: Peter Hutterer commit 4d84bf25a660c58795bbf4e4df86d855932c6405 Author: Peter Hutterer Date: Mon Sep 28 16:32:31 2009 +1000 Remove STopN and SBottomN properties. According to http://linuxwacom.sourceforge.net/index.php/howto/all, these are parameters for xsetwacom to query the screen dimension. Not a property. Signed-off-by: Peter Hutterer commit e40198019a3ffad1f0d77c3eb2fcae49343ea870 Author: Peter Hutterer Date: Mon Sep 28 16:21:16 2009 +1000 Remove property for speed level and accel settings. We have sophisticated cursor accel in the server now, it is better to wean users off driver-specific accel methods and start using the server ones. Signed-off-by: Peter Hutterer commit 2a46c4719042257356c0aaa9e43c9d4e45126b33 Author: Peter Hutterer Date: Mon Sep 28 15:34:17 2009 +1000 Remove debuglevel properties. Something like this should be a generic property for all drivers. Let's not set a precedence by having a wacom-specific one. Signed-off-by: Peter Hutterer commit dbca87114b4699c2db9046fb54d4af492004b6d4 Author: Peter Hutterer Date: Mon Sep 28 15:33:15 2009 +1000 Remove Mode property, this is still controlled through DeviceCtrls. A property like that should be in the DIX anyway, it applies to all devices. Signed-off-by: Peter Hutterer commit 72815e638efe8176a2fd26b8af17f5a432b29b47 Author: Peter Hutterer Date: Fri Sep 25 16:30:38 2009 +1000 Remove coreevents property - not the driver to decide Signed-off-by: Peter Hutterer commit f834202e64015a355ca85e87b409c38fdb24a4d4 Author: Peter Hutterer Date: Fri Sep 25 16:28:35 2009 +1000 Don't expose button mapping as multiple properties. Run-time button mapping should be handled in the server, not in the driver. Signed-off-by: Peter Hutterer commit e0238a007d26ddc13ee9c3006d9be35ed336ab9b Author: Peter Hutterer Date: Mon Sep 28 15:41:56 2009 +1000 man: comma-separate authors. Signed-off-by: Peter Hutterer commit 3c7961d18f44fc290b57f68c1c9be6168cb11ece Author: Peter Hutterer Date: Mon Sep 28 15:35:22 2009 +1000 man: fix two typos. Signed-off-by: Peter Hutterer commit 61307141ea2796a99ebc59072e50f8c71943b145 Author: Peter Hutterer Date: Fri Sep 25 15:55:06 2009 +1000 Bump to 0.9.1 Signed-off-by: Peter Hutterer commit 83780b99919d5180deeac6e210a59acd7be30268 Author: Peter Hutterer Date: Fri Sep 25 16:03:48 2009 +1000 Use xorg-macros 1.3 for XORG_DEFAULT_OPTIONS Signed-off-by: Peter Hutterer commit bc76d8fd9361637113865d94fb97596414206b7b Author: Peter Hutterer Date: Fri Sep 25 16:01:20 2009 +1000 Remove the Changelog file, it's autogenerated Signed-off-by: Peter Hutterer commit b8a15ce6fa7157a6c1d565184c0e65ef91b3733e Author: Peter Hutterer Date: Wed Sep 23 16:23:42 2009 +1000 Don't load the kernel module from within the driver In the default configuration, we expect HAL to notice the kernel device, tell X about it, then X loads the driver which then tells the kernel to load the driver for the device that HAL will notice. Wait. what? Signed-off-by: Peter Hutterer commit c182aa1e14096ae3543f4095792bef00404ae7f5 Author: Peter Hutterer Date: Wed Sep 23 16:21:21 2009 +1000 Remove kernel 2.4 support We only support X server >= 1.6, let's assume the userbase running 1.6 on kernel 2.4 is negligibly small. Signed-off-by: Peter Hutterer commit 852c8db7d68ba43dd69e665563038d18ac7b0b48 Author: Peter Hutterer Date: Wed Sep 23 15:56:08 2009 +1000 Don't call DEVICE_OFF from Uninit. Once UnInit is called, the server has already called DEVICE_OFF for us. Signed-off-by: Peter Hutterer commit b7cd27c45a56462e4aa87abe194ff370a47a0b6e Author: Peter Hutterer Date: Wed Sep 23 15:55:00 2009 +1000 Remove erroneous comment about server >= 1.6 crashes. The server only crashes here if local->private is freed but not re-set to NULL. Signed-off-by: Peter Hutterer commit b3cba4e3543a98103282ba8fa55bf38012d23d9f Author: Thomas Jaeger Date: Sun Sep 20 20:24:57 2009 -0400 Remove support for old serial devices Acked-by: Ping Cheng Signed-off-by: Peter Hutterer commit df3c61392f82dac42a04aadc5ae79daff720d3c4 Author: Thomas Jaeger Date: Mon Sep 21 03:23:09 2009 -0400 Read 8-bit and 16-bit properties correctly Signed-off-by: Thomas Jaeger Signed-off-by: Peter Hutterer commit 92afc8cc94467dd83b5a58e752eeb72e5e91863a Author: Peter Hutterer Date: Thu Sep 17 15:43:31 2009 +1000 Remove empty unused src/xdrv directory. commit 212bd0e8d8f94c37521faa25bde71da22340ffb3 Author: Peter Hutterer Date: Tue Aug 4 08:21:21 2009 +1000 Fix up three remaining usages of MAX_BUTTONS. Reported-by: Ping Cheng Signed-off-by: Peter Hutterer commit e39ef59217ff608ebfad797074833d7b06dde92e Author: Ping Cheng Date: Tue Aug 4 08:16:16 2009 +1000 Add .gitignore file. Signed-off-by: Peter Hutterer commit 0983c3447fbe918a275eb98f46f666a631e56f79 Author: Peter Hutterer Date: Mon Aug 3 15:22:10 2009 +1000 Bump to 0.9.0. Signed-off-by: Peter Hutterer commit 7d149431c63c43c0ab5b046387b565488ea3d159 Author: Peter Hutterer Date: Mon Aug 3 15:19:24 2009 +1000 Rename MAX_BUTTONS to WCM_MAX_BUTTONS. MAX_BUTTONS is used and exported by the server. It is also currently set to 256 whereas the wacom driver's MAX_BUTTONS is 32 and used as a mask. Re-using MAX_BUTTONS from the server results in fake button presses when the mask overflows. A simple renaming adds some sort-of namespace and avoids this issue. Rename MAX_MOUSE_BUTTONS as well for consistency. Signed-off-by: Peter Hutterer commit 802d5b8e181c3ba4e57732bf5d1c8c7de893dc93 Author: Peter Hutterer Date: Mon Aug 3 15:02:01 2009 +1000 ifdef out custom keysym handling for ABI_XINPUT_VERSION 5 and greater. Signed-off-by: Peter Hutterer commit ab9f03ea439af8c5ffdbfb32d72aeb126bac2688 Author: Peter Hutterer Date: Mon Aug 3 14:43:12 2009 +1000 Initialize axis and button labels for XINPUT ABI 7. Button labels are currently just zeros and some axis labels are as well. Signed-off-by: Peter Hutterer commit cccfe837c311010a47eeec9338283e69f6081de6 Author: Peter Hutterer Date: Mon Aug 3 14:10:13 2009 +1000 Disable key strokes from the tablet. This needs a redesign, the bits it used to hook into are gone from the server. Signed-off-by: Peter Hutterer commit 2e01d5b83ae710c4dccfb5d79c7154c38419b9f3 Author: Ping Cheng Date: Mon Aug 3 13:32:38 2009 +1000 Purge old ABI support from the driver, add property support. This is unfortunately one giant commit. It removes support for pre 1.6 servers and the various ifdef's around the code to protect against funkyness of the various X server versions. This patch also adds property support to the wacom driver. Signed-off-by: Peter Hutterer commit 6c5b33444b2e6d7acacaf200dbf7bafc676328cb Author: Ping Cheng Date: Mon Aug 3 13:15:47 2009 +1000 Set up the default xf86-input-* directory structure, autotool. This version does not build as-is due to missing include files and headers that are about to be purged anyway. It does pass the autoconf stage. Signed-off-by: Peter Hutterer commit 0e7c5819592680b8f75e29ad3d97f85bf4fd8da0 Author: Peter Hutterer Date: Mon Aug 3 12:52:26 2009 +1000 Purge all but the X driver from this repository. Signed-off-by: Peter Hutterer commit 3b90a8c834ebd15b8d3bdabe46497080d820ce23 Author: Peter Hutterer Date: Mon Aug 3 13:00:07 2009 +1000 Enable automake foreign to ignore NEWS, etc. files. commit 6091ec388e9159c1390650e26091da3b1b2473bd Author: pingc Date: Thu Jul 30 21:39:34 2009 +0000 Support non-TwinView Nvidia dual setup commit d26f9dd44c53f3b27d6f3a9f3a20653d47fa1972 Author: pingc Date: Sun Jun 28 17:21:05 2009 +0000 Added kernel 2.6.31 support commit a2fb5b0a64dfd51ff1978ebb047aa3608b8f1750 Author: pingc Date: Sun Jun 28 17:06:57 2009 +0000 Support kernel 2.6.31 and DTF720a commit f9b0742fb5a577dc7e068559823c4d78ebb670b2 Author: pingc Date: Fri May 22 20:15:14 2009 +0000 Fixed a prox-out issue for menu strip in wacom_wac.c and updated --enable-quirk-tablet-rescale support. commit fdcca1c356cc282e1243de8cd1b01ba8c29609ed Author: pingc Date: Mon May 4 18:25:04 2009 +0000 Fixed a tool index bug in wacom_wac.c. commit 5eac83094bd49a4da9f3dc97813a8346eb00915e Author: pingc Date: Tue Apr 28 22:08:40 2009 +0000 added 60-wacom.rules to src/util for reference commit 1aacbddfeb4042e20ccb8a8b7e4555d9b7899234 Author: pingc Date: Mon Apr 27 21:30:41 2009 +0000 Updated 2.6.28 support commit 6be94eb174c67218bf4da496c9b6e4d1dc009117 Author: pingc Date: Thu Apr 23 22:59:48 2009 +0000 Updated wacomcpl commit 4076f5b834f0e63b7c3310db516847573e98dc8f Author: pingc Date: Tue Apr 21 18:54:18 2009 +0000 Removed NEWS and LGPL commit 0fc5767e2cf19779d3a4e00153177ccba6fd11aa Author: pingc Date: Fri Apr 3 19:41:10 2009 +0000 Added Matthew Garrett's hal-setup.patch commit 55bd0be4a412f6bb73855f36d1c53a82bd47da5d Author: pingc Date: Fri Apr 3 19:30:13 2009 +0000 Added kernel 2.6.28 commit 585e334fef932d72e5d13893d590128191fc7303 Author: pingc Date: Thu Mar 26 22:48:18 2009 +0000 Added Matthew Garrett's hal-setup.patch commit 38482b322d3bd5fa262affa9a49b97c8beffceee Author: pingc Date: Wed Mar 25 23:30:48 2009 +0000 Added support for Intuos4 commit 0778ceaef5de76cacdc537ff173f96c08aaac721 Author: pingc Date: Wed Mar 25 23:21:26 2009 +0000 added wcmTilt2Rotation.c and hal-setup-wacom.c commit 1fd7177a0b075994eef9618f29eb03a3809708c7 Author: pingc Date: Wed Mar 25 23:09:01 2009 +0000 removed 2.4.x and 2.6.8 commit 1f732abe434d717d7b30d2aa6933ba85e310d711 Author: pingc Date: Mon Jan 19 19:17:38 2009 +0000 Fixed bug #2499414 commit 878a8cff4967d05748f4a786dbe2e7bdf59307e6 Author: pingc Date: Tue Dec 30 22:04:02 2008 +0000 Workaround for Xorg 1.6 commit 987fcf7c814bd60a981616d2ec3833f8d0c15ed9 Author: pingc Date: Tue Dec 2 00:27:48 2008 +0000 Workaround for Xorg 1.5 commit cf1959686dbf7e3aa1a52001bf7660fbe11ccbd5 Author: pingc Date: Thu Oct 23 22:00:49 2008 +0000 Added kernel 2.6.27 support commit 9a414e1a3f095cfe5bc616c150241400d2dc7f51 Author: pingc Date: Wed Oct 8 23:22:20 2008 +0000 Updated wacomcpl and its related utilities commit be9b22da0e932e4c433e6bf23aa37e14ecc7c7dc Author: pingc Date: Sun Aug 31 20:23:18 2008 +0000 Added support for Bamboo1 Medium and Monarch commit d808be5022778375831e9351242aaf282bdd559c Author: pingc Date: Tue Aug 12 19:37:59 2008 +0000 Added support for serial capacitive TabletPC commit d8142c4c2ebac44a8fb8159c69c564b7ee613e68 Author: pingc Date: Fri Aug 1 20:16:31 2008 +0000 Added support to kernel 2.6.26 commit 0d9ac7e31ab8fa3e2e4edc52665490ecb7649200 Author: pingc Date: Fri Aug 1 20:12:15 2008 +0000 Added support for 2.6.26 commit b9a62e8b72adde7e2bc605b03ddb8eb1ddece0e5 Author: pingc Date: Mon Jul 21 20:56:08 2008 +0000 Updated USB and serial TabletPC w/wo touch commit e36b582824de6f9cb92844e282f7b3d6b9270853 Author: pingc Date: Wed Jul 9 16:02:18 2008 +0000 Support USB TabletPC w/wo touch commit 1c9627cde6e853301a407903967d1f45db0f5513 Author: pingc Date: Fri May 23 22:43:16 2008 +0000 Updated configure.in commit e7358ba15824d89e9b4915cb6e03e288c80b3cb9 Author: pingc Date: Wed May 14 22:52:45 2008 +0000 Fixed rotation issue commit 258ba05e634843b13d2f9e1a792ca0c9ebc96ec2 Author: pingc Date: Fri May 9 17:09:05 2008 +0000 Fixed serial Tablet PC baudrate issue commit 8783d82cc1ffecf43fca9495e477700cf1448aef Author: pingc Date: Sun Apr 27 02:30:19 2008 +0000 Update HOWTO file commit 5f4033c33451619fa361f5df51affa45641937f8 Author: pingc Date: Fri Apr 25 20:08:30 2008 +0000 Updated wacom.4x, wacomcpl, and wacomcfg.c commit 5a64f27cb18dc17a1bed05bbf007e09acbed364e Author: pingc Date: Fri Apr 11 22:08:44 2008 +0000 Minor fixes in wacomcpl and kernel commit 70d3dd054e8702767089d1cf5d21ca4ed052ed39 Author: pingc Date: Wed Apr 2 23:49:00 2008 +0000 Minor fixes in wacomcpl and kernel commit 425351f22821ade814f7f6412d18c1eb25904661 Author: pingc Date: Mon Mar 31 21:41:44 2008 +0000 Updated wacomcpl for keystrokes & added touch support for serial TabletPC commit 28fe7ad4583c3d41ad5b196f73ef4b56f1a78c0f Author: pingc Date: Fri Feb 29 20:52:48 2008 +0000 Support kernel 2.6.24 commit 4037d28c5a989e4225e8c03d3f6054719b7204eb Author: pingc Date: Fri Feb 29 20:49:24 2008 +0000 Support Cintiq 20WSX commit 883d6ad68d8591bba7fc1b46968ecf1f8b2e6dec Author: pingc Date: Tue Jan 22 19:26:10 2008 +0000 Prepare for hot-plug support on Xorg 7.3 commit b15f8391dcecc3235a2f8048b1ffc38d64bda289 Author: pingc Date: Thu Jan 10 01:41:58 2008 +0000 Updated configure scripts for Xorg 7.3 support commit fd096dab9c3dc345a1e1f24200bfb208fcfccf77 Author: pingc Date: Thu Jan 3 19:11:07 2008 +0000 Support Xorg 7.3 commit 984fc23eafa68b640cf4d80762aff794ba3c46cc Author: pingc Date: Thu Jan 3 18:36:24 2008 +0000 Support Xorg 7.3 commit 635463a5246a16df6fd1d6b5d6070a5dc59a490d Author: pingc Date: Thu Jan 3 18:27:52 2008 +0000 Clean support of outbound tracking for Bamboo commit 50cb6085d0fbeb2f9e8d9796c0adb5d5631ea6d9 Author: pingc Date: Fri Dec 14 00:56:11 2007 +0000 Clean support of outbound tracking for Bamboo commit 6e4606b1b969e4366c33e4319bb6e3cfd4c5c29e Author: pingc Date: Fri Nov 30 18:13:38 2007 +0000 Added prebuilt path for beta release commit 458bb854602cd80f061dc6858ce0b67f26728433 Author: pingc Date: Fri Nov 30 01:04:59 2007 +0000 Clean support of outbound tracking for Bamboo commit ee7dec233c5fcc858a8d550d92af3496f1f8dd75 Author: pingc Date: Fri Nov 30 00:57:52 2007 +0000 Clean support of outbound tracking for Bamboo commit 4d07e21841e26f5212917c7fad2b069df71232b0 Author: pingc Date: Wed Nov 28 18:24:07 2007 +0000 Merge patches 1818295, 1831998, and 1839008 commit 6f65a53cde6be39012e69546fdc44a7eb9ac9191 Author: pingc Date: Mon Nov 12 19:32:43 2007 +0000 Support BambooFun, Bamboo1, and Hummingbird commit 16dc273e8b4317d5e40f8dcdcde57f3551284122 Author: pingc Date: Mon Nov 12 19:31:30 2007 +0000 *** empty log message *** commit 759461199fc27e18a1a5e28ab99471a2fb6ea41d Author: pingc Date: Wed Oct 24 21:47:19 2007 +0000 Support kernel 2.6.22 commit a919e1c958a30552ece299d375454315c5b2250b Author: pingc Date: Wed Oct 24 21:28:15 2007 +0000 Support kernel 2.6.22 commit 7ce7bf1a735158f904493b9a896c24e2fd7c8cb4 Author: pingc Date: Wed Oct 24 21:15:23 2007 +0000 Fixed a few small bugs commit bfd11d0c000bbe24030f1f8dfc26f2c242a74de1 Author: pingc Date: Tue Aug 14 22:53:37 2007 +0000 Fixed a few small bugs commit 16e2da3dd5df14a26e75f91564e7ee98148f15e1 Author: pingc Date: Tue Jul 24 21:18:40 2007 +0000 Updated xsetwacom and wacomcpl commit 22dacadcffade1f21ea8d1f2e18d8e55559b1224 Author: pingc Date: Thu Jul 12 00:18:53 2007 +0000 Fixed a button bug in 0.7.8. commit 61d5330adc39ea26a2c56904bc87dc73ea87d484 Author: pingc Date: Mon Jun 25 21:25:11 2007 +0000 Added xsetwacom RawSample option and updated keystroke for absolute wheel and menu strip commit 5c84d506a3602bbddc98eef1a2562ee5979d3dcc Author: pingc Date: Thu Jun 14 20:58:24 2007 +0000 Added xsetwacom RawSample option and updated keystroke for absolute wheel and menu strip commit 4b18ba7eb74cc3aaee92105408a86be029cc492a Author: pingc Date: Tue Jun 5 17:05:34 2007 +0000 Updated xsetwacom suppress option and merged Ron's building patches commit f191942ed3b74e5c8525a3e449396044de4a8f0a Author: pingc Date: Fri May 25 21:38:18 2007 +0000 Added support to Bamboo and a few new xsetwacom options commit 5fe054d18a53fca352dc6ee8622e835dbcbf2458 Author: pingc Date: Fri May 25 20:05:23 2007 +0000 Fixed xsetwacom and relative bugs commit 65b904c492c0e919751a0d2a97803a2d7a4587f8 Author: pingc Date: Mon Apr 30 23:29:27 2007 +0000 Fixed xsetwacom and relative bugs commit 2fe7d4bde4c99a5a91eab4f2eb15c412debb9993 Author: pingc Date: Tue Apr 17 21:37:14 2007 +0000 Updated xsetwacom and fixed bug 1675567 commit 63fb0ef1f39ce9d33e27ab3c3ca282528d2d7d34 Author: pingc Date: Wed Mar 28 18:57:45 2007 +0000 Updated xsetwacom and fixed bug 1675567 commit 088dab520184d7ef2179ee598109bf0346894be4 Author: pingc Date: Wed Mar 21 21:13:40 2007 +0000 Support dual Cintiq with TwinView setup commit e7f6ded2edc063da66d6d9dcf608a88d8dbd42b4 Author: pingc Date: Wed Feb 21 00:13:39 2007 +0000 Support dual Cintiq with TwinView setup commit 014342a319825a57020bd440b76bb9a76f7918d7 Author: pingc Date: Fri Feb 16 22:06:15 2007 +0000 Support 2.6.19 commit 5b03c1eae287f98410f86e05032cb4508473b893 Author: pingc Date: Fri Feb 16 22:02:08 2007 +0000 Support keystrokes commit 164d65333078f353e15b2e21f055077472a3a20b Author: pingc Date: Sat Feb 3 00:11:18 2007 +0000 Improved outbound tracking commit 9023deacd1908809a52c09e5ac723be4bb338754 Author: pingc Date: Tue Jan 30 00:10:49 2007 +0000 Support multiarea and ThinkPad X60t commit 07c7565a93b92d166fc0b5a48f758ebf46cdf5b3 Author: pingc Date: Thu Jan 25 19:18:23 2007 +0000 Added ThinkPad X60t commit ccf5c34b9bf5c7c46f5e07a5573d10a54007f473 Author: pingc Date: Thu Jan 25 01:27:28 2007 +0000 Add new xsetwacom features commit 7d275c9641049b601a8d2542e18463d2efeac798 Author: pingc Date: Thu Jan 25 01:25:00 2007 +0000 Add support for Thinkpad X60t commit 9edbb4b41867f0b2eddbf229e78414f3e52e750e Author: pingc Date: Tue Jan 23 00:59:43 2007 +0000 Updated configure string commit a39619cdfa469ad189c49da4af2abeea1c32277b Author: pingc Date: Tue Jan 23 00:56:46 2007 +0000 clean X driver code commit 9920ac402067928c414a4aec7ee6efbe6857d069 Author: pingc Date: Sat Jan 20 01:12:19 2007 +0000 Split wacom.c commit 94cca8438b9a4d2a42bcda9868c5b68426928171 Author: pingc Date: Sat Jan 20 01:09:30 2007 +0000 Fixed bugs in wacom_sys.c and multiarea support commit ff4595036b04cda5fc1d5ff3986b28db15e73a82 Author: pingc Date: Mon Jan 15 21:46:24 2007 +0000 Fixed bugs in wacom_sys.c and multiarea support commit 8d5b18e87378245b377a39dd6d81e4e8db54c4e2 Author: pingc Date: Thu Jan 11 23:27:30 2007 +0000 Incorporated patches 1630928, 1630926, and 1614296 commit e3a5a3acde5ffeaf3b8e74ed1e43d8cce3df15f5 Author: pingc Date: Tue Jan 9 18:30:18 2007 +0000 Removed 2.6.14/wacom.c commit ab3b9a56651157034f46bed732beab0daf2d95da Author: pingc Date: Wed Dec 27 19:13:20 2006 +0000 split wacom.c into 4 files commit dd1c626c2da972115c05c785eb98ff56907fa113 Author: pingc Date: Wed Dec 27 19:01:06 2006 +0000 Incorporated Magnus Vigerlöf's patch commit 84398848acc61f5fca46e0c3850f277546b8ff59 Author: pingc Date: Mon Dec 11 19:53:06 2006 +0000 Incorporated Magnus Vigerlöf's patch commit a4f118a610c3294ea1533bf2643bb89b2092707c Author: pingc Date: Thu Nov 30 18:31:17 2006 +0000 Fixed Relative Cursor force out-prox issue commit d3d22533c6227a884a1865a4b636050f0e657f9f Author: pingc Date: Tue Nov 21 23:56:47 2006 +0000 Split wacom.c into 4 files commit 167ef19ee45d94a03987be94d98df74c1c392074 Author: pingc Date: Tue Nov 21 23:44:28 2006 +0000 Updated wacdump for TabletPC commit a0d8478ff0046c1865ed55a14f2984dcc81e536c Author: pingc Date: Wed Nov 1 00:37:40 2006 +0000 Updated wacdump for TabletPC commit f276dee836863314271c7aa45bf0a7dbb558b0dd Author: pingc Date: Tue Oct 24 22:48:59 2006 +0000 *** empty log message *** commit 24a6ad6b290a90df843e825d776397d879e27946 Author: pingc Date: Tue Oct 24 22:46:26 2006 +0000 Updated wacdump for TabletPC commit 0ca6cfbcb252c91b89bbf54972b0b821c0d6de0f Author: pingc Date: Tue Oct 24 20:12:05 2006 +0000 Removed $Id lines in unchanged 2.4 kernel files commit 84e374f0c5d00a710c57ded3cf05aa997277a907 Author: pingc Date: Fri Oct 13 18:03:50 2006 +0000 Release 0.7.6 commit c8b8455e6d71f999ae51d3b6f6f71b783e403112 Author: pingc Date: Thu Oct 12 18:09:12 2006 +0000 Release 0.7.5-4 commit 43cae5a89e9d5b32df463aca34cf49e3958a059c Author: pingc Date: Wed Sep 27 22:12:31 2006 +0000 Release 0.7.5-4 commit 2496d7dd5c019f3cf692c943f7c83c8e9b9ba7aa Author: pingc Date: Thu Sep 14 23:12:01 2006 +0000 Release 0.7.5-3 commit 1204c9ae9a1533cab57ae0375c11a3dbd9be8c53 Author: pingc Date: Thu Sep 14 22:01:34 2006 +0000 Release 0.7.5-3 commit 5322145739070906e72a91dc5ffd5a607d0bcf7c Author: pingc Date: Thu Sep 14 20:55:15 2006 +0000 Release 0.7.5-3 commit 1fd8d0c79b118a30e802ae0fa389422d89ad3eba Author: pingc Date: Wed Sep 13 20:56:12 2006 +0000 0.7.5-2 commit 377432da2abc73994d8680a5b7d45a6b5bad1ae6 Author: pingc Date: Tue Sep 12 22:51:24 2006 +0000 Free Device instead close it commit 2dbb99e1ee8a65dfbb6da1b565e575b191d8ea75 Author: pingc Date: Tue Sep 12 22:12:48 2006 +0000 Fixed an initalization issue in X driver commit d6ceb8b0c63f0c5052d2616ead1b8928701de432 Author: pingc Date: Thu Sep 7 23:30:13 2006 +0000 plug/unplug support for both XFree86 and Xorg commit 32bd4c69f7a7bc1308fd0f3dfcffb803e4bc7a4c Author: pingc Date: Thu Aug 31 22:35:33 2006 +0000 Reshaped the source tree commit 42869f6e9fc2d82e4e0bf1d3a10b75ca49db2b73 Author: pingc Date: Thu Aug 31 18:20:23 2006 +0000 Keep Graphire4 naxes as 6 for now commit 2a32e01ded808123670456aa474935cf116abc07 Author: pingc Date: Thu Aug 31 00:21:36 2006 +0000 Add all Wacom devices into hid_blacklist commit fd299eec942ae5e30162de22a85ff646d0573263 Author: pingc Date: Wed Aug 30 21:52:37 2006 +0000 A typo in wcmUSB.c commit a6097e15592b75a079e84dbbcef210ace6284215 Author: pingc Date: Wed Aug 30 21:30:55 2006 +0000 Fixed the pad initialization issue commit d85c13f7778aa838f65ab8f21d7897c6fefbf37d Author: pingc Date: Tue Aug 29 00:20:49 2006 +0000 Added Intuos3 4x6 support commit cb5f66677dcd68e4c021d3cc48006a35377adec4 Author: pingc Date: Mon Aug 28 20:05:43 2006 +0000 A file name change for kernel version commit 31f68105e73ccb43f970995b1c83d77fa45f5d12 Author: pingc Date: Fri Aug 25 23:53:24 2006 +0000 Fixed relative mode threshold check commit d6dd988830fd2209ccdcb3c8bebbe04afd3b3e9c Author: pingc Date: Fri Aug 25 17:52:49 2006 +0000 Check kernel version for 2.6.18 commit 57943f8cb9feefba00c1b1d89f9bb61d3e59e8a0 Author: pingc Date: Fri Aug 25 00:24:58 2006 +0000 Fixed a typo in wacom_sys.c commit 756a47b212fd486e5ce3c260de801dec7bae5005 Author: pingc Date: Wed Aug 23 20:46:06 2006 +0000 Fixed a syntax in wacom_wac.c commit 491763b07794bf1dafd59d1955389ed702fe1a3c Author: pingc Date: Wed Aug 23 00:55:45 2006 +0000 Fixed a syntax error in configure.in commit c436b886f3001eacbcdc3e03e0f99a0113897ea4 Author: pingc Date: Wed Aug 23 00:30:56 2006 +0000 Support on-fly rotate commit 294c00f2844d429d9b167b4c043c5eb241bed63f Author: pingc Date: Mon Aug 21 23:40:32 2006 +0000 Support 26.18 and specifiy tablet buttons commit 991cdba085b86c8536362221ef59ec27ce85d9f5 Author: pingc Date: Tue Aug 15 20:48:05 2006 +0000 Updated configure.in commit c5cbca7b1283ad897b1806e4fe6381a2c223d13d Author: pingc Date: Fri Aug 11 00:17:49 2006 +0000 Backward tablet menu strip support commit a11d351777f5ff31a9eb55e83cd4413c984516bc Author: pingc Date: Mon Aug 7 17:51:42 2006 +0000 Added wcmFilter.h commit 13d3ce794bd6d4ce63d8403069f3b1051b2dfa8e Author: pingc Date: Mon Aug 7 17:50:51 2006 +0000 Updated wacomcpl commit 2debfce6f9d6bfb206da2e1711d04f42cddd71e1 Author: pingc Date: Mon Aug 7 17:18:19 2006 +0000 Reshaped the source tree commit b4c28e85d277f5aa3c468ae9a2aed945c86b29dd Author: pingc Date: Mon Jun 19 16:19:39 2006 +0000 Fixed a Volito bug commit b7b19ea55974e031824702c14ff9f961c89849d2 Author: pingc Date: Mon Jun 19 16:09:06 2006 +0000 Fixed a Volito bug commit a2b19be24c5206fb56a4d28b2801dbda8ce5071f Author: pingc Date: Sat Jun 17 00:19:13 2006 +0000 Ready to release 0.7.4-3 commit e2f285b09d8e536ba9d3a195c048a6e4c53324c3 Author: pingc Date: Sat Jun 17 00:13:30 2006 +0000 Ready to release 0.7.4-3 commit 0d9ed25a912fd63fa45158496b609c0fcc217974 Author: pingc Date: Sat Jun 17 00:07:17 2006 +0000 Remove line in 2.4 kernel files commit ce9368b96b673005ec3db673498c52636537550a Author: pingc Date: Sat Jun 17 00:01:58 2006 +0000 Remove line in 2.4 kernel files commit b3aa8af79acf3451a91bc6c895d0e69101d3f0f9 Author: pingc Date: Fri Jun 16 21:25:34 2006 +0000 Fixed a Volito1 bug commit 21ded9f0c3aa2dfe5e88ed3f8d9afde8ce601743 Author: pingc Date: Thu May 25 21:27:28 2006 +0000 Updated configure files commit 59c53048a2bbe890e29ab7bfa8dc512e3c610372 Author: pingc Date: Fri May 5 17:31:39 2006 +0000 *** empty log message *** commit 9d40acbbb96240612d86d6e55301967096fafde1 Author: pingc Date: Fri May 5 17:21:55 2006 +0000 Ready to release 0.7.4 commit 5dc452744428809f76e028bd651d015c3a6fc62f Author: pingc Date: Wed May 3 23:22:36 2006 +0000 Removed older 2.6 kernels commit efcc12bd4d5c8fd83b0bcfb78107a9e764baf842 Author: pingc Date: Mon May 1 17:49:43 2006 +0000 Support X.Org 7 commit b7049bfad7e7127b207383eb7a81d7f9803e9ccb Author: pingc Date: Thu Apr 6 18:16:23 2006 +0000 Ready for 0.7.3-1 commit e94b059a7762c9d16c8686ce9fa9fb11ac49e0a4 Author: pingc Date: Wed Apr 5 16:33:48 2006 +0000 Supporting kernel 2.6.16. Updated mouse1 page commit 850fcf743066491f1d77a76d3011e07ac4b282fb Author: pingc Date: Tue Mar 28 01:35:06 2006 +0000 Updated wacom.c and wcmUSB.c commit b1b7a0f2b9a4ba68413e006abf04bca410065d8a Author: pingc Date: Tue Mar 14 01:17:41 2006 +0000 Ready to release 0.7.3 commit 638fd320b1bff6ca6c488291f572b780b543b23d Author: pingc Date: Tue Mar 7 00:29:03 2006 +0000 Supporting tablet attach/detach while X driver running commit 547f03523957bb59eff1a4ce87da6c9a71e29ce1 Author: pingc Date: Mon Feb 27 21:52:39 2006 +0000 Added 2..6.15 support commit d7559ad5070812d196a30517a6989afaaba86d1f Author: pingc Date: Mon Feb 13 05:24:22 2006 +0000 Added DTF 521, I3 12x12, and I3 12x19 commit b2b7582fff2ef5ba3fd6b81efef2406d2f534a94 Author: pingc Date: Mon Jan 9 22:46:36 2006 +0000 Updated webpages commit 1e6d4d973b327c1e3a2458a793415048fbb669e9 Author: pingc Date: Fri Dec 23 21:37:37 2005 +0000 Update web pages commit 48ca4cc9a92da694b4ec3bd0e9c0d46dad9b587b Author: pingc Date: Wed Dec 21 23:04:34 2005 +0000 release 0.7.2 commit de3f0b95ad5ef555454ee2036effe21679951fda Author: pingc Date: Fri Dec 16 19:43:36 2005 +0000 updated configure.in and acinclude.m commit 0537f349ef0fd60e6f50018a9ea8cb8058a59c9a Author: pingc Date: Mon Dec 5 22:41:29 2005 +0000 Changed AC_MSG_ERROR to AC_MSG_RESULT in acinclude.m4 commit fdb5ce078af32a5265b7d6347d25c7e7c2d40c15 Author: pingc Date: Mon Dec 5 20:39:50 2005 +0000 Fix a typo in acinclude.m4 commit 0b6ed0cf160ea6c44203746d57b18bbecc311b13 Author: pingc Date: Mon Dec 5 19:27:55 2005 +0000 updated acinclude.m4 commit d3844436fa8d7ef5f1bf41a6f923f8e8c42a89be Author: pingc Date: Mon Dec 5 17:55:10 2005 +0000 updated configure.in commit 6075eece15568f4e0b7208e721e50d8d2c5ef2c5 Author: pingc Date: Sun Dec 4 23:46:09 2005 +0000 updated configure.in commit 301bed19844c59cd5c2450bfc496291eb50940bd Author: pingc Date: Fri Dec 2 20:29:47 2005 +0000 Removed mousedev.c and usbmouse.c from src/2.6.x commit 892b6746ab657e5d3ab246712641d11ba622db1a Author: pingc Date: Wed Nov 23 00:29:44 2005 +0000 0.7.1-1 released and web scripts updated commit 00f0a093bef1ffab52abedbc71ce44ce6ea31c21 Author: pingc Date: Fri Nov 18 18:12:29 2005 +0000 Fixed a wacomcpl and a wacom_drv.o bug commit da4b82c4d2a9c0a186a42581cdf1aa9fc37b8759 Author: pingc Date: Wed Nov 16 00:44:36 2005 +0000 Updated wacomcpl, xsetwacom, and wacom.c commit 29b522a1f419b410cb582455329498e0d7a64e17 Author: pingc Date: Mon Nov 14 20:37:39 2005 +0000 added k2.6.14 and reporttool id and serial number to Xinput commit e9f3f4482daa11cd05604e013d68d7230c148fba Author: pingc Date: Thu Nov 3 01:14:42 2005 +0000 Released 0.7.1 and updated web commit 343eef7f50645f6eebe019dc21a20b81eca4f698 Author: pingc Date: Wed Oct 26 00:36:47 2005 +0000 updated wacdump and xidump commit 9fadf910f39f4219184ace994abd69e715c76caa Author: pingc Date: Wed Oct 26 00:36:47 2005 +0000 updated wacdump and xidump commit a2aa2f257a8837fff1062c34074b1b97b6269d66 Author: pingc Date: Thu Oct 20 23:03:38 2005 +0000 Commit 2.6.13 code commit f729cba1ec2b9993dbdde8790b0e33ed8a6c48ba Author: pingc Date: Thu Oct 20 22:56:01 2005 +0000 Added 2.6.13 commit b02554b413af0443873b5429ebb156ed54bfb410 Author: pingc Date: Mon Oct 10 19:25:32 2005 +0000 Add Graphire4, DTF720 and DTU710 commit 7c7bac245ad054d808e74536264c3ccc1f493f50 Author: pingc Date: Fri Sep 23 23:53:09 2005 +0000 Updated website commit 96c28e6c9d53d4ac5293606419ef075291339eac Author: pingc Date: Mon Sep 19 23:19:18 2005 +0000 Fixed a serial Graphire bug commit 077b10c7457b5fbfd7c9d1c862e2422ea133377e Author: pingc Date: Fri Sep 16 19:21:03 2005 +0000 Reports USB tool ID commit 81da644f03a9d1c46cc93205ba1016ea2def358e Author: pingc Date: Fri Sep 9 23:53:18 2005 +0000 Supports 16 buttons for all tools commit a16eadbc6a78c63bab3ca5e937b7eb9cc05bd9b7 Author: pingc Date: Wed Sep 7 23:53:05 2005 +0000 Messed ChangeLog last time commit 84cdf45fc2bd281cc5446cba23b7654af6a16f16 Author: pingc Date: Wed Sep 7 22:47:10 2005 +0000 Updated wacdump and acinclude.m4 commit 5da0e68d596696e2d585cd5c55d3aab313851672 Author: pingc Date: Wed Sep 7 17:53:15 2005 +0000 Updated wacdump and acinclude.m4 commit 176cff822047f511a653125f919cd2e62f868ae2 Author: pingc Date: Fri Aug 19 01:08:33 2005 +0000 update ChangeLog commit a8b8ab0e1d25ecb0cef480e61aa2912afe9e5c91 Author: pingc Date: Thu Aug 18 18:50:30 2005 +0000 added evdev.c for 2.4.30x86-64 commit cecfe281694d3895dfc4dbf0c0f660926a403197 Author: pingc Date: Thu Aug 18 18:45:38 2005 +0000 Updated wacomcpl and merged Volito2 & PL700 patches commit d2ab386153d092dcaa96465af18e2598c45e6ba0 Author: pingc Date: Wed Aug 10 19:05:21 2005 +0000 Fixed a dlloader issue commit df54a482af0e14ee4f27d062484aee7a9e9f1533 Author: pingc Date: Mon Aug 8 20:53:27 2005 +0000 Fixing Graphire bug and adding dlloader option commit 00197f0e9a3da737225292ad9e2e6b546c7a3efe Author: pingc Date: Thu Jul 28 22:59:05 2005 +0000 GTK configuration change commit 4080136debeb8c58d8f768dbbb5cad00a1bcd2d6 Author: pingc Date: Tue Jul 26 23:26:42 2005 +0000 Fixed a serial P4 button switch bug commit 9214262aab46015493368dc42744a69396dc0b4f Author: pingc Date: Wed Jul 20 21:45:04 2005 +0000 Support x86-64 X server commit 4d660b9fbe4dc306a61f06589260f0b299721b6e Author: pingc Date: Thu Jun 16 21:33:33 2005 +0000 Removed some unavailable links commit 3e60b14c779ab71f4abf7abf2228a697ff6e6e40 Author: pingc Date: Thu Jun 16 17:04:08 2005 +0000 Fixed a bug in configure.in commit 451c941b2f97f8df2845bed4edd871ffcd560704 Author: pingc Date: Wed Jun 15 23:17:58 2005 +0000 Added 2.4.30x86-64 and updated website commit c608561ac93135d7597d12261aa5ac3430078d6c Author: pingc Date: Wed Jun 15 17:19:43 2005 +0000 Support tablet orentation rotation and x86-64 kernel commit dea170059f7bfbd05e77f35bbcecd7c8803a89d0 Author: pingc Date: Fri May 6 18:13:19 2005 +0000 Released linuxwacom-0.6.8 commit 36745183a78e1e04a1e2a20f7080a584469e6e11 Author: pingc Date: Mon Apr 25 19:02:37 2005 +0000 Cleaned tablet mapping and resolutions commit dbfb06686282a610e9609075947ba106441cf985 Author: pingc Date: Mon Mar 28 23:09:59 2005 +0000 Released linuxwacom-0.6.7 commit 01516e38f4e908ae1fb028d7fcbf604076a4fff3 Author: pingc Date: Fri Mar 18 18:17:43 2005 +0000 Added support to kernel 2.6.11 commit 2db6dfa8eaa277b65a65a8735410a0677e1b278f Author: pingc Date: Fri Mar 11 22:49:26 2005 +0000 Added Cintiq 21UX support & updated 2.6.x/Makefile.in commit 739066a4a08199f12e9af34fdac9d19f849f4804 Author: pingc Date: Wed Mar 2 18:08:33 2005 +0000 Somehow 2.6.10 removed in last commit commit 574d6941f9ad52a299c7f77a477fc9696aca3b5b Author: pingc Date: Mon Feb 28 22:10:59 2005 +0000 Fixed a Graphire/Volito button bug and added xserver64 option commit 8b3339e45493253ce3485b28a8350fe755d2730d Author: pingc Date: Wed Feb 2 23:51:11 2005 +0000 fixed 2.6.8/wacom.c and wcmSerial.c commit a73d00b8357046151f86b142e1a747e586580b93 Author: pingc Date: Thu Dec 2 00:36:11 2004 +0000 Support kernel 2.6.10 & build driver locally commit cc2ea36b59b6b3f0d84f489f58f3797abbc15edb Author: pingc Date: Sat Nov 6 04:55:02 2004 +0000 Released 0.6.5 as beta commit a751b3701050a0548dea5f39963e26e61088de83 Author: pingc Date: Sun Oct 31 22:59:58 2004 +0000 Added new branches for each kernel version commit 6828fbf8a4a605b298be6c940423127752421549 Author: pingc Date: Fri Oct 15 17:26:59 2004 +0000 Fixed Intuos3 pressure bug in wacom.c commit e41ce2e84faa928cd391bcab299aefac74ef9ff1 Author: pingc Date: Thu Oct 7 18:36:35 2004 +0000 Added Intuos3 support commit d26dfd8d22239249ab7e53877d6b8adad54bcc01 Author: pingc Date: Fri Aug 6 23:12:50 2004 +0000 Updated website and released 0.6.4 commit 8d6866a837d2f79ac364582635a649fcc5c91cf3 Author: pingc Date: Fri Aug 6 18:08:26 2004 +0000 release 0.6.4 commit 8c32155832a083f2c04f9001983eaf37796d2b0d Author: pingc Date: Mon Jun 7 17:03:13 2004 +0000 update prod, dev, and web commit c0a29bed2b76db851a195c9cfa04ead095a61d61 Author: pingc Date: Wed May 26 00:12:23 2004 +0000 Modified wacomcpl defaults commit 14a707efffc370aac872ac0122cddf246c446746 Author: pingc Date: Tue May 25 17:26:12 2004 +0000 Fix PressCurve for wacomcpl commit 57ae8732a9a3add86b588d72677444d906f760ea Author: pingc Date: Mon May 24 21:22:25 2004 +0000 Fixed wacomcpl-exec Feel window bug, support kernel 2.6.6 commit 946cb58c4c82c4f750f6a944b2e2d8cd2246d97d Author: pingc Date: Tue May 18 18:03:03 2004 +0000 Fixed Relative speed and TPCButton bugs commit aa037aa727b4b9916a4aafcf82f6a92e84a38a8f Author: pingc Date: Fri May 14 22:02:58 2004 +0000 Bug fix and webpage update commit 3620b7a937513d06490e62d586faa631979a8797 Author: pingc Date: Fri Mar 12 01:08:04 2004 +0000 Fixed DoubleSpeed and DoubleRadius issues commit 4c2d30330a227ef138cb134304077d2c6ebab4c4 Author: pingc Date: Fri Mar 5 21:22:43 2004 +0000 Updated webpage for kernel 2.6 commit 35cde37b646441ea77abc21bdaf8a9cc1aec393c Author: pingc Date: Wed Mar 3 01:05:46 2004 +0000 Support 2.6.2 commit 5ff3d4cf33075e44f41fb78d618750bf6d80f7bd Author: pingc Date: Wed Feb 25 18:33:08 2004 +0000 Add Mode Toggle commit f819f63eb9aa2b96bcb1740fd099c7b5e714c9a8 Author: pingc Date: Sat Feb 7 01:01:14 2004 +0000 Support kernel 2.4.24 commit b95f86083d590ffb42f33e0bc97aaf9726c64e88 Author: pingc Date: Thu Feb 5 01:03:12 2004 +0000 Released version 0.6.0 commit 34f7890324a99797afb6428e29db1e48d5a780ed Author: pingc Date: Mon Jan 19 22:16:13 2004 +0000 Sync wacom.c and support 2.4.23 commit 79c09659d0986baac085fd763f1c7e2c47cb5ed6 Author: pingc Date: Wed Jan 14 01:28:30 2004 +0000 wacomcpl and wacom.c (k2.6) changes commit 46a7d178c241330e26c993d54da62477c99fbfd8 Author: pingc Date: Mon Dec 22 19:44:22 2003 +0000 Redesigned wacomcpl commit 955fef1b3e59726efdcc67218695b55590ae49ae Author: pingc Date: Fri Dec 19 00:55:30 2003 +0000 Modified config and make strings commit a8808b5eff08a19a502700ae168ce0b9e5bf5cc0 Author: pingc Date: Thu Dec 18 00:09:19 2003 +0000 Support Tablet PC in wacomcpl commit 4c34105963287d217ddbd20f8c53b3a3c67e532b Author: pingc Date: Mon Dec 15 20:13:40 2003 +0000 Bug fix for k2.6.0 support commit 5f9b8fc72e59d719f6fa22ab4eee9ef88a71fe71 Author: pingc Date: Wed Dec 10 01:13:43 2003 +0000 Support kernel 2.6.0 commit df68c518131adf7d9173a894cf1231af6e06d549 Author: pingc Date: Wed Nov 26 19:00:23 2003 +0000 Modified installer commit afed851d581700ec5781d7bad31e360521e8bc06 Author: pingc Date: Tue Nov 18 19:38:41 2003 +0000 Tablet PC general support commit 27161f4d5739d19fe14ed545033365532653b329 Author: pingc Date: Mon Nov 10 20:00:02 2003 +0000 Created directories to ease ongoing kernel support commit f0bb07c364ff531286885950df6fd6da83e91bd4 Author: pingc Date: Mon Nov 10 18:46:35 2003 +0000 *** empty log message *** commit f5c7e4fccf8338042ee4358642eede46f6d6da5b Author: pingc Date: Thu Oct 9 23:36:07 2003 +0000 Support kernel 2.4.22 commit 8084d4a7cda2d9a26cc10eee91c92359ab270369 Author: pingc Date: Tue Sep 30 16:55:19 2003 +0000 Fixed TwinView relative mapping error commit 329178f48cf0a169b007e847949c9fd7e6747b9b Author: pingc Date: Wed Sep 24 23:43:24 2003 +0000 Support different screen resolution in TwinView mode commit 2e26854f97c193d74bdb7241cdb2259f01076b1e Author: pingc Date: Mon Sep 22 22:09:40 2003 +0000 Support TwinView calibration and Screenno Option commit f0b1f7c8cb1337102bfb554f9efe60fd1698140c Author: pingc Date: Wed Aug 13 22:31:09 2003 +0000 Added new wacomcpl functions commit a41fa7293692ac53a2800679997581101a5445d6 Author: pingc Date: Thu Jul 31 23:00:30 2003 +0000 wacomcpl Button and Mode support commit 3db352b822ba82be84c0df76d48be5c85bfc96ec Author: pingc Date: Wed Jul 30 00:10:11 2003 +0000 Fixed set mode value commit 9d4c74a7fd07582320012006c652d5ea584042ef Author: pingc Date: Thu Jul 24 23:31:50 2003 +0000 Added xsetwacom commands - Mode, SpeedLevel, and ClickForce commit 52ea21640fcaa0c698d3f39ba518a85bd16195e7 Author: pingc Date: Sat Jul 19 23:20:32 2003 +0000 Fixed Intuos tilt filter commit 73f82cb1cf1b7d552d7a97f039addf55ccfe32fa Author: townsley Date: Fri Jul 18 02:20:46 2003 +0000 add button support for styluses with two side switches. commit 4c98c902a2f43997e049882a1ded3c332444620b Author: townsley Date: Fri Jul 18 01:56:23 2003 +0000 fix eraser selection. commit dc0d76a30715ef5505a25a1143786cbb9a0e2aa0 Author: pingc Date: Wed Jul 16 20:38:51 2003 +0000 Added noise reducing filter and Improved USB relative movement commit 7672cca061cadd93a16bc96c5f2e0554ccc1c1e0 Author: jjoganic Date: Fri Jul 11 04:35:29 2003 +0000 Updated release. commit d1b8e8ad492b2ed30873e35d397d780751086f37 Author: jjoganic Date: Fri Jul 11 04:33:44 2003 +0000 Fixed date. commit eb8eeee3a91da88dfdc760c81965fdb7aa640a51 Author: jjoganic Date: Fri Jul 11 03:37:52 2003 +0000 Fixed intuos filter, added pedantic to compiler options, minor warnings fixed. commit 46a981bd15f25999acac7522e777bff7d59c5159 Author: pingc Date: Mon Jul 7 21:24:15 2003 +0000 Changed src/Makefile.am to support kernel 2.5 commit 042d685611f9504f16d1f7f27188e1b309423240 Author: pingc Date: Wed Jun 25 18:34:10 2003 +0000 Support TwinView setup commit d17b6102664a9e211d371fcaf5910f27aa26dfa7 Author: jjoganic Date: Thu Jun 19 15:49:19 2003 +0000 Suppression value of 0 disables suppression. commit 7c2aaef2f31b73ab0b41a93312f78de698976e55 Author: jjoganic Date: Thu Jun 19 15:40:49 2003 +0000 Added 0x47 to wcmUSB, updated version number. commit 7ae94b2b29a3400eef9a172ecb21d7a710213e06 Author: jjoganic Date: Thu Jun 19 15:37:23 2003 +0000 Updated version numbers of 0x47 patch. commit 8b767f4b216d48ddef7387bd69b7acd43f605eff Author: jjoganic Date: Thu Jun 19 15:28:44 2003 +0000 Fix for Intuos2 6x8's reporting as 0x47. commit e6d2e00da747956ee243d5198d79588b9c3d3e62 Author: jjoganic Date: Tue Jun 17 16:16:46 2003 +0000 Added xf86 version. commit b76731af9fbd785b29253a043123fdd6760f2765 Author: jjoganic Date: Tue Jun 17 02:08:31 2003 +0000 Added mkxincludes, automatic configure for x-includes. commit c8611fdbb2ddc1b3996192d4b88e69ec4bd75d83 Author: jjoganic Date: Mon Jun 16 04:11:20 2003 +0000 Updated versions. commit 2ec5c22f1112912434c310a1258765c2bf401a71 Author: jjoganic Date: Mon Jun 16 04:07:43 2003 +0000 Distribution release 0.5.1-beta. commit 1fe75a504210a67cb89fa02956e00767523a1516 Author: jjoganic Date: Sun Jun 15 03:10:03 2003 +0000 Intuos filtering enabled by default. Fixed APM restart problem. commit 6868108bbc279c50ab7c934afa75741d679cf230 Author: jjoganic Date: Sun Jun 15 00:56:18 2003 +0000 Moved wacomxi, updated tcl and tk dep check, restored intuos filter commit eeabc4314bd0c392a515483a0dcf4d6b55e89e04 Author: pingc Date: Fri Jun 13 00:39:18 2003 +0000 Added pkgIndex.tcl for wacomcpl commit 299d9c35763fe1f2cfa8ed8d32d4c499464e2de2 Author: pingc Date: Fri Jun 13 00:35:04 2003 +0000 Changed wacomxi.so to libwacomxi.so for automake commit 4b54ca479364220af344b0998950d0ad491936ec Author: pingc Date: Wed Jun 4 00:42:20 2003 +0000 Added wacomxi.c, wacomxi.h and wacomcpl to project commit 9b66e8a00ce4461d9d753be7caa55d4546cb11de Author: pingc Date: Wed Jun 4 00:35:35 2003 +0000 Add wacomcpl - just a calibration utility at this moment commit c376a5c1a6f3b9c18048fc1ca6f9ec3966290823 Author: jjoganic Date: Fri May 16 04:24:40 2003 +0000 Added timestamp to sample structure; xidump shows velocity and acceleration. commit 6172c30dc15e1918fc3dc3dd493989ef7d2a4277 Author: pingc Date: Tue May 13 00:15:06 2003 +0000 Support relative wheel as 4/5 button and cleaned valuators for relative mode commit 4a2ab077a79146d5a4ab8946976490c46b60fccd Author: pingc Date: Sat May 10 00:23:11 2003 +0000 Added Cintiq Partner, G3, and a few xsetwacom commands commit 4e3653ae8b040678856da70bb198380c8ef99cf6 Author: pingc Date: Sat May 10 00:14:08 2003 +0000 Added Cintiq Partner, G3, and a few xsetwacom commands commit 673e6d883005c8683c361ddc9d1f1f90f16180e8 Author: jjoganic Date: Mon May 5 06:20:40 2003 +0000 Added raw filtering, overhauled device reading, various consolidations, and added historical states for error correction code. commit 9a694eaa59d0326d5a96f1f3a1397f9de80885af Author: jjoganic Date: Sat May 3 09:35:14 2003 +0000 Updated pressure curve; configurable pressure curve, debug level. commit 17873f7968b59cb2f8e9a55fd7830e715559d52e Author: jjoganic Date: Sat May 3 04:23:04 2003 +0000 Added xsetwacom and friends; configuration coming soon. commit d561e186fb96db408cdb3e47a6687479635826af Author: haoto Date: Fri May 2 11:16:42 2003 +0000 Cleanup; moved pressure button downstream, set-screen up; dx+dy suppression commit 1fc354485bb188829fed2d75246b0cd2ce55840b Author: jjoganic Date: Fri May 2 00:38:58 2003 +0000 Moved throttle check out of suppress; graphire wheel is relative. commit 36ca239d6c64eff9435f4d0e8b436ed57fe1497d Author: pingc Date: Wed Apr 30 22:29:00 2003 +0000 Add Button options and support sending data back to driver while system running commit 72057fc3bd1d8ab6824b7af8c42e8d81a2f98ac8 Author: jjoganic Date: Wed Apr 30 07:46:27 2003 +0000 Added pressure curve. Very tight. commit ae379faf599f8750b031712d40008b80888565c8 Author: jjoganic Date: Wed Apr 30 04:33:24 2003 +0000 Split absolute and relative wheel values in early stage of data path. commit e67e830f0471e660e00a0833a7f50af4e9a6f87e Author: jjoganic Date: Wed Apr 30 04:32:20 2003 +0000 Split relative and absolute wheel value. Updated graphire parser. commit 0664746c847314c9a299c0e6f0d12c4edd046684 Author: haoto Date: Sat Apr 26 10:29:15 2003 +0000 Fixed USB protocol 4 bustage. commit 08f8f3662f81c29f47520f51d84e5c417f064c16 Author: pingc Date: Mon Apr 21 23:15:44 2003 +0000 Updated serial UD and PL support commit 32190832bbc3208122c40c621ac0e30b358a0203 Author: pingc Date: Mon Apr 21 23:09:20 2003 +0000 Changed wcmSerial.c. commit a96a10ad50ffc0b78c7fd87e77c2827f11382661 Author: haoto Date: Fri Apr 18 16:47:26 2003 +0000 fixed throttle code, slightly refined Xinerama code, dead screen area check commit 2608d2b3c1b2e2bcdbe185aaba217e8f5926945a Author: haoto Date: Thu Apr 17 18:21:23 2003 +0000 set screen only for core events; multi-screen keepshape; (temporarily) reenabled fake button 4/5; unified cursor acceleration. commit e9fccad969c975faf73c1c672a095988d0af94d3 Author: haoto Date: Wed Apr 16 18:45:26 2003 +0000 Fixed USB protocol 4 devices broken by last change. commit 8f168d6a8db1592177fbf96f5fd121b3e5cef8c3 Author: haoto Date: Wed Apr 16 16:59:32 2003 +0000 Software solution of dual channel input for USB devices. commit 2273cd935ba9a2cfff8a23acab9f8e74664a1aa8 Author: haoto Date: Wed Apr 16 14:07:43 2003 +0000 Basic Xinerama support. commit 9c061ad9fcec144fb2224a3b777d8abf55262ed6 Author: haoto Date: Mon Apr 14 12:37:23 2003 +0000 *** empty log message *** commit 2497b894eb5f0a3bf05af619772a35d072781fd5 Author: haoto Date: Mon Apr 14 12:31:52 2003 +0000 Small KeepShape fix commit 6b6df9eb11c8d75a71ef34dcd917211f35a7905b Author: jjoganic Date: Wed Apr 9 08:32:16 2003 +0000 Removed extraneous device type flags. commit 249e66b4272b81988933dd8e4c742aeabab5f30e Author: jjoganic Date: Wed Apr 9 08:27:43 2003 +0000 raw throttle on 4, fixed serial 4d mouse rotation, threshold defaults. commit 6fd7dee897a423703ff60891794a4a73db8a35f9 Author: jjoganic Date: Wed Apr 9 07:00:30 2003 +0000 Exploded out serial initialization, fixed USB tilt ranges. commit f99fbe5a587488891a5e2d2eae88592c374e3f60 Author: jjoganic Date: Wed Apr 9 02:06:00 2003 +0000 Pulling initialization apart; please be patient. commit 70c6b14450f5597f5438130e66ea189e98f00fc0 Author: jjoganic Date: Tue Apr 8 07:20:46 2003 +0000 Added channel code; device proximity bound to channel. commit 7ae7f4d3114daba07974456d9f5acb82e5573b7a Author: jjoganic Date: Tue Apr 8 05:34:45 2003 +0000 Updated pressure code, formalized data path, protocol4 still needs help. commit 3481e8eb59a80777b75b0ece238375f0319051c5 Author: jjoganic Date: Tue Apr 8 01:08:11 2003 +0000 Added const restriction on data path. commit ea48d0f809d877f8c64e30d11d19de11e6792fe1 Author: jjoganic Date: Tue Apr 8 01:00:32 2003 +0000 Moving functionality around. commit 3c5b0389419a403a84f96efd451c072af5bc6abd Author: jjoganic Date: Mon Apr 7 22:40:22 2003 +0000 Moving state pieces around... maybe broken, sorry. Will fix soon. commit ce61117962774045fda6901fc817cb2248e6b794 Author: jjoganic Date: Mon Apr 7 19:22:10 2003 +0000 Fixed bug in tilt filter. commit ee4cace0f4fe40d80d6caf4151ccfcb90e7c788c Author: jjoganic Date: Mon Apr 7 18:26:27 2003 +0000 Quick bug fix. commit bc706c12d1306234869bd812aacc770e5db6cb1f Author: haoto Date: Mon Apr 7 14:55:54 2003 +0000 Set resolutions for USB tablets. commit 3fd1d8728b92cfb88269f2a7d8096f045831abe1 Author: jjoganic Date: Mon Apr 7 08:20:39 2003 +0000 Updated log entry. commit dd7ca14595dba41458062254e75aa66c4f2c339f Author: jjoganic Date: Mon Apr 7 06:33:05 2003 +0000 Refactored xf86Wacom.c. commit bdbbe6daedf72a8c056d1207cbbf1fc2af46303f Author: jjoganic Date: Thu Apr 3 03:13:54 2003 +0000 Added Jonathan Paisley's reattach patch to evdev.c commit 6ab7cff8e8cd93203282c0cfce35d61fae5fd86c Author: jjoganic Date: Thu Apr 3 03:03:54 2003 +0000 Added J. Yen's "misc fixes" patch to xf86Wacom.c commit 9a25da393ea410facd5f96eb864c8192ab139c1f Author: jjoganic Date: Tue Apr 1 05:52:57 2003 +0000 Added fix for mousedev.c commit 163e287cdff696a1aaf6e22e0a8707d320659a03 Author: jjoganic Date: Sun Mar 23 06:09:11 2003 +0000 Merged Dean Townsley's ISDV4 patch. commit 80d41e3ca955a5062de702791c467ac06dc4bf47 Author: jjoganic Date: Sun Mar 23 05:56:42 2003 +0000 Preparing updated 0.5 package. commit aeda95cf693266a420875a8234def8359dcf3ac5 Author: jjoganic Date: Sun Mar 23 05:56:06 2003 +0000 Added xlib test. commit f674ede38e6f308be4b33d2db82dc09b66c69f60 Author: jjoganic Date: Sun Mar 23 05:54:42 2003 +0000 Updated xidump.c commit 6f5255a81bdd50eb871ab3ae3e2b269739b3a079 Author: jjoganic Date: Sat Mar 22 23:54:47 2003 +0000 Added ncurses detection. commit 3cd882e951424d30b98543bb85fe1ddcd6722d3a Author: jjoganic Date: Sun Mar 9 07:04:56 2003 +0000 Adjusted valuator ranges for z-rot. commit 7c7a9c7375310477d26f4adb8bd556dd7b255b50 Author: jjoganic Date: Sun Mar 9 05:52:36 2003 +0000 xidump now builds by default commit 9ccfd5151ade65fca1af6365b53978bfe2be7683 Author: jjoganic Date: Sun Mar 9 05:41:54 2003 +0000 Added curses functionality to xidump.c commit 5cc26895689ef103b9c8baca312591cc7025af12 Author: jjoganic Date: Sat Mar 8 08:42:10 2003 +0000 Added events. commit 0fade22cf44de8624073b252e3b30ba32b4c95ea Author: jjoganic Date: Sat Mar 8 03:59:09 2003 +0000 Added class info to device list. commit 5ef805aa40705bea7d51e3f585ceca7e46b38d37 Author: jjoganic Date: Sat Mar 8 01:09:27 2003 +0000 Gets device- need window and grab. commit 90d1c2009182c5042e1313d2b928ea087f125081 Author: jjoganic Date: Fri Mar 7 23:35:39 2003 +0000 Added device list capability to xidump.c commit 16d4d29c678a3515ed688dba4d8e19d59652446a Author: jjoganic Date: Fri Mar 7 22:21:37 2003 +0000 Added tabletdev.c framework. commit 0a463cacfe14356777f1e094527419f674501f88 Author: jjoganic Date: Fri Mar 7 06:26:37 2003 +0000 Added input.c to project. commit 7ab8acf6011496cf6323cfd8350c13df8bef2624 Author: jjoganic Date: Fri Mar 7 05:24:42 2003 +0000 Added evdev.c and Jonathan Paisley's oops patch. commit 83420572b306a3584e920d91945894518f058539 Author: jjoganic Date: Fri Mar 7 04:21:31 2003 +0000 Added xidump.c commit 08dcb8e0c2b818c4b53d2e8b08c2210e9e2fef86 Author: jjoganic Date: Fri Mar 7 04:15:22 2003 +0000 Applied Ping Cheng's suppress patch. commit fb1e79cb7aec11faa5b5e25c19b20c6eaac81b8b Author: jjoganic Date: Sun Feb 23 06:56:57 2003 +0000 Updated version number. commit 2a053aa62fcb4cdcf1b7c0c37d8a7dc8df8e9a4c Author: jjoganic Date: Sun Feb 23 05:01:50 2003 +0000 Added J. Yen's origin patch. commit bb7584421590f0478861d923d9f8a3f3c439df9c Author: jjoganic Date: Sun Feb 23 04:53:55 2003 +0000 Multi-monitor patch; XFree86 v3.x build options. commit 3c06228e166931eedea3e42f79c590e490a895fb Author: jjoganic Date: Thu Feb 13 01:35:57 2003 +0000 Updated changelog. commit 4b905d9259bb213d257b3dd0c6380f734c08c22e Author: jjoganic Date: Thu Feb 13 01:34:21 2003 +0000 Updated patch and documentation. commit 845f2d0c8b9aa40a587473dbf2e1acd953c7986c Author: jjoganic Date: Wed Feb 12 20:05:54 2003 +0000 Added version option and fixed usage. commit a9c8114e3bd36fad78eef2661ca7d1a8da4f1011 Author: jjoganic Date: Wed Feb 12 17:52:52 2003 +0000 Applied patches for PL and USB. commit c1619ec02e0c542231a14a7b4c6e12a6e1a0318c Author: jjoganic Date: Sat Feb 1 06:25:42 2003 +0000 Fixed serial number code. commit 865915dcb358c6294318de1bc083d40a5e0c8a4d Author: jjoganic Date: Sat Feb 1 05:19:22 2003 +0000 Adding Ping Cheng's PL code. Swapped perror for SerialLog in wacserial.c. commit 8250a2528f1516e2ca4aa468b12d941bb3192571 Author: jjoganic Date: Sat Feb 1 03:34:48 2003 +0000 Fixes delay in launching X when a tablet is configured in XF86Config but not plugged in. commit f42c87580dd121cbb944e7b67886a7f2626c8f0f Author: jjoganic Date: Sat Feb 1 02:42:32 2003 +0000 Updated for new release. commit 1658af81a0a08eec0ac169e948652d39e73c879c Author: jjoganic Date: Sat Feb 1 01:59:01 2003 +0000 Fixed function prototype. commit bfc68acbca01fcdbaef6da450c408e59a0d8b487 Author: jjoganic Date: Tue Jan 28 03:05:14 2003 +0000 Added logging, timeouts, and serial reset on bit errors. commit b12611e2d51517f8835a363fa339749bb14b9486 Author: jjoganic Date: Tue Jan 28 00:04:21 2003 +0000 Added timeout for reset and tablet detection in wacserial.c commit df8cda42a9eaf4f19aad5568b5bdf0387b330bbf Author: jjoganic Date: Mon Jan 27 23:26:48 2003 +0000 Changed macros from WAC_ to WCM_ to solve bug in Mandrake 9's autoconf. commit 94cd3b31ed4a46a3084110439bdbda77cc79029a Author: jjoganic Date: Mon Jan 27 23:19:07 2003 +0000 Added missing file, as well as documentation. commit 433bd2c4a6330110eb020c2c2e5df37fa960f6a3 Author: jjoganic Date: Mon Jan 27 06:53:14 2003 +0000 Fixed Acer C100 model name and description. commit 65522f525f01cb6bb1d05b6c1d76f608d3250c14 Author: jjoganic Date: Mon Jan 27 06:32:59 2003 +0000 Merged Dean Townsley's patch. Added device detection structures. commit b6b72c0f0ae0392973501c5f4f9524231bea49b2 Author: jjoganic Date: Sun Jan 26 05:38:23 2003 +0000 Updated version, added macros for pre 2.4.5 kernel build. commit a49f1a8458ea431b88633b06f45c517024128115 Author: jjoganic Date: Sun Jan 26 05:28:20 2003 +0000 Moved USB code to new file. Linux-specific stuff isolated. commit c0a093d29e1c89430ad4944212cb7d4bc838d0f3 Author: jjoganic Date: Thu Jan 16 18:12:55 2003 +0000 Added fix for Madrake's .o.gz modules in configure. commit 65f0e2cc70053289aa48841cf18f68fbeb639ec5 Author: jjoganic Date: Thu Jan 16 18:08:06 2003 +0000 Removed dependency on text document. commit 332aa5b949e12c165716f0ce004ac14d87955939 Author: jjoganic Date: Fri Jan 10 23:05:08 2003 +0000 Updated graphire macros. commit fafe87883437e99da012c3efff07f35aa3e5073b Author: jjoganic Date: Fri Jan 10 01:41:24 2003 +0000 Updated Intuos and Intuos2 sizes. commit c6115b436739f1c3c04f00c7e122b139d2e99ca2 Author: jjoganic Date: Fri Jan 10 01:17:20 2003 +0000 Added patch for HID_QUIRK. commit 8e353dbf4d3193d2ff5ec1f5c2483211e97f3439 Author: jjoganic Date: Thu Jan 9 23:36:01 2003 +0000 Added no-merge-constants patch, fixed I2 4x5 Ymax. commit 2c49cd3148f1e7b0a2bee0a557aa23eab872c0d0 Author: jjoganic Date: Tue Jan 7 04:16:48 2003 +0000 Text document contains too many html-artifacts; removing for sanity sake. commit 423755ff82c4a99984d256ce9aa4d83ae1f41147 Author: jjoganic Date: Tue Jan 7 04:12:21 2003 +0000 Updated for new release. commit 322e67c910008d28fb0037afe2ca7836d9f313b5 Author: jjoganic Date: Tue Jan 7 03:57:20 2003 +0000 Added volito to hid-core.c commit a12ac480b25fe9a2210e65bc7febbb00d4b4d996 Author: jjoganic Date: Tue Jan 7 03:44:06 2003 +0000 Unknown reports now info, not err. Updated version numbers. commit f634cc4c46d2be7f5c6309c00efbeb229bbbb454 Author: jjoganic Date: Thu Jan 2 03:27:32 2003 +0000 2D mouse buttons fixed in xf86Wacom.c serial. commit 7e1e4c6f7be928d9fa1a27ffd0d956af889a2ef3 Author: jjoganic Date: Thu Jan 2 02:55:22 2003 +0000 Added penpartner and graphire. commit e2063d328fdbdfe701a7ac22234a7ec92376e687 Author: jjoganic Date: Thu Jan 2 02:19:39 2003 +0000 Fix to volito range. Updated wacdump refresh. commit 8ba73f5029f09d384030c32097c009a969c835ae Author: jjoganic Date: Wed Jan 1 02:02:43 2003 +0000 Automatic module loading for wacom and evdev for usb. commit 70e4ea36fda06ef197f06b119ec005e2f123be3d Author: jjoganic Date: Wed Jan 1 01:59:54 2003 +0000 Fix for unknown report #1 using kernel thread. commit eb42de7b257ad25753a356007ec2a6fc401e6e7c Author: jjoganic Date: Wed Jan 1 00:54:17 2003 +0000 Added Ping Cheng's new tool IDs. commit a1e3b7128a56b530cc0f11f9f15a51fa5cbbcc82 Author: jjoganic Date: Fri Dec 27 15:46:08 2002 +0000 Added test client code. commit 9d41e18c129678ba5f6dc3d330fb032bc46efc75 Author: jjoganic Date: Fri Dec 27 05:33:52 2002 +0000 Added module loading for wacom and evdev. commit 1b14fe5644ec70c936f30ffc0341b9b4712c927d Author: jjoganic Date: Thu Dec 26 19:28:09 2002 +0000 Fixed tablet initialization. commit ba23e0362c2fd1aa72bea910812382d2bb9ed229 Author: jjoganic Date: Mon Dec 23 02:44:28 2002 +0000 Initial revision