From 8be6aba43aeed4a13a17e5d423d3dc496d23ab03 Mon Sep 17 00:00:00 2001 From: Adam Honse Date: Fri, 31 Jul 2026 11:42:24 -0500 Subject: [PATCH] SDK6 PROTOCOL CHANGE - Change from 32-bit to 16-bit device/bus/port count size on the device info network packets for consistency with other array packets --- Documentation/OpenRGBSDK.md | 10 +++++----- NetworkClient.cpp | 20 ++++++++++---------- NetworkServer.cpp | 22 +++++++++++----------- 3 files changed, 26 insertions(+), 26 deletions(-) diff --git a/Documentation/OpenRGBSDK.md b/Documentation/OpenRGBSDK.md index bda51bbff..d35ea4cf6 100644 --- a/Documentation/OpenRGBSDK.md +++ b/Documentation/OpenRGBSDK.md @@ -393,7 +393,7 @@ The server responds with a data block containing I2C bus information. | Size | Format | Name | Protocol Version | Description | | -------- | -------------------------- | ----------- | ---------------- | ---------------------------------------------------------------------------- | | 4 | unsigned int | data_size | 6 | Size of all data in packet | -| 4 | unsigned int | bus_count | 6 | Number of I2C bus entries | +| 2 | unsigned short | bus_count | 6 | Number of I2C bus entries | | Variable | i2c_smbus_info[bus_count] | bus_info | 6 | I2C bus info data, each entry is the fixed-size `i2c_smbus_info` struct | ## NET_PACKET_ID_GET_HID_DEVICE_INFO @@ -409,7 +409,7 @@ The server responds with a data block containing HID device information. | Size | Format | Name | Protocol Version | Description | | -------- | ------------------------------ | -------------- | ---------------- | -------------------------------------------------------------------------------------- | | 4 | unsigned int | data_size | 6 | Size of all data in packet | -| 4 | unsigned int | device_count | 6 | Number of HID device entries | +| 2 | unsigned short | device_count | 6 | Number of HID device entries | | Variable | HID Device Data[device_count] | device_data | 6 | See [HID Device Data](#hid-device-data) block format table. Repeat device_count times | ### HID Device Data @@ -444,7 +444,7 @@ The server responds with a data block containing USB device information. | Size | Format | Name | Protocol Version | Description | | -------- | ------------------------------- | -------------- | ---------------- | -------------------------------------------------------------------------------------- | | 4 | unsigned int | data_size | 6 | Size of all data in packet | -| 4 | unsigned int | device_count | 6 | Number of USB device entries | +| 2 | unsigned short | device_count | 6 | Number of USB device entries | | Variable | USB Device Data[device_count] | device_data | 6 | See [USB Device Data](#usb-device-data) block format table. Repeat device_count times | ### USB Device Data @@ -473,7 +473,7 @@ The server responds with a data block containing serial port information. | Size | Format | Name | Protocol Version | Description | | -------- | ------------------------------- | -------------- | ---------------- | ------------------------------------------------------------------------------------------ | | 4 | unsigned int | data_size | 6 | Size of all data in packet | -| 4 | unsigned int | port_count | 6 | Number of serial port entries | +| 2 | unsigned short | port_count | 6 | Number of serial port entries | | Variable | Serial Port Data[port_count] | port_data | 6 | See [Serial Port Data](#serial-port-data) block format table. Repeat port_count times | ### Serial Port Data @@ -496,7 +496,7 @@ The server responds with a data block containing USB serial port information. | Size | Format | Name | Protocol Version | Description | | -------- | ------------------------------- | -------------- | ---------------- | ------------------------------------------------------------------------------------------ | | 4 | unsigned int | data_size | 6 | Size of all data in packet | -| 4 | unsigned int | port_count | 6 | Number of USB serial port entries | +| 2 | unsigned short | port_count | 6 | Number of USB serial port entries | | Variable | Serial Port Data[port_count] | port_data | 6 | See [Serial Port Data](#usb-serial-port-data) block format table. Repeat port_count times | ### USB Serial Port Data diff --git a/NetworkClient.cpp b/NetworkClient.cpp index 353ab110e..b5e7f7abe 100644 --- a/NetworkClient.cpp +++ b/NetworkClient.cpp @@ -465,7 +465,7 @@ std::vector NetworkClient::GetHIDDeviceInfo() \*-------------------------------------------------*/ if(response_entry.data != NULL) { - unsigned int device_count = 0; + unsigned short device_count = 0; unsigned char* data_ptr = response_entry.data; unsigned int& data_size = response_entry.header.pkt_size; unsigned int data_size_pkt; @@ -476,7 +476,7 @@ std::vector NetworkClient::GetHIDDeviceInfo() { COPY_DATA_FIELD(data_ptr, response_entry.data, device_count); - for(unsigned int device_idx = 0; device_idx < device_count; device_idx++) + for(unsigned short device_idx = 0; device_idx < device_count; device_idx++) { HIDDeviceInfo device; @@ -541,7 +541,7 @@ std::vector NetworkClient::GetI2CBusInfo() \*-------------------------------------------------*/ if(response_entry.data != NULL) { - unsigned int bus_count = 0; + unsigned short bus_count = 0; unsigned char* data_ptr = response_entry.data; unsigned int& data_size = response_entry.header.pkt_size; unsigned int data_size_pkt; @@ -552,7 +552,7 @@ std::vector NetworkClient::GetI2CBusInfo() { COPY_DATA_FIELD(data_ptr, response_entry.data, bus_count); - for(unsigned int bus_idx = 0; bus_idx < bus_count; bus_idx++) + for(unsigned short bus_idx = 0; bus_idx < bus_count; bus_idx++) { i2c_smbus_info bus; @@ -596,7 +596,7 @@ std::vector NetworkClient::GetSerialPorts() \*-------------------------------------------------*/ if(response_entry.data != NULL) { - unsigned int port_count = 0; + unsigned short port_count = 0; unsigned char* data_ptr = response_entry.data; unsigned int& data_size = response_entry.header.pkt_size; unsigned int data_size_pkt; @@ -607,7 +607,7 @@ std::vector NetworkClient::GetSerialPorts() { COPY_DATA_FIELD(data_ptr, response_entry.data, port_count); - for(unsigned int port_idx = 0; port_idx < port_count; port_idx++) + for(unsigned short port_idx = 0; port_idx < port_count; port_idx++) { std::string port_string; unsigned short port_string_size; @@ -652,7 +652,7 @@ std::vector NetworkClient::GetUSBDeviceInfo() \*-------------------------------------------------*/ if(response_entry.data != NULL) { - unsigned int device_count = 0; + unsigned short device_count = 0; unsigned char* data_ptr = response_entry.data; unsigned int& data_size = response_entry.header.pkt_size; unsigned int data_size_pkt; @@ -663,7 +663,7 @@ std::vector NetworkClient::GetUSBDeviceInfo() { COPY_DATA_FIELD(data_ptr, response_entry.data, device_count); - for(unsigned int device_idx = 0; device_idx < device_count; device_idx++) + for(unsigned short device_idx = 0; device_idx < device_count; device_idx++) { USBDeviceInfo device; @@ -720,7 +720,7 @@ std::vector NetworkClient::GetUSBSerialPorts() \*-------------------------------------------------*/ if(response_entry.data != NULL) { - unsigned int device_count = 0; + unsigned short device_count = 0; unsigned char* data_ptr = response_entry.data; unsigned int& data_size = response_entry.header.pkt_size; unsigned int data_size_pkt; @@ -731,7 +731,7 @@ std::vector NetworkClient::GetUSBSerialPorts() { COPY_DATA_FIELD(data_ptr, response_entry.data, device_count); - for(unsigned int device_idx = 0; device_idx < device_count; device_idx++) + for(unsigned short device_idx = 0; device_idx < device_count; device_idx++) { SerialDeviceInfo device; diff --git a/NetworkServer.cpp b/NetworkServer.cpp index 7a61fe5ba..e2f247720 100644 --- a/NetworkServer.cpp +++ b/NetworkServer.cpp @@ -1688,7 +1688,7 @@ NetPacketStatus NetworkServer::ProcessRequest_GetHIDDeviceInfo(NetworkClientInfo std::vector device_info = ResourceManager::get()->GetHIDDeviceInfo(); unsigned int data_size = 0; - unsigned int device_count = (unsigned int)device_info.size(); + unsigned short device_count = (unsigned short)device_info.size(); /*-----------------------------------------------------*\ | Calculate data size | @@ -1696,7 +1696,7 @@ NetPacketStatus NetworkServer::ProcessRequest_GetHIDDeviceInfo(NetworkClientInfo data_size += sizeof(data_size); data_size += sizeof(device_count); - for(unsigned int device_idx = 0; device_idx < device_count; device_idx++) + for(unsigned short device_idx = 0; device_idx < device_count; device_idx++) { data_size += sizeof(device_info[device_idx].vendor_id); data_size += sizeof(device_info[device_idx].product_id); @@ -1796,7 +1796,7 @@ NetPacketStatus NetworkServer::ProcessRequest_GetI2CBusInfo(NetworkClientInfo* c std::vector bus_info = ResourceManager::get()->GetI2CBusInfo(); unsigned int data_size = 0; - unsigned int bus_count = (unsigned int)bus_info.size(); + unsigned short bus_count = (unsigned short)bus_info.size(); data_size += sizeof(data_size); data_size += sizeof(bus_count); data_size += bus_count * sizeof(i2c_smbus_info); @@ -1810,7 +1810,7 @@ NetPacketStatus NetworkServer::ProcessRequest_GetI2CBusInfo(NetworkClientInfo* c memcpy(data_ptr, &bus_count, sizeof(bus_count)); data_ptr += sizeof(bus_count); - for(std::size_t bus_idx = 0; bus_idx < bus_info.size(); bus_idx++) + for(unsigned short bus_idx = 0; bus_idx < bus_count; bus_idx++) { memcpy(data_ptr, &bus_info[bus_idx], sizeof(bus_info[bus_idx])); data_ptr += sizeof(bus_info[bus_idx]); @@ -1841,7 +1841,7 @@ NetPacketStatus NetworkServer::ProcessRequest_GetSerialPorts(NetworkClientInfo* std::vector serial_ports = ResourceManager::get()->GetSerialPorts(); unsigned int data_size = 0; - unsigned int port_count = (unsigned int)serial_ports.size(); + unsigned short port_count = (unsigned short)serial_ports.size(); /*-----------------------------------------------------*\ | Calculate data size | @@ -1849,7 +1849,7 @@ NetPacketStatus NetworkServer::ProcessRequest_GetSerialPorts(NetworkClientInfo* data_size += sizeof(data_size); data_size += sizeof(port_count); - for(unsigned int port_idx = 0; port_idx < port_count; port_idx++) + for(unsigned short port_idx = 0; port_idx < port_count; port_idx++) { data_size += sizeof(unsigned short); data_size += (unsigned int)strlen(serial_ports[port_idx].c_str()) + 1; @@ -1867,7 +1867,7 @@ NetPacketStatus NetworkServer::ProcessRequest_GetSerialPorts(NetworkClientInfo* memcpy(data_ptr, &port_count, sizeof(port_count)); data_ptr += sizeof(port_count); - for(unsigned int port_idx = 0; port_idx < port_count; port_idx++) + for(unsigned short port_idx = 0; port_idx < port_count; port_idx++) { unsigned short port_string_size = (unsigned short)strlen(serial_ports[port_idx].c_str()) + 1; memcpy(data_ptr, &port_string_size, sizeof(port_string_size)); @@ -1901,7 +1901,7 @@ NetPacketStatus NetworkServer::ProcessRequest_GetUSBDeviceInfo(NetworkClientInfo std::vector device_info = ResourceManager::get()->GetUSBDeviceInfo(); unsigned int data_size = 0; - unsigned int device_count = (unsigned int)device_info.size(); + unsigned short device_count = (unsigned short)device_info.size(); /*-----------------------------------------------------*\ | Calculate data size | @@ -1909,7 +1909,7 @@ NetPacketStatus NetworkServer::ProcessRequest_GetUSBDeviceInfo(NetworkClientInfo data_size += sizeof(data_size); data_size += sizeof(device_count); - for(unsigned int device_idx = 0; device_idx < device_count; device_idx++) + for(unsigned short device_idx = 0; device_idx < device_count; device_idx++) { data_size += sizeof(device_info[device_idx].vendor_id); data_size += sizeof(device_info[device_idx].product_id); @@ -1985,7 +1985,7 @@ NetPacketStatus NetworkServer::ProcessRequest_GetUSBSerialPorts(NetworkClientInf std::vector device_info = ResourceManager::get()->GetUSBSerialPorts(); unsigned int data_size = 0; - unsigned int device_count = (unsigned int)device_info.size(); + unsigned short device_count = (unsigned short)device_info.size(); /*-----------------------------------------------------*\ | Calculate data size | @@ -1993,7 +1993,7 @@ NetPacketStatus NetworkServer::ProcessRequest_GetUSBSerialPorts(NetworkClientInf data_size += sizeof(data_size); data_size += sizeof(device_count); - for(unsigned int device_idx = 0; device_idx < device_count; device_idx++) + for(unsigned short device_idx = 0; device_idx < device_count; device_idx++) { data_size += sizeof(device_info[device_idx].vendor_id); data_size += sizeof(device_info[device_idx].product_id);