Metacraft.VcsHardware
1.1.0
dotnet add package Metacraft.VcsHardware --version 1.1.0
NuGet\Install-Package Metacraft.VcsHardware -Version 1.1.0
<PackageReference Include="Metacraft.VcsHardware" Version="1.1.0" />
<PackageVersion Include="Metacraft.VcsHardware" Version="1.1.0" />
<PackageReference Include="Metacraft.VcsHardware" />
paket add Metacraft.VcsHardware --version 1.1.0
#r "nuget: Metacraft.VcsHardware, 1.1.0"
#:package Metacraft.VcsHardware@1.1.0
#addin nuget:?package=Metacraft.VcsHardware&version=1.1.0
#tool nuget:?package=Metacraft.VcsHardware&version=1.1.0
VcsHardware
Class library for monitoring Virtual Controller Supply (VCS) custom keyboards via DirectInput.
Install
dotnet add package Metacraft.VcsHardware
Supported keyboards
- ERAM (
EramKeyboardReader) - STARS (
StarsKeyboardReader) - KSD (
KsdKeyboardReader)
Quick start
using Metacraft.VcsHardware;
using var reader = new StarsKeyboardReader();
reader.ErrorOccurred += (s, e) => Console.WriteLine($"Exception: {e}");
reader.KeyboardConnected += (s, e) => Console.WriteLine("Keyboard connected.");
reader.KeyboardDisconnected += (s, e) => Console.WriteLine("Keyboard disconnected.");
reader.SpecialKeyPressed += (s, e) => Console.WriteLine($"Key pressed: {e.Key}");
reader.SpecialKeyReleased += (s, e) => Console.WriteLine($"Key released: {e.Key}");
Console.WriteLine("Listening for STARS special key events. Press any normal key to exit.");
Console.ReadKey();
Swap StarsKeyboardReader for EramKeyboardReader or KsdKeyboardReader for other keyboard models.
Logging
Each reader accepts an optional ILogger<T> (from Microsoft.Extensions.Logging). If none is supplied, a NullLogger is used and nothing is logged.
Pass one explicitly:
using Microsoft.Extensions.Logging;
using ILoggerFactory loggerFactory = LoggerFactory.Create(builder =>
builder.AddSimpleConsole().SetMinimumLevel(LogLevel.Debug));
using var reader = new StarsKeyboardReader(
logger: loggerFactory.CreateLogger<StarsKeyboardReader>());
Or resolve one from a DI container:
using var reader = new StarsKeyboardReader(
logger: serviceProvider.GetRequiredService<ILogger<StarsKeyboardReader>>());
Internally the readers log device-found / not-found and individual key press / release events at Debug, disconnects at Information, and unexpected failures at Error.
Requirements
- .NET 8.0
- Windows (uses DirectInput via SharpDX)
License
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net8.0 is compatible. 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. net9.0 was computed. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 was computed. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
-
net8.0
- Microsoft.Extensions.Logging.Abstractions (>= 10.0.7)
- SharpDX.DirectInput (>= 4.2.0)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.