/* auto-generated, do not modify */
#pragma once
#include <fwupd-common.h>
typedef enum {
    FU_AVER_HID_STATUS_READY,
    FU_AVER_HID_STATUS_BUSY,
    FU_AVER_HID_STATUS_DNLOAD,
    FU_AVER_HID_STATUS_WAITISP,
    FU_AVER_HID_STATUS_ISPING,
    FU_AVER_HID_STATUS_REBOOT,
    FU_AVER_HID_STATUS_FILEERR,
    FU_AVER_HID_STATUS_POWERISP,
    FU_AVER_HID_STATUS_VERSION,
    FU_AVER_HID_STATUS_WAITUSR,
    FU_AVER_HID_STATUS_STOP,
} FuAverHidStatus;
const gchar *fu_aver_hid_status_to_string(FuAverHidStatus val);
typedef enum {
    FU_AVER_HID_CUSTOM_ISP_CMD_STATUS = 0x01,
    FU_AVER_HID_CUSTOM_ISP_CMD_FILE_START,
    FU_AVER_HID_CUSTOM_ISP_CMD_FILE_DNLOAD,
    FU_AVER_HID_CUSTOM_ISP_CMD_FILE_END,
    FU_AVER_HID_CUSTOM_ISP_CMD_START,
    FU_AVER_HID_CUSTOM_ISP_CMD_STOP,
    FU_AVER_HID_CUSTOM_ISP_CMD_RESERVE,
    FU_AVER_HID_CUSTOM_ISP_CMD_LOG_START,
    FU_AVER_HID_CUSTOM_ISP_CMD_LOG_UPLOAD,
    FU_AVER_HID_CUSTOM_ISP_CMD_ISP_REBOOT,
    FU_AVER_HID_CUSTOM_ISP_CMD_LOG_END,
    FU_AVER_HID_CUSTOM_ISP_CMD_ALL_FILE_START = 0x11,
    FU_AVER_HID_CUSTOM_ISP_CMD_ALL_FILE_DNLOAD,
    FU_AVER_HID_CUSTOM_ISP_CMD_ALL_FILE_END,
    FU_AVER_HID_CUSTOM_ISP_CMD_ALL_START,
} FuAverHidCustomIspCmd;
const gchar *fu_aver_hid_custom_isp_cmd_to_string(FuAverHidCustomIspCmd val);
typedef enum {
    FU_AVER_SAFEISP_CUSTOM_CMD_GET_VERSION = 0x14,
    FU_AVER_SAFEISP_CUSTOM_CMD_SUPPORT = 0x29,
    FU_AVER_SAFEISP_CUSTOM_CMD_ERASE_TEMP,
    FU_AVER_SAFEISP_CUSTOM_CMD_UPLOAD_PREPARE,
    FU_AVER_SAFEISP_CUSTOM_CMD_UPLOAD_COMPARE_CHECKSUM,
    FU_AVER_SAFEISP_CUSTOM_CMD_UPLOAD_TO_CX3,
    FU_AVER_SAFEISP_CUSTOM_CMD_UPLOAD_TO_M12MO,
    FU_AVER_SAFEISP_CUSTOM_CMD_UPLOAD_TO_M051,
    FU_AVER_SAFEISP_CUSTOM_CMD_UPLOAD_TO_TMPM342,
    FU_AVER_SAFEISP_CUSTOM_CMD_UPLOAD_TO_TMPM342_BOOT,
    FU_AVER_SAFEISP_CUSTOM_CMD_UPDATE_START,
} FuAverSafeispCustomCmd;
const gchar *fu_aver_safeisp_custom_cmd_to_string(FuAverSafeispCustomCmd val);
typedef enum {
    FU_AVER_SAFEISP_ACK_STATUS_IDLE = 0x00,
    FU_AVER_SAFEISP_ACK_STATUS_SUCCESS,
    FU_AVER_SAFEISP_ACK_STATUS_CHECKSUM,
    FU_AVER_SAFEISP_ACK_STATUS_PARAM_ERR,
    FU_AVER_SAFEISP_ACK_STATUS_PREPARE_FAIL,
    FU_AVER_SAFEISP_ACK_STATUS_UPLOAD_FAIL,
    FU_AVER_SAFEISP_ACK_STATUS_DATA_READ,
    FU_AVER_SAFEISP_ACK_STATUS_DATA_READ_FAIL,
    FU_AVER_SAFEISP_ACK_STATUS_DATA_WRITE,
    FU_AVER_SAFEISP_ACK_STATUS_DATA_WRITE_FAIL,
    FU_AVER_SAFEISP_ACK_STATUS_VERIFY_FAIL,
    FU_AVER_SAFEISP_ACK_STATUS_COMPARE_SAME,
    FU_AVER_SAFEISP_ACK_STATUS_COMPARE_DIFF,
    FU_AVER_SAFEISP_ACK_STATUS_SUPPORT,
} FuAverSafeispAckStatus;

GByteArray *fu_struct_aver_hid_req_isp_new(void);
gchar *fu_struct_aver_hid_req_isp_to_string(const GByteArray *st);
guint8 fu_struct_aver_hid_req_isp_get_custom_isp_cmd(const GByteArray *st);
const guint8 *fu_struct_aver_hid_req_isp_get_data(const GByteArray *st, gsize *bufsz);
void fu_struct_aver_hid_req_isp_set_custom_isp_cmd(GByteArray *st, guint8 value);
gboolean fu_struct_aver_hid_req_isp_set_data(GByteArray *st, const guint8 *buf, gsize bufsz, GError **error);
#define FU_STRUCT_AVER_HID_REQ_ISP_OFFSET_REPORT_ID_CUSTOM_COMMAND 0x0
#define FU_STRUCT_AVER_HID_REQ_ISP_OFFSET_CUSTOM_CMD_ISP 0x1
#define FU_STRUCT_AVER_HID_REQ_ISP_OFFSET_CUSTOM_ISP_CMD 0x2
#define FU_STRUCT_AVER_HID_REQ_ISP_OFFSET_DATA 0x3
#define FU_STRUCT_AVER_HID_REQ_ISP_OFFSET_END 0x1FF
#define FU_STRUCT_AVER_HID_REQ_ISP_SIZE_DATA 0x1FC
#define FU_STRUCT_AVER_HID_REQ_ISP_SIZE 0x200
#define FU_STRUCT_AVER_HID_REQ_ISP_DEFAULT_REPORT_ID_CUSTOM_COMMAND 0x08
#define FU_STRUCT_AVER_HID_REQ_ISP_DEFAULT_CUSTOM_CMD_ISP 0x10
#define FU_STRUCT_AVER_HID_REQ_ISP_DEFAULT_END 0x00

GByteArray *fu_struct_aver_hid_req_isp_file_start_new(void);
guint8 fu_struct_aver_hid_req_isp_file_start_get_custom_isp_cmd(const GByteArray *st);
gchar *fu_struct_aver_hid_req_isp_file_start_get_file_name(const GByteArray *st);
guint32 fu_struct_aver_hid_req_isp_file_start_get_file_size(const GByteArray *st);
guint32 fu_struct_aver_hid_req_isp_file_start_get_free_space(const GByteArray *st);
void fu_struct_aver_hid_req_isp_file_start_set_custom_isp_cmd(GByteArray *st, guint8 value);
gboolean fu_struct_aver_hid_req_isp_file_start_set_file_name(GByteArray *st, const gchar *value, GError **error);
void fu_struct_aver_hid_req_isp_file_start_set_file_size(GByteArray *st, guint32 value);
void fu_struct_aver_hid_req_isp_file_start_set_free_space(GByteArray *st, guint32 value);
#define FU_STRUCT_AVER_HID_REQ_ISP_FILE_START_OFFSET_REPORT_ID_CUSTOM_COMMAND 0x0
#define FU_STRUCT_AVER_HID_REQ_ISP_FILE_START_OFFSET_CUSTOM_CMD_ISP 0x1
#define FU_STRUCT_AVER_HID_REQ_ISP_FILE_START_OFFSET_CUSTOM_ISP_CMD 0x2
#define FU_STRUCT_AVER_HID_REQ_ISP_FILE_START_OFFSET_FILE_NAME 0x3
#define FU_STRUCT_AVER_HID_REQ_ISP_FILE_START_OFFSET_FILE_SIZE 0x37
#define FU_STRUCT_AVER_HID_REQ_ISP_FILE_START_OFFSET_FREE_SPACE 0x3B
#define FU_STRUCT_AVER_HID_REQ_ISP_FILE_START_OFFSET_END 0x1FF
#define FU_STRUCT_AVER_HID_REQ_ISP_FILE_START_SIZE_FILE_NAME 0x34
#define FU_STRUCT_AVER_HID_REQ_ISP_FILE_START_SIZE 0x200
#define FU_STRUCT_AVER_HID_REQ_ISP_FILE_START_DEFAULT_REPORT_ID_CUSTOM_COMMAND 0x08
#define FU_STRUCT_AVER_HID_REQ_ISP_FILE_START_DEFAULT_CUSTOM_CMD_ISP 0x10
#define FU_STRUCT_AVER_HID_REQ_ISP_FILE_START_DEFAULT_END 0x00

GByteArray *fu_struct_aver_hid_req_isp_file_dnload_new(void);
guint8 fu_struct_aver_hid_req_isp_file_dnload_get_custom_isp_cmd(const GByteArray *st);
const guint8 *fu_struct_aver_hid_req_isp_file_dnload_get_data(const GByteArray *st, gsize *bufsz);
void fu_struct_aver_hid_req_isp_file_dnload_set_custom_isp_cmd(GByteArray *st, guint8 value);
gboolean fu_struct_aver_hid_req_isp_file_dnload_set_data(GByteArray *st, const guint8 *buf, gsize bufsz, GError **error);
#define FU_STRUCT_AVER_HID_REQ_ISP_FILE_DNLOAD_OFFSET_REPORT_ID_CUSTOM_COMMAND 0x0
#define FU_STRUCT_AVER_HID_REQ_ISP_FILE_DNLOAD_OFFSET_CUSTOM_CMD_ISP 0x1
#define FU_STRUCT_AVER_HID_REQ_ISP_FILE_DNLOAD_OFFSET_CUSTOM_ISP_CMD 0x2
#define FU_STRUCT_AVER_HID_REQ_ISP_FILE_DNLOAD_OFFSET_DATA 0x3
#define FU_STRUCT_AVER_HID_REQ_ISP_FILE_DNLOAD_SIZE_DATA 0x1FC
#define FU_STRUCT_AVER_HID_REQ_ISP_FILE_DNLOAD_SIZE 0x1FF
#define FU_STRUCT_AVER_HID_REQ_ISP_FILE_DNLOAD_DEFAULT_REPORT_ID_CUSTOM_COMMAND 0x08
#define FU_STRUCT_AVER_HID_REQ_ISP_FILE_DNLOAD_DEFAULT_CUSTOM_CMD_ISP 0x10

GByteArray *fu_struct_aver_hid_req_isp_file_end_new(void);
guint8 fu_struct_aver_hid_req_isp_file_end_get_custom_isp_cmd(const GByteArray *st);
gchar *fu_struct_aver_hid_req_isp_file_end_get_file_name(const GByteArray *st);
guint8 fu_struct_aver_hid_req_isp_file_end_get_end_flag(const GByteArray *st);
guint32 fu_struct_aver_hid_req_isp_file_end_get_file_size(const GByteArray *st);
guint32 fu_struct_aver_hid_req_isp_file_end_get_free_space(const GByteArray *st);
void fu_struct_aver_hid_req_isp_file_end_set_custom_isp_cmd(GByteArray *st, guint8 value);
gboolean fu_struct_aver_hid_req_isp_file_end_set_file_name(GByteArray *st, const gchar *value, GError **error);
void fu_struct_aver_hid_req_isp_file_end_set_end_flag(GByteArray *st, guint8 value);
void fu_struct_aver_hid_req_isp_file_end_set_file_size(GByteArray *st, guint32 value);
void fu_struct_aver_hid_req_isp_file_end_set_free_space(GByteArray *st, guint32 value);
#define FU_STRUCT_AVER_HID_REQ_ISP_FILE_END_OFFSET_REPORT_ID_CUSTOM_COMMAND 0x0
#define FU_STRUCT_AVER_HID_REQ_ISP_FILE_END_OFFSET_CUSTOM_CMD_ISP 0x1
#define FU_STRUCT_AVER_HID_REQ_ISP_FILE_END_OFFSET_CUSTOM_ISP_CMD 0x2
#define FU_STRUCT_AVER_HID_REQ_ISP_FILE_END_OFFSET_FILE_NAME 0x3
#define FU_STRUCT_AVER_HID_REQ_ISP_FILE_END_OFFSET_END_FLAG 0x36
#define FU_STRUCT_AVER_HID_REQ_ISP_FILE_END_OFFSET_FILE_SIZE 0x37
#define FU_STRUCT_AVER_HID_REQ_ISP_FILE_END_OFFSET_FREE_SPACE 0x3B
#define FU_STRUCT_AVER_HID_REQ_ISP_FILE_END_OFFSET_END 0x1FF
#define FU_STRUCT_AVER_HID_REQ_ISP_FILE_END_SIZE_FILE_NAME 0x33
#define FU_STRUCT_AVER_HID_REQ_ISP_FILE_END_SIZE 0x200
#define FU_STRUCT_AVER_HID_REQ_ISP_FILE_END_DEFAULT_REPORT_ID_CUSTOM_COMMAND 0x08
#define FU_STRUCT_AVER_HID_REQ_ISP_FILE_END_DEFAULT_CUSTOM_CMD_ISP 0x10
#define FU_STRUCT_AVER_HID_REQ_ISP_FILE_END_DEFAULT_END 0x00

guint8 fu_struct_aver_hid_req_isp_start_get_custom_isp_cmd(const GByteArray *st);
const guint8 *fu_struct_aver_hid_req_isp_start_get_isp_cmd(const GByteArray *st, gsize *bufsz);
void fu_struct_aver_hid_req_isp_start_set_custom_isp_cmd(GByteArray *st, guint8 value);
gboolean fu_struct_aver_hid_req_isp_start_set_isp_cmd(GByteArray *st, const guint8 *buf, gsize bufsz, GError **error);
#define FU_STRUCT_AVER_HID_REQ_ISP_START_OFFSET_REPORT_ID_CUSTOM_COMMAND 0x0
#define FU_STRUCT_AVER_HID_REQ_ISP_START_OFFSET_CUSTOM_CMD_ISP 0x1
#define FU_STRUCT_AVER_HID_REQ_ISP_START_OFFSET_CUSTOM_ISP_CMD 0x2
#define FU_STRUCT_AVER_HID_REQ_ISP_START_OFFSET_ISP_CMD 0x3
#define FU_STRUCT_AVER_HID_REQ_ISP_START_OFFSET_END 0x1FF
#define FU_STRUCT_AVER_HID_REQ_ISP_START_SIZE_ISP_CMD 0x3C
#define FU_STRUCT_AVER_HID_REQ_ISP_START_SIZE 0x200
#define FU_STRUCT_AVER_HID_REQ_ISP_START_DEFAULT_REPORT_ID_CUSTOM_COMMAND 0x08
#define FU_STRUCT_AVER_HID_REQ_ISP_START_DEFAULT_CUSTOM_CMD_ISP 0x10
#define FU_STRUCT_AVER_HID_REQ_ISP_START_DEFAULT_END 0x00

GByteArray *fu_struct_aver_hid_req_device_version_new(void);
const guint8 *fu_struct_aver_hid_req_device_version_get_ver(const GByteArray *st, gsize *bufsz);
gboolean fu_struct_aver_hid_req_device_version_set_ver(GByteArray *st, const guint8 *buf, gsize bufsz, GError **error);
#define FU_STRUCT_AVER_HID_REQ_DEVICE_VERSION_OFFSET_REPORT_ID_CUSTOM_COMMAND 0x0
#define FU_STRUCT_AVER_HID_REQ_DEVICE_VERSION_OFFSET_CUSTOM_CMD_ISP 0x1
#define FU_STRUCT_AVER_HID_REQ_DEVICE_VERSION_OFFSET_VER 0x2
#define FU_STRUCT_AVER_HID_REQ_DEVICE_VERSION_OFFSET_END 0x1FF
#define FU_STRUCT_AVER_HID_REQ_DEVICE_VERSION_SIZE_VER 0xB
#define FU_STRUCT_AVER_HID_REQ_DEVICE_VERSION_SIZE 0x200
#define FU_STRUCT_AVER_HID_REQ_DEVICE_VERSION_DEFAULT_REPORT_ID_CUSTOM_COMMAND 0x08
#define FU_STRUCT_AVER_HID_REQ_DEVICE_VERSION_DEFAULT_CUSTOM_CMD_ISP 0x25
#define FU_STRUCT_AVER_HID_REQ_DEVICE_VERSION_DEFAULT_END 0x00

GByteArray *fu_struct_aver_hid_res_isp_status_new(void);
gboolean fu_struct_aver_hid_res_isp_status_validate(const guint8 *buf, gsize bufsz, gsize offset, GError **error);
guint8 fu_struct_aver_hid_res_isp_status_get_custom_isp_cmd(const GByteArray *st);
guint8 fu_struct_aver_hid_res_isp_status_get_status(const GByteArray *st);
gchar *fu_struct_aver_hid_res_isp_status_get_status_string(const GByteArray *st);
guint8 fu_struct_aver_hid_res_isp_status_get_progress(const GByteArray *st);
void fu_struct_aver_hid_res_isp_status_set_custom_isp_cmd(GByteArray *st, guint8 value);
void fu_struct_aver_hid_res_isp_status_set_status(GByteArray *st, guint8 value);
gboolean fu_struct_aver_hid_res_isp_status_set_status_string(GByteArray *st, const gchar *value, GError **error);
void fu_struct_aver_hid_res_isp_status_set_progress(GByteArray *st, guint8 value);
#define FU_STRUCT_AVER_HID_RES_ISP_STATUS_OFFSET_REPORT_ID_CUSTOM_COMMAND 0x0
#define FU_STRUCT_AVER_HID_RES_ISP_STATUS_OFFSET_CUSTOM_CMD_ISP 0x1
#define FU_STRUCT_AVER_HID_RES_ISP_STATUS_OFFSET_CUSTOM_ISP_CMD 0x2
#define FU_STRUCT_AVER_HID_RES_ISP_STATUS_OFFSET_STATUS 0x3
#define FU_STRUCT_AVER_HID_RES_ISP_STATUS_OFFSET_STATUS_STRING 0x4
#define FU_STRUCT_AVER_HID_RES_ISP_STATUS_OFFSET_PROGRESS 0x3E
#define FU_STRUCT_AVER_HID_RES_ISP_STATUS_OFFSET_END 0x1FF
#define FU_STRUCT_AVER_HID_RES_ISP_STATUS_SIZE_STATUS_STRING 0x3A
#define FU_STRUCT_AVER_HID_RES_ISP_STATUS_SIZE 0x200
#define FU_STRUCT_AVER_HID_RES_ISP_STATUS_DEFAULT_REPORT_ID_CUSTOM_COMMAND 0x09
#define FU_STRUCT_AVER_HID_RES_ISP_STATUS_DEFAULT_CUSTOM_CMD_ISP 0x10
#define FU_STRUCT_AVER_HID_RES_ISP_STATUS_DEFAULT_END 0x00

guint8 fu_struct_aver_hid_res_isp_get_custom_isp_cmd(const GByteArray *st);
void fu_struct_aver_hid_res_isp_set_custom_isp_cmd(GByteArray *st, guint8 value);
#define FU_STRUCT_AVER_HID_RES_ISP_OFFSET_REPORT_ID_CUSTOM_COMMAND 0x0
#define FU_STRUCT_AVER_HID_RES_ISP_OFFSET_CUSTOM_CMD_ISP 0x1
#define FU_STRUCT_AVER_HID_RES_ISP_OFFSET_CUSTOM_ISP_CMD 0x2
#define FU_STRUCT_AVER_HID_RES_ISP_OFFSET_END 0x1FF
#define FU_STRUCT_AVER_HID_RES_ISP_SIZE 0x200
#define FU_STRUCT_AVER_HID_RES_ISP_DEFAULT_REPORT_ID_CUSTOM_COMMAND 0x09
#define FU_STRUCT_AVER_HID_RES_ISP_DEFAULT_CUSTOM_CMD_ISP 0x10
#define FU_STRUCT_AVER_HID_RES_ISP_DEFAULT_END 0x00

GByteArray *fu_struct_aver_hid_res_device_version_new(void);
gboolean fu_struct_aver_hid_res_device_version_validate(const guint8 *buf, gsize bufsz, gsize offset, GError **error);
const guint8 *fu_struct_aver_hid_res_device_version_get_ver(const GByteArray *st, gsize *bufsz);
gboolean fu_struct_aver_hid_res_device_version_set_ver(GByteArray *st, const guint8 *buf, gsize bufsz, GError **error);
#define FU_STRUCT_AVER_HID_RES_DEVICE_VERSION_OFFSET_REPORT_ID_CUSTOM_COMMAND 0x0
#define FU_STRUCT_AVER_HID_RES_DEVICE_VERSION_OFFSET_CUSTOM_CMD_ISP 0x1
#define FU_STRUCT_AVER_HID_RES_DEVICE_VERSION_OFFSET_VER 0x2
#define FU_STRUCT_AVER_HID_RES_DEVICE_VERSION_OFFSET_END 0x1FF
#define FU_STRUCT_AVER_HID_RES_DEVICE_VERSION_SIZE_VER 0xB
#define FU_STRUCT_AVER_HID_RES_DEVICE_VERSION_SIZE 0x200
#define FU_STRUCT_AVER_HID_RES_DEVICE_VERSION_DEFAULT_REPORT_ID_CUSTOM_COMMAND 0x09
#define FU_STRUCT_AVER_HID_RES_DEVICE_VERSION_DEFAULT_CUSTOM_CMD_ISP 0x25
#define FU_STRUCT_AVER_HID_RES_DEVICE_VERSION_DEFAULT_END 0x00

GByteArray *fu_struct_aver_safeisp_req_new(void);
guint8 fu_struct_aver_safeisp_req_get_custom_cmd(const GByteArray *st);
guint16 fu_struct_aver_safeisp_req_get_custom_res(const GByteArray *st);
guint32 fu_struct_aver_safeisp_req_get_custom_parm0(const GByteArray *st);
guint32 fu_struct_aver_safeisp_req_get_custom_parm1(const GByteArray *st);
const guint8 *fu_struct_aver_safeisp_req_get_data(const GByteArray *st, gsize *bufsz);
void fu_struct_aver_safeisp_req_set_custom_cmd(GByteArray *st, guint8 value);
void fu_struct_aver_safeisp_req_set_custom_res(GByteArray *st, guint16 value);
void fu_struct_aver_safeisp_req_set_custom_parm0(GByteArray *st, guint32 value);
void fu_struct_aver_safeisp_req_set_custom_parm1(GByteArray *st, guint32 value);
gboolean fu_struct_aver_safeisp_req_set_data(GByteArray *st, const guint8 *buf, gsize bufsz, GError **error);
#define FU_STRUCT_AVER_SAFEISP_REQ_OFFSET_REPORT_ID_CUSTOM_COMMAND 0x0
#define FU_STRUCT_AVER_SAFEISP_REQ_OFFSET_CUSTOM_CMD 0x1
#define FU_STRUCT_AVER_SAFEISP_REQ_OFFSET_CUSTOM_RES 0x2
#define FU_STRUCT_AVER_SAFEISP_REQ_OFFSET_CUSTOM_PARM0 0x4
#define FU_STRUCT_AVER_SAFEISP_REQ_OFFSET_CUSTOM_PARM1 0x8
#define FU_STRUCT_AVER_SAFEISP_REQ_OFFSET_DATA 0xC
#define FU_STRUCT_AVER_SAFEISP_REQ_SIZE_DATA 0x3F4
#define FU_STRUCT_AVER_SAFEISP_REQ_SIZE 0x400
#define FU_STRUCT_AVER_SAFEISP_REQ_DEFAULT_REPORT_ID_CUSTOM_COMMAND 0x08
#define FU_STRUCT_AVER_SAFEISP_REQ_DEFAULT_CUSTOM_PARM0 0x00
#define FU_STRUCT_AVER_SAFEISP_REQ_DEFAULT_CUSTOM_PARM1 0x00

GByteArray *fu_struct_aver_safeisp_res_new(void);
gboolean fu_struct_aver_safeisp_res_validate(const guint8 *buf, gsize bufsz, gsize offset, GError **error);
guint8 fu_struct_aver_safeisp_res_get_custom_cmd(const GByteArray *st);
guint16 fu_struct_aver_safeisp_res_get_custom_res(const GByteArray *st);
guint32 fu_struct_aver_safeisp_res_get_custom_parm0(const GByteArray *st);
guint32 fu_struct_aver_safeisp_res_get_custom_parm1(const GByteArray *st);
const guint8 *fu_struct_aver_safeisp_res_get_data(const GByteArray *st, gsize *bufsz);
void fu_struct_aver_safeisp_res_set_custom_cmd(GByteArray *st, guint8 value);
void fu_struct_aver_safeisp_res_set_custom_res(GByteArray *st, guint16 value);
void fu_struct_aver_safeisp_res_set_custom_parm0(GByteArray *st, guint32 value);
void fu_struct_aver_safeisp_res_set_custom_parm1(GByteArray *st, guint32 value);
gboolean fu_struct_aver_safeisp_res_set_data(GByteArray *st, const guint8 *buf, gsize bufsz, GError **error);
#define FU_STRUCT_AVER_SAFEISP_RES_OFFSET_REPORT_ID_CUSTOM_COMMAND 0x0
#define FU_STRUCT_AVER_SAFEISP_RES_OFFSET_CUSTOM_CMD 0x1
#define FU_STRUCT_AVER_SAFEISP_RES_OFFSET_CUSTOM_RES 0x2
#define FU_STRUCT_AVER_SAFEISP_RES_OFFSET_CUSTOM_PARM0 0x4
#define FU_STRUCT_AVER_SAFEISP_RES_OFFSET_CUSTOM_PARM1 0x8
#define FU_STRUCT_AVER_SAFEISP_RES_OFFSET_DATA 0xC
#define FU_STRUCT_AVER_SAFEISP_RES_SIZE_DATA 0x4
#define FU_STRUCT_AVER_SAFEISP_RES_SIZE 0x10
#define FU_STRUCT_AVER_SAFEISP_RES_DEFAULT_REPORT_ID_CUSTOM_COMMAND 0x09

gboolean fu_struct_aver_safeisp_res_device_version_validate(const guint8 *buf, gsize bufsz, gsize offset, GError **error);
const guint8 *fu_struct_aver_safeisp_res_device_version_get_ver(const GByteArray *st, gsize *bufsz);
#define FU_STRUCT_AVER_SAFEISP_RES_DEVICE_VERSION_OFFSET_REPORT_ID_CUSTOM_COMMAND 0x0
#define FU_STRUCT_AVER_SAFEISP_RES_DEVICE_VERSION_OFFSET_CUSTOM_CMD 0x1
#define FU_STRUCT_AVER_SAFEISP_RES_DEVICE_VERSION_OFFSET_VER 0x2
#define FU_STRUCT_AVER_SAFEISP_RES_DEVICE_VERSION_SIZE_VER 0xB
#define FU_STRUCT_AVER_SAFEISP_RES_DEVICE_VERSION_SIZE 0x10
#define FU_STRUCT_AVER_SAFEISP_RES_DEVICE_VERSION_DEFAULT_REPORT_ID_CUSTOM_COMMAND 0x09
#define FU_STRUCT_AVER_SAFEISP_RES_DEVICE_VERSION_DEFAULT_CUSTOM_CMD 0x14
