/* auto-generated, do not modify */
#pragma once
#include <fwupd-common.h>
typedef enum {
    FU_QC_REPORT_ID_COMMAND = 3,
    FU_QC_REPORT_ID_DATA_TRANSFER = 5,
    FU_QC_REPORT_ID_RESPONSE = 6,
} FuQcReportId;

GByteArray *fu_struct_qc_hid_command_new(void);
void fu_struct_qc_hid_command_set_payload_len(GByteArray *st, guint8 value);
gboolean fu_struct_qc_hid_command_set_payload(GByteArray *st, const guint8 *buf, gsize bufsz, GError **error);
#define FU_STRUCT_QC_HID_COMMAND_OFFSET_REPORT_ID 0x0
#define FU_STRUCT_QC_HID_COMMAND_OFFSET_PAYLOAD_LEN 0x1
#define FU_STRUCT_QC_HID_COMMAND_OFFSET_PAYLOAD 0x2
#define FU_STRUCT_QC_HID_COMMAND_SIZE_PAYLOAD 0x3D
#define FU_STRUCT_QC_HID_COMMAND_SIZE 0x3F
#define FU_STRUCT_QC_HID_COMMAND_DEFAULT_REPORT_ID FU_QC_REPORT_ID_COMMAND

GByteArray *fu_struct_qc_hid_response_parse(const guint8 *buf, gsize bufsz, gsize offset, GError **error);
guint8 fu_struct_qc_hid_response_get_payload_len(const GByteArray *st);
const guint8 *fu_struct_qc_hid_response_get_payload(const GByteArray *st, gsize *bufsz);
#define FU_STRUCT_QC_HID_RESPONSE_OFFSET_REPORT_ID 0x0
#define FU_STRUCT_QC_HID_RESPONSE_OFFSET_PAYLOAD_LEN 0x1
#define FU_STRUCT_QC_HID_RESPONSE_OFFSET_PAYLOAD 0x2
#define FU_STRUCT_QC_HID_RESPONSE_SIZE_PAYLOAD 0xB
#define FU_STRUCT_QC_HID_RESPONSE_SIZE 0xD
#define FU_STRUCT_QC_HID_RESPONSE_DEFAULT_REPORT_ID FU_QC_REPORT_ID_RESPONSE

GByteArray *fu_struct_qc_hid_data_transfer_new(void);
void fu_struct_qc_hid_data_transfer_set_payload_len(GByteArray *st, guint8 value);
gboolean fu_struct_qc_hid_data_transfer_set_payload(GByteArray *st, const guint8 *buf, gsize bufsz, GError **error);
#define FU_STRUCT_QC_HID_DATA_TRANSFER_OFFSET_REPORT_ID 0x0
#define FU_STRUCT_QC_HID_DATA_TRANSFER_OFFSET_PAYLOAD_LEN 0x1
#define FU_STRUCT_QC_HID_DATA_TRANSFER_OFFSET_PAYLOAD 0x2
#define FU_STRUCT_QC_HID_DATA_TRANSFER_SIZE_PAYLOAD 0xFD
#define FU_STRUCT_QC_HID_DATA_TRANSFER_SIZE 0xFF
#define FU_STRUCT_QC_HID_DATA_TRANSFER_DEFAULT_REPORT_ID FU_QC_REPORT_ID_DATA_TRANSFER
