/*
 * This file is auto-generated, do not modify!
 *
 * SPDX-License-Identifier: LGPL-2.1-or-later
 */

#pragma once
#include <fu-input-stream.h>
/**
 * FuAverHidStatus:
 */
typedef enum {
    /**
     * FU_AVER_HID_STATUS_READY:
     */
    FU_AVER_HID_STATUS_READY,
    /**
     * FU_AVER_HID_STATUS_BUSY:
     */
    FU_AVER_HID_STATUS_BUSY,
    /**
     * FU_AVER_HID_STATUS_DNLOAD:
     */
    FU_AVER_HID_STATUS_DNLOAD,
    /**
     * FU_AVER_HID_STATUS_WAITISP:
     */
    FU_AVER_HID_STATUS_WAITISP,
    /**
     * FU_AVER_HID_STATUS_ISPING:
     */
    FU_AVER_HID_STATUS_ISPING,
    /**
     * FU_AVER_HID_STATUS_REBOOT:
     */
    FU_AVER_HID_STATUS_REBOOT,
    /**
     * FU_AVER_HID_STATUS_FILEERR:
     */
    FU_AVER_HID_STATUS_FILEERR,
    /**
     * FU_AVER_HID_STATUS_POWERISP:
     */
    FU_AVER_HID_STATUS_POWERISP,
    /**
     * FU_AVER_HID_STATUS_VERSION:
     */
    FU_AVER_HID_STATUS_VERSION,
    /**
     * FU_AVER_HID_STATUS_WAITUSR:
     */
    FU_AVER_HID_STATUS_WAITUSR,
    /**
     * FU_AVER_HID_STATUS_STOP:
     */
    FU_AVER_HID_STATUS_STOP,
}  FuAverHidStatus;
#define FU_AVER_HID_STATUS_LAST 11
const gchar *fu_aver_hid_status_to_string(FuAverHidStatus val) G_GNUC_CONST;
/**
 * FuAverHidCustomIspCmd:
 */
typedef enum {
    /**
     * FU_AVER_HID_CUSTOM_ISP_CMD_STATUS:
     */
    FU_AVER_HID_CUSTOM_ISP_CMD_STATUS = 0x01,
    /**
     * FU_AVER_HID_CUSTOM_ISP_CMD_FILE_START:
     */
    FU_AVER_HID_CUSTOM_ISP_CMD_FILE_START,
    /**
     * FU_AVER_HID_CUSTOM_ISP_CMD_FILE_DNLOAD:
     */
    FU_AVER_HID_CUSTOM_ISP_CMD_FILE_DNLOAD,
    /**
     * FU_AVER_HID_CUSTOM_ISP_CMD_FILE_END:
     */
    FU_AVER_HID_CUSTOM_ISP_CMD_FILE_END,
    /**
     * FU_AVER_HID_CUSTOM_ISP_CMD_START:
     */
    FU_AVER_HID_CUSTOM_ISP_CMD_START,
    /**
     * FU_AVER_HID_CUSTOM_ISP_CMD_STOP:
     */
    FU_AVER_HID_CUSTOM_ISP_CMD_STOP,
    /**
     * FU_AVER_HID_CUSTOM_ISP_CMD_RESERVE:
     */
    FU_AVER_HID_CUSTOM_ISP_CMD_RESERVE,
    /**
     * FU_AVER_HID_CUSTOM_ISP_CMD_LOG_START:
     */
    FU_AVER_HID_CUSTOM_ISP_CMD_LOG_START,
    /**
     * FU_AVER_HID_CUSTOM_ISP_CMD_LOG_UPLOAD:
     */
    FU_AVER_HID_CUSTOM_ISP_CMD_LOG_UPLOAD,
    /**
     * FU_AVER_HID_CUSTOM_ISP_CMD_ISP_REBOOT:
     */
    FU_AVER_HID_CUSTOM_ISP_CMD_ISP_REBOOT,
    /**
     * FU_AVER_HID_CUSTOM_ISP_CMD_LOG_END:
     */
    FU_AVER_HID_CUSTOM_ISP_CMD_LOG_END,
    /**
     * FU_AVER_HID_CUSTOM_ISP_CMD_ALL_FILE_START:
     */
    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_DNLOAD,
    /**
     * FU_AVER_HID_CUSTOM_ISP_CMD_ALL_FILE_END:
     */
    FU_AVER_HID_CUSTOM_ISP_CMD_ALL_FILE_END,
    /**
     * FU_AVER_HID_CUSTOM_ISP_CMD_ALL_START:
     */
    FU_AVER_HID_CUSTOM_ISP_CMD_ALL_START,
}  FuAverHidCustomIspCmd;
/**
 * FuAverSafeispCustomCmd:
 */
typedef enum {
    /**
     * FU_AVER_SAFEISP_CUSTOM_CMD_GET_VERSION:
     */
    FU_AVER_SAFEISP_CUSTOM_CMD_GET_VERSION = 0x14,
    /**
     * FU_AVER_SAFEISP_CUSTOM_CMD_SUPPORT:
     */
    FU_AVER_SAFEISP_CUSTOM_CMD_SUPPORT = 0x29,
    /**
     * FU_AVER_SAFEISP_CUSTOM_CMD_ERASE_TEMP:
     */
    FU_AVER_SAFEISP_CUSTOM_CMD_ERASE_TEMP,
    /**
     * FU_AVER_SAFEISP_CUSTOM_CMD_UPLOAD_PREPARE:
     */
    FU_AVER_SAFEISP_CUSTOM_CMD_UPLOAD_PREPARE,
    /**
     * FU_AVER_SAFEISP_CUSTOM_CMD_UPLOAD_COMPARE_CHECKSUM:
     */
    FU_AVER_SAFEISP_CUSTOM_CMD_UPLOAD_COMPARE_CHECKSUM,
    /**
     * FU_AVER_SAFEISP_CUSTOM_CMD_UPLOAD_TO_CX3:
     */
    FU_AVER_SAFEISP_CUSTOM_CMD_UPLOAD_TO_CX3,
    /**
     * FU_AVER_SAFEISP_CUSTOM_CMD_UPLOAD_TO_M12MO:
     */
    FU_AVER_SAFEISP_CUSTOM_CMD_UPLOAD_TO_M12MO,
    /**
     * FU_AVER_SAFEISP_CUSTOM_CMD_UPLOAD_TO_M051:
     */
    FU_AVER_SAFEISP_CUSTOM_CMD_UPLOAD_TO_M051,
    /**
     * FU_AVER_SAFEISP_CUSTOM_CMD_UPLOAD_TO_TMPM342:
     */
    FU_AVER_SAFEISP_CUSTOM_CMD_UPLOAD_TO_TMPM342,
    /**
     * FU_AVER_SAFEISP_CUSTOM_CMD_UPLOAD_TO_TMPM342_BOOT:
     */
    FU_AVER_SAFEISP_CUSTOM_CMD_UPLOAD_TO_TMPM342_BOOT,
    /**
     * FU_AVER_SAFEISP_CUSTOM_CMD_UPDATE_START:
     */
    FU_AVER_SAFEISP_CUSTOM_CMD_UPDATE_START,
}  FuAverSafeispCustomCmd;
/**
 * FuAverSafeispAckStatus:
 */
typedef enum {
    /**
     * FU_AVER_SAFEISP_ACK_STATUS_IDLE:
     */
    FU_AVER_SAFEISP_ACK_STATUS_IDLE = 0x00,
    /**
     * FU_AVER_SAFEISP_ACK_STATUS_SUCCESS:
     */
    FU_AVER_SAFEISP_ACK_STATUS_SUCCESS,
    /**
     * FU_AVER_SAFEISP_ACK_STATUS_CHECKSUM:
     */
    FU_AVER_SAFEISP_ACK_STATUS_CHECKSUM,
    /**
     * FU_AVER_SAFEISP_ACK_STATUS_PARAM_ERR:
     */
    FU_AVER_SAFEISP_ACK_STATUS_PARAM_ERR,
    /**
     * FU_AVER_SAFEISP_ACK_STATUS_PREPARE_FAIL:
     */
    FU_AVER_SAFEISP_ACK_STATUS_PREPARE_FAIL,
    /**
     * FU_AVER_SAFEISP_ACK_STATUS_UPLOAD_FAIL:
     */
    FU_AVER_SAFEISP_ACK_STATUS_UPLOAD_FAIL,
    /**
     * FU_AVER_SAFEISP_ACK_STATUS_DATA_READ:
     */
    FU_AVER_SAFEISP_ACK_STATUS_DATA_READ,
    /**
     * FU_AVER_SAFEISP_ACK_STATUS_DATA_READ_FAIL:
     */
    FU_AVER_SAFEISP_ACK_STATUS_DATA_READ_FAIL,
    /**
     * FU_AVER_SAFEISP_ACK_STATUS_DATA_WRITE:
     */
    FU_AVER_SAFEISP_ACK_STATUS_DATA_WRITE,
    /**
     * FU_AVER_SAFEISP_ACK_STATUS_DATA_WRITE_FAIL:
     */
    FU_AVER_SAFEISP_ACK_STATUS_DATA_WRITE_FAIL,
    /**
     * FU_AVER_SAFEISP_ACK_STATUS_VERIFY_FAIL:
     */
    FU_AVER_SAFEISP_ACK_STATUS_VERIFY_FAIL,
    /**
     * FU_AVER_SAFEISP_ACK_STATUS_COMPARE_SAME:
     */
    FU_AVER_SAFEISP_ACK_STATUS_COMPARE_SAME,
    /**
     * FU_AVER_SAFEISP_ACK_STATUS_COMPARE_DIFF:
     */
    FU_AVER_SAFEISP_ACK_STATUS_COMPARE_DIFF,
    /**
     * FU_AVER_SAFEISP_ACK_STATUS_SUPPORT:
     */
    FU_AVER_SAFEISP_ACK_STATUS_SUPPORT,
}  FuAverSafeispAckStatus;
typedef struct {
  GByteArray *buf;
  guint refcount;
} FuStructAverHidReqIsp;

FuStructAverHidReqIsp *fu_struct_aver_hid_req_isp_ref(FuStructAverHidReqIsp *st) G_GNUC_NON_NULL(1);
void fu_struct_aver_hid_req_isp_unref(FuStructAverHidReqIsp *st) G_GNUC_NON_NULL(1);
G_DEFINE_AUTOPTR_CLEANUP_FUNC(FuStructAverHidReqIsp, fu_struct_aver_hid_req_isp_unref)
FuStructAverHidReqIsp *fu_struct_aver_hid_req_isp_new(void) G_GNUC_WARN_UNUSED_RESULT;
FuAverHidCustomIspCmd fu_struct_aver_hid_req_isp_get_custom_isp_cmd(const FuStructAverHidReqIsp *st) G_GNUC_NON_NULL(1) G_GNUC_WARN_UNUSED_RESULT;
const guint8 *fu_struct_aver_hid_req_isp_get_data(const FuStructAverHidReqIsp *st, gsize *bufsz) G_GNUC_NON_NULL(1) G_GNUC_WARN_UNUSED_RESULT;
void fu_struct_aver_hid_req_isp_set_custom_isp_cmd(FuStructAverHidReqIsp *st, FuAverHidCustomIspCmd value) G_GNUC_NON_NULL(1);
gboolean fu_struct_aver_hid_req_isp_set_data(FuStructAverHidReqIsp *st, const guint8 *buf, gsize bufsz, GError **error) G_GNUC_NON_NULL(1, 2) G_GNUC_WARN_UNUSED_RESULT;

#ifndef __GI_SCANNER__
#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
#endif

#ifndef __GI_SCANNER__
#define FU_STRUCT_AVER_HID_REQ_ISP_SIZE_DATA 0x1FC
#define FU_STRUCT_AVER_HID_REQ_ISP_N_ELEMENTS_DATA 508
#define FU_STRUCT_AVER_HID_REQ_ISP_SIZE 0x200
#endif

#ifndef __GI_SCANNER__
#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_DATA "\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF"
#define FU_STRUCT_AVER_HID_REQ_ISP_DEFAULT_END 0x00
#endif
typedef struct {
  GByteArray *buf;
  guint refcount;
} FuStructAverHidReqIspFileStart;

FuStructAverHidReqIspFileStart *fu_struct_aver_hid_req_isp_file_start_ref(FuStructAverHidReqIspFileStart *st) G_GNUC_NON_NULL(1);
void fu_struct_aver_hid_req_isp_file_start_unref(FuStructAverHidReqIspFileStart *st) G_GNUC_NON_NULL(1);
G_DEFINE_AUTOPTR_CLEANUP_FUNC(FuStructAverHidReqIspFileStart, fu_struct_aver_hid_req_isp_file_start_unref)
FuStructAverHidReqIspFileStart *fu_struct_aver_hid_req_isp_file_start_new(void) G_GNUC_WARN_UNUSED_RESULT;
FuAverHidCustomIspCmd fu_struct_aver_hid_req_isp_file_start_get_custom_isp_cmd(const FuStructAverHidReqIspFileStart *st) G_GNUC_NON_NULL(1) G_GNUC_WARN_UNUSED_RESULT;
gchar *fu_struct_aver_hid_req_isp_file_start_get_file_name(const FuStructAverHidReqIspFileStart *st) G_GNUC_NON_NULL(1) G_GNUC_WARN_UNUSED_RESULT;
guint32 fu_struct_aver_hid_req_isp_file_start_get_file_size(const FuStructAverHidReqIspFileStart *st) G_GNUC_NON_NULL(1) G_GNUC_WARN_UNUSED_RESULT;
guint32 fu_struct_aver_hid_req_isp_file_start_get_free_space(const FuStructAverHidReqIspFileStart *st) G_GNUC_NON_NULL(1) G_GNUC_WARN_UNUSED_RESULT;
void fu_struct_aver_hid_req_isp_file_start_set_custom_isp_cmd(FuStructAverHidReqIspFileStart *st, FuAverHidCustomIspCmd value) G_GNUC_NON_NULL(1);
gboolean fu_struct_aver_hid_req_isp_file_start_set_file_name(FuStructAverHidReqIspFileStart *st, const gchar *value, GError **error) G_GNUC_NON_NULL(1) G_GNUC_WARN_UNUSED_RESULT;
void fu_struct_aver_hid_req_isp_file_start_set_file_size(FuStructAverHidReqIspFileStart *st, guint32 value) G_GNUC_NON_NULL(1);
void fu_struct_aver_hid_req_isp_file_start_set_free_space(FuStructAverHidReqIspFileStart *st, guint32 value) G_GNUC_NON_NULL(1);

#ifndef __GI_SCANNER__
#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
#endif

#ifndef __GI_SCANNER__
#define FU_STRUCT_AVER_HID_REQ_ISP_FILE_START_SIZE_FILE_NAME 0x34
#define FU_STRUCT_AVER_HID_REQ_ISP_FILE_START_N_ELEMENTS_FILE_NAME 52
#define FU_STRUCT_AVER_HID_REQ_ISP_FILE_START_SIZE 0x200
#endif

#ifndef __GI_SCANNER__
#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
#endif
typedef struct {
  GByteArray *buf;
  guint refcount;
} FuStructAverHidReqIspFileDnload;

FuStructAverHidReqIspFileDnload *fu_struct_aver_hid_req_isp_file_dnload_ref(FuStructAverHidReqIspFileDnload *st) G_GNUC_NON_NULL(1);
void fu_struct_aver_hid_req_isp_file_dnload_unref(FuStructAverHidReqIspFileDnload *st) G_GNUC_NON_NULL(1);
G_DEFINE_AUTOPTR_CLEANUP_FUNC(FuStructAverHidReqIspFileDnload, fu_struct_aver_hid_req_isp_file_dnload_unref)
FuStructAverHidReqIspFileDnload *fu_struct_aver_hid_req_isp_file_dnload_new(void) G_GNUC_WARN_UNUSED_RESULT;
FuAverHidCustomIspCmd fu_struct_aver_hid_req_isp_file_dnload_get_custom_isp_cmd(const FuStructAverHidReqIspFileDnload *st) G_GNUC_NON_NULL(1) G_GNUC_WARN_UNUSED_RESULT;
const guint8 *fu_struct_aver_hid_req_isp_file_dnload_get_data(const FuStructAverHidReqIspFileDnload *st, gsize *bufsz) G_GNUC_NON_NULL(1) G_GNUC_WARN_UNUSED_RESULT;
void fu_struct_aver_hid_req_isp_file_dnload_set_custom_isp_cmd(FuStructAverHidReqIspFileDnload *st, FuAverHidCustomIspCmd value) G_GNUC_NON_NULL(1);
gboolean fu_struct_aver_hid_req_isp_file_dnload_set_data(FuStructAverHidReqIspFileDnload *st, const guint8 *buf, gsize bufsz, GError **error) G_GNUC_NON_NULL(1, 2) G_GNUC_WARN_UNUSED_RESULT;

#ifndef __GI_SCANNER__
#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
#endif

#ifndef __GI_SCANNER__
#define FU_STRUCT_AVER_HID_REQ_ISP_FILE_DNLOAD_SIZE_DATA 0x1FC
#define FU_STRUCT_AVER_HID_REQ_ISP_FILE_DNLOAD_N_ELEMENTS_DATA 508
#define FU_STRUCT_AVER_HID_REQ_ISP_FILE_DNLOAD_SIZE 0x1FF
#endif

#ifndef __GI_SCANNER__
#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
#define FU_STRUCT_AVER_HID_REQ_ISP_FILE_DNLOAD_DEFAULT_DATA "\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF"
#endif
typedef struct {
  GByteArray *buf;
  guint refcount;
} FuStructAverHidReqIspFileEnd;

FuStructAverHidReqIspFileEnd *fu_struct_aver_hid_req_isp_file_end_ref(FuStructAverHidReqIspFileEnd *st) G_GNUC_NON_NULL(1);
void fu_struct_aver_hid_req_isp_file_end_unref(FuStructAverHidReqIspFileEnd *st) G_GNUC_NON_NULL(1);
G_DEFINE_AUTOPTR_CLEANUP_FUNC(FuStructAverHidReqIspFileEnd, fu_struct_aver_hid_req_isp_file_end_unref)
FuStructAverHidReqIspFileEnd *fu_struct_aver_hid_req_isp_file_end_new(void) G_GNUC_WARN_UNUSED_RESULT;
FuAverHidCustomIspCmd fu_struct_aver_hid_req_isp_file_end_get_custom_isp_cmd(const FuStructAverHidReqIspFileEnd *st) G_GNUC_NON_NULL(1) G_GNUC_WARN_UNUSED_RESULT;
gchar *fu_struct_aver_hid_req_isp_file_end_get_file_name(const FuStructAverHidReqIspFileEnd *st) G_GNUC_NON_NULL(1) G_GNUC_WARN_UNUSED_RESULT;
guint8 fu_struct_aver_hid_req_isp_file_end_get_end_flag(const FuStructAverHidReqIspFileEnd *st) G_GNUC_NON_NULL(1) G_GNUC_WARN_UNUSED_RESULT;
guint32 fu_struct_aver_hid_req_isp_file_end_get_file_size(const FuStructAverHidReqIspFileEnd *st) G_GNUC_NON_NULL(1) G_GNUC_WARN_UNUSED_RESULT;
guint32 fu_struct_aver_hid_req_isp_file_end_get_free_space(const FuStructAverHidReqIspFileEnd *st) G_GNUC_NON_NULL(1) G_GNUC_WARN_UNUSED_RESULT;
void fu_struct_aver_hid_req_isp_file_end_set_custom_isp_cmd(FuStructAverHidReqIspFileEnd *st, FuAverHidCustomIspCmd value) G_GNUC_NON_NULL(1);
gboolean fu_struct_aver_hid_req_isp_file_end_set_file_name(FuStructAverHidReqIspFileEnd *st, const gchar *value, GError **error) G_GNUC_NON_NULL(1) G_GNUC_WARN_UNUSED_RESULT;
void fu_struct_aver_hid_req_isp_file_end_set_end_flag(FuStructAverHidReqIspFileEnd *st, guint8 value) G_GNUC_NON_NULL(1);
void fu_struct_aver_hid_req_isp_file_end_set_file_size(FuStructAverHidReqIspFileEnd *st, guint32 value) G_GNUC_NON_NULL(1);
void fu_struct_aver_hid_req_isp_file_end_set_free_space(FuStructAverHidReqIspFileEnd *st, guint32 value) G_GNUC_NON_NULL(1);

#ifndef __GI_SCANNER__
#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
#endif

#ifndef __GI_SCANNER__
#define FU_STRUCT_AVER_HID_REQ_ISP_FILE_END_SIZE_FILE_NAME 0x33
#define FU_STRUCT_AVER_HID_REQ_ISP_FILE_END_N_ELEMENTS_FILE_NAME 51
#define FU_STRUCT_AVER_HID_REQ_ISP_FILE_END_SIZE 0x200
#endif

#ifndef __GI_SCANNER__
#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
#endif
typedef struct {
  GByteArray *buf;
  guint refcount;
} FuStructAverHidReqIspStart;

FuStructAverHidReqIspStart *fu_struct_aver_hid_req_isp_start_ref(FuStructAverHidReqIspStart *st) G_GNUC_NON_NULL(1);
void fu_struct_aver_hid_req_isp_start_unref(FuStructAverHidReqIspStart *st) G_GNUC_NON_NULL(1);
G_DEFINE_AUTOPTR_CLEANUP_FUNC(FuStructAverHidReqIspStart, fu_struct_aver_hid_req_isp_start_unref)
FuStructAverHidReqIspStart *fu_struct_aver_hid_req_isp_start_new(void) G_GNUC_WARN_UNUSED_RESULT;
FuAverHidCustomIspCmd fu_struct_aver_hid_req_isp_start_get_custom_isp_cmd(const FuStructAverHidReqIspStart *st) G_GNUC_NON_NULL(1) G_GNUC_WARN_UNUSED_RESULT;
const guint8 *fu_struct_aver_hid_req_isp_start_get_isp_cmd(const FuStructAverHidReqIspStart *st, gsize *bufsz) G_GNUC_NON_NULL(1) G_GNUC_WARN_UNUSED_RESULT;
void fu_struct_aver_hid_req_isp_start_set_custom_isp_cmd(FuStructAverHidReqIspStart *st, FuAverHidCustomIspCmd value) G_GNUC_NON_NULL(1);
gboolean fu_struct_aver_hid_req_isp_start_set_isp_cmd(FuStructAverHidReqIspStart *st, const guint8 *buf, gsize bufsz, GError **error) G_GNUC_NON_NULL(1, 2) G_GNUC_WARN_UNUSED_RESULT;

#ifndef __GI_SCANNER__
#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
#endif

#ifndef __GI_SCANNER__
#define FU_STRUCT_AVER_HID_REQ_ISP_START_SIZE_ISP_CMD 0x3C
#define FU_STRUCT_AVER_HID_REQ_ISP_START_N_ELEMENTS_ISP_CMD 60
#define FU_STRUCT_AVER_HID_REQ_ISP_START_SIZE 0x200
#endif

#ifndef __GI_SCANNER__
#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_ISP_CMD "\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF"
#define FU_STRUCT_AVER_HID_REQ_ISP_START_DEFAULT_END 0x00
#endif
typedef struct {
  GByteArray *buf;
  guint refcount;
} FuStructAverHidReqDeviceVersion;

FuStructAverHidReqDeviceVersion *fu_struct_aver_hid_req_device_version_ref(FuStructAverHidReqDeviceVersion *st) G_GNUC_NON_NULL(1);
void fu_struct_aver_hid_req_device_version_unref(FuStructAverHidReqDeviceVersion *st) G_GNUC_NON_NULL(1);
G_DEFINE_AUTOPTR_CLEANUP_FUNC(FuStructAverHidReqDeviceVersion, fu_struct_aver_hid_req_device_version_unref)
FuStructAverHidReqDeviceVersion *fu_struct_aver_hid_req_device_version_new(void) G_GNUC_WARN_UNUSED_RESULT;
const guint8 *fu_struct_aver_hid_req_device_version_get_ver(const FuStructAverHidReqDeviceVersion *st, gsize *bufsz) G_GNUC_NON_NULL(1) G_GNUC_WARN_UNUSED_RESULT;
gboolean fu_struct_aver_hid_req_device_version_set_ver(FuStructAverHidReqDeviceVersion *st, const guint8 *buf, gsize bufsz, GError **error) G_GNUC_NON_NULL(1, 2) G_GNUC_WARN_UNUSED_RESULT;

#ifndef __GI_SCANNER__
#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
#endif

#ifndef __GI_SCANNER__
#define FU_STRUCT_AVER_HID_REQ_DEVICE_VERSION_SIZE_VER 0xB
#define FU_STRUCT_AVER_HID_REQ_DEVICE_VERSION_N_ELEMENTS_VER 11
#define FU_STRUCT_AVER_HID_REQ_DEVICE_VERSION_SIZE 0x200
#endif

#ifndef __GI_SCANNER__
#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
#endif
typedef struct {
  GByteArray *buf;
  guint refcount;
} FuStructAverHidResIspStatus;

FuStructAverHidResIspStatus *fu_struct_aver_hid_res_isp_status_ref(FuStructAverHidResIspStatus *st) G_GNUC_NON_NULL(1);
void fu_struct_aver_hid_res_isp_status_unref(FuStructAverHidResIspStatus *st) G_GNUC_NON_NULL(1);
G_DEFINE_AUTOPTR_CLEANUP_FUNC(FuStructAverHidResIspStatus, fu_struct_aver_hid_res_isp_status_unref)
FuStructAverHidResIspStatus *fu_struct_aver_hid_res_isp_status_new(void) G_GNUC_WARN_UNUSED_RESULT;
gboolean fu_struct_aver_hid_res_isp_status_validate(const guint8 *buf, gsize bufsz, gsize offset, GError **error) G_GNUC_NON_NULL(1) G_GNUC_WARN_UNUSED_RESULT;
FuAverHidCustomIspCmd fu_struct_aver_hid_res_isp_status_get_custom_isp_cmd(const FuStructAverHidResIspStatus *st) G_GNUC_NON_NULL(1) G_GNUC_WARN_UNUSED_RESULT;
guint8 fu_struct_aver_hid_res_isp_status_get_status(const FuStructAverHidResIspStatus *st) G_GNUC_NON_NULL(1) G_GNUC_WARN_UNUSED_RESULT;
gchar *fu_struct_aver_hid_res_isp_status_get_status_string(const FuStructAverHidResIspStatus *st) G_GNUC_NON_NULL(1) G_GNUC_WARN_UNUSED_RESULT;
guint8 fu_struct_aver_hid_res_isp_status_get_progress(const FuStructAverHidResIspStatus *st) G_GNUC_NON_NULL(1) G_GNUC_WARN_UNUSED_RESULT;
void fu_struct_aver_hid_res_isp_status_set_custom_isp_cmd(FuStructAverHidResIspStatus *st, FuAverHidCustomIspCmd value) G_GNUC_NON_NULL(1);
void fu_struct_aver_hid_res_isp_status_set_status(FuStructAverHidResIspStatus *st, guint8 value) G_GNUC_NON_NULL(1);
gboolean fu_struct_aver_hid_res_isp_status_set_status_string(FuStructAverHidResIspStatus *st, const gchar *value, GError **error) G_GNUC_NON_NULL(1) G_GNUC_WARN_UNUSED_RESULT;
void fu_struct_aver_hid_res_isp_status_set_progress(FuStructAverHidResIspStatus *st, guint8 value) G_GNUC_NON_NULL(1);

#ifndef __GI_SCANNER__
#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
#endif

#ifndef __GI_SCANNER__
#define FU_STRUCT_AVER_HID_RES_ISP_STATUS_SIZE_STATUS_STRING 0x3A
#define FU_STRUCT_AVER_HID_RES_ISP_STATUS_N_ELEMENTS_STATUS_STRING 58
#define FU_STRUCT_AVER_HID_RES_ISP_STATUS_SIZE 0x200
#endif

#ifndef __GI_SCANNER__
#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
#endif
typedef struct {
  GByteArray *buf;
  guint refcount;
} FuStructAverHidResIsp;

FuStructAverHidResIsp *fu_struct_aver_hid_res_isp_ref(FuStructAverHidResIsp *st) G_GNUC_NON_NULL(1);
void fu_struct_aver_hid_res_isp_unref(FuStructAverHidResIsp *st) G_GNUC_NON_NULL(1);
G_DEFINE_AUTOPTR_CLEANUP_FUNC(FuStructAverHidResIsp, fu_struct_aver_hid_res_isp_unref)
FuAverHidCustomIspCmd fu_struct_aver_hid_res_isp_get_custom_isp_cmd(const FuStructAverHidResIsp *st) G_GNUC_NON_NULL(1) G_GNUC_WARN_UNUSED_RESULT;
void fu_struct_aver_hid_res_isp_set_custom_isp_cmd(FuStructAverHidResIsp *st, FuAverHidCustomIspCmd value) G_GNUC_NON_NULL(1);

#ifndef __GI_SCANNER__
#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
#endif

#ifndef __GI_SCANNER__
#define FU_STRUCT_AVER_HID_RES_ISP_SIZE 0x200
#endif

#ifndef __GI_SCANNER__
#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
#endif
typedef struct {
  GByteArray *buf;
  guint refcount;
} FuStructAverHidResDeviceVersion;

FuStructAverHidResDeviceVersion *fu_struct_aver_hid_res_device_version_ref(FuStructAverHidResDeviceVersion *st) G_GNUC_NON_NULL(1);
void fu_struct_aver_hid_res_device_version_unref(FuStructAverHidResDeviceVersion *st) G_GNUC_NON_NULL(1);
G_DEFINE_AUTOPTR_CLEANUP_FUNC(FuStructAverHidResDeviceVersion, fu_struct_aver_hid_res_device_version_unref)
FuStructAverHidResDeviceVersion *fu_struct_aver_hid_res_device_version_new(void) G_GNUC_WARN_UNUSED_RESULT;
gboolean fu_struct_aver_hid_res_device_version_validate(const guint8 *buf, gsize bufsz, gsize offset, GError **error) G_GNUC_NON_NULL(1) G_GNUC_WARN_UNUSED_RESULT;
const guint8 *fu_struct_aver_hid_res_device_version_get_ver(const FuStructAverHidResDeviceVersion *st, gsize *bufsz) G_GNUC_NON_NULL(1) G_GNUC_WARN_UNUSED_RESULT;
gboolean fu_struct_aver_hid_res_device_version_set_ver(FuStructAverHidResDeviceVersion *st, const guint8 *buf, gsize bufsz, GError **error) G_GNUC_NON_NULL(1, 2) G_GNUC_WARN_UNUSED_RESULT;

#ifndef __GI_SCANNER__
#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
#endif

#ifndef __GI_SCANNER__
#define FU_STRUCT_AVER_HID_RES_DEVICE_VERSION_SIZE_VER 0xB
#define FU_STRUCT_AVER_HID_RES_DEVICE_VERSION_N_ELEMENTS_VER 11
#define FU_STRUCT_AVER_HID_RES_DEVICE_VERSION_SIZE 0x200
#endif

#ifndef __GI_SCANNER__
#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
#endif
typedef struct {
  GByteArray *buf;
  guint refcount;
} FuStructAverSafeispReq;

FuStructAverSafeispReq *fu_struct_aver_safeisp_req_ref(FuStructAverSafeispReq *st) G_GNUC_NON_NULL(1);
void fu_struct_aver_safeisp_req_unref(FuStructAverSafeispReq *st) G_GNUC_NON_NULL(1);
G_DEFINE_AUTOPTR_CLEANUP_FUNC(FuStructAverSafeispReq, fu_struct_aver_safeisp_req_unref)
FuStructAverSafeispReq *fu_struct_aver_safeisp_req_new(void) G_GNUC_WARN_UNUSED_RESULT;
FuAverSafeispCustomCmd fu_struct_aver_safeisp_req_get_custom_cmd(const FuStructAverSafeispReq *st) G_GNUC_NON_NULL(1) G_GNUC_WARN_UNUSED_RESULT;
guint16 fu_struct_aver_safeisp_req_get_custom_res(const FuStructAverSafeispReq *st) G_GNUC_NON_NULL(1) G_GNUC_WARN_UNUSED_RESULT;
guint32 fu_struct_aver_safeisp_req_get_custom_parm0(const FuStructAverSafeispReq *st) G_GNUC_NON_NULL(1) G_GNUC_WARN_UNUSED_RESULT;
guint32 fu_struct_aver_safeisp_req_get_custom_parm1(const FuStructAverSafeispReq *st) G_GNUC_NON_NULL(1) G_GNUC_WARN_UNUSED_RESULT;
const guint8 *fu_struct_aver_safeisp_req_get_data(const FuStructAverSafeispReq *st, gsize *bufsz) G_GNUC_NON_NULL(1) G_GNUC_WARN_UNUSED_RESULT;
void fu_struct_aver_safeisp_req_set_custom_cmd(FuStructAverSafeispReq *st, FuAverSafeispCustomCmd value) G_GNUC_NON_NULL(1);
void fu_struct_aver_safeisp_req_set_custom_res(FuStructAverSafeispReq *st, guint16 value) G_GNUC_NON_NULL(1);
void fu_struct_aver_safeisp_req_set_custom_parm0(FuStructAverSafeispReq *st, guint32 value) G_GNUC_NON_NULL(1);
void fu_struct_aver_safeisp_req_set_custom_parm1(FuStructAverSafeispReq *st, guint32 value) G_GNUC_NON_NULL(1);
gboolean fu_struct_aver_safeisp_req_set_data(FuStructAverSafeispReq *st, const guint8 *buf, gsize bufsz, GError **error) G_GNUC_NON_NULL(1, 2) G_GNUC_WARN_UNUSED_RESULT;

#ifndef __GI_SCANNER__
#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
#endif

#ifndef __GI_SCANNER__
#define FU_STRUCT_AVER_SAFEISP_REQ_SIZE_DATA 0x3F4
#define FU_STRUCT_AVER_SAFEISP_REQ_N_ELEMENTS_DATA 1012
#define FU_STRUCT_AVER_SAFEISP_REQ_SIZE 0x400
#endif

#ifndef __GI_SCANNER__
#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
#define FU_STRUCT_AVER_SAFEISP_REQ_DEFAULT_DATA "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
#endif
typedef struct {
  GByteArray *buf;
  guint refcount;
} FuStructAverSafeispRes;

FuStructAverSafeispRes *fu_struct_aver_safeisp_res_ref(FuStructAverSafeispRes *st) G_GNUC_NON_NULL(1);
void fu_struct_aver_safeisp_res_unref(FuStructAverSafeispRes *st) G_GNUC_NON_NULL(1);
G_DEFINE_AUTOPTR_CLEANUP_FUNC(FuStructAverSafeispRes, fu_struct_aver_safeisp_res_unref)
FuStructAverSafeispRes *fu_struct_aver_safeisp_res_new(void) G_GNUC_WARN_UNUSED_RESULT;
gboolean fu_struct_aver_safeisp_res_validate(const guint8 *buf, gsize bufsz, gsize offset, GError **error) G_GNUC_NON_NULL(1) G_GNUC_WARN_UNUSED_RESULT;
guint8 fu_struct_aver_safeisp_res_get_custom_cmd(const FuStructAverSafeispRes *st) G_GNUC_NON_NULL(1) G_GNUC_WARN_UNUSED_RESULT;
guint16 fu_struct_aver_safeisp_res_get_custom_res(const FuStructAverSafeispRes *st) G_GNUC_NON_NULL(1) G_GNUC_WARN_UNUSED_RESULT;
guint32 fu_struct_aver_safeisp_res_get_custom_parm0(const FuStructAverSafeispRes *st) G_GNUC_NON_NULL(1) G_GNUC_WARN_UNUSED_RESULT;
guint32 fu_struct_aver_safeisp_res_get_custom_parm1(const FuStructAverSafeispRes *st) G_GNUC_NON_NULL(1) G_GNUC_WARN_UNUSED_RESULT;
const guint8 *fu_struct_aver_safeisp_res_get_data(const FuStructAverSafeispRes *st, gsize *bufsz) G_GNUC_NON_NULL(1) G_GNUC_WARN_UNUSED_RESULT;
void fu_struct_aver_safeisp_res_set_custom_cmd(FuStructAverSafeispRes *st, guint8 value) G_GNUC_NON_NULL(1);
void fu_struct_aver_safeisp_res_set_custom_res(FuStructAverSafeispRes *st, guint16 value) G_GNUC_NON_NULL(1);
void fu_struct_aver_safeisp_res_set_custom_parm0(FuStructAverSafeispRes *st, guint32 value) G_GNUC_NON_NULL(1);
void fu_struct_aver_safeisp_res_set_custom_parm1(FuStructAverSafeispRes *st, guint32 value) G_GNUC_NON_NULL(1);
gboolean fu_struct_aver_safeisp_res_set_data(FuStructAverSafeispRes *st, const guint8 *buf, gsize bufsz, GError **error) G_GNUC_NON_NULL(1, 2) G_GNUC_WARN_UNUSED_RESULT;

#ifndef __GI_SCANNER__
#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
#endif

#ifndef __GI_SCANNER__
#define FU_STRUCT_AVER_SAFEISP_RES_SIZE_DATA 0x4
#define FU_STRUCT_AVER_SAFEISP_RES_N_ELEMENTS_DATA 4
#define FU_STRUCT_AVER_SAFEISP_RES_SIZE 0x10
#endif

#ifndef __GI_SCANNER__
#define FU_STRUCT_AVER_SAFEISP_RES_DEFAULT_REPORT_ID_CUSTOM_COMMAND 0x09
#define FU_STRUCT_AVER_SAFEISP_RES_DEFAULT_DATA "\x00\x00\x00\x00"
#endif
typedef struct {
  GByteArray *buf;
  guint refcount;
} FuStructAverSafeispResDeviceVersion;

FuStructAverSafeispResDeviceVersion *fu_struct_aver_safeisp_res_device_version_ref(FuStructAverSafeispResDeviceVersion *st) G_GNUC_NON_NULL(1);
void fu_struct_aver_safeisp_res_device_version_unref(FuStructAverSafeispResDeviceVersion *st) G_GNUC_NON_NULL(1);
G_DEFINE_AUTOPTR_CLEANUP_FUNC(FuStructAverSafeispResDeviceVersion, fu_struct_aver_safeisp_res_device_version_unref)
FuStructAverSafeispResDeviceVersion *fu_struct_aver_safeisp_res_device_version_new(void) G_GNUC_WARN_UNUSED_RESULT;
gboolean fu_struct_aver_safeisp_res_device_version_validate(const guint8 *buf, gsize bufsz, gsize offset, GError **error) G_GNUC_NON_NULL(1) G_GNUC_WARN_UNUSED_RESULT;
const guint8 *fu_struct_aver_safeisp_res_device_version_get_ver(const FuStructAverSafeispResDeviceVersion *st, gsize *bufsz) G_GNUC_NON_NULL(1) G_GNUC_WARN_UNUSED_RESULT;
gboolean fu_struct_aver_safeisp_res_device_version_set_ver(FuStructAverSafeispResDeviceVersion *st, const guint8 *buf, gsize bufsz, GError **error) G_GNUC_NON_NULL(1, 2) G_GNUC_WARN_UNUSED_RESULT;

#ifndef __GI_SCANNER__
#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
#endif

#ifndef __GI_SCANNER__
#define FU_STRUCT_AVER_SAFEISP_RES_DEVICE_VERSION_SIZE_VER 0xB
#define FU_STRUCT_AVER_SAFEISP_RES_DEVICE_VERSION_N_ELEMENTS_VER 11
#define FU_STRUCT_AVER_SAFEISP_RES_DEVICE_VERSION_SIZE 0x10
#endif

#ifndef __GI_SCANNER__
#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 FU_AVER_SAFEISP_CUSTOM_CMD_GET_VERSION
#endif
