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).
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