diff --git a/README.md b/README.md index 0b48076..44188bd 100644 --- a/README.md +++ b/README.md @@ -33,6 +33,7 @@ SUBSYSTEM=="usb", ATTRS{idVendor}=="0fd9", ATTRS{idProduct}=="006c", MODE:="666" SUBSYSTEM=="usb", ATTRS{idVendor}=="0fd9", ATTRS{idProduct}=="006d", MODE:="666", GROUP="plugdev" SUBSYSTEM=="usb", ATTRS{idVendor}=="0fd9", ATTRS{idProduct}=="0080", MODE:="666", GROUP="plugdev" SUBSYSTEM=="usb", ATTRS{idVendor}=="0fd9", ATTRS{idProduct}=="0090", MODE:="666", GROUP="plugdev" +SUBSYSTEM=="usb", ATTRS{idVendor}=="0fd9", ATTRS{idProduct}=="009a", MODE:="666", GROUP="plugdev" ``` Make sure your user is part of the `plugdev` group and reload the rules with diff --git a/streamdeck.go b/streamdeck.go index 8618d54..cbeca99 100644 --- a/streamdeck.go +++ b/streamdeck.go @@ -31,6 +31,7 @@ const ( PID_STREAMDECK_MINI = 0x0063 PID_STREAMDECK_MINI_MK2 = 0x0090 PID_STREAMDECK_XL = 0x006c + PID_STREAMDECK_NEO = 0x009a ) // Firmware command IDs. @@ -194,6 +195,29 @@ func Devices() ([]Device, error) { resetCommand: c_REV2_RESET, setBrightnessCommand: c_REV2_BRIGHTNESS, } + case d.VendorID == VID_ELGATO && d.ProductID == PID_STREAMDECK_NEO: + dev = Device{ + ID: d.Path, + Serial: d.Serial, + Columns: 4, + Rows: 3, + Keys: 10, + Pixels: 96, + DPI: 166, + Padding: 16, + featureReportSize: 32, + firmwareOffset: 6, + keyStateOffset: 4, + translateKeyIndex: identity, + imagePageSize: 1024, + imagePageHeaderSize: 8, + imagePageHeader: rev2ImagePageHeader, + flipImage: flipHorizontallyAndVertically, + toImageFormat: toJPEG, + getFirmwareCommand: c_REV2_FIRMWARE, + resetCommand: c_REV2_RESET, + setBrightnessCommand: c_REV2_BRIGHTNESS, + } } if dev.ID != "" {