node-elgato-stream-deck

A Node.js library for interfacing with the Elgato Stream Deck. https://julusian.github.io/node-elgato-stream-deck/

MIT License

Downloads
11.8K
Stars
160
Committers
13

Bot releases are hidden (Show)

node-elgato-stream-deck - v7.0.0-0 Latest Release

Published by Julusian about 2 months ago

This breaking change has a couple of important changes

Rework discovering device capabilities

Various properties which describe hardware functionality have been removed, and replaced with a new CONTROLS property.
This property describes every input/output type on a streamdeck, including the encoders and any lcd segments.

A typical entry in this array for a button looks like:

{
    type: 'button',
    row: 0,
    column: 0,
    index: 0,
    hidIndex: 0,
    feedbackType: 'lcd',
    pixelSize: {
        width: 72,
        height: 72,
    },
}

This allows for providing more information about each available control, including some specifics such as row and column instead of simply index.

This also allows for describing buttons of differing abilities, such as those which don't support feedback (such as on the pedal), or those with only rgb (such as the neo).

A consequence of this, is that the relationship between the encoders and lcd strip on the plus has been cut, as this does not translate well to the neo or other models. Instead you can use fillLcdRegion to fill a subregion of the lcd segment manually.

Rework emitted events

Along with the improved definition of the controls, the events emitted now reuse the same control definitions instead of simply reporting the button index.
This allows us to condense the number of events emitted.

  • down and encoderDown have been combined into down
  • up and encoderUp have been combined into up
  • rotateLeft and rotateRight have been combined into rotate

Removed deprecated options

When opening the streamdeck, it is no longer possible to specify useOriginalKeyOrder. It only applied to the original 15key model, the normalised key order is now always used.

The temporary useSyncNodeHid option in the node package has been removed, dropping support for older node-hid backends.

Dropped support for nodejs v18 and older.

These versions are no longer supported by nodejs, making it harder for us to support them properly.

node-elgato-stream-deck - v6.0.0

Published by Julusian 11 months ago

This is a breaking change with a couple of important changes:

Use node-hid in async mode.

The listing and opening methods provided by the @elgato-stream-deck/node package are now async and return Promises to allow this.

This brings a couple of key benefits:

  • There is now no limit on how many streamdecks you can open at a time. Previously this was limited by how many threads were in the uv pool (default was 4)
  • read/write/open operations are performed on background threads, minimising the amount of work this library does in the main nodejs thread.

Dropped support for nodejs v16 and older.

These versions are no longer supported by nodejs, making it harder for us to support them properly.