Releases: emorydunn/StreamDeckPlugin
Layouts & Async
Added
- Create custom SD+ layouts using result builders
- Initial deep link support
Action.openURL(_:)
to allow actions to launch URLs- Support for disabling the user configurable title in the PI
- Global Long Press support for actions
- Dial events include a
clockwise
property
Changed
- Action UUIDs are checked that they are a uniform type identifier
- WebSocket code has been migrated to async
- Update Readme to use more recent package dependency API by @Diggory in #31
New Contributors
Full Changelog: 0.4.0...0.5.1
0.4.0
Added
- The new
globalSetting
andenvironmentKey
macros - Support for
dialDown
anddialUp
events (dialPress
is now deprecated) DisableAutomaticStates
in theAction
protocolsetTriggerDescription
event for SD+sortName
to provide a custom sort key for actionsPluginSoftware
conforms toExpressibleByStringLiteral
@State
for action-specific state- New
sortName
property onAction
to allow sorting actions
Changed
- Use
OSLog
for nicer logs - Example plugin uses a relative path to the plugin
- Use
PlatformMinimumVersion
for manifest - Plugin monitors WebSocket errors and exits after too many
- Deprecated
dialPress
, event is send todialUp
- Renamed
PluginOS.mac(minimumVersion:)
&PluginOS.win(minimumVersion:)
toPluginOS.macOS(_:)
&PluginOS.windows(_:)
- Renamed
PluginDelegate
toPlugin
- Renamed
StreamDeckPlugin
toPluginCommunication
- The plugin communication and registration now happens before initializing your
Plugin
, meaning it's safe to call events from theinit()
- The plugin validates action UUIDs
- Sort manifest keys for stable JSON
- Fixes to let counter example compile by @RomanBaiocco in #19
New Contributors
- @RomanBaiocco made their first contribution in #19
Full Changelog: 0.3.0...0.4.0
Settings and Stream Deck +
This release introduces the new Settings API as well as support for the rotary encoders on the Stream Deck +.
Settings
Actions can now have strongly-typed settings which are automatically decoded when receiving an action from the Stream Deck. This means actions no longer need to manually parse the payload dictionary (and optional values) and allows for settings to be any Codable
type instead of just strings.
Stream Deck +
Rotary encoders and screen layouts are fully supported so actions can run on the Stream Deck +.
Actions can now conform to one of several helper protocols which provide default values for key actions, both with and without states, and rotary encoder actions.
What's Changed
- Settings API by @emorydunn in #14
- Resolve sendToPlugin Routing to Properly Route to Action Instance by @SENTINELITE in #17
- Stream deck+ by @emorydunn in #18
New Contributors
- @SENTINELITE made their first contribution in #17
Full Changelog: 0.2.0...0.3.0
Action API
This version introduces the new Action
API allowing actions triggered by keys to be routed automatically to an instance of the Action
running in the plugin.
See the documentation for details and check out the example plugin for a demo implementation.
0.1.0
This represents the original API model which is being deprecated in favor of the Action API.
The new API is more object oriented and integrates the manifest directly into the plugin's model. The event handler will automatically route events rather than needing to switch
on Action IDs manually. It's recommended to migrate to the new API as soon as it's released.
There isn't a migration path for the original API, so if your plugin still uses it you should pin the package version here.