/* auto-generated, do not modify */
#pragma once
#include <fwupd-common.h>
typedef enum {
    FU_WISTRON_DOCK_STATUS_CODE_ENTER = 0x1,
    FU_WISTRON_DOCK_STATUS_CODE_PREPARE = 0x2,
    FU_WISTRON_DOCK_STATUS_CODE_UPDATING = 0x3,
    FU_WISTRON_DOCK_STATUS_CODE_COMPLETE = 0x4,
} FuWistronDockStatusCode;
const gchar *fu_wistron_dock_status_code_to_string(FuWistronDockStatusCode val);
typedef enum {
    FU_WISTRON_DOCK_COMPONENT_IDX_MCU = 0x0,
    FU_WISTRON_DOCK_COMPONENT_IDX_PD = 0x1,
    FU_WISTRON_DOCK_COMPONENT_IDX_AUDIO = 0x2,
    FU_WISTRON_DOCK_COMPONENT_IDX_USB = 0x3,
    FU_WISTRON_DOCK_COMPONENT_IDX_MST = 0x4,
    FU_WISTRON_DOCK_COMPONENT_IDX_SPI = 0xA,
    FU_WISTRON_DOCK_COMPONENT_IDX_DOCK = 0xF,
} FuWistronDockComponentIdx;
const gchar *fu_wistron_dock_component_idx_to_string(FuWistronDockComponentIdx val);
typedef enum {
    FU_WISTRON_DOCK_UPDATE_PHASE_DOWNLOAD = 0x1,
    FU_WISTRON_DOCK_UPDATE_PHASE_DEPLOY = 0x2,
} FuWistronDockUpdatePhase;
const gchar *fu_wistron_dock_update_phase_to_string(FuWistronDockUpdatePhase val);

GByteArray *fu_struct_wistron_dock_wdit_parse(const guint8 *buf, gsize bufsz, gsize offset, GError **error);
guint8 fu_struct_wistron_dock_wdit_get_hid_id(const GByteArray *st);
guint16 fu_struct_wistron_dock_wdit_get_tag_id(const GByteArray *st);
guint16 fu_struct_wistron_dock_wdit_get_vid(const GByteArray *st);
guint16 fu_struct_wistron_dock_wdit_get_pid(const GByteArray *st);
guint8 fu_struct_wistron_dock_wdit_get_imgmode(const GByteArray *st);
guint8 fu_struct_wistron_dock_wdit_get_update_state(const GByteArray *st);
FuWistronDockStatusCode fu_struct_wistron_dock_wdit_get_status_code(const GByteArray *st);
guint32 fu_struct_wistron_dock_wdit_get_composite_version(const GByteArray *st);
guint8 fu_struct_wistron_dock_wdit_get_device_cnt(const GByteArray *st);
#define FU_STRUCT_WISTRON_DOCK_WDIT_OFFSET_HID_ID 0x0
#define FU_STRUCT_WISTRON_DOCK_WDIT_OFFSET_TAG_ID 0x1
#define FU_STRUCT_WISTRON_DOCK_WDIT_OFFSET_VID 0x3
#define FU_STRUCT_WISTRON_DOCK_WDIT_OFFSET_PID 0x5
#define FU_STRUCT_WISTRON_DOCK_WDIT_OFFSET_IMGMODE 0x7
#define FU_STRUCT_WISTRON_DOCK_WDIT_OFFSET_UPDATE_STATE 0x8
#define FU_STRUCT_WISTRON_DOCK_WDIT_OFFSET_STATUS_CODE 0x9
#define FU_STRUCT_WISTRON_DOCK_WDIT_OFFSET_COMPOSITE_VERSION 0xA
#define FU_STRUCT_WISTRON_DOCK_WDIT_OFFSET_DEVICE_CNT 0xE
#define FU_STRUCT_WISTRON_DOCK_WDIT_SIZE 0x10

GByteArray *fu_struct_wistron_dock_wdit_img_parse(const guint8 *buf, gsize bufsz, gsize offset, GError **error);
FuWistronDockComponentIdx fu_struct_wistron_dock_wdit_img_get_comp_id(const GByteArray *st);
guint8 fu_struct_wistron_dock_wdit_img_get_mode(const GByteArray *st);
guint8 fu_struct_wistron_dock_wdit_img_get_status(const GByteArray *st);
guint32 fu_struct_wistron_dock_wdit_img_get_version_build(const GByteArray *st);
guint32 fu_struct_wistron_dock_wdit_img_get_version1(const GByteArray *st);
guint32 fu_struct_wistron_dock_wdit_img_get_version2(const GByteArray *st);
gchar *fu_struct_wistron_dock_wdit_img_get_name(const GByteArray *st);
#define FU_STRUCT_WISTRON_DOCK_WDIT_IMG_OFFSET_COMP_ID 0x0
#define FU_STRUCT_WISTRON_DOCK_WDIT_IMG_OFFSET_MODE 0x1
#define FU_STRUCT_WISTRON_DOCK_WDIT_IMG_OFFSET_STATUS 0x2
#define FU_STRUCT_WISTRON_DOCK_WDIT_IMG_OFFSET_VERSION_BUILD 0x4
#define FU_STRUCT_WISTRON_DOCK_WDIT_IMG_OFFSET_VERSION1 0x8
#define FU_STRUCT_WISTRON_DOCK_WDIT_IMG_OFFSET_VERSION2 0xC
#define FU_STRUCT_WISTRON_DOCK_WDIT_IMG_OFFSET_NAME 0x10
#define FU_STRUCT_WISTRON_DOCK_WDIT_IMG_SIZE_NAME 0x20
#define FU_STRUCT_WISTRON_DOCK_WDIT_IMG_SIZE 0x30
