Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

New Windows update bug #1124

Open
wants to merge 46 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
46 commits
Select commit Hold shift + click to select a range
1ee570f
Add 1000 Hz option
Devocub Mar 21, 2018
ab6bdde
Stronger smoothing for static cursor (antichatter)
Devocub Mar 21, 2018
0a45db0
Antichatter implementation
Devocub Mar 22, 2018
20f8d18
images...
Devocub Mar 22, 2018
4c0633a
Update README.md
Devocub Mar 22, 2018
9c1eb55
Update README.md
Devocub Mar 22, 2018
2df4a8c
Update README.md
Devocub Mar 22, 2018
dcfbd82
Update README.md
Devocub Mar 22, 2018
b9d6513
Update README.md
Devocub Mar 22, 2018
43737ab
Update README.md
Devocub Mar 22, 2018
6cc5177
Update README.md
Devocub Mar 22, 2018
d7f3fea
Update README.md
Devocub Mar 27, 2018
e2ee645
Update README.md
Devocub Mar 27, 2018
3697fd6
Update README.md
Devocub Mar 29, 2018
67b91c1
Update README.md
Devocub Mar 31, 2018
97bd79b
Update README.md
Devocub May 31, 2018
86a25d0
Update driver to 0.1.5 version. New Type 3 filter.
Devocub Jun 8, 2018
660b25e
Update README.md
Devocub Jun 8, 2018
86b1d24
X, Y Offsets, and Multiplier
Devocub Jun 14, 2018
6e1288b
Next generation of smoothing
Devocub Jun 15, 2018
a176e50
Update README.md
Devocub Jun 15, 2018
edc47dd
Update README.md
Devocub Jun 15, 2018
33e5ae5
Update README.md
Devocub Jun 15, 2018
66da743
Update README.md
Devocub Jun 15, 2018
e2e9f05
Update README.md
Devocub Jun 15, 2018
5c3b5fc
Added ability to set negative values for OffsetY
Devocub Jul 10, 2018
25aa030
Add files via upload
Devocub Jul 10, 2018
5e98594
update readme
Devocub Jul 10, 2018
b2df0b2
update readme
Devocub Jul 10, 2018
2310225
Prediction implemented
Devocub Jul 13, 2018
000dbcc
Update README.md
Devocub Jul 13, 2018
bf098bf
added images
Devocub Jul 14, 2018
03de72a
Update README.md
Devocub Jul 14, 2018
a5dabc0
Update README.md
Devocub Jul 14, 2018
0dcee8f
Update README.md
Devocub Jul 14, 2018
f92fbb1
Update README.md
Devocub Jul 14, 2018
ed46126
Update README.md
Devocub Jul 14, 2018
db6287c
Add files via upload
Devocub Jul 15, 2018
780c00f
Delete 7.png
Devocub Jul 15, 2018
8508dd9
Add files via upload
Devocub Jul 15, 2018
f19de45
Update README.md
Devocub Jul 15, 2018
acfb336
Added Mouse Wheel support
Devocub Jul 18, 2018
d61914d
Update README.md
Devocub Jul 18, 2018
d502106
Update README.md
Devocub Jul 18, 2018
91f6d6c
Update README.md
Devocub Aug 14, 2018
6da742e
Set theme jekyll-theme-midnight
Devocub Jun 20, 2019
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
213 changes: 199 additions & 14 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,147 @@
This is a my modified version of hawku's tablet driver.
Intended for Wacom tablets but will work with other tablets but not expect everything work correct.
Comparison with original, added:
* Antichatter
* Prediction
* Mouse Wheel

## Download
### https://github.com/Devocub/TabletDriver/releases
### Installing
1) If you have already Driver installed just: **close it, and unzip new version with replacing files**.
Your config will be preserved. Same for updating.

If you have not installed the driver then:
follow instructions here: https://github.com/Devocub/TabletDriver#installation and after return to step 1.
My version based on 0.1.5 version of driver.

_____
# PRESETS

### Smooth 2 + prediction = accurate with small overshot
[Plot link](http://yotx.ru/#!1/3_8hTp/4/0@A9YW1PuH@xvHewbMYT/tX0PmbQGp5H5j3/Cx3/F3x@ZD4TT9g/2tw72jRjC/9r@xh70YHd9Ywe8ubUL3oJu7R/sk2jYjZ1TxuPpFuNx6/Jid39rf2v79@@fv7Gxt3kAQZztgrcgO7vgLcgWdAtysX@wT6JhN0AHjMcd0BbjEXSwu7@1DwQ=)
![Alt text](https://raw.githubusercontent.com/Devocub/TabletDriver/master/images/Smooth%202%20%2B%20prediction%20%3D%20accurate%20with%20small%20overshot.png)
Video:
[![IMAGE ALT TEXT HERE](https://img.youtube.com/vi/aZWoWwSmlEw/0.jpg)](https://www.youtube.com/watch?v=aZWoWwSmlEw)
Video - same but with prediction disabled:
[![IMAGE ALT TEXT HERE](https://img.youtube.com/vi/vimw1kihegk/0.jpg)](https://www.youtube.com/watch?v=vimw1kihegk)

____________________
### Straight - Pretty good realtime accurate
[Plot link](http://yotx.ru/#!1/3_8hTp/4/0@A9YW1PuH@xvHewbMYT/tX0PmbQGp5H5j3/Cx3/F3x@ZD4TT9g/2tw72jRjC/9r@xh70AILYXd/YOgBvbu2CLw6gW/sH@yQadmPnlPF4usV43Lq82N3f2t/a/v37529s7G3uQA52wQcQ2C74AAKCHkDO9g/2STTsBuiA8bgD2mI8gg5297f2AQc=)
![Alt text](https://raw.githubusercontent.com/Devocub/TabletDriver/master/images/Straight%20-%20Pretty%20good%20realtime%20accurate.png)
Video:
[![IMAGE ALT TEXT HERE](https://img.youtube.com/vi/SMrSGq8IvaU/0.jpg)](https://www.youtube.com/watch?v=SMrSGq8IvaU)

____________________
### Big latency and big prediction
[Plot link](http://yotx.ru/#!1/3_8hTp/4/0@A9YW1PuH@xvHewbMYT/tX0PmbQGp5H5j3/Cx3/F3x@ZD4TT9g/2tw72jRjC/9r@xh70YHd9Ywe8ubUL3oJu7R/sk2jYjZ1TxuPpFuNx6/Jid39rf2v79@@fv7Gxt7kFOdsFH0AudsEX0API6f7BPomG3QAdMB53QFuMR9DB7v7WPgI=)
![Alt text](https://raw.githubusercontent.com/Devocub/TabletDriver/master/images/Big%20latency%20and%20big%20prediction.png)
Video:
[![IMAGE ALT TEXT HERE](https://img.youtube.com/vi/k_KMV3Ujvjo/0.jpg)](https://www.youtube.com/watch?v=k_KMV3Ujvjo)

____________________
### Fun
[Plot link](http://yotx.ru/#!1/3_8hTp/4/0%40A9YW1PuH%40xvHewbMYT/tX0PmbQGp5H5j3/CRwBpTQn8JQP/4I8bpDXlLuPRQyatwWlk/uOf8PFf8fdH5gPhtMcNLCG1trt/sH%402b8QQ/tf2t7Z///75Gxt7m1u74AMI4mwXfAHd2j/YJ9GwG1swBOPxgPF4sLu/tb%40xB93aXd%404AG9u7YK3DqBb%40wf7JBp2Y%40eU8Xi6xXjcurzY3d/aBwU=)
![Alt text](https://raw.githubusercontent.com/Devocub/TabletDriver/master/images/Fun.png)
Video:
[![IMAGE ALT TEXT HERE](https://img.youtube.com/vi/KthrzJrCrGc/0.jpg)](https://www.youtube.com/watch?v=KthrzJrCrGc)



_____
# Antichatter

Antichatter feature is meant to prevent cursor chattering/rattling/shaking/trembling when it's almost doesn't moves and/or too high to prevent tablet noise.
Antichatter in it's primary form is useful for tablets which doesn't have any smoothing (including hardware smoothing).
Antichatter requires smoothing filter enabled for work. Latency and Rate values do affect on antichatter settings.

Formula for smoothing is:
y(x) = (x + OffsetX)^(Strength\*-1)\*Multiplier+OffsetY
Where **x** is pen speed. And **y(x)** is value on which smoothing will be increased. Slower speed - more smoothing. Faster speed - less smoothing.
![Alt text](https://raw.githubusercontent.com/Devocub/TabletDriver/master/images/formula_example.png)
[Link](http://yotx.ru/#!1/3_8hTp/4/0%40A9YW1PuH%40xvHewbMYT/tX0PmbQGp5H5j3/Cx3/F3x%40ZD4TT9g/2tw72jRjC/9r%40xh50C3K2u74BAm9u7YK3Dg6gW/sH%40yQadmPnlPF4usV43Lq82N3f2gcF)

Strength, Multiplier, OffsetX and OffsetY is values which you can change in driver.

**Strength**: is strength, useful values are from 1 up to 10. Higher values make smoothing more sharper, lower are smoother.

**Multiplier**: zoomIns and zoomOuts the [plot](http://yotx.ru/#!1/3_8hTp/4/0%40A9YW1PuH%40xvHewbMYT/tX0PmbQGp5H5j3/Cx3/F3x%40ZD4TT9g/2tw72jRjC/9r%40xh50C3K2u74BAm9u7YK3Dg6gW/sH%40yQadmPnlPF4usV43Lq82N3f2gcF). Useful values are from 1 up to 1000. Makes smoothing softer. Default value is 1, means nothing changed.

**Offset X**: Moves the [plot](http://yotx.ru/#!1/3_8hTp/4/0%40A9YW1PuH%40xvHewbMYT/tX0PmbQGp5H5j3/Cx3/F3x%40ZD4TT9g/2tw72jRjC/9r%40xh50C3K2u74BAm9u7YK3Dg6gW/sH%40yQadmPnlPF4usV43Lq82N3f2gcF) to the right. Negative values moves the [plot](http://yotx.ru/#!1/3_8hTp/4/0%40A9YW1PuH%40xvHewbMYT/tX0PmbQGp5H5j3/Cx3/F3x%40ZD4TT9g/2tw72jRjC/9r%40xh50C3K2u74BAm9u7YK3Dg6gW/sH%40yQadmPnlPF4usV43Lq82N3f2gcF) to the left. Higher values make smoothing weaker, lower values stornger and activate stronger smoothing earlier (in terms of cursor speed). Useful values are from -1 to 2. Default values is 0.

**Offset Y**: Moves the [plot](http://yotx.ru/#!1/3_8hTp/4/0%40A9YW1PuH%40xvHewbMYT/tX0PmbQGp5H5j3/Cx3/F3x%40ZD4TT9g/2tw72jRjC/9r%40xh50C3K2u74BAm9u7YK3Dg6gW/sH%40yQadmPnlPF4usV43Lq82N3f2gcF) up. Useful values are from roughly -1 up to 10. Look at the plot, if strength of smoothing is near 0 then it provides almost raw data with lowest delay. If value is near 1 then it's usual smoothing. Also it defines minimal amount of smoothing. OffsetY 10 will make smoothing x10 (and latency). OffsetY 0.5 will make smoothing roughly twice weaker (and latency will be roughly twice less), 0.3 roughly triple weaker, etc. Default value is 1.


## Presets
**Simple**: Latency 5-50 ms, Strength 2-3, Multiplier 1, OffsetX 0, OffsetY 1.
[Interactive link](http://yotx.ru/#!1/3_8hTp/4/0%40A9YW1PuH%40xvHewbMYT/tX0PmbQGp5H5j3/Cx3/F3x%40ZD4TT9g/2tw72jRjC/9r%40xh70YHd94wK8ubUL3oJu7R/sk2jYjZ1TxuPpFuNx6/Jid39rHwM=)
![Alt text](https://raw.githubusercontent.com/Devocub/TabletDriver/master/images/simple.png)
_____
**Smooth**: Latency ~10 ms, Strength 3, Multiplier 100, OffsetX 1.5, OffsetY 1.
Change OffsetX between 0-2 to switch between stickyness and smooth.
Increase Strength to 4-10 to get more sharp. Decrease Strength to 1-2 to get more smoothing.
[Interactive link](http://yotx.ru/#!1/3_8hTp/4/0%40A9YW1PuH%40xvHewbMYT/tX0PmbQGp5H5j3/Cx3/F3x%40ZD4TT9g/2tw72jRjC/9r%40xh50C3K2u75xAd7c2gVvHRxAt/YP9kk07MbOKePxdIvxuHV5sbu/tQ8E)
![Alt text](https://raw.githubusercontent.com/Devocub/TabletDriver/master/images/smooth.png)
_____
**Straight**: Latency 20-40ms, Strength 20, Multiplier 1, OffsetX 0.7, OffsetY 0.6. This preset aren't good for high hovering. Because of OffsetY < 1 actual latency is less.
[Interactive link](http://yotx.ru/#!1/3_h/sH%401sH%400YM4X9t/2j/YH/rYN%40IIfyv7W/sQQ8giN31jZ0D8ObWLngLegA53T/YJ9GwGzunjMfTLcbj1uXF7v7WPgI=)
![Alt text](https://raw.githubusercontent.com/Devocub/TabletDriver/master/images/straight.png)
_____

**Low latency**: Set Offset Y to 0 (and could be useful to set Latency to 1-10 ms but with some settings it can break smoothing, usually OffsetY 0 is enough) to being able to go to lowest latency.

_____

# Prediction
How it works: It adds a predicted point to smoothing algoritm. It helps to preserve sharpness of movement, help with small movements.
Low values (~<10-15ms) of smoothing latency can cause problems for cursor movement. It's very preffered to use at least 10-15ms of smoothing latency, 20-40 ms is even better and recommended. In sum cursor can even outdistance real position (similar to Wacom 6.3.9w5 drivers).

Formula for prediction is:
y(x) = 1/cosh((x-OffsetX)\*Sharpness)\*Strength+OffsetY
Where **x** is pen speed. And **y(x)** is strength of prediction.
![Alt text](https://raw.githubusercontent.com/Devocub/TabletDriver/master/images/prediction_formula_example.png)
[Link](http://yotx.ru/#!1/3_8hTp/4/0%40A9YW1PuH%40xvHewbMYT/tX0PmbQGp5H5j3/CRwBpTQn8JQP/4PsH%401sH%400YM4X9tf2v79%40%40fv7Gxt7kFudgFb0G2dsEXkAPoAeRg/2CfRMNubMEQjMcDxuPB7v7WPgI=)

Strength, Sharpness, OffsetX and OffsetY is values which you can change in driver.

**Strength**: is max of peak of prediction. Useful values are from 0 to 2, or up to 3-4 depends of latency.

**Sharpness**: changes how wide will be Strength.

**OffsetX**: center of peak of prediction. Useful values are from 0.5 up to 5-7. Increase value to shift cursor speedup to bigger movements.

**OffsetY**: Moves the plot up/down (positiove/negative values). Also defines minimal amount of prediction.

### Presets:
**Simple+**:
Staright or Smooth preset of smoothing +
Strength 1-3 (for 5-50 ms respectively), Sharpness 1, OffsetX 0.8, OffsetY 0
[Interactive link](http://yotx.ru/#!1/3_8hTp/4/0%40A9YW1PuH%40xvHewbMYT/tX0PmbQGp5H5j3/CRwBpTQn8JQP/4PsH%402f7Rgzhf21/Y2v79%40%40fv7Gxt3kAge2CtyAHu%40AdyBn0AHKwu3%40wT6JhN7ZgCMbjAePxYHd/ax8D)
![Alt text](https://raw.githubusercontent.com/Devocub/TabletDriver/master/images/prediction_simplesmooth.png)
_____
**Straight+**:
Staright preset of smoothing +
Strength 0.3, Sharpness 0.7, OffsetX 2, OffsetY 0.3
[Interactive link](http://yotx.ru/#!1/3_8hTp/4/0@A9YW1PuH@xvHewbMYT/tX0PmbQGp5H5j3/CRwBpTQn8JQP/4PsH@2f7Rgzhf21/Y2v79@@fv7Gxt7kDOdgFH0AQu@ADyAX0AHKxu3@wT6JhN7ZgCMbjAePxYHd/ax8D)
![Alt text](https://raw.githubusercontent.com/Devocub/TabletDriver/master/images/prediction_straight.png)
_____
**Fun**:
Smoothing: Latency 40ms, Strength 3, Multiplier 10, OffsetX 1, OffsetY 1 +
Prediction: Strength 4, Sharpness 0.75, OffsetX 2.5, OffsetY 1
[Interactive link](http://yotx.ru/#!1/3_8hTp/4/0%40A9YW1PuH%40xvHewbMYT/tX0PmbQGp5H5j3/CRwBpTQn8JQP/4I8bpDXlLuPRQyatwWlk/uOf8PFf8fdH5gPhtMcNLCG1trt/sH%402b8QQ/tf2t7Z///75Gxt7m1u74AMI4mwXfAHd2j/YJ9GwG1swBOPxgPF4sLu/tb%40xB93aXd%404AG9u7YK3DqBb%40wf7JBp2Y%40eU8Xi6xXjcurzY3d/aBwU=)
![Alt text](https://raw.githubusercontent.com/Devocub/TabletDriver/master/images/prediction_fun.png)


______________________
______________________


![Alt text](https://raw.githubusercontent.com/Devocub/TabletDriver/master/images/3.png)
![Alt text](https://raw.githubusercontent.com/Devocub/TabletDriver/master/images/4.png)
![Alt text](https://raw.githubusercontent.com/Devocub/TabletDriver/master/images/7.png)


# TabletDriver

This is a low latency graphics tablet driver that is meant to be used with rhythm game [osu!](https://osu.ppy.sh/home)
Expand All @@ -12,7 +156,7 @@ The GUI minimizes to system tray / notification area. You can reopen the GUI by

## Download

### http://hwk.fi/TabletDriver/TabletDriverV0.1.0.zip
### http://hwk.fi/TabletDriver/TabletDriverV0.1.5.zip

#

Expand All @@ -26,27 +170,34 @@ The GUI minimizes to system tray / notification area. You can reopen the GUI by

### Supported tablets:
- Wacom CTL-470
- Wacom CTH-470
- Wacom CTL-471
- Wacom CTL-472
- Wacom CTL-480
- Wacom CTH-480
- Wacom CTL-490
- XP Pen G430
- XP Pen G640
- Huion 420
- Huion H640P
- Gaomon S56K

### Configured, but not properly tested:
- Huion H420
- Wacom CTH-470
- Wacom CTH-670
- Wacom CTH-490
- Wacom CTL-671
- Wacom CTL-672
- Wacom CTL-680
- Wacom CTH-680
- Wacom CTH-490
- Wacom PTH-451
- Wacom PTH-850
- XP-Pen G430 (New 2017+ "Model B")
- XP-Pen G540 Pro
- XP-Pen G640
- Huion 420
- Huion H420
- Huion H430P
- Huion H640P
- Gaomon S56K

### Configured, but not properly tested:
- Huion osu!tablet
- XP-Pen Deco 01
- Wacom CTL-4100 USB
- Wacom CTL-4100 Bluetooth
- https://github.com/hawku/TabletDriver/blob/master/TabletDriverService/config/wacom.cfg

#

Expand All @@ -57,16 +208,18 @@ The GUI minimizes to system tray / notification area. You can reopen the GUI by
* https://aka.ms/vs/15/release/vc_redist.x86.exe

2. Unzip the driver to a folder (Shorter path is recommended, for example `C:\Temp\TabletDriver`)
3. Uninstall all other tablet drivers.
3. Uninstall all other tablet drivers. If you have problems with uninstalling the Wacom drivers, check the GitHub issue [#1](https://github.com/hawku/TabletDriver/issues/1)
4. Run `install_vmulti_driver.bat`. It might need a restart if there is another vmulti driver installed.
5. If you have Huion or Gaomon tablet, you need to run `install_huion_64.bat`, which is in the `driver_huion` directory.
6. Start the TabletDriverGUI.exe

## Updating to a new version

1. Unzip the new version
2. Start the TabletDriverGUI.exe

## Uninstallation

1. Uncheck the "Run at Windows startup" option in the GUI.
2. Run `remove_vmulti_driver.bat`
3. Run `remove_huion_64.bat`, which is in the `driver_huion` directory.
Expand All @@ -86,6 +239,38 @@ If you want to compile the code and don't want to install anything from the Tabl
#

## Changelog
>**v0.1.5:**
> - New tablet configurations: Wacom CTL-4100 (USB only model), XP-Pen G540 Pro, XP-Pen Deco 01 and Huion osu!tablet
> Thanks to /u/THEqrunt for capturing the XP-Pen Deco 01 USB data.
> - Added `ResetDistance` command, it controls the relative mode position reset distance.
> - Code refactoring.

>**v0.1.4:**
> - Modified the Wacom CTL-471 full area size (147.20 x 92.25 mm to 152 x 95 mm)
> - New tablet configurations: Wacom PTH-850 and Huion H430P
> The PTH-850 configuration is made by [mojobojo](https://github.com/mojobojo)
> - Regenerated the wacom.cfg with new parameters, so it now includes PTH-450/650/850 and PTK-450/650

>**v0.1.3:**
> - Added left handed mode / tablet invert option.
> - Added Wacom driver device support for the CTL-471 and 472
> - Noise reduction filter improvement (`Noise` command)

>**v0.1.2:**
> - Added experimental support for leaving the Wacom drivers installed on the system.
> Supported tablets: CTL-470, CTL-480, CTH-480, CTL-4100
> - Added `disable_wacom_drivers.bat` and `enable_wacom_drivers.bat` to the `tools` folder.
> These scripts are used to disable and enable Wacom drivers when using the experimental Wacom driver support.
> - Added driver restart button.

>**v0.1.1:**
> - Added support for Wacom CTL-4100 (USB and Bluetooth)
> - Added settings import / export to the main menu.
> - Added Wacom backup reader to the Wacom area tool.
> - Added tablet benchmark tools to the console output context menu (Right click).
> - Moved the `config.xml` to the `config` folder.
> - Added noise reduction filter (`Noise` command, not in the GUI)
> - Code refactoring

>**v0.1.0:**
> - Added `Bench` / `Benchmark` command.
Expand Down Expand Up @@ -139,7 +324,7 @@ If you want to compile the code and don't want to install anything from the Tabl
> - New tablet configurations: Wacom CTH-470, CTH-670, PTH-451
> - Fix for the smoothing filter. The filter didn't turn on when the settings were applied.
> - Fix for the Huion H640P clicking problem and also added better data validation for Huion 420,
> Gaomon S56K, XP Pen G430 and G640.
> Gaomon S56K, XP-Pen G430 and G640.
> - Modified click detection on CTL-490 and CTH-490 (tablet.cfg ClickPressure).

>**v0.0.9:**
Expand Down
7 changes: 4 additions & 3 deletions TabletDriver.sln
Original file line number Diff line number Diff line change
Expand Up @@ -22,8 +22,8 @@ Global
Release|x86 = Release|x86
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{6793EBBD-0EC4-4254-9573-A19ECA79F2C8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{6793EBBD-0EC4-4254-9573-A19ECA79F2C8}.Debug|Any CPU.Build.0 = Debug|Any CPU
{6793EBBD-0EC4-4254-9573-A19ECA79F2C8}.Debug|Any CPU.ActiveCfg = Release|Any CPU
{6793EBBD-0EC4-4254-9573-A19ECA79F2C8}.Debug|Any CPU.Build.0 = Release|Any CPU
{6793EBBD-0EC4-4254-9573-A19ECA79F2C8}.Debug|x64.ActiveCfg = Debug|Any CPU
{6793EBBD-0EC4-4254-9573-A19ECA79F2C8}.Debug|x64.Build.0 = Debug|Any CPU
{6793EBBD-0EC4-4254-9573-A19ECA79F2C8}.Debug|x86.ActiveCfg = Debug|Any CPU
Expand All @@ -34,7 +34,8 @@ Global
{6793EBBD-0EC4-4254-9573-A19ECA79F2C8}.Release|x64.Build.0 = Release|Any CPU
{6793EBBD-0EC4-4254-9573-A19ECA79F2C8}.Release|x86.ActiveCfg = Release|Any CPU
{6793EBBD-0EC4-4254-9573-A19ECA79F2C8}.Release|x86.Build.0 = Release|Any CPU
{3101CEC2-8F39-45FD-943B-79A488AD05EA}.Debug|Any CPU.ActiveCfg = Debug|Win32
{3101CEC2-8F39-45FD-943B-79A488AD05EA}.Debug|Any CPU.ActiveCfg = Release|Win32
{3101CEC2-8F39-45FD-943B-79A488AD05EA}.Debug|Any CPU.Build.0 = Release|Win32
{3101CEC2-8F39-45FD-943B-79A488AD05EA}.Debug|x64.ActiveCfg = Debug|x64
{3101CEC2-8F39-45FD-943B-79A488AD05EA}.Debug|x64.Build.0 = Debug|x64
{3101CEC2-8F39-45FD-943B-79A488AD05EA}.Debug|x86.ActiveCfg = Debug|Win32
Expand Down
37 changes: 37 additions & 0 deletions TabletDriverGUI/App.xaml.cs
Original file line number Diff line number Diff line change
Expand Up @@ -49,6 +49,43 @@ public App()
}
}

//
// Check Wacom processes
//
string[] wacomProcessNames =
{
"Pen_Tablet",
"Wacom_Tablet"
};

processes = Process.GetProcesses();
foreach (Process process in processes)
{
foreach (string wacomProcessName in wacomProcessNames)
{
if (process.ProcessName.ToLower() == wacomProcessName.ToLower())
{
try
{
process.Kill();
}
catch (Exception)
{
MessageBox.Show(
"You have Wacom driver processes running in the background:\n " +
string.Join("\n ", wacomProcessNames) +
"\n\nPlease shutdown those before starting the GUI!",
"Error!", MessageBoxButton.OK, MessageBoxImage.Error
);
instanceMutex.ReleaseMutex();
Shutdown();
return;
}
}
}
}


MainWindow mainWindow = new MainWindow();
mainWindow.Show();
Exit += App_Exit;
Expand Down
Loading