Skip to content

Releases: emorydunn/StreamDeckPlugin

Layouts & Async

17 Oct 01:49
0.5.1
f6d1a5f
Compare
Choose a tag to compare

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

08 Jan 23:11
0.4.0
Compare
Choose a tag to compare

Added

  • The new globalSetting and environmentKey macros
  • Support for dialDown and dialUp events (dialPress is now deprecated)
  • DisableAutomaticStates in the Action protocol
  • setTriggerDescription event for SD+
  • sortName to provide a custom sort key for actions
  • PluginSoftware conforms to ExpressibleByStringLiteral
  • @State for action-specific state
  • New sortName property on Action 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 to dialUp
  • Renamed PluginOS.mac(minimumVersion:) & PluginOS.win(minimumVersion:) to PluginOS.macOS(_:) & PluginOS.windows(_:)
  • Renamed PluginDelegate to Plugin
  • Renamed StreamDeckPlugin to PluginCommunication
  • The plugin communication and registration now happens before initializing your Plugin, meaning it's safe to call events from the init()
  • The plugin validates action UUIDs
  • Sort manifest keys for stable JSON
  • Fixes to let counter example compile by @RomanBaiocco in #19

New Contributors

Full Changelog: 0.3.0...0.4.0

Settings and Stream Deck +

03 Mar 23:25
0.3.0
Compare
Choose a tag to compare

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

New Contributors

Full Changelog: 0.2.0...0.3.0

Action API

15 Nov 17:21
0.2.0
Compare
Choose a tag to compare

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

19 Feb 02:06
0.1.0
Compare
Choose a tag to compare
0.1.0 Pre-release
Pre-release

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.