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

xp-pen artist 12 #446

Open
wants to merge 87 commits into
base: buttons
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
87 commits
Select commit Hold shift + click to select a range
8a9dc7c
Driver restart button
hawku Mar 24, 2018
c203bbe
Experimental support for Wacom driver devices
hawku Mar 24, 2018
852fe43
v0.1.2
hawku Mar 24, 2018
e170895
Noise filter fix
hawku Mar 25, 2018
4711fe3
Left handed mode
hawku Mar 25, 2018
6175a04
Experimental Wacom driver support for CTL-471 and 472
hawku Mar 25, 2018
eac303b
v0.1.3
hawku Mar 25, 2018
ad891b5
Wacom CTL-471 area size
hawku Mar 25, 2018
819db8b
Readme
hawku Mar 25, 2018
fda49a0
Support for the Intuos PTH-850 Large
mojobojo Mar 30, 2018
74ed938
Fixed the button mask on PTH-850 because a mouse 4 event was triggere…
mojobojo Mar 30, 2018
822398a
Merge pull request #87 from mojobojo/master
hawku Mar 30, 2018
d6d4ddd
Renamed ButtonMask to DetectMask and added IgnoreMask
hawku Mar 30, 2018
b5ffc2a
Huion H430P configuration
hawku Mar 30, 2018
12861b2
Added Intuos5 tablets to the wacom.cfg
hawku Mar 30, 2018
7849a25
Added new Huion init message (string id 200)
hawku Mar 30, 2018
294039f
SendInput mode
hawku Mar 30, 2018
c9ae393
Skip the geometric median calculation if there is only a one position…
hawku Mar 30, 2018
5091471
v0.1.4
hawku Mar 31, 2018
b033436
v0.1.5
hawku Apr 15, 2018
33bd373
Readme
hawku Apr 15, 2018
5b8eae7
Add CTE-440 support
Poliwrath Jul 7, 2018
055ac16
Add PTH-660 config.
Implojin Nov 15, 2018
f280241
Merge pull request #283 from Implojin/master
hawku Nov 18, 2018
6cd9798
Code refactoring
hawku Nov 24, 2018
fd4a7ae
Better input detection for CTL-472 and CTL-4100
hawku Nov 24, 2018
763e64f
Updated the VMulti driver link
hawku Nov 24, 2018
5dab61d
gitignore startuplog.txt
hawku Nov 24, 2018
ed626ab
Fix for the XP-Pen Deco 01
Itsyuka Nov 26, 2018
8f8fc9b
Revert "Fix for the XP-Pen Deco 01"
Itsyuka Nov 27, 2018
80d5049
Create a new entry for Deco 01 v2
Itsyuka Nov 27, 2018
43e1953
Merge pull request #289 from Itsyuka/patch-1
hawku Nov 27, 2018
2379eb9
Fixed Windows Ink pen pressure
hawku Nov 27, 2018
45a6f62
Fixed invalid cursor movements at the startup.
hawku Nov 27, 2018
ec5e1ae
README.md: Updated the Huion driver link
hawku Nov 27, 2018
896a708
Readonly variables.
hawku Nov 27, 2018
088b3ab
Noise reduction, Measurement, Draw area, 1000Hz
hawku Nov 27, 2018
9aaba99
Removed broken and unused code
hawku Nov 27, 2018
7a89ecf
Fixed invalid cursor movements when changing modes
hawku Nov 28, 2018
bf84802
Noise filter improvements and some code refactoring
hawku Nov 29, 2018
bcdb485
Merge pull request #199 from Poliwrath/master
hawku Nov 29, 2018
bee769e
Updated wacom.cfg
hawku Nov 30, 2018
071c0fb
Added anti-smoothing filter and filter tester
hawku Nov 30, 2018
aa6bff0
Huion H420/420 area size and H640P ignore mask
hawku Dec 3, 2018
32ade01
Anti-smoothing to GUI and new filters tab
hawku Dec 3, 2018
f52a187
Improved report rate detection
hawku Dec 3, 2018
2981857
Fixed logger level clamp
hawku Dec 3, 2018
c918e5b
Dummy output mode and code refactoring
hawku Dec 3, 2018
0d10314
Anti-smoothing ignore when dragging
hawku Dec 4, 2018
87f4a06
Reverted CTL-472 DetectMask back to old value
hawku Dec 4, 2018
c2404b9
v0.2
hawku Dec 4, 2018
ddb989d
XP-Pen G640s and fixed some typos
hawku Dec 6, 2018
6cdcc50
Major code refactoring, command list, gravity filter
hawku Dec 6, 2018
4036809
Tablet detection, auto restart, tab completion, VEIKK, refactoring, etc.
hawku Dec 8, 2018
10db677
Clear GUI and notification icon title when driver stops
hawku Dec 8, 2018
229214a
Fix for cursor jumping to corner when tablet disconnects or driver re…
hawku Dec 8, 2018
0d9e92f
tablet.cfg
hawku Dec 8, 2018
754ea7d
osu! window, debug checkbox
hawku Dec 9, 2018
ea790dc
Kill XP-Pen driver processes
hawku Dec 9, 2018
f6251d5
Kill VEIKK driver processes
hawku Dec 9, 2018
779f48d
Kill Huion driver process
hawku Dec 9, 2018
225d328
Added mode selection tooltip
hawku Dec 10, 2018
90370cb
Better error message when other driver processes are running in the b…
hawku Dec 10, 2018
a7e93c5
Typo fix
hawku Dec 10, 2018
31ab4b1
v0.2.1
hawku Dec 10, 2018
3f46000
Manufacturer, product and serial number information to WinUSB and HID…
hawku Dec 12, 2018
a1e4dfe
Removed x64 platform
hawku Dec 12, 2018
128c315
Tablet button support, pen pressure settings and much more.
hawku Dec 15, 2018
3a51444
Mouse scrolling changes and VEIKK anti-smoothing
hawku Dec 15, 2018
887e07e
Set custom key mapping with enter
hawku Dec 15, 2018
073ec9b
Fix for tablet button triggering twice per button press
hawku Dec 15, 2018
2d29df0
Mouse scroll tooltip
hawku Dec 15, 2018
095c07d
Tab names
hawku Dec 15, 2018
b5a7d93
v0.2.2
hawku Dec 15, 2018
f8e388d
Fix for stopped working error, relative mode sensitivity, etc.
hawku Dec 16, 2018
e041d9f
v0.2.3
hawku Dec 16, 2018
dbcbb58
VEIKK A50, Wacom CTL-6100, multiple areas, filter improvements, etc.
hawku Jan 2, 2019
7a9900a
First start detection fix
hawku Jan 2, 2019
91f9e7f
Multimedia keys, volume control, GUI scaling, etc.
hawku Jan 3, 2019
1318afa
Drag scroll fix
hawku Jan 3, 2019
3c4faaf
Thread safety, named pipe fixes, audio balance, etc.
hawku Jan 3, 2019
3507759
Replace commas with dots when parsing numbers
hawku Jan 4, 2019
9f7daa5
Rewrote the named pipe code
hawku Jan 6, 2019
0d8cc3e
Fixed multiple thread safety and stability issues
hawku Jan 13, 2019
b6ae971
Low latency audio, fixed logger block, precompiled headers, etc.
hawku Jan 21, 2019
d53eb54
Check the queue before waiting for new items
hawku Jan 25, 2019
fd2185e
Update README.md
hawku Dec 28, 2021
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
3 changes: 2 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -5,4 +5,5 @@
/TabletDriverGUI/obj/
/TabletDriverService/Release/
/TabletDriverService/Debug/

/TabletDriverService/startuplog.txt
TabletDriverService/config/usersettings.cfg
177 changes: 3 additions & 174 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,177 +2,6 @@

This is a low latency graphics tablet driver that is meant to be used with rhythm game [osu!](https://osu.ppy.sh/home)

Currently the driver only works when the TabletDriverGUI is running.

The GUI minimizes to system tray / notification area. You can reopen the GUI by double clicking the system tray icon.

**If you have problems with the driver, please read the FAQ:**

**https://github.com/hawku/TabletDriver/wiki/FAQ**

## Download

### http://hwk.fi/TabletDriver/TabletDriverV0.1.1.zip

#

### Supported operating systems:
- Windows 7 64-bit
- Windows 8 64-bit
- Windows 8.1 64-bit
- Windows 10 64-bit

#

### Supported tablets:
- Wacom CTL-470
- Wacom CTL-471
- Wacom CTL-472
- Wacom CTL-480
- Wacom CTH-480
- Wacom CTL-490
- XP Pen G430 (New 2016-2017 "Model B")
- XP Pen G640
- Huion 420
- Huion H640P
- Gaomon S56K

### Configured, but not properly tested:
- Huion H420
- Wacom CTL-4100 USB
- Wacom CTL-4100 Bluetooth
- Wacom CTH-470
- Wacom CTH-670
- Wacom CTL-671
- Wacom CTL-672
- Wacom CTL-680
- Wacom CTH-680
- Wacom CTH-490
- Wacom PTH-451

#

## Installation

1. You might need to install these libraries, but usually these are already installed:
* https://www.microsoft.com/net/download/dotnet-framework-runtime
* 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.
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.

#

## VMulti and Huion driver binaries

If you want to compile the code and don't want to install anything from the TabletDriver binary package, you will need extract the missing drivers from these installation packages:

**VMulti driver:**
- https://www.xp-pen.com/upload/download/20180130/XP-PenWin(20180130).zip

**Huion WinUSB driver:**
- https://www.huiontablet.com/drivers/WinDriver/HuionTablet_WinDriver_v13.15.16.zip

#

## Changelog

>**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.
> - Added `-hide` GUI command line parameter. GUI will start as minimized when you run `TabletDriverGUI.exe -hide`
> - Added an option to run the TabletDriverGUI at Windows startup.

>**v0.0.18:**
> - Added TabletDriverService.exe multi-instance prevention.
> - Added yet another Wacom 490 tip click fix.
> `KeepTipDown` command sets how long the pen tip button output should be kept down after the pen tip is released.

>**v0.0.17:**
> - Fixed driver crashing when used with the Huion or Gaomon tablets.

>**v0.0.16:**
> - Added smoothing filter rate selector. Use a lower rate if you have filter performance problems.
> - Added TabletDriverService.exe process priority warning when the priority isn't set to High.
> - Desktop size settings are now available to everyone.
> Previously shown only when the developer mode was enabled.
> Automatic size should be used, but if you have problems with the screen mapping:
> https://github.com/hawku/TabletDriver/issues/4
> - First few tablet position packets are now ignored to prevent the cursor jumping to a wrong position when driver is started.

>**v0.0.15:**
> - Added more debug information to startuplog.txt. It now includes a list of connected input devices.
> - Added debug tools to the console output context menu (Right click).
> - Removed ClickPressure workaround from Wacom 490.
> You can re-enable that by adding `ClickPressure 500` to Commands tab.
> - Updated the wacom.cfg

>**v0.0.14:**
> - Fix for the console "Copy all" function.

>**v0.0.13:**
> - Added a direction indicator to the tablet area and moved the aspect ratio text to the middle of the area.
> - TabletDriverService process priority class is now set to "High" (suggestion by /u/Devocub)
> - TabletDriverService stability and error handling improvements (thanks to https://github.com/freakode)
> - New tablet configurations: Huion H420 (made by /u/uyghti)
> - Automatically generated Wacom tablet configurations (config\wacom.cfg)

>**v0.0.12:**
> - Added multi-instance prevention. Old TabletDriverGUI.exe should pop up if you try to open another one.
> - New tablet configurations: Wacom CTL-680 and CTH-680

>**v0.0.11:**
> - Fix for DPI scaling problems. Screen mapping were wrong when the monitor DPI scaling wasn't 100%
> - Added a Wacom area tool. It should work with Wacom Intuos and Bamboo tablets (470->490)
> - Added startup debug log

>**v0.0.10:**
> - 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.
> - Modified click detection on CTL-490 and CTH-490 (tablet.cfg ClickPressure).

>**v0.0.9:**
> - Yet another fix for the clicking problem... Maybe this time it will work?

>**v0.0.8:**
> - Another fix for pen tip clicking. Improved the tablet data validation.

>**v0.0.7:**
> - Added aspect ratio text to screen and tablet area.
> - Workaround for pen tip click detection. Some tablets don't send correct button data, so the pen tip click is now detected from the pressure data

>**v0.0.6:**
> - Improved smoothing filter latency calculation

>**v0.0.5:**
> - Added Windows Ink mode with pressure sensitivity
> - Added relative mouse mode
> - Added tablet area rotation
> - Added optional smoothing filter

>**v0.0.4:**
> - Fixed a number conversion bug in the tablet area detection.
### This driver has not been updated for latest Windows versions!
#### Please, use OpenTabletDriver:
https://github.com/OpenTabletDriver/OpenTabletDriver
10 changes: 0 additions & 10 deletions TabletDriver.sln
Original file line number Diff line number Diff line change
Expand Up @@ -15,33 +15,23 @@ EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
Debug|x64 = Debug|x64
Debug|x86 = Debug|x86
Release|Any CPU = Release|Any CPU
Release|x64 = Release|x64
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|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
{6793EBBD-0EC4-4254-9573-A19ECA79F2C8}.Debug|x86.Build.0 = Debug|Any CPU
{6793EBBD-0EC4-4254-9573-A19ECA79F2C8}.Release|Any CPU.ActiveCfg = Release|Any CPU
{6793EBBD-0EC4-4254-9573-A19ECA79F2C8}.Release|Any CPU.Build.0 = Release|Any CPU
{6793EBBD-0EC4-4254-9573-A19ECA79F2C8}.Release|x64.ActiveCfg = Release|Any CPU
{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|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
{3101CEC2-8F39-45FD-943B-79A488AD05EA}.Debug|x86.Build.0 = Debug|Win32
{3101CEC2-8F39-45FD-943B-79A488AD05EA}.Release|Any CPU.ActiveCfg = Release|Win32
{3101CEC2-8F39-45FD-943B-79A488AD05EA}.Release|x64.ActiveCfg = Release|x64
{3101CEC2-8F39-45FD-943B-79A488AD05EA}.Release|x64.Build.0 = Release|x64
{3101CEC2-8F39-45FD-943B-79A488AD05EA}.Release|x86.ActiveCfg = Release|Win32
{3101CEC2-8F39-45FD-943B-79A488AD05EA}.Release|x86.Build.0 = Release|Win32
EndGlobalSection
Expand Down
84 changes: 80 additions & 4 deletions TabletDriverGUI/App.xaml.cs
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.Reflection;
using System.Runtime.InteropServices;
Expand Down Expand Up @@ -49,18 +50,93 @@ public App()
}
}

//
// Other tablet driver processes
//
string[] tabletDriverProcessNames =
{

// Wacom
"Pen_Tablet",
"Wacom_Tablet",

// XP-Pen
"PentabletService",
"Pentablet",

// VEIKK
"TabletDriverCenter",
"TabletDriverSetting",

// Huion
"Huion Tablet"

};


//
// Find driver processes
//
processes = Process.GetProcesses();
List<Process> foundProcesses = new List<Process>();
foreach (Process process in processes)
{
foreach (string processName in tabletDriverProcessNames)
{
if (process.ProcessName.ToLower() == processName.ToLower())
{
foundProcesses.Add(process);
}
}
}

//
// Try to kill driver processes
//
foreach (Process process in foundProcesses)
{
try
{
process.Kill();
Thread.Sleep(100);
}
catch (Exception)
{
string processNames = "";
foreach (Process p in foundProcesses)
{
processNames += "- " + p.ProcessName + ".exe\n ";
}

MessageBox.Show(
"You have other driver processes running:\n " +
processNames +
"\nPlease shutdown those before starting this driver!",
"TabletDriverGUI - Error!", MessageBoxButton.OK, MessageBoxImage.Error
);
instanceMutex.ReleaseMutex();
Shutdown();
return;
}
}


MainWindow mainWindow = new MainWindow();
mainWindow.Show();
Exit += App_Exit;
}
else
{
MessageBox.Show("TabletDriverGUI is already open!");

// Broadcast to the another instance to show itself
NativeMethods.PostMessage(
(IntPtr)NativeMethods.HWND_BROADCAST,
NativeMethods.WM_SHOWTABLETDRIVERGUI,
IntPtr.Zero,
IntPtr.Zero);
(IntPtr)NativeMethods.HWND_BROADCAST,
NativeMethods.WM_SHOWTABLETDRIVERGUI,
IntPtr.Zero,
IntPtr.Zero
);

Shutdown();
}
}
Expand Down
Loading