TabletDriverPlugin 0.2.0
TabletDriverPlugin was renamed to OpenTabletDriver.Plugin for OpenTabletDriver v0.4.0
See the version list below for details.
dotnet add package TabletDriverPlugin --version 0.2.0
NuGet\Install-Package TabletDriverPlugin -Version 0.2.0
<PackageReference Include="TabletDriverPlugin" Version="0.2.0" />
paket add TabletDriverPlugin --version 0.2.0
#r "nuget: TabletDriverPlugin, 0.2.0"
// Install TabletDriverPlugin as a Cake Addin #addin nuget:?package=TabletDriverPlugin&version=0.2.0 // Install TabletDriverPlugin as a Cake Tool #tool nuget:?package=TabletDriverPlugin&version=0.2.0
OpenTabletDriver Plugins
Plugin installation
Installing OpenTabletDriver plugins depends on your operating system. From OpenTabletDriver's GUI, you can click on the Settings
menu, then click Open plugin directory...
which will open your file manager to the directory.
Alternatively, they're located at:
Operating System | Path |
---|---|
Windows | %localappdata%\OpenTabletDriver\Plugins |
Linux | ~/.config/OpenTabletDriver/Plugins |
MacOS | $HOME/Library/Application Support/OpenTabletDriver/Plugins |
Drop the .dll
file in the folder
Writing OpenTabletDriver plugins
Requirements
- .NET Core 3.1 SDK
- TabletDriverPlugin NuGet package
- Some knowledge of C# and .NET
Overview
OpenTabletDriver plugins are just .dll
assemblies. OpenTabletDriver reads the plugin directory and injects all assemblies that are found. In order for OpenTabletDriver to detect and make use of any assembly loaded, they must inherit one of the supported interfaces.
Plugin interface types
There are multiple plugin interface types, currently just filters, output modes, tablet data parsers, and resident plugins.
Interface | Description |
---|---|
IFilter | A filter is defined as a class that takes a TabletDriverPlugin.Point and returns one. This can be used to transpose a point, export the point to another application for display, etc. |
IResident | A resident plugin is a plugin that is started as soon as OpenTabletDriver launches. Resident plugins are initialized by their class constructor and de-initalized by their Dispose() method. |
IOutputMode | An output mode is a class that takes raw tablet data and makes it actually do something. This interface is the generic output mode that doesn't have any GUI-editable settings. |
IAbsoluteMode | An absolute output mode is a class that takes raw tablet data and transposes a point to an absolute position. This output mode has an input area, which will be used for the tablet inputs and an output area, where the point will be transposed to. It is up to the class to perform all of these calculations. |
IRelativeMode | A relative output mode is a class that takes raw tablet data and transposes it by the changes in the position. This output mode has a horizontal sensitivity setting and a vertical sensitivity setting. It is up to the class to perform the calculations. |
Other interfaces are available in the TabletDriverPlugin
namespace, but they're intended for either adding more tablet support or so that the other interfaces can be properly implemented.
GUI-editable plugin settings
Plugins, by default, do not have any visible settings even if you add properties to the class. The method to add visible properties to plugins is by using attributes. The TabletDriverPlugin.Attributes
namespace contains all of the attributes you will need for adding the GUI-editable settings.
Relevant Attributes
- PropertyAttribute
- SliderPropertyAttribute
- UnitPropertyAttribute
Product | Versions Compatible and additional computed target framework versions. |
---|---|
.NET | net5.0 was computed. net5.0-windows was computed. net6.0 was computed. net6.0-android was computed. net6.0-ios was computed. net6.0-maccatalyst was computed. net6.0-macos was computed. net6.0-tvos was computed. net6.0-windows was computed. net7.0 was computed. net7.0-android was computed. net7.0-ios was computed. net7.0-maccatalyst was computed. net7.0-macos was computed. net7.0-tvos was computed. net7.0-windows was computed. net8.0 was computed. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. |
.NET Core | netcoreapp3.1 is compatible. |
-
.NETCoreApp 3.1
- Newtonsoft.Json (>= 12.0.3)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
Version | Downloads | Last updated | |
---|---|---|---|
0.3.0 | 736 | 7/17/2020 | |
0.3.0-dev.1 | 411 | 5/28/2020 | |
0.2.1 | 742 | 5/5/2020 | |
0.2.0 | 649 | 3/25/2020 |