TabletDriverPlugin 0.2.0

Suggested Alternatives

OpenTabletDriver.Plugin

Additional Details

TabletDriverPlugin was renamed to OpenTabletDriver.Plugin for OpenTabletDriver v0.4.0

There is a newer version of this package available.
See the version list below for details.
dotnet add package TabletDriverPlugin --version 0.2.0                
NuGet\Install-Package TabletDriverPlugin -Version 0.2.0                
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="TabletDriverPlugin" Version="0.2.0" />                
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add TabletDriverPlugin --version 0.2.0                
#r "nuget: TabletDriverPlugin, 0.2.0"                
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
// 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

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 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. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages

This package is not used by any NuGet packages.

GitHub repositories

This package is not used by any popular GitHub repositories.