/* auto-generated, do not modify */
#pragma once
#include <fwupd-common.h>
typedef enum {
    FU_SYNAPTICS_CAPE_SNGL_IMG_TYPE_ID_HID0 = 0x30444948,
    FU_SYNAPTICS_CAPE_SNGL_IMG_TYPE_ID_HID1 = 0x31444948,
    FU_SYNAPTICS_CAPE_SNGL_IMG_TYPE_ID_HOF0 = 0x30464F48,
    FU_SYNAPTICS_CAPE_SNGL_IMG_TYPE_ID_HOF1 = 0x31464F48,
    FU_SYNAPTICS_CAPE_SNGL_IMG_TYPE_ID_SFSX = 0x58534653,
    FU_SYNAPTICS_CAPE_SNGL_IMG_TYPE_ID_SOFX = 0x58464F53,
    FU_SYNAPTICS_CAPE_SNGL_IMG_TYPE_ID_SIGN = 0x4e474953,
} FuSynapticsCapeSnglImgTypeId;
typedef enum {
    FU_SYNAPTICS_CAPE_FIRMWARE_PARTITION_AUTO,
    FU_SYNAPTICS_CAPE_FIRMWARE_PARTITION_1,
    FU_SYNAPTICS_CAPE_FIRMWARE_PARTITION_2,
} FuSynapticsCapeFirmwarePartition;

GByteArray *fu_struct_synaptics_cape_hid_hdr_new(void);
GByteArray *fu_struct_synaptics_cape_hid_hdr_parse_bytes(GBytes *blob, gsize offset, GError **error);
guint32 fu_struct_synaptics_cape_hid_hdr_get_vid(const GByteArray *st);
guint32 fu_struct_synaptics_cape_hid_hdr_get_pid(const GByteArray *st);
guint32 fu_struct_synaptics_cape_hid_hdr_get_update_type(const GByteArray *st);
guint32 fu_struct_synaptics_cape_hid_hdr_get_crc(const GByteArray *st);
guint16 fu_struct_synaptics_cape_hid_hdr_get_ver_w(const GByteArray *st);
guint16 fu_struct_synaptics_cape_hid_hdr_get_ver_x(const GByteArray *st);
guint16 fu_struct_synaptics_cape_hid_hdr_get_ver_y(const GByteArray *st);
guint16 fu_struct_synaptics_cape_hid_hdr_get_ver_z(const GByteArray *st);
void fu_struct_synaptics_cape_hid_hdr_set_vid(GByteArray *st, guint32 value);
void fu_struct_synaptics_cape_hid_hdr_set_pid(GByteArray *st, guint32 value);
void fu_struct_synaptics_cape_hid_hdr_set_update_type(GByteArray *st, guint32 value);
void fu_struct_synaptics_cape_hid_hdr_set_crc(GByteArray *st, guint32 value);
void fu_struct_synaptics_cape_hid_hdr_set_ver_w(GByteArray *st, guint16 value);
void fu_struct_synaptics_cape_hid_hdr_set_ver_x(GByteArray *st, guint16 value);
void fu_struct_synaptics_cape_hid_hdr_set_ver_y(GByteArray *st, guint16 value);
void fu_struct_synaptics_cape_hid_hdr_set_ver_z(GByteArray *st, guint16 value);
#define FU_STRUCT_SYNAPTICS_CAPE_HID_HDR_OFFSET_VID 0x0
#define FU_STRUCT_SYNAPTICS_CAPE_HID_HDR_OFFSET_PID 0x4
#define FU_STRUCT_SYNAPTICS_CAPE_HID_HDR_OFFSET_UPDATE_TYPE 0x8
#define FU_STRUCT_SYNAPTICS_CAPE_HID_HDR_OFFSET_SIGNATURE 0xC
#define FU_STRUCT_SYNAPTICS_CAPE_HID_HDR_OFFSET_CRC 0x10
#define FU_STRUCT_SYNAPTICS_CAPE_HID_HDR_OFFSET_VER_W 0x14
#define FU_STRUCT_SYNAPTICS_CAPE_HID_HDR_OFFSET_VER_X 0x16
#define FU_STRUCT_SYNAPTICS_CAPE_HID_HDR_OFFSET_VER_Y 0x18
#define FU_STRUCT_SYNAPTICS_CAPE_HID_HDR_OFFSET_VER_Z 0x1A
#define FU_STRUCT_SYNAPTICS_CAPE_HID_HDR_SIZE 0x20
#define FU_STRUCT_SYNAPTICS_CAPE_HID_HDR_DEFAULT_SIGNATURE 0x43534645

GByteArray *fu_struct_synaptics_cape_sngl_hdr_new(void);
GByteArray *fu_struct_synaptics_cape_sngl_hdr_parse_bytes(GBytes *blob, gsize offset, GError **error);
guint32 fu_struct_synaptics_cape_sngl_hdr_get_file_crc(const GByteArray *st);
guint32 fu_struct_synaptics_cape_sngl_hdr_get_file_size(const GByteArray *st);
guint32 fu_struct_synaptics_cape_sngl_hdr_get_magic2(const GByteArray *st);
guint32 fu_struct_synaptics_cape_sngl_hdr_get_img_type(const GByteArray *st);
guint32 fu_struct_synaptics_cape_sngl_hdr_get_fw_version(const GByteArray *st);
guint16 fu_struct_synaptics_cape_sngl_hdr_get_vid(const GByteArray *st);
guint16 fu_struct_synaptics_cape_sngl_hdr_get_pid(const GByteArray *st);
guint32 fu_struct_synaptics_cape_sngl_hdr_get_fw_file_num(const GByteArray *st);
guint32 fu_struct_synaptics_cape_sngl_hdr_get_version(const GByteArray *st);
guint32 fu_struct_synaptics_cape_sngl_hdr_get_fw_crc(const GByteArray *st);
gchar *fu_struct_synaptics_cape_sngl_hdr_get_machine_name(const GByteArray *st);
gchar *fu_struct_synaptics_cape_sngl_hdr_get_time_stamp(const GByteArray *st);
void fu_struct_synaptics_cape_sngl_hdr_set_file_crc(GByteArray *st, guint32 value);
void fu_struct_synaptics_cape_sngl_hdr_set_file_size(GByteArray *st, guint32 value);
void fu_struct_synaptics_cape_sngl_hdr_set_magic2(GByteArray *st, guint32 value);
void fu_struct_synaptics_cape_sngl_hdr_set_img_type(GByteArray *st, guint32 value);
void fu_struct_synaptics_cape_sngl_hdr_set_fw_version(GByteArray *st, guint32 value);
void fu_struct_synaptics_cape_sngl_hdr_set_vid(GByteArray *st, guint16 value);
void fu_struct_synaptics_cape_sngl_hdr_set_pid(GByteArray *st, guint16 value);
void fu_struct_synaptics_cape_sngl_hdr_set_fw_file_num(GByteArray *st, guint32 value);
void fu_struct_synaptics_cape_sngl_hdr_set_version(GByteArray *st, guint32 value);
void fu_struct_synaptics_cape_sngl_hdr_set_fw_crc(GByteArray *st, guint32 value);
gboolean fu_struct_synaptics_cape_sngl_hdr_set_machine_name(GByteArray *st, const gchar *value, GError **error);
gboolean fu_struct_synaptics_cape_sngl_hdr_set_time_stamp(GByteArray *st, const gchar *value, GError **error);
#define FU_STRUCT_SYNAPTICS_CAPE_SNGL_HDR_OFFSET_MAGIC 0x0
#define FU_STRUCT_SYNAPTICS_CAPE_SNGL_HDR_OFFSET_FILE_CRC 0x4
#define FU_STRUCT_SYNAPTICS_CAPE_SNGL_HDR_OFFSET_FILE_SIZE 0x8
#define FU_STRUCT_SYNAPTICS_CAPE_SNGL_HDR_OFFSET_MAGIC2 0xC
#define FU_STRUCT_SYNAPTICS_CAPE_SNGL_HDR_OFFSET_IMG_TYPE 0x10
#define FU_STRUCT_SYNAPTICS_CAPE_SNGL_HDR_OFFSET_FW_VERSION 0x14
#define FU_STRUCT_SYNAPTICS_CAPE_SNGL_HDR_OFFSET_VID 0x18
#define FU_STRUCT_SYNAPTICS_CAPE_SNGL_HDR_OFFSET_PID 0x1A
#define FU_STRUCT_SYNAPTICS_CAPE_SNGL_HDR_OFFSET_FW_FILE_NUM 0x1C
#define FU_STRUCT_SYNAPTICS_CAPE_SNGL_HDR_OFFSET_VERSION 0x20
#define FU_STRUCT_SYNAPTICS_CAPE_SNGL_HDR_OFFSET_FW_CRC 0x24
#define FU_STRUCT_SYNAPTICS_CAPE_SNGL_HDR_OFFSET_MACHINE_NAME 0x30
#define FU_STRUCT_SYNAPTICS_CAPE_SNGL_HDR_OFFSET_TIME_STAMP 0x40
#define FU_STRUCT_SYNAPTICS_CAPE_SNGL_HDR_SIZE_MACHINE_NAME 0x10
#define FU_STRUCT_SYNAPTICS_CAPE_SNGL_HDR_SIZE_TIME_STAMP 0x10
#define FU_STRUCT_SYNAPTICS_CAPE_SNGL_HDR_SIZE 0x50
#define FU_STRUCT_SYNAPTICS_CAPE_SNGL_HDR_DEFAULT_MAGIC 0x4C474E53

#define FU_STRUCT_SYNAPTICS_CAPE_SNGL_FILE_OFFSET_ID 0x0
#define FU_STRUCT_SYNAPTICS_CAPE_SNGL_FILE_OFFSET_CRC 0x4
#define FU_STRUCT_SYNAPTICS_CAPE_SNGL_FILE_OFFSET_FILE 0x8
#define FU_STRUCT_SYNAPTICS_CAPE_SNGL_FILE_OFFSET_SIZE 0xC
#define FU_STRUCT_SYNAPTICS_CAPE_SNGL_FILE_SIZE 0x10
