All notable changes to this project will be documented in this file. I'm trying to keep it up to date, but I'm a lazy bastard - when in doubt - check out the commit log ;-)
- Prepare for netstandard2 release
- Switch to HidSharp (because of netstandard support)
- Change the stream deck Xl jpg encoder (the old one was from WPF, which is not supported on netstandard)
- Switch to new csproj format and embedded nuspec
- Remove old build stuff (switched to nuke.build)
- Stream Deck XL now correctly
- reports firmware version
- reports serial number
- shows the logo
- sets the brightness
- It's now possible to open devices without caching (not recommended)
- Lower key cooldown for Mini and XL variant, because they don't suffer from images glitches like the classic stream deck. This improves the framerate for cached handles (try the video example ^^)
IHardware
now has aDeviceName
property- Cleaned up a lot of things
- Support for Stream Deck XL 🎉
- Implement
GridKeyPositionCollection
to make dealing with keyboard layouts simpler - New
IStreamDeckBoard
for easier access toGridKeyPositionCollection
Keys (Use pattern matching onIMacroBoard
to getGridKeyPositionCollection
) - Methods to get serialnumber and firmware version from
IStreamDeckBoard
- Change nuget package to license expression
Elgato Systems released the "Stream Deck Mini" a few weeks ago so I decided to refactor
StreamDeckSharp
and use a more generic approach that makes it possible to implement
many different macro boards (with LCD buttons) - even ones with buttons that are not placed in a grid layout (like keyboards).
Because of this changes I decided to split StreamDeckSharp
into a generic part called OpenMacroBoard.SDK
and the StreamDeck specific part still called StreamDeckSharp
and to change the organization name from OpenStreamDeck
to OpenMacroBoard
to reflect the generic nature.
OpenMacroBoard.VirtualBoard
to allow developing software for macro boards (eg. Stream Deck) without real hardware.- A bunch of unit tests
IKeyBitmapDataAccess
to retrieve raw RGB data from KeyBitmapsIKeyPositionCollection
to allow for complex key layouts.DrawFullScreenExtension
is now part of the library (instead of just an example project)- More unit tests
- Support for different LCD key resolutions
- Interface name
IStreamDeck
toIMacroBoard
- KeyId order for the stream deck changed to be more intuitive (left-to-right and top-to-bottom)
- StreamDeck.EnumerateDevices to discover all connected StreamDeck devices.
- KeyBitmaps now overrides
Equals
,GetHashCode
,==
and!=
and implementsIEquatable<KeyBitmap>
- Renamed many classes
(remove "StreamDeck"-prefix, thats what namespaces are for) - Moved examples to separate repository
- Image glitches
Use the same buffer for hid reports and added a cooldown of 75ms for each key, this should prevent reuse of memory before async (overlapped) write is finished
- Example "DrawFullScreen"
(Shows how to draw a single image that spans over all 15 keys)
You should check out the video demo in the wiki ;-)
- Button Images created with
FromRawBitmap
are now correctly flipped
- HidLibrary optimizations (thanks to Sam Messina)
- Don't copy write buffer.
- Remove EventMonitor
- Add DeviceChangeNotifier (no more polling)
- Number of write threads changed to one.
- Target Framework now .Net 4.0
(XP should in theory be supported now ^^) - Remove async/await methods in HidLibrary to support 4.0
IStreamDeck
no longer supports raw bitmap as argument.
(UseStreamDeckKeyBitmap.FromRawBitmap
) instead- Factory methods for GDI and WPF stuff moved to
StreamDeckKeyBitmap
- Update "Drawing" example to reflect that.
- New extension method for
IStreamDeck
to apply raw bitmap to buttons - HidLibrary forked and included as a submodule
- Changed IStreamDeck to support dis- and reconnects.
Backend doesn't support it now, but the interface is ready :-) - Refactoring HID communication to make
StreamDeckHID
simpler.
- Exception in Dispose
ShowLogo tested if object was disposed after it was marked as such - Timeout for HID write operations, because they keep blocking forever after disconnecting (and reconnecting) the device.
IStreamDeck.ShowLogo()
to show the default stream deck logo- Extention methods for
IStreamDeck
to create button images fromSystem.Drawing
andSystem.Windows
(WPF) elements.
This should make it easier to create button images programmatically (e.g. adding text to a button) - Example "Drawing"
- First alpha release
- HID communication based on HidLibrary
- Examples "Austria" and "Rainbow"