Replace UsbCommandId_ReadHardwareConfig and UsbCommandId_ReadUserConfig with UsbCommandId_ReadConfig.
This commit is contained in:
@@ -3,23 +3,28 @@
|
||||
#include "usb_protocol_handler.h"
|
||||
#include "eeprom.h"
|
||||
|
||||
void UsbCommand_ReadConfig(bool isHardware)
|
||||
void UsbCommand_ReadConfig()
|
||||
{
|
||||
uint8_t length = GetUsbRxBufferUint8(1);
|
||||
uint16_t offset = GetUsbRxBufferUint16(2);
|
||||
config_buffer_id_t configBufferId = GetUsbRxBufferUint8(1);
|
||||
uint8_t length = GetUsbRxBufferUint8(2);
|
||||
uint16_t offset = GetUsbRxBufferUint16(3);
|
||||
|
||||
if (!IsConfigBufferIdValid(configBufferId)) {
|
||||
SetUsbTxBufferUint8(0, UsbStatusCode_ReadConfig_InvalidConfigBufferId);
|
||||
}
|
||||
|
||||
if (length > USB_GENERIC_HID_OUT_BUFFER_LENGTH - USB_STATUS_CODE_SIZE) {
|
||||
SetUsbTxBufferUint8(0, UsbStatusCode_ReadConfig_LengthTooLarge);
|
||||
return;
|
||||
}
|
||||
|
||||
uint8_t *buffer = isHardware ? HardwareConfigBuffer.buffer : ValidatedUserConfigBuffer.buffer;
|
||||
uint16_t bufferLength = isHardware ? HARDWARE_CONFIG_SIZE : USER_CONFIG_SIZE;
|
||||
config_buffer_t *buffer = ConfigBufferIdToConfigBuffer(configBufferId);
|
||||
uint16_t bufferLength = ConfigBufferIdToBufferSize(configBufferId);
|
||||
|
||||
if (offset + length > bufferLength) {
|
||||
SetUsbTxBufferUint8(0, UsbStatusCode_ReadConfig_BufferOutOfBounds);
|
||||
return;
|
||||
}
|
||||
|
||||
memcpy(GenericHidOutBuffer + USB_STATUS_CODE_SIZE, buffer + offset, length);
|
||||
memcpy(GenericHidOutBuffer + USB_STATUS_CODE_SIZE, buffer->buffer + offset, length);
|
||||
}
|
||||
|
||||
@@ -3,13 +3,14 @@
|
||||
|
||||
// Functions:
|
||||
|
||||
void UsbCommand_ReadConfig(bool isHardware);
|
||||
void UsbCommand_ReadConfig();
|
||||
|
||||
// Typedefs:
|
||||
|
||||
typedef enum {
|
||||
UsbStatusCode_ReadConfig_LengthTooLarge = 2,
|
||||
UsbStatusCode_ReadConfig_BufferOutOfBounds = 3,
|
||||
UsbStatusCode_ReadConfig_InvalidConfigBufferId = 2,
|
||||
UsbStatusCode_ReadConfig_LengthTooLarge = 3,
|
||||
UsbStatusCode_ReadConfig_BufferOutOfBounds = 4,
|
||||
} usb_status_code_read_config_t;
|
||||
|
||||
#endif
|
||||
|
||||
Reference in New Issue
Block a user