None
NO
Reverse Engineering The Stream Deck
['Den Delimarsky']
Hi, I'm Den 👋 on Den Delimarsky
A data packet to set the image is limited to 1024 bytes, as seen from the Packet Data Length property, so if the image is more than 1024 bytes (not the full size - we’ll find out why shortly), then it’s being split in multiple packets that are transmitted to the device. Looking at many packets sent from the Stream Deck software to the device when setting a button image, I noticed the following pattern: ( byte ) 1 : ( byte ) 0 ; var bitmaskedLength = ( byte )( sliceLength & 0xFF ); var shiftedLength = ( byte )( sliceLength >> ImageReportHeaderLength ); var bitmaskedIteration = ( byte )( iteration & 0xFF ); var shiftedIteration = ( byte )( iteration >> ImageReportHeaderLength ); // TODO: This is different for different device classes, so I will need // to make sure that I adjust the header…