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

#pragma once
#include <fu-input-stream.h>
/**
 * FuFocalTouchRegister:
 */
typedef enum {
    /**
     * FU_FOCAL_TOUCH_REGISTER_FW_VERSION1:
     */
    FU_FOCAL_TOUCH_REGISTER_FW_VERSION1 = 0xA6,
    /**
     * FU_FOCAL_TOUCH_REGISTER_FW_VERSION2:
     */
    FU_FOCAL_TOUCH_REGISTER_FW_VERSION2 = 0xAD,
    /**
     * FU_FOCAL_TOUCH_REGISTER_VERIFY_ID1:
     */
    FU_FOCAL_TOUCH_REGISTER_VERIFY_ID1 = 0x9F,
    /**
     * FU_FOCAL_TOUCH_REGISTER_VERIFY_ID2:
     */
    FU_FOCAL_TOUCH_REGISTER_VERIFY_ID2 = 0xA3,
}  FuFocalTouchRegister;
/**
 * FuFocalTouchCmd:
 */
typedef enum {
    /**
     * FU_FOCAL_TOUCH_CMD_ENTER_UPGRADE_MODE:
     */
    FU_FOCAL_TOUCH_CMD_ENTER_UPGRADE_MODE = 0x40,
    /**
     * FU_FOCAL_TOUCH_CMD_CHECK_CURRENT_STATE:
     */
    FU_FOCAL_TOUCH_CMD_CHECK_CURRENT_STATE = 0x41,
    /**
     * FU_FOCAL_TOUCH_CMD_READY_FOR_UPGRADE:
     */
    FU_FOCAL_TOUCH_CMD_READY_FOR_UPGRADE = 0x42,
    /**
     * FU_FOCAL_TOUCH_CMD_SEND_DATA:
     */
    FU_FOCAL_TOUCH_CMD_SEND_DATA = 0x43,
    /**
     * FU_FOCAL_TOUCH_CMD_UPGRADE_CHECKSUM:
     */
    FU_FOCAL_TOUCH_CMD_UPGRADE_CHECKSUM = 0x44,
    /**
     * FU_FOCAL_TOUCH_CMD_EXIT_UPGRADE_MODE:
     */
    FU_FOCAL_TOUCH_CMD_EXIT_UPGRADE_MODE = 0x45,
    /**
     * FU_FOCAL_TOUCH_CMD_USB_READ_UPGRADE_ID:
     */
    FU_FOCAL_TOUCH_CMD_USB_READ_UPGRADE_ID = 0x46,
    /**
     * FU_FOCAL_TOUCH_CMD_USB_ERASE_FLASH:
     */
    FU_FOCAL_TOUCH_CMD_USB_ERASE_FLASH = 0x47,
    /**
     * FU_FOCAL_TOUCH_CMD_USB_BOOT_READ:
     */
    FU_FOCAL_TOUCH_CMD_USB_BOOT_READ = 0x48,
    /**
     * FU_FOCAL_TOUCH_CMD_USB_BOOT_BOOTLOADERVERSION:
     */
    FU_FOCAL_TOUCH_CMD_USB_BOOT_BOOTLOADERVERSION = 0x49,
    /**
     * FU_FOCAL_TOUCH_CMD_READ_REGISTER:
     */
    FU_FOCAL_TOUCH_CMD_READ_REGISTER = 0x50,
    /**
     * FU_FOCAL_TOUCH_CMD_WRITE_REGISTER:
     */
    FU_FOCAL_TOUCH_CMD_WRITE_REGISTER = 0x51,
    /**
     * FU_FOCAL_TOUCH_CMD_BIN_LENGTH:
     */
    FU_FOCAL_TOUCH_CMD_BIN_LENGTH = 0x7A,
    /**
     * FU_FOCAL_TOUCH_CMD_ACK:
     */
    FU_FOCAL_TOUCH_CMD_ACK = 0xF0,
    /**
     * FU_FOCAL_TOUCH_CMD_NACK:
     */
    FU_FOCAL_TOUCH_CMD_NACK = 0xFF,
}  FuFocalTouchCmd;
/**
 * FuFocalTouchUcMode:
 */
typedef enum {
    /**
     * FU_FOCAL_TOUCH_UC_MODE_UPGRADE:
     */
    FU_FOCAL_TOUCH_UC_MODE_UPGRADE = 1,
    /**
     * FU_FOCAL_TOUCH_UC_MODE_RUNTIME:
     */
    FU_FOCAL_TOUCH_UC_MODE_RUNTIME = 2,
}  FuFocalTouchUcMode;
/**
 * FuFocalTouchPacketType:
 */
typedef enum {
    /**
     * FU_FOCAL_TOUCH_PACKET_TYPE_FIRST:
     */
    FU_FOCAL_TOUCH_PACKET_TYPE_FIRST,
    /**
     * FU_FOCAL_TOUCH_PACKET_TYPE_MID:
     */
    FU_FOCAL_TOUCH_PACKET_TYPE_MID,
    /**
     * FU_FOCAL_TOUCH_PACKET_TYPE_END:
     */
    FU_FOCAL_TOUCH_PACKET_TYPE_END,
}  FuFocalTouchPacketType;
#define FU_FOCAL_TOUCH_PACKET_TYPE_LAST 3
typedef struct {
  GByteArray *buf;
  guint refcount;
} FuStructFocalTouchReadRegisterReq;

FuStructFocalTouchReadRegisterReq *fu_struct_focal_touch_read_register_req_ref(FuStructFocalTouchReadRegisterReq *st) G_GNUC_NON_NULL(1);
void fu_struct_focal_touch_read_register_req_unref(FuStructFocalTouchReadRegisterReq *st) G_GNUC_NON_NULL(1);
G_DEFINE_AUTOPTR_CLEANUP_FUNC(FuStructFocalTouchReadRegisterReq, fu_struct_focal_touch_read_register_req_unref)
FuStructFocalTouchReadRegisterReq *fu_struct_focal_touch_read_register_req_new(void) G_GNUC_WARN_UNUSED_RESULT;
void fu_struct_focal_touch_read_register_req_set_address(FuStructFocalTouchReadRegisterReq *st, FuFocalTouchRegister value) G_GNUC_NON_NULL(1);

#ifndef __GI_SCANNER__
#define FU_STRUCT_FOCAL_TOUCH_READ_REGISTER_REQ_OFFSET_REPORT_ID 0x0
#define FU_STRUCT_FOCAL_TOUCH_READ_REGISTER_REQ_OFFSET_LEN 0x3
#define FU_STRUCT_FOCAL_TOUCH_READ_REGISTER_REQ_OFFSET_CMD 0x4
#define FU_STRUCT_FOCAL_TOUCH_READ_REGISTER_REQ_OFFSET_ADDRESS 0x5
#endif

#ifndef __GI_SCANNER__
#define FU_STRUCT_FOCAL_TOUCH_READ_REGISTER_REQ_SIZE 0x6
#endif

#ifndef __GI_SCANNER__
#define FU_STRUCT_FOCAL_TOUCH_READ_REGISTER_REQ_DEFAULT_REPORT_ID 0x06
#define FU_STRUCT_FOCAL_TOUCH_READ_REGISTER_REQ_DEFAULT_LEN 6
#define FU_STRUCT_FOCAL_TOUCH_READ_REGISTER_REQ_DEFAULT_CMD FU_FOCAL_TOUCH_CMD_READ_REGISTER
#endif
typedef struct {
  GByteArray *buf;
  guint refcount;
} FuStructFocalTouchReadRegisterRes;

FuStructFocalTouchReadRegisterRes *fu_struct_focal_touch_read_register_res_ref(FuStructFocalTouchReadRegisterRes *st) G_GNUC_NON_NULL(1);
void fu_struct_focal_touch_read_register_res_unref(FuStructFocalTouchReadRegisterRes *st) G_GNUC_NON_NULL(1);
G_DEFINE_AUTOPTR_CLEANUP_FUNC(FuStructFocalTouchReadRegisterRes, fu_struct_focal_touch_read_register_res_unref)
FuStructFocalTouchReadRegisterRes *fu_struct_focal_touch_read_register_res_parse(const guint8 *buf, gsize bufsz, gsize offset, GError **error) G_GNUC_NON_NULL(1) G_GNUC_WARN_UNUSED_RESULT;
guint8 fu_struct_focal_touch_read_register_res_get_value(const FuStructFocalTouchReadRegisterRes *st) G_GNUC_NON_NULL(1) G_GNUC_WARN_UNUSED_RESULT;

#ifndef __GI_SCANNER__
#define FU_STRUCT_FOCAL_TOUCH_READ_REGISTER_RES_OFFSET_REPORT_ID 0x0
#define FU_STRUCT_FOCAL_TOUCH_READ_REGISTER_RES_OFFSET_LEN 0x3
#define FU_STRUCT_FOCAL_TOUCH_READ_REGISTER_RES_OFFSET_CMD 0x4
#define FU_STRUCT_FOCAL_TOUCH_READ_REGISTER_RES_OFFSET_VALUE 0x6
#endif

#ifndef __GI_SCANNER__
#define FU_STRUCT_FOCAL_TOUCH_READ_REGISTER_RES_SIZE 0x7
#endif

#ifndef __GI_SCANNER__
#define FU_STRUCT_FOCAL_TOUCH_READ_REGISTER_RES_DEFAULT_REPORT_ID 0x06
#define FU_STRUCT_FOCAL_TOUCH_READ_REGISTER_RES_DEFAULT_LEN 7
#define FU_STRUCT_FOCAL_TOUCH_READ_REGISTER_RES_DEFAULT_CMD FU_FOCAL_TOUCH_CMD_READ_REGISTER
#endif
typedef struct {
  GByteArray *buf;
  guint refcount;
} FuStructFocalTouchSendDataReq;

FuStructFocalTouchSendDataReq *fu_struct_focal_touch_send_data_req_ref(FuStructFocalTouchSendDataReq *st) G_GNUC_NON_NULL(1);
void fu_struct_focal_touch_send_data_req_unref(FuStructFocalTouchSendDataReq *st) G_GNUC_NON_NULL(1);
G_DEFINE_AUTOPTR_CLEANUP_FUNC(FuStructFocalTouchSendDataReq, fu_struct_focal_touch_send_data_req_unref)
FuStructFocalTouchSendDataReq *fu_struct_focal_touch_send_data_req_new(void) G_GNUC_WARN_UNUSED_RESULT;
void fu_struct_focal_touch_send_data_req_set_len(FuStructFocalTouchSendDataReq *st, guint8 value) G_GNUC_NON_NULL(1);
void fu_struct_focal_touch_send_data_req_set_packet_type(FuStructFocalTouchSendDataReq *st, FuFocalTouchPacketType value) G_GNUC_NON_NULL(1);

#ifndef __GI_SCANNER__
#define FU_STRUCT_FOCAL_TOUCH_SEND_DATA_REQ_OFFSET_REPORT_ID 0x0
#define FU_STRUCT_FOCAL_TOUCH_SEND_DATA_REQ_OFFSET_LEN 0x3
#define FU_STRUCT_FOCAL_TOUCH_SEND_DATA_REQ_OFFSET_CMD 0x4
#define FU_STRUCT_FOCAL_TOUCH_SEND_DATA_REQ_OFFSET_PACKET_TYPE 0x5
#endif

#ifndef __GI_SCANNER__
#define FU_STRUCT_FOCAL_TOUCH_SEND_DATA_REQ_SIZE 0x6
#endif

#ifndef __GI_SCANNER__
#define FU_STRUCT_FOCAL_TOUCH_SEND_DATA_REQ_DEFAULT_REPORT_ID 0x06
#define FU_STRUCT_FOCAL_TOUCH_SEND_DATA_REQ_DEFAULT_CMD FU_FOCAL_TOUCH_CMD_SEND_DATA
#endif
typedef struct {
  GByteArray *buf;
  guint refcount;
} FuStructFocalTouchBinLengthRes;

FuStructFocalTouchBinLengthRes *fu_struct_focal_touch_bin_length_res_ref(FuStructFocalTouchBinLengthRes *st) G_GNUC_NON_NULL(1);
void fu_struct_focal_touch_bin_length_res_unref(FuStructFocalTouchBinLengthRes *st) G_GNUC_NON_NULL(1);
G_DEFINE_AUTOPTR_CLEANUP_FUNC(FuStructFocalTouchBinLengthRes, fu_struct_focal_touch_bin_length_res_unref)
FuStructFocalTouchBinLengthRes *fu_struct_focal_touch_bin_length_res_parse(const guint8 *buf, gsize bufsz, gsize offset, GError **error) G_GNUC_NON_NULL(1) G_GNUC_WARN_UNUSED_RESULT;

#ifndef __GI_SCANNER__
#define FU_STRUCT_FOCAL_TOUCH_BIN_LENGTH_RES_OFFSET_REPORT_ID 0x0
#define FU_STRUCT_FOCAL_TOUCH_BIN_LENGTH_RES_OFFSET_LEN 0x3
#define FU_STRUCT_FOCAL_TOUCH_BIN_LENGTH_RES_OFFSET_CMD 0x4
#define FU_STRUCT_FOCAL_TOUCH_BIN_LENGTH_RES_OFFSET_REG 0x5
#endif

#ifndef __GI_SCANNER__
#define FU_STRUCT_FOCAL_TOUCH_BIN_LENGTH_RES_SIZE 0x6
#endif

#ifndef __GI_SCANNER__
#define FU_STRUCT_FOCAL_TOUCH_BIN_LENGTH_RES_DEFAULT_REPORT_ID 0x06
#define FU_STRUCT_FOCAL_TOUCH_BIN_LENGTH_RES_DEFAULT_LEN 6
#define FU_STRUCT_FOCAL_TOUCH_BIN_LENGTH_RES_DEFAULT_CMD FU_FOCAL_TOUCH_CMD_WRITE_REGISTER
#define FU_STRUCT_FOCAL_TOUCH_BIN_LENGTH_RES_DEFAULT_REG FU_FOCAL_TOUCH_CMD_BIN_LENGTH
#endif
typedef struct {
  GByteArray *buf;
  guint refcount;
} FuStructFocalTouchBinLengthReq;

FuStructFocalTouchBinLengthReq *fu_struct_focal_touch_bin_length_req_ref(FuStructFocalTouchBinLengthReq *st) G_GNUC_NON_NULL(1);
void fu_struct_focal_touch_bin_length_req_unref(FuStructFocalTouchBinLengthReq *st) G_GNUC_NON_NULL(1);
G_DEFINE_AUTOPTR_CLEANUP_FUNC(FuStructFocalTouchBinLengthReq, fu_struct_focal_touch_bin_length_req_unref)
FuStructFocalTouchBinLengthReq *fu_struct_focal_touch_bin_length_req_new(void) G_GNUC_WARN_UNUSED_RESULT;
void fu_struct_focal_touch_bin_length_req_set_size(FuStructFocalTouchBinLengthReq *st, guint32 value) G_GNUC_NON_NULL(1);

#ifndef __GI_SCANNER__
#define FU_STRUCT_FOCAL_TOUCH_BIN_LENGTH_REQ_OFFSET_REPORT_ID 0x0
#define FU_STRUCT_FOCAL_TOUCH_BIN_LENGTH_REQ_OFFSET_LEN 0x3
#define FU_STRUCT_FOCAL_TOUCH_BIN_LENGTH_REQ_OFFSET_CMD 0x4
#define FU_STRUCT_FOCAL_TOUCH_BIN_LENGTH_REQ_OFFSET_REG 0x5
#define FU_STRUCT_FOCAL_TOUCH_BIN_LENGTH_REQ_OFFSET_SIZE 0x6
#endif

#ifndef __GI_SCANNER__
#define FU_STRUCT_FOCAL_TOUCH_BIN_LENGTH_REQ_SIZE 0x9
#endif

#ifndef __GI_SCANNER__
#define FU_STRUCT_FOCAL_TOUCH_BIN_LENGTH_REQ_DEFAULT_REPORT_ID 0x06
#define FU_STRUCT_FOCAL_TOUCH_BIN_LENGTH_REQ_DEFAULT_LEN 9
#define FU_STRUCT_FOCAL_TOUCH_BIN_LENGTH_REQ_DEFAULT_CMD FU_FOCAL_TOUCH_CMD_WRITE_REGISTER
#define FU_STRUCT_FOCAL_TOUCH_BIN_LENGTH_REQ_DEFAULT_REG FU_FOCAL_TOUCH_CMD_BIN_LENGTH
#endif
typedef struct {
  GByteArray *buf;
  guint refcount;
} FuStructFocalTouchEnterUpgradeModeReq;

FuStructFocalTouchEnterUpgradeModeReq *fu_struct_focal_touch_enter_upgrade_mode_req_ref(FuStructFocalTouchEnterUpgradeModeReq *st) G_GNUC_NON_NULL(1);
void fu_struct_focal_touch_enter_upgrade_mode_req_unref(FuStructFocalTouchEnterUpgradeModeReq *st) G_GNUC_NON_NULL(1);
G_DEFINE_AUTOPTR_CLEANUP_FUNC(FuStructFocalTouchEnterUpgradeModeReq, fu_struct_focal_touch_enter_upgrade_mode_req_unref)
FuStructFocalTouchEnterUpgradeModeReq *fu_struct_focal_touch_enter_upgrade_mode_req_new(void) G_GNUC_WARN_UNUSED_RESULT;

#ifndef __GI_SCANNER__
#define FU_STRUCT_FOCAL_TOUCH_ENTER_UPGRADE_MODE_REQ_OFFSET_REPORT_ID 0x0
#define FU_STRUCT_FOCAL_TOUCH_ENTER_UPGRADE_MODE_REQ_OFFSET_LEN 0x3
#define FU_STRUCT_FOCAL_TOUCH_ENTER_UPGRADE_MODE_REQ_OFFSET_CMD 0x4
#endif

#ifndef __GI_SCANNER__
#define FU_STRUCT_FOCAL_TOUCH_ENTER_UPGRADE_MODE_REQ_SIZE 0x5
#endif

#ifndef __GI_SCANNER__
#define FU_STRUCT_FOCAL_TOUCH_ENTER_UPGRADE_MODE_REQ_DEFAULT_REPORT_ID 0x06
#define FU_STRUCT_FOCAL_TOUCH_ENTER_UPGRADE_MODE_REQ_DEFAULT_LEN 5
#define FU_STRUCT_FOCAL_TOUCH_ENTER_UPGRADE_MODE_REQ_DEFAULT_CMD FU_FOCAL_TOUCH_CMD_ENTER_UPGRADE_MODE
#endif
typedef struct {
  GByteArray *buf;
  guint refcount;
} FuStructFocalTouchEnterUpgradeModeRes;

FuStructFocalTouchEnterUpgradeModeRes *fu_struct_focal_touch_enter_upgrade_mode_res_ref(FuStructFocalTouchEnterUpgradeModeRes *st) G_GNUC_NON_NULL(1);
void fu_struct_focal_touch_enter_upgrade_mode_res_unref(FuStructFocalTouchEnterUpgradeModeRes *st) G_GNUC_NON_NULL(1);
G_DEFINE_AUTOPTR_CLEANUP_FUNC(FuStructFocalTouchEnterUpgradeModeRes, fu_struct_focal_touch_enter_upgrade_mode_res_unref)
FuStructFocalTouchEnterUpgradeModeRes *fu_struct_focal_touch_enter_upgrade_mode_res_parse(const guint8 *buf, gsize bufsz, gsize offset, GError **error) G_GNUC_NON_NULL(1) G_GNUC_WARN_UNUSED_RESULT;

#ifndef __GI_SCANNER__
#define FU_STRUCT_FOCAL_TOUCH_ENTER_UPGRADE_MODE_RES_OFFSET_REPORT_ID 0x0
#define FU_STRUCT_FOCAL_TOUCH_ENTER_UPGRADE_MODE_RES_OFFSET_LEN 0x3
#define FU_STRUCT_FOCAL_TOUCH_ENTER_UPGRADE_MODE_RES_OFFSET_CMD 0x4
#endif

#ifndef __GI_SCANNER__
#define FU_STRUCT_FOCAL_TOUCH_ENTER_UPGRADE_MODE_RES_SIZE 0x5
#endif

#ifndef __GI_SCANNER__
#define FU_STRUCT_FOCAL_TOUCH_ENTER_UPGRADE_MODE_RES_DEFAULT_REPORT_ID 0x06
#define FU_STRUCT_FOCAL_TOUCH_ENTER_UPGRADE_MODE_RES_DEFAULT_LEN 5
#define FU_STRUCT_FOCAL_TOUCH_ENTER_UPGRADE_MODE_RES_DEFAULT_CMD FU_FOCAL_TOUCH_CMD_ACK
#endif
typedef struct {
  GByteArray *buf;
  guint refcount;
} FuStructFocalTouchCheckCurrentStateReq;

FuStructFocalTouchCheckCurrentStateReq *fu_struct_focal_touch_check_current_state_req_ref(FuStructFocalTouchCheckCurrentStateReq *st) G_GNUC_NON_NULL(1);
void fu_struct_focal_touch_check_current_state_req_unref(FuStructFocalTouchCheckCurrentStateReq *st) G_GNUC_NON_NULL(1);
G_DEFINE_AUTOPTR_CLEANUP_FUNC(FuStructFocalTouchCheckCurrentStateReq, fu_struct_focal_touch_check_current_state_req_unref)
FuStructFocalTouchCheckCurrentStateReq *fu_struct_focal_touch_check_current_state_req_new(void) G_GNUC_WARN_UNUSED_RESULT;

#ifndef __GI_SCANNER__
#define FU_STRUCT_FOCAL_TOUCH_CHECK_CURRENT_STATE_REQ_OFFSET_REPORT_ID 0x0
#define FU_STRUCT_FOCAL_TOUCH_CHECK_CURRENT_STATE_REQ_OFFSET_LEN 0x3
#define FU_STRUCT_FOCAL_TOUCH_CHECK_CURRENT_STATE_REQ_OFFSET_CMD 0x4
#endif

#ifndef __GI_SCANNER__
#define FU_STRUCT_FOCAL_TOUCH_CHECK_CURRENT_STATE_REQ_SIZE 0x5
#endif

#ifndef __GI_SCANNER__
#define FU_STRUCT_FOCAL_TOUCH_CHECK_CURRENT_STATE_REQ_DEFAULT_REPORT_ID 0x06
#define FU_STRUCT_FOCAL_TOUCH_CHECK_CURRENT_STATE_REQ_DEFAULT_LEN 5
#define FU_STRUCT_FOCAL_TOUCH_CHECK_CURRENT_STATE_REQ_DEFAULT_CMD FU_FOCAL_TOUCH_CMD_CHECK_CURRENT_STATE
#endif
typedef struct {
  GByteArray *buf;
  guint refcount;
} FuStructFocalTouchCheckCurrentStateRes;

FuStructFocalTouchCheckCurrentStateRes *fu_struct_focal_touch_check_current_state_res_ref(FuStructFocalTouchCheckCurrentStateRes *st) G_GNUC_NON_NULL(1);
void fu_struct_focal_touch_check_current_state_res_unref(FuStructFocalTouchCheckCurrentStateRes *st) G_GNUC_NON_NULL(1);
G_DEFINE_AUTOPTR_CLEANUP_FUNC(FuStructFocalTouchCheckCurrentStateRes, fu_struct_focal_touch_check_current_state_res_unref)
FuStructFocalTouchCheckCurrentStateRes *fu_struct_focal_touch_check_current_state_res_parse(const guint8 *buf, gsize bufsz, gsize offset, GError **error) G_GNUC_NON_NULL(1) G_GNUC_WARN_UNUSED_RESULT;
FuFocalTouchUcMode fu_struct_focal_touch_check_current_state_res_get_mode(const FuStructFocalTouchCheckCurrentStateRes *st) G_GNUC_NON_NULL(1) G_GNUC_WARN_UNUSED_RESULT;

#ifndef __GI_SCANNER__
#define FU_STRUCT_FOCAL_TOUCH_CHECK_CURRENT_STATE_RES_OFFSET_REPORT_ID 0x0
#define FU_STRUCT_FOCAL_TOUCH_CHECK_CURRENT_STATE_RES_OFFSET_LEN 0x3
#define FU_STRUCT_FOCAL_TOUCH_CHECK_CURRENT_STATE_RES_OFFSET_CMD 0x4
#define FU_STRUCT_FOCAL_TOUCH_CHECK_CURRENT_STATE_RES_OFFSET_MODE 0x5
#endif

#ifndef __GI_SCANNER__
#define FU_STRUCT_FOCAL_TOUCH_CHECK_CURRENT_STATE_RES_SIZE 0x6
#endif

#ifndef __GI_SCANNER__
#define FU_STRUCT_FOCAL_TOUCH_CHECK_CURRENT_STATE_RES_DEFAULT_REPORT_ID 0x06
#define FU_STRUCT_FOCAL_TOUCH_CHECK_CURRENT_STATE_RES_DEFAULT_LEN 6
#define FU_STRUCT_FOCAL_TOUCH_CHECK_CURRENT_STATE_RES_DEFAULT_CMD FU_FOCAL_TOUCH_CMD_CHECK_CURRENT_STATE
#endif
typedef struct {
  GByteArray *buf;
  guint refcount;
} FuStructFocalTouchUsbReadUpgradeIdReq;

FuStructFocalTouchUsbReadUpgradeIdReq *fu_struct_focal_touch_usb_read_upgrade_id_req_ref(FuStructFocalTouchUsbReadUpgradeIdReq *st) G_GNUC_NON_NULL(1);
void fu_struct_focal_touch_usb_read_upgrade_id_req_unref(FuStructFocalTouchUsbReadUpgradeIdReq *st) G_GNUC_NON_NULL(1);
G_DEFINE_AUTOPTR_CLEANUP_FUNC(FuStructFocalTouchUsbReadUpgradeIdReq, fu_struct_focal_touch_usb_read_upgrade_id_req_unref)
FuStructFocalTouchUsbReadUpgradeIdReq *fu_struct_focal_touch_usb_read_upgrade_id_req_new(void) G_GNUC_WARN_UNUSED_RESULT;

#ifndef __GI_SCANNER__
#define FU_STRUCT_FOCAL_TOUCH_USB_READ_UPGRADE_ID_REQ_OFFSET_REPORT_ID 0x0
#define FU_STRUCT_FOCAL_TOUCH_USB_READ_UPGRADE_ID_REQ_OFFSET_LEN 0x3
#define FU_STRUCT_FOCAL_TOUCH_USB_READ_UPGRADE_ID_REQ_OFFSET_CMD 0x4
#endif

#ifndef __GI_SCANNER__
#define FU_STRUCT_FOCAL_TOUCH_USB_READ_UPGRADE_ID_REQ_SIZE 0x5
#endif

#ifndef __GI_SCANNER__
#define FU_STRUCT_FOCAL_TOUCH_USB_READ_UPGRADE_ID_REQ_DEFAULT_REPORT_ID 0x06
#define FU_STRUCT_FOCAL_TOUCH_USB_READ_UPGRADE_ID_REQ_DEFAULT_LEN 5
#define FU_STRUCT_FOCAL_TOUCH_USB_READ_UPGRADE_ID_REQ_DEFAULT_CMD FU_FOCAL_TOUCH_CMD_USB_READ_UPGRADE_ID
#endif
typedef struct {
  GByteArray *buf;
  guint refcount;
} FuStructFocalTouchUsbReadUpgradeIdRes;

FuStructFocalTouchUsbReadUpgradeIdRes *fu_struct_focal_touch_usb_read_upgrade_id_res_ref(FuStructFocalTouchUsbReadUpgradeIdRes *st) G_GNUC_NON_NULL(1);
void fu_struct_focal_touch_usb_read_upgrade_id_res_unref(FuStructFocalTouchUsbReadUpgradeIdRes *st) G_GNUC_NON_NULL(1);
G_DEFINE_AUTOPTR_CLEANUP_FUNC(FuStructFocalTouchUsbReadUpgradeIdRes, fu_struct_focal_touch_usb_read_upgrade_id_res_unref)
FuStructFocalTouchUsbReadUpgradeIdRes *fu_struct_focal_touch_usb_read_upgrade_id_res_parse(const guint8 *buf, gsize bufsz, gsize offset, GError **error) G_GNUC_NON_NULL(1) G_GNUC_WARN_UNUSED_RESULT;
guint8 fu_struct_focal_touch_usb_read_upgrade_id_res_get_len(const FuStructFocalTouchUsbReadUpgradeIdRes *st) G_GNUC_NON_NULL(1) G_GNUC_WARN_UNUSED_RESULT;
guint16 fu_struct_focal_touch_usb_read_upgrade_id_res_get_upgrade_id(const FuStructFocalTouchUsbReadUpgradeIdRes *st) G_GNUC_NON_NULL(1) G_GNUC_WARN_UNUSED_RESULT;

#ifndef __GI_SCANNER__
#define FU_STRUCT_FOCAL_TOUCH_USB_READ_UPGRADE_ID_RES_OFFSET_REPORT_ID 0x0
#define FU_STRUCT_FOCAL_TOUCH_USB_READ_UPGRADE_ID_RES_OFFSET_LEN 0x3
#define FU_STRUCT_FOCAL_TOUCH_USB_READ_UPGRADE_ID_RES_OFFSET_CMD 0x4
#define FU_STRUCT_FOCAL_TOUCH_USB_READ_UPGRADE_ID_RES_OFFSET_UPGRADE_ID 0x5
#endif

#ifndef __GI_SCANNER__
#define FU_STRUCT_FOCAL_TOUCH_USB_READ_UPGRADE_ID_RES_SIZE 0x7
#endif

#ifndef __GI_SCANNER__
#define FU_STRUCT_FOCAL_TOUCH_USB_READ_UPGRADE_ID_RES_DEFAULT_REPORT_ID 0x06
#define FU_STRUCT_FOCAL_TOUCH_USB_READ_UPGRADE_ID_RES_DEFAULT_CMD FU_FOCAL_TOUCH_CMD_USB_READ_UPGRADE_ID
#endif
typedef struct {
  GByteArray *buf;
  guint refcount;
} FuStructFocalTouchUsbEraseFlashReq;

FuStructFocalTouchUsbEraseFlashReq *fu_struct_focal_touch_usb_erase_flash_req_ref(FuStructFocalTouchUsbEraseFlashReq *st) G_GNUC_NON_NULL(1);
void fu_struct_focal_touch_usb_erase_flash_req_unref(FuStructFocalTouchUsbEraseFlashReq *st) G_GNUC_NON_NULL(1);
G_DEFINE_AUTOPTR_CLEANUP_FUNC(FuStructFocalTouchUsbEraseFlashReq, fu_struct_focal_touch_usb_erase_flash_req_unref)
FuStructFocalTouchUsbEraseFlashReq *fu_struct_focal_touch_usb_erase_flash_req_new(void) G_GNUC_WARN_UNUSED_RESULT;

#ifndef __GI_SCANNER__
#define FU_STRUCT_FOCAL_TOUCH_USB_ERASE_FLASH_REQ_OFFSET_REPORT_ID 0x0
#define FU_STRUCT_FOCAL_TOUCH_USB_ERASE_FLASH_REQ_OFFSET_LEN 0x3
#define FU_STRUCT_FOCAL_TOUCH_USB_ERASE_FLASH_REQ_OFFSET_CMD 0x4
#endif

#ifndef __GI_SCANNER__
#define FU_STRUCT_FOCAL_TOUCH_USB_ERASE_FLASH_REQ_SIZE 0x5
#endif

#ifndef __GI_SCANNER__
#define FU_STRUCT_FOCAL_TOUCH_USB_ERASE_FLASH_REQ_DEFAULT_REPORT_ID 0x06
#define FU_STRUCT_FOCAL_TOUCH_USB_ERASE_FLASH_REQ_DEFAULT_LEN 5
#define FU_STRUCT_FOCAL_TOUCH_USB_ERASE_FLASH_REQ_DEFAULT_CMD FU_FOCAL_TOUCH_CMD_USB_ERASE_FLASH
#endif
typedef struct {
  GByteArray *buf;
  guint refcount;
} FuStructFocalTouchUpgradeChecksumReq;

FuStructFocalTouchUpgradeChecksumReq *fu_struct_focal_touch_upgrade_checksum_req_ref(FuStructFocalTouchUpgradeChecksumReq *st) G_GNUC_NON_NULL(1);
void fu_struct_focal_touch_upgrade_checksum_req_unref(FuStructFocalTouchUpgradeChecksumReq *st) G_GNUC_NON_NULL(1);
G_DEFINE_AUTOPTR_CLEANUP_FUNC(FuStructFocalTouchUpgradeChecksumReq, fu_struct_focal_touch_upgrade_checksum_req_unref)
FuStructFocalTouchUpgradeChecksumReq *fu_struct_focal_touch_upgrade_checksum_req_new(void) G_GNUC_WARN_UNUSED_RESULT;

#ifndef __GI_SCANNER__
#define FU_STRUCT_FOCAL_TOUCH_UPGRADE_CHECKSUM_REQ_OFFSET_REPORT_ID 0x0
#define FU_STRUCT_FOCAL_TOUCH_UPGRADE_CHECKSUM_REQ_OFFSET_LEN 0x3
#define FU_STRUCT_FOCAL_TOUCH_UPGRADE_CHECKSUM_REQ_OFFSET_CMD 0x4
#endif

#ifndef __GI_SCANNER__
#define FU_STRUCT_FOCAL_TOUCH_UPGRADE_CHECKSUM_REQ_SIZE 0x5
#endif

#ifndef __GI_SCANNER__
#define FU_STRUCT_FOCAL_TOUCH_UPGRADE_CHECKSUM_REQ_DEFAULT_REPORT_ID 0x06
#define FU_STRUCT_FOCAL_TOUCH_UPGRADE_CHECKSUM_REQ_DEFAULT_LEN 5
#define FU_STRUCT_FOCAL_TOUCH_UPGRADE_CHECKSUM_REQ_DEFAULT_CMD FU_FOCAL_TOUCH_CMD_UPGRADE_CHECKSUM
#endif
typedef struct {
  GByteArray *buf;
  guint refcount;
} FuStructFocalTouchUpgradeChecksumRes;

FuStructFocalTouchUpgradeChecksumRes *fu_struct_focal_touch_upgrade_checksum_res_ref(FuStructFocalTouchUpgradeChecksumRes *st) G_GNUC_NON_NULL(1);
void fu_struct_focal_touch_upgrade_checksum_res_unref(FuStructFocalTouchUpgradeChecksumRes *st) G_GNUC_NON_NULL(1);
G_DEFINE_AUTOPTR_CLEANUP_FUNC(FuStructFocalTouchUpgradeChecksumRes, fu_struct_focal_touch_upgrade_checksum_res_unref)
FuStructFocalTouchUpgradeChecksumRes *fu_struct_focal_touch_upgrade_checksum_res_parse(const guint8 *buf, gsize bufsz, gsize offset, GError **error) G_GNUC_NON_NULL(1) G_GNUC_WARN_UNUSED_RESULT;
guint32 fu_struct_focal_touch_upgrade_checksum_res_get_value(const FuStructFocalTouchUpgradeChecksumRes *st) G_GNUC_NON_NULL(1) G_GNUC_WARN_UNUSED_RESULT;

#ifndef __GI_SCANNER__
#define FU_STRUCT_FOCAL_TOUCH_UPGRADE_CHECKSUM_RES_OFFSET_REPORT_ID 0x0
#define FU_STRUCT_FOCAL_TOUCH_UPGRADE_CHECKSUM_RES_OFFSET_LEN 0x3
#define FU_STRUCT_FOCAL_TOUCH_UPGRADE_CHECKSUM_RES_OFFSET_CMD 0x4
#define FU_STRUCT_FOCAL_TOUCH_UPGRADE_CHECKSUM_RES_OFFSET_VALUE 0x5
#endif

#ifndef __GI_SCANNER__
#define FU_STRUCT_FOCAL_TOUCH_UPGRADE_CHECKSUM_RES_SIZE 0x9
#endif

#ifndef __GI_SCANNER__
#define FU_STRUCT_FOCAL_TOUCH_UPGRADE_CHECKSUM_RES_DEFAULT_REPORT_ID 0x06
#define FU_STRUCT_FOCAL_TOUCH_UPGRADE_CHECKSUM_RES_DEFAULT_LEN 9
#define FU_STRUCT_FOCAL_TOUCH_UPGRADE_CHECKSUM_RES_DEFAULT_CMD FU_FOCAL_TOUCH_CMD_UPGRADE_CHECKSUM
#endif
typedef struct {
  GByteArray *buf;
  guint refcount;
} FuStructFocalTouchExitUpgradeModeReq;

FuStructFocalTouchExitUpgradeModeReq *fu_struct_focal_touch_exit_upgrade_mode_req_ref(FuStructFocalTouchExitUpgradeModeReq *st) G_GNUC_NON_NULL(1);
void fu_struct_focal_touch_exit_upgrade_mode_req_unref(FuStructFocalTouchExitUpgradeModeReq *st) G_GNUC_NON_NULL(1);
G_DEFINE_AUTOPTR_CLEANUP_FUNC(FuStructFocalTouchExitUpgradeModeReq, fu_struct_focal_touch_exit_upgrade_mode_req_unref)
FuStructFocalTouchExitUpgradeModeReq *fu_struct_focal_touch_exit_upgrade_mode_req_new(void) G_GNUC_WARN_UNUSED_RESULT;

#ifndef __GI_SCANNER__
#define FU_STRUCT_FOCAL_TOUCH_EXIT_UPGRADE_MODE_REQ_OFFSET_REPORT_ID 0x0
#define FU_STRUCT_FOCAL_TOUCH_EXIT_UPGRADE_MODE_REQ_OFFSET_LEN 0x3
#define FU_STRUCT_FOCAL_TOUCH_EXIT_UPGRADE_MODE_REQ_OFFSET_CMD 0x4
#endif

#ifndef __GI_SCANNER__
#define FU_STRUCT_FOCAL_TOUCH_EXIT_UPGRADE_MODE_REQ_SIZE 0x5
#endif

#ifndef __GI_SCANNER__
#define FU_STRUCT_FOCAL_TOUCH_EXIT_UPGRADE_MODE_REQ_DEFAULT_REPORT_ID 0x06
#define FU_STRUCT_FOCAL_TOUCH_EXIT_UPGRADE_MODE_REQ_DEFAULT_LEN 5
#define FU_STRUCT_FOCAL_TOUCH_EXIT_UPGRADE_MODE_REQ_DEFAULT_CMD FU_FOCAL_TOUCH_CMD_EXIT_UPGRADE_MODE
#endif
typedef struct {
  GByteArray *buf;
  guint refcount;
} FuStructFocalTouchExitUpgradeModeRes;

FuStructFocalTouchExitUpgradeModeRes *fu_struct_focal_touch_exit_upgrade_mode_res_ref(FuStructFocalTouchExitUpgradeModeRes *st) G_GNUC_NON_NULL(1);
void fu_struct_focal_touch_exit_upgrade_mode_res_unref(FuStructFocalTouchExitUpgradeModeRes *st) G_GNUC_NON_NULL(1);
G_DEFINE_AUTOPTR_CLEANUP_FUNC(FuStructFocalTouchExitUpgradeModeRes, fu_struct_focal_touch_exit_upgrade_mode_res_unref)
FuStructFocalTouchExitUpgradeModeRes *fu_struct_focal_touch_exit_upgrade_mode_res_parse(const guint8 *buf, gsize bufsz, gsize offset, GError **error) G_GNUC_NON_NULL(1) G_GNUC_WARN_UNUSED_RESULT;

#ifndef __GI_SCANNER__
#define FU_STRUCT_FOCAL_TOUCH_EXIT_UPGRADE_MODE_RES_OFFSET_REPORT_ID 0x0
#define FU_STRUCT_FOCAL_TOUCH_EXIT_UPGRADE_MODE_RES_OFFSET_LEN 0x3
#define FU_STRUCT_FOCAL_TOUCH_EXIT_UPGRADE_MODE_RES_OFFSET_CMD 0x4
#endif

#ifndef __GI_SCANNER__
#define FU_STRUCT_FOCAL_TOUCH_EXIT_UPGRADE_MODE_RES_SIZE 0x5
#endif

#ifndef __GI_SCANNER__
#define FU_STRUCT_FOCAL_TOUCH_EXIT_UPGRADE_MODE_RES_DEFAULT_REPORT_ID 0x06
#define FU_STRUCT_FOCAL_TOUCH_EXIT_UPGRADE_MODE_RES_DEFAULT_LEN 5
#define FU_STRUCT_FOCAL_TOUCH_EXIT_UPGRADE_MODE_RES_DEFAULT_CMD FU_FOCAL_TOUCH_CMD_ACK
#endif
typedef struct {
  GByteArray *buf;
  guint refcount;
} FuStructFocalTouchReadyForUpgradeReq;

FuStructFocalTouchReadyForUpgradeReq *fu_struct_focal_touch_ready_for_upgrade_req_ref(FuStructFocalTouchReadyForUpgradeReq *st) G_GNUC_NON_NULL(1);
void fu_struct_focal_touch_ready_for_upgrade_req_unref(FuStructFocalTouchReadyForUpgradeReq *st) G_GNUC_NON_NULL(1);
G_DEFINE_AUTOPTR_CLEANUP_FUNC(FuStructFocalTouchReadyForUpgradeReq, fu_struct_focal_touch_ready_for_upgrade_req_unref)
FuStructFocalTouchReadyForUpgradeReq *fu_struct_focal_touch_ready_for_upgrade_req_new(void) G_GNUC_WARN_UNUSED_RESULT;

#ifndef __GI_SCANNER__
#define FU_STRUCT_FOCAL_TOUCH_READY_FOR_UPGRADE_REQ_OFFSET_REPORT_ID 0x0
#define FU_STRUCT_FOCAL_TOUCH_READY_FOR_UPGRADE_REQ_OFFSET_LEN 0x3
#define FU_STRUCT_FOCAL_TOUCH_READY_FOR_UPGRADE_REQ_OFFSET_CMD 0x4
#endif

#ifndef __GI_SCANNER__
#define FU_STRUCT_FOCAL_TOUCH_READY_FOR_UPGRADE_REQ_SIZE 0x5
#endif

#ifndef __GI_SCANNER__
#define FU_STRUCT_FOCAL_TOUCH_READY_FOR_UPGRADE_REQ_DEFAULT_REPORT_ID 0x06
#define FU_STRUCT_FOCAL_TOUCH_READY_FOR_UPGRADE_REQ_DEFAULT_LEN 5
#define FU_STRUCT_FOCAL_TOUCH_READY_FOR_UPGRADE_REQ_DEFAULT_CMD FU_FOCAL_TOUCH_CMD_READY_FOR_UPGRADE
#endif
typedef struct {
  GByteArray *buf;
  guint refcount;
} FuStructFocalTouchReadyForUpgradeRes;

FuStructFocalTouchReadyForUpgradeRes *fu_struct_focal_touch_ready_for_upgrade_res_ref(FuStructFocalTouchReadyForUpgradeRes *st) G_GNUC_NON_NULL(1);
void fu_struct_focal_touch_ready_for_upgrade_res_unref(FuStructFocalTouchReadyForUpgradeRes *st) G_GNUC_NON_NULL(1);
G_DEFINE_AUTOPTR_CLEANUP_FUNC(FuStructFocalTouchReadyForUpgradeRes, fu_struct_focal_touch_ready_for_upgrade_res_unref)
FuStructFocalTouchReadyForUpgradeRes *fu_struct_focal_touch_ready_for_upgrade_res_parse(const guint8 *buf, gsize bufsz, gsize offset, GError **error) G_GNUC_NON_NULL(1) G_GNUC_WARN_UNUSED_RESULT;
guint8 fu_struct_focal_touch_ready_for_upgrade_res_get_len(const FuStructFocalTouchReadyForUpgradeRes *st) G_GNUC_NON_NULL(1) G_GNUC_WARN_UNUSED_RESULT;
guint8 fu_struct_focal_touch_ready_for_upgrade_res_get_status(const FuStructFocalTouchReadyForUpgradeRes *st) G_GNUC_NON_NULL(1) G_GNUC_WARN_UNUSED_RESULT;

#ifndef __GI_SCANNER__
#define FU_STRUCT_FOCAL_TOUCH_READY_FOR_UPGRADE_RES_OFFSET_REPORT_ID 0x0
#define FU_STRUCT_FOCAL_TOUCH_READY_FOR_UPGRADE_RES_OFFSET_LEN 0x3
#define FU_STRUCT_FOCAL_TOUCH_READY_FOR_UPGRADE_RES_OFFSET_CMD 0x4
#define FU_STRUCT_FOCAL_TOUCH_READY_FOR_UPGRADE_RES_OFFSET_STATUS 0x5
#endif

#ifndef __GI_SCANNER__
#define FU_STRUCT_FOCAL_TOUCH_READY_FOR_UPGRADE_RES_SIZE 0x6
#endif

#ifndef __GI_SCANNER__
#define FU_STRUCT_FOCAL_TOUCH_READY_FOR_UPGRADE_RES_DEFAULT_REPORT_ID 0x06
#define FU_STRUCT_FOCAL_TOUCH_READY_FOR_UPGRADE_RES_DEFAULT_CMD FU_FOCAL_TOUCH_CMD_READY_FOR_UPGRADE
#endif
