Skip to content
BarRaider edited this page Mar 24, 2021 · 6 revisions

BarRaider's Stream Deck Tools

C# library that wraps all the communication with the Stream Deck App, allowing you to focus on actually writing the Plugin's logic.

NuGet

Author's website and contact information: https://barraider.com

This wiki will walk you through everything you need to know to quickly create a Stream Deck plugin.

Library Features

  • Sample plugin now included in this project on Github
  • Simplified working with filenames from the Stream Deck SDK. See "Working with files" section below
  • Built-in integration with NLog. Use Logger.LogMessage() for logging.
  • Just call the SDWrapper.Run() and the library will take care of all the overhead
  • Just have your plugin inherit PluginBase and implement the basic functionality. Use the PluginActionId to specify the UUID from the manifest file. (see samples on github page)
  • Simplified receiving Global Settings updates through the new ReceivedGlobalSettings method
  • Simplified receiving updates from the Property Inspector through the new ReceivedSettings method along with the new Tools.AutoPopulateSettings() method. See the "Auto-populating plugin settings" section below.
  • Introduced a new attribute called PluginActionId to indicate the Action's UUID (See below)
  • Added support to switching plugin profiles.
  • The DeviceId that the plugin is running on is now accessible from the Connection object
  • Added new MD5 functions in the Tools helper class
  • Optimized SetImage to not resubmit an image that was just posted to the device. Can be overridden with new property in Connection.SetImage() function.
  • ExtensionMethods for Brush/Color/Graphics objects
  • Helper functions in the Tools and GraphicTools classes
  • GraphicTools.WrapStringToFitImage() function will automatically wrap the text so it wil fit the key when using SetTitleAsync()
  • Introduced GraphicsUtils class with a bunch of helper functions to manipulate the SD images
  • Added new Tools.FormatNumber() function converts 54265 to 54.27k
  • New ExtensionMethods for Graphics object: DrawAndMeasureString / GetTextCenter

Table of contents

Next Topic: Getting Started