Skip to content

API Reference

RadiatorTwo edited this page May 23, 2026 · 6 revisions

API Reference

The SDK ships a small, stable surface — one base class, a handful of interfaces, and a few value types. Everything lives in the LoupixDeck.PluginSdk namespace.

Core (required for every plugin)

Type Page Purpose
LoupixPlugin LoupixPlugin Abstract entry point — exactly one concrete subclass per plugin assembly.
PluginMetadata LoupixPlugin Identity, versioning, author, icon.
IPluginCommand Commands A single user-assignable action.
CommandDescriptor Commands Declarative command metadata (name, group, parameters).
CommandParameter Commands One positional parameter on a CommandDescriptor — name + CLR type.
CommandContext Commands Execution context (parameters, target, device, host).
ButtonTargets Commands Flags enum filtering which button types accept the command.
SdkInfo here Static Version — always assign to PluginMetadata.SdkVersion.

Host bridge

Type Page Purpose
IPluginHost Host Services Bridge handed to the plugin in Initialize.
IPluginLogger Host Services Scoped log sink.
IPluginSettings Host Services Per-plugin JSON-backed key/value store.
DeviceInfo Host Services Read-only description of the active device.

Optional capabilities

Type Page Purpose
IDisplayCommand Commands A command that also renders dynamic text on a touch button.
IMenuContributor Dynamic Menus Contributes dynamically built submenu entries.
MenuNode Dynamic Menus Folder or leaf node in a dynamic submenu.
IFolderProvider Folder Navigation Supplies a folder view on the touch screen.
FolderProviderBase Folder Navigation Convenience base class.
FolderEntry Folder Navigation A single grid slot in a folder.
FolderLayout Folder Navigation Grid geometry constants.
RotaryOverride Folder Navigation Per-encoder behavior while a folder is open.
IPluginSettingsPage Settings Page Exposes user-editable settings.
PluginSettingDescriptor Settings Page One editable setting.
PluginSettingKind Settings Page Editor kind enum.
PluginSettingAction Settings Page Action button on the settings form.
PluginColor Folder Navigation UI-framework-agnostic RGBA color.

SdkInfo

public static class SdkInfo
{
    public static readonly Version Version = new(1, 2, 0);
}

Always set PluginMetadata.SdkVersion = SdkInfo.Version. The host loads a plugin only when SdkVersion.Major matches its own — within a major version, the contracts are guaranteed source- and binary-compatible.

Clone this wiki locally