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

#pragma once
#include <fu-input-stream.h>
/**
 * FuSteelseriesFizzConnection:
 */
typedef enum {
    /**
     * FU_STEELSERIES_FIZZ_CONNECTION_UNEXPECTED:
     */
    FU_STEELSERIES_FIZZ_CONNECTION_UNEXPECTED,
    /**
     * FU_STEELSERIES_FIZZ_CONNECTION_PAIRING:
     */
    FU_STEELSERIES_FIZZ_CONNECTION_PAIRING,
    /**
     * FU_STEELSERIES_FIZZ_CONNECTION_DISCONNECTED:
     */
    FU_STEELSERIES_FIZZ_CONNECTION_DISCONNECTED,
    /**
     * FU_STEELSERIES_FIZZ_CONNECTION_CONNECTED:
     */
    FU_STEELSERIES_FIZZ_CONNECTION_CONNECTED,
}  FuSteelseriesFizzConnection;
#define FU_STEELSERIES_FIZZ_CONNECTION_LAST 4
/**
 * FuSteelseriesFizzConnectionStatus:
 */
typedef enum {
    /**
     * FU_STEELSERIES_FIZZ_CONNECTION_STATUS_NOT_CONNECTED:
     */
    FU_STEELSERIES_FIZZ_CONNECTION_STATUS_NOT_CONNECTED = 0x00,
    /**
     * FU_STEELSERIES_FIZZ_CONNECTION_STATUS_CONNECTED:
     */
    FU_STEELSERIES_FIZZ_CONNECTION_STATUS_CONNECTED = 0x01,
}  FuSteelseriesFizzConnectionStatus;
const gchar *fu_steelseries_fizz_connection_status_to_string(FuSteelseriesFizzConnectionStatus val) G_GNUC_CONST;
/**
 * FuSteelseriesFizzResetMode:
 */
typedef enum {
    /**
     * FU_STEELSERIES_FIZZ_RESET_MODE_NORMAL:
     */
    FU_STEELSERIES_FIZZ_RESET_MODE_NORMAL = 0x00,
    /**
     * FU_STEELSERIES_FIZZ_RESET_MODE_BOOTLOADER:
     */
    FU_STEELSERIES_FIZZ_RESET_MODE_BOOTLOADER = 0x01,
}  FuSteelseriesFizzResetMode;
/**
 * FuSteelseriesFizzFilesystem:
 */
typedef enum {
    /**
     * FU_STEELSERIES_FIZZ_FILESYSTEM_RECEIVER:
     */
    FU_STEELSERIES_FIZZ_FILESYSTEM_RECEIVER = 0x01,
    /**
     * FU_STEELSERIES_FIZZ_FILESYSTEM_MOUSE:
     */
    FU_STEELSERIES_FIZZ_FILESYSTEM_MOUSE = 0x02,
}  FuSteelseriesFizzFilesystem;
/**
 * FuSteelseriesFizzReceiverFilesystemId:
 */
typedef enum {
    /**
     * FU_STEELSERIES_FIZZ_RECEIVER_FILESYSTEM_ID_UNKNOWN:
     */
    FU_STEELSERIES_FIZZ_RECEIVER_FILESYSTEM_ID_UNKNOWN = 0x01,
    /**
     * FU_STEELSERIES_FIZZ_RECEIVER_FILESYSTEM_ID_MAIN_BOOT:
     */
    FU_STEELSERIES_FIZZ_RECEIVER_FILESYSTEM_ID_MAIN_BOOT = 0x01,
    /**
     * FU_STEELSERIES_FIZZ_RECEIVER_FILESYSTEM_ID_FSDATA_FILE:
     */
    FU_STEELSERIES_FIZZ_RECEIVER_FILESYSTEM_ID_FSDATA_FILE = 0x02,
    /**
     * FU_STEELSERIES_FIZZ_RECEIVER_FILESYSTEM_ID_FACTORY_SETTINGS:
     */
    FU_STEELSERIES_FIZZ_RECEIVER_FILESYSTEM_ID_FACTORY_SETTINGS = 0x03,
    /**
     * FU_STEELSERIES_FIZZ_RECEIVER_FILESYSTEM_ID_MAIN_APP:
     */
    FU_STEELSERIES_FIZZ_RECEIVER_FILESYSTEM_ID_MAIN_APP = 0x04,
    /**
     * FU_STEELSERIES_FIZZ_RECEIVER_FILESYSTEM_ID_BACKUP_APP:
     */
    FU_STEELSERIES_FIZZ_RECEIVER_FILESYSTEM_ID_BACKUP_APP = 0x05,
    /**
     * FU_STEELSERIES_FIZZ_RECEIVER_FILESYSTEM_ID_PROFILES_MOUSE:
     */
    FU_STEELSERIES_FIZZ_RECEIVER_FILESYSTEM_ID_PROFILES_MOUSE = 0x06,
    /**
     * FU_STEELSERIES_FIZZ_RECEIVER_FILESYSTEM_ID_PROFILES_LIGHTING:
     */
    FU_STEELSERIES_FIZZ_RECEIVER_FILESYSTEM_ID_PROFILES_LIGHTING = 0x0F,
    /**
     * FU_STEELSERIES_FIZZ_RECEIVER_FILESYSTEM_ID_PROFILES_DEVICE:
     */
    FU_STEELSERIES_FIZZ_RECEIVER_FILESYSTEM_ID_PROFILES_DEVICE = 0x10,
    /**
     * FU_STEELSERIES_FIZZ_RECEIVER_FILESYSTEM_ID_PROFILES_RESERVED:
     */
    FU_STEELSERIES_FIZZ_RECEIVER_FILESYSTEM_ID_PROFILES_RESERVED = 0x11,
    /**
     * FU_STEELSERIES_FIZZ_RECEIVER_FILESYSTEM_ID_RECOVERY:
     */
    FU_STEELSERIES_FIZZ_RECEIVER_FILESYSTEM_ID_RECOVERY = 0x0D,
    /**
     * FU_STEELSERIES_FIZZ_RECEIVER_FILESYSTEM_ID_FREE_SPACE:
     */
    FU_STEELSERIES_FIZZ_RECEIVER_FILESYSTEM_ID_FREE_SPACE = 0xF1,
}  FuSteelseriesFizzReceiverFilesystemId;
/**
 * FuSteelseriesFizzMouseFilesystemId:
 */
typedef enum {
    /**
     * FU_STEELSERIES_FIZZ_MOUSE_FILESYSTEM_ID_SOFT_DEVICE:
     */
    FU_STEELSERIES_FIZZ_MOUSE_FILESYSTEM_ID_SOFT_DEVICE = 0x00,
    /**
     * FU_STEELSERIES_FIZZ_MOUSE_FILESYSTEM_ID_PROFILES_MOUSE:
     */
    FU_STEELSERIES_FIZZ_MOUSE_FILESYSTEM_ID_PROFILES_MOUSE = 0x06,
    /**
     * FU_STEELSERIES_FIZZ_MOUSE_FILESYSTEM_ID_MAIN_APP:
     */
    FU_STEELSERIES_FIZZ_MOUSE_FILESYSTEM_ID_MAIN_APP = 0x07,
    /**
     * FU_STEELSERIES_FIZZ_MOUSE_FILESYSTEM_ID_BACKUP_APP:
     */
    FU_STEELSERIES_FIZZ_MOUSE_FILESYSTEM_ID_BACKUP_APP = 0x08,
    /**
     * FU_STEELSERIES_FIZZ_MOUSE_FILESYSTEM_ID_MSB_DATA:
     */
    FU_STEELSERIES_FIZZ_MOUSE_FILESYSTEM_ID_MSB_DATA = 0x09,
    /**
     * FU_STEELSERIES_FIZZ_MOUSE_FILESYSTEM_ID_FACTORY_SETTINGS:
     */
    FU_STEELSERIES_FIZZ_MOUSE_FILESYSTEM_ID_FACTORY_SETTINGS = 0x0A,
    /**
     * FU_STEELSERIES_FIZZ_MOUSE_FILESYSTEM_ID_FSDATA_FILE:
     */
    FU_STEELSERIES_FIZZ_MOUSE_FILESYSTEM_ID_FSDATA_FILE = 0x0B,
    /**
     * FU_STEELSERIES_FIZZ_MOUSE_FILESYSTEM_ID_MAIN_BOOT:
     */
    FU_STEELSERIES_FIZZ_MOUSE_FILESYSTEM_ID_MAIN_BOOT = 0x0C,
    /**
     * FU_STEELSERIES_FIZZ_MOUSE_FILESYSTEM_ID_RECOVERY:
     */
    FU_STEELSERIES_FIZZ_MOUSE_FILESYSTEM_ID_RECOVERY = 0x0E,
    /**
     * FU_STEELSERIES_FIZZ_MOUSE_FILESYSTEM_ID_PROFILES_LIGHTING:
     */
    FU_STEELSERIES_FIZZ_MOUSE_FILESYSTEM_ID_PROFILES_LIGHTING = 0x0F,
    /**
     * FU_STEELSERIES_FIZZ_MOUSE_FILESYSTEM_ID_PROFILES_DEVICE:
     */
    FU_STEELSERIES_FIZZ_MOUSE_FILESYSTEM_ID_PROFILES_DEVICE = 0x10,
    /**
     * FU_STEELSERIES_FIZZ_MOUSE_FILESYSTEM_ID_FDS_PAGES:
     */
    FU_STEELSERIES_FIZZ_MOUSE_FILESYSTEM_ID_FDS_PAGES = 0x12,
    /**
     * FU_STEELSERIES_FIZZ_MOUSE_FILESYSTEM_ID_PROFILES_BLUETOOTH:
     */
    FU_STEELSERIES_FIZZ_MOUSE_FILESYSTEM_ID_PROFILES_BLUETOOTH = 0x13,
    /**
     * FU_STEELSERIES_FIZZ_MOUSE_FILESYSTEM_ID_FREE_SPACE:
     */
    FU_STEELSERIES_FIZZ_MOUSE_FILESYSTEM_ID_FREE_SPACE = 0xF0,
}  FuSteelseriesFizzMouseFilesystemId;
/**
 * FuSteelseriesFizzCommandError:
 */
typedef enum {
    /**
     * FU_STEELSERIES_FIZZ_COMMAND_ERROR_SUCCESS:
     */
    FU_STEELSERIES_FIZZ_COMMAND_ERROR_SUCCESS,
    /**
     * FU_STEELSERIES_FIZZ_COMMAND_ERROR_FILE_NOT_FOUND:
     */
    FU_STEELSERIES_FIZZ_COMMAND_ERROR_FILE_NOT_FOUND,
    /**
     * FU_STEELSERIES_FIZZ_COMMAND_ERROR_FILE_TOO_SHORT:
     */
    FU_STEELSERIES_FIZZ_COMMAND_ERROR_FILE_TOO_SHORT,
    /**
     * FU_STEELSERIES_FIZZ_COMMAND_ERROR_FLASH_FAILED:
     */
    FU_STEELSERIES_FIZZ_COMMAND_ERROR_FLASH_FAILED,
    /**
     * FU_STEELSERIES_FIZZ_COMMAND_ERROR_PERMISSION_DENIED:
     */
    FU_STEELSERIES_FIZZ_COMMAND_ERROR_PERMISSION_DENIED,
    /**
     * FU_STEELSERIES_FIZZ_COMMAND_ERROR_OPERATION_NO_SUPPORTED:
     */
    FU_STEELSERIES_FIZZ_COMMAND_ERROR_OPERATION_NO_SUPPORTED,
}  FuSteelseriesFizzCommandError;
#define FU_STEELSERIES_FIZZ_COMMAND_ERROR_LAST 6
/**
 * FuSteelseriesFizzCmd:
 */
typedef enum {
    /**
     * FU_STEELSERIES_FIZZ_CMD_RESET:
     */
    FU_STEELSERIES_FIZZ_CMD_RESET = 0x01,
    /**
     * FU_STEELSERIES_FIZZ_CMD_ERASE_FILE:
     */
    FU_STEELSERIES_FIZZ_CMD_ERASE_FILE = 0x02,
    /**
     * FU_STEELSERIES_FIZZ_CMD_WRITE_ACCESS_FILE:
     */
    FU_STEELSERIES_FIZZ_CMD_WRITE_ACCESS_FILE = 0x03,
    /**
     * FU_STEELSERIES_FIZZ_CMD_VERSION2:
     */
    FU_STEELSERIES_FIZZ_CMD_VERSION2 = 0x10,
    /**
     * FU_STEELSERIES_FIZZ_CMD_SERIAL2:
     */
    FU_STEELSERIES_FIZZ_CMD_SERIAL2 = 0x12,
    /**
     * FU_STEELSERIES_FIZZ_CMD_READ_ACCESS_FILE:
     */
    FU_STEELSERIES_FIZZ_CMD_READ_ACCESS_FILE = 0x83,
    /**
     * FU_STEELSERIES_FIZZ_CMD_FILE_CRC32:
     */
    FU_STEELSERIES_FIZZ_CMD_FILE_CRC32 = 0x84,
    /**
     * FU_STEELSERIES_FIZZ_CMD_VERSION:
     */
    FU_STEELSERIES_FIZZ_CMD_VERSION = 0x90,
    /**
     * FU_STEELSERIES_FIZZ_CMD_BATTERY_LEVEL:
     */
    FU_STEELSERIES_FIZZ_CMD_BATTERY_LEVEL = 0x92,
    /**
     * FU_STEELSERIES_FIZZ_CMD_PAIRED_STATUS:
     */
    FU_STEELSERIES_FIZZ_CMD_PAIRED_STATUS = 0xBB,
    /**
     * FU_STEELSERIES_FIZZ_CMD_CONNECTION_STATUS2:
     */
    FU_STEELSERIES_FIZZ_CMD_CONNECTION_STATUS2 = 0xB0,
    /**
     * FU_STEELSERIES_FIZZ_CMD_CONNECTION_STATUS:
     */
    FU_STEELSERIES_FIZZ_CMD_CONNECTION_STATUS = 0xBC,
}  FuSteelseriesFizzCmd;
const gchar *fu_steelseries_fizz_cmd_to_string(FuSteelseriesFizzCmd val) G_GNUC_CONST;
typedef struct {
  GByteArray *buf;
  guint refcount;
} FuStructSteelseriesFizzHidGetVersionReq;

FuStructSteelseriesFizzHidGetVersionReq *fu_struct_steelseries_fizz_hid_get_version_req_ref(FuStructSteelseriesFizzHidGetVersionReq *st) G_GNUC_NON_NULL(1);
void fu_struct_steelseries_fizz_hid_get_version_req_unref(FuStructSteelseriesFizzHidGetVersionReq *st) G_GNUC_NON_NULL(1);
G_DEFINE_AUTOPTR_CLEANUP_FUNC(FuStructSteelseriesFizzHidGetVersionReq, fu_struct_steelseries_fizz_hid_get_version_req_unref)
FuStructSteelseriesFizzHidGetVersionReq *fu_struct_steelseries_fizz_hid_get_version_req_new(void) G_GNUC_WARN_UNUSED_RESULT;

#ifndef __GI_SCANNER__
#define FU_STRUCT_STEELSERIES_FIZZ_HID_GET_VERSION_REQ_OFFSET_REPORT_ID 0x0
#define FU_STRUCT_STEELSERIES_FIZZ_HID_GET_VERSION_REQ_OFFSET_COMMAND 0x1
#define FU_STRUCT_STEELSERIES_FIZZ_HID_GET_VERSION_REQ_OFFSET_MODE 0x2
#endif

#ifndef __GI_SCANNER__
#define FU_STRUCT_STEELSERIES_FIZZ_HID_GET_VERSION_REQ_SIZE 0x3
#endif

#ifndef __GI_SCANNER__
#define FU_STRUCT_STEELSERIES_FIZZ_HID_GET_VERSION_REQ_DEFAULT_REPORT_ID 0x04
#define FU_STRUCT_STEELSERIES_FIZZ_HID_GET_VERSION_REQ_DEFAULT_COMMAND 0x90
#define FU_STRUCT_STEELSERIES_FIZZ_HID_GET_VERSION_REQ_DEFAULT_MODE 0x00
#endif
typedef struct {
  GByteArray *buf;
  guint refcount;
} FuStructSteelseriesFizzHidResponse;

FuStructSteelseriesFizzHidResponse *fu_struct_steelseries_fizz_hid_response_ref(FuStructSteelseriesFizzHidResponse *st) G_GNUC_NON_NULL(1);
void fu_struct_steelseries_fizz_hid_response_unref(FuStructSteelseriesFizzHidResponse *st) G_GNUC_NON_NULL(1);
G_DEFINE_AUTOPTR_CLEANUP_FUNC(FuStructSteelseriesFizzHidResponse, fu_struct_steelseries_fizz_hid_response_unref)
FuStructSteelseriesFizzHidResponse *fu_struct_steelseries_fizz_hid_response_parse(const guint8 *buf, gsize bufsz, gsize offset, GError **error) G_GNUC_NON_NULL(1) G_GNUC_WARN_UNUSED_RESULT;
guint8 fu_struct_steelseries_fizz_hid_response_get_report_id(const FuStructSteelseriesFizzHidResponse *st) G_GNUC_NON_NULL(1) G_GNUC_WARN_UNUSED_RESULT;

#ifndef __GI_SCANNER__
#define FU_STRUCT_STEELSERIES_FIZZ_HID_RESPONSE_OFFSET_REPORT_ID 0x0
#endif

#ifndef __GI_SCANNER__
#define FU_STRUCT_STEELSERIES_FIZZ_HID_RESPONSE_SIZE 0x41
#endif

#ifndef __GI_SCANNER__
#define FU_STRUCT_STEELSERIES_FIZZ_HID_RESPONSE_DEFAULT_REPORT_ID 0x04
#endif
typedef struct {
  GByteArray *buf;
  guint refcount;
} FuStructSteelseriesFizzWriteAccessFileReq;

FuStructSteelseriesFizzWriteAccessFileReq *fu_struct_steelseries_fizz_write_access_file_req_ref(FuStructSteelseriesFizzWriteAccessFileReq *st) G_GNUC_NON_NULL(1);
void fu_struct_steelseries_fizz_write_access_file_req_unref(FuStructSteelseriesFizzWriteAccessFileReq *st) G_GNUC_NON_NULL(1);
G_DEFINE_AUTOPTR_CLEANUP_FUNC(FuStructSteelseriesFizzWriteAccessFileReq, fu_struct_steelseries_fizz_write_access_file_req_unref)
FuStructSteelseriesFizzWriteAccessFileReq *fu_struct_steelseries_fizz_write_access_file_req_new(void) G_GNUC_WARN_UNUSED_RESULT;
void fu_struct_steelseries_fizz_write_access_file_req_set_cmd(FuStructSteelseriesFizzWriteAccessFileReq *st, FuSteelseriesFizzCmd value) G_GNUC_NON_NULL(1);
void fu_struct_steelseries_fizz_write_access_file_req_set_filesystem(FuStructSteelseriesFizzWriteAccessFileReq *st, guint8 value) G_GNUC_NON_NULL(1);
void fu_struct_steelseries_fizz_write_access_file_req_set_id(FuStructSteelseriesFizzWriteAccessFileReq *st, guint8 value) G_GNUC_NON_NULL(1);
void fu_struct_steelseries_fizz_write_access_file_req_set_size(FuStructSteelseriesFizzWriteAccessFileReq *st, guint16 value) G_GNUC_NON_NULL(1);
void fu_struct_steelseries_fizz_write_access_file_req_set_offset(FuStructSteelseriesFizzWriteAccessFileReq *st, guint32 value) G_GNUC_NON_NULL(1);
gboolean fu_struct_steelseries_fizz_write_access_file_req_set_data(FuStructSteelseriesFizzWriteAccessFileReq *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_STEELSERIES_FIZZ_WRITE_ACCESS_FILE_REQ_OFFSET_CMD 0x0
#define FU_STRUCT_STEELSERIES_FIZZ_WRITE_ACCESS_FILE_REQ_OFFSET_FILESYSTEM 0x1
#define FU_STRUCT_STEELSERIES_FIZZ_WRITE_ACCESS_FILE_REQ_OFFSET_ID 0x2
#define FU_STRUCT_STEELSERIES_FIZZ_WRITE_ACCESS_FILE_REQ_OFFSET_SIZE 0x3
#define FU_STRUCT_STEELSERIES_FIZZ_WRITE_ACCESS_FILE_REQ_OFFSET_OFFSET 0x5
#define FU_STRUCT_STEELSERIES_FIZZ_WRITE_ACCESS_FILE_REQ_OFFSET_DATA 0x9
#endif

#ifndef __GI_SCANNER__
#define FU_STRUCT_STEELSERIES_FIZZ_WRITE_ACCESS_FILE_REQ_SIZE_DATA 0x34
#define FU_STRUCT_STEELSERIES_FIZZ_WRITE_ACCESS_FILE_REQ_N_ELEMENTS_DATA 52
#define FU_STRUCT_STEELSERIES_FIZZ_WRITE_ACCESS_FILE_REQ_SIZE 0x3D
#endif

#ifndef __GI_SCANNER__
#define FU_STRUCT_STEELSERIES_FIZZ_WRITE_ACCESS_FILE_REQ_DEFAULT_CMD FU_STEELSERIES_FIZZ_CMD_WRITE_ACCESS_FILE
#endif
typedef struct {
  GByteArray *buf;
  guint refcount;
} FuStructSteelseriesFizzReadAccessFileReq;

FuStructSteelseriesFizzReadAccessFileReq *fu_struct_steelseries_fizz_read_access_file_req_ref(FuStructSteelseriesFizzReadAccessFileReq *st) G_GNUC_NON_NULL(1);
void fu_struct_steelseries_fizz_read_access_file_req_unref(FuStructSteelseriesFizzReadAccessFileReq *st) G_GNUC_NON_NULL(1);
G_DEFINE_AUTOPTR_CLEANUP_FUNC(FuStructSteelseriesFizzReadAccessFileReq, fu_struct_steelseries_fizz_read_access_file_req_unref)
FuStructSteelseriesFizzReadAccessFileReq *fu_struct_steelseries_fizz_read_access_file_req_new(void) G_GNUC_WARN_UNUSED_RESULT;
void fu_struct_steelseries_fizz_read_access_file_req_set_cmd(FuStructSteelseriesFizzReadAccessFileReq *st, FuSteelseriesFizzCmd value) G_GNUC_NON_NULL(1);
void fu_struct_steelseries_fizz_read_access_file_req_set_filesystem(FuStructSteelseriesFizzReadAccessFileReq *st, guint8 value) G_GNUC_NON_NULL(1);
void fu_struct_steelseries_fizz_read_access_file_req_set_id(FuStructSteelseriesFizzReadAccessFileReq *st, guint8 value) G_GNUC_NON_NULL(1);
void fu_struct_steelseries_fizz_read_access_file_req_set_size(FuStructSteelseriesFizzReadAccessFileReq *st, guint16 value) G_GNUC_NON_NULL(1);
void fu_struct_steelseries_fizz_read_access_file_req_set_offset(FuStructSteelseriesFizzReadAccessFileReq *st, guint32 value) G_GNUC_NON_NULL(1);

#ifndef __GI_SCANNER__
#define FU_STRUCT_STEELSERIES_FIZZ_READ_ACCESS_FILE_REQ_OFFSET_CMD 0x0
#define FU_STRUCT_STEELSERIES_FIZZ_READ_ACCESS_FILE_REQ_OFFSET_FILESYSTEM 0x1
#define FU_STRUCT_STEELSERIES_FIZZ_READ_ACCESS_FILE_REQ_OFFSET_ID 0x2
#define FU_STRUCT_STEELSERIES_FIZZ_READ_ACCESS_FILE_REQ_OFFSET_SIZE 0x3
#define FU_STRUCT_STEELSERIES_FIZZ_READ_ACCESS_FILE_REQ_OFFSET_OFFSET 0x5
#endif

#ifndef __GI_SCANNER__
#define FU_STRUCT_STEELSERIES_FIZZ_READ_ACCESS_FILE_REQ_SIZE 0x9
#endif

#ifndef __GI_SCANNER__
#define FU_STRUCT_STEELSERIES_FIZZ_READ_ACCESS_FILE_REQ_DEFAULT_CMD FU_STEELSERIES_FIZZ_CMD_READ_ACCESS_FILE
#endif
typedef struct {
  GByteArray *buf;
  guint refcount;
} FuStructSteelseriesFizzReadAccessFileRes;

FuStructSteelseriesFizzReadAccessFileRes *fu_struct_steelseries_fizz_read_access_file_res_ref(FuStructSteelseriesFizzReadAccessFileRes *st) G_GNUC_NON_NULL(1);
void fu_struct_steelseries_fizz_read_access_file_res_unref(FuStructSteelseriesFizzReadAccessFileRes *st) G_GNUC_NON_NULL(1);
G_DEFINE_AUTOPTR_CLEANUP_FUNC(FuStructSteelseriesFizzReadAccessFileRes, fu_struct_steelseries_fizz_read_access_file_res_unref)
FuStructSteelseriesFizzReadAccessFileRes *fu_struct_steelseries_fizz_read_access_file_res_parse(const guint8 *buf, gsize bufsz, gsize offset, GError **error) G_GNUC_NON_NULL(1) G_GNUC_WARN_UNUSED_RESULT;
const guint8 *fu_struct_steelseries_fizz_read_access_file_res_get_data(const FuStructSteelseriesFizzReadAccessFileRes *st, gsize *bufsz) G_GNUC_NON_NULL(1) G_GNUC_WARN_UNUSED_RESULT;

#ifndef __GI_SCANNER__
#define FU_STRUCT_STEELSERIES_FIZZ_READ_ACCESS_FILE_RES_OFFSET_DATA 0x2
#endif

#ifndef __GI_SCANNER__
#define FU_STRUCT_STEELSERIES_FIZZ_READ_ACCESS_FILE_RES_SIZE_DATA 0x34
#define FU_STRUCT_STEELSERIES_FIZZ_READ_ACCESS_FILE_RES_N_ELEMENTS_DATA 52
#define FU_STRUCT_STEELSERIES_FIZZ_READ_ACCESS_FILE_RES_SIZE 0x36
#endif

#ifndef __GI_SCANNER__
#endif
typedef struct {
  GByteArray *buf;
  guint refcount;
} FuStructSteelseriesFizzEraseFileReq;

FuStructSteelseriesFizzEraseFileReq *fu_struct_steelseries_fizz_erase_file_req_ref(FuStructSteelseriesFizzEraseFileReq *st) G_GNUC_NON_NULL(1);
void fu_struct_steelseries_fizz_erase_file_req_unref(FuStructSteelseriesFizzEraseFileReq *st) G_GNUC_NON_NULL(1);
G_DEFINE_AUTOPTR_CLEANUP_FUNC(FuStructSteelseriesFizzEraseFileReq, fu_struct_steelseries_fizz_erase_file_req_unref)
FuStructSteelseriesFizzEraseFileReq *fu_struct_steelseries_fizz_erase_file_req_new(void) G_GNUC_WARN_UNUSED_RESULT;
void fu_struct_steelseries_fizz_erase_file_req_set_cmd(FuStructSteelseriesFizzEraseFileReq *st, FuSteelseriesFizzCmd value) G_GNUC_NON_NULL(1);
void fu_struct_steelseries_fizz_erase_file_req_set_filesystem(FuStructSteelseriesFizzEraseFileReq *st, guint8 value) G_GNUC_NON_NULL(1);
void fu_struct_steelseries_fizz_erase_file_req_set_id(FuStructSteelseriesFizzEraseFileReq *st, guint8 value) G_GNUC_NON_NULL(1);

#ifndef __GI_SCANNER__
#define FU_STRUCT_STEELSERIES_FIZZ_ERASE_FILE_REQ_OFFSET_CMD 0x0
#define FU_STRUCT_STEELSERIES_FIZZ_ERASE_FILE_REQ_OFFSET_FILESYSTEM 0x1
#define FU_STRUCT_STEELSERIES_FIZZ_ERASE_FILE_REQ_OFFSET_ID 0x2
#endif

#ifndef __GI_SCANNER__
#define FU_STRUCT_STEELSERIES_FIZZ_ERASE_FILE_REQ_SIZE 0x3
#endif

#ifndef __GI_SCANNER__
#define FU_STRUCT_STEELSERIES_FIZZ_ERASE_FILE_REQ_DEFAULT_CMD FU_STEELSERIES_FIZZ_CMD_ERASE_FILE
#endif
typedef struct {
  GByteArray *buf;
  guint refcount;
} FuStructSteelseriesFizzResetReq;

FuStructSteelseriesFizzResetReq *fu_struct_steelseries_fizz_reset_req_ref(FuStructSteelseriesFizzResetReq *st) G_GNUC_NON_NULL(1);
void fu_struct_steelseries_fizz_reset_req_unref(FuStructSteelseriesFizzResetReq *st) G_GNUC_NON_NULL(1);
G_DEFINE_AUTOPTR_CLEANUP_FUNC(FuStructSteelseriesFizzResetReq, fu_struct_steelseries_fizz_reset_req_unref)
FuStructSteelseriesFizzResetReq *fu_struct_steelseries_fizz_reset_req_new(void) G_GNUC_WARN_UNUSED_RESULT;
void fu_struct_steelseries_fizz_reset_req_set_cmd(FuStructSteelseriesFizzResetReq *st, FuSteelseriesFizzCmd value) G_GNUC_NON_NULL(1);
void fu_struct_steelseries_fizz_reset_req_set_mode(FuStructSteelseriesFizzResetReq *st, FuSteelseriesFizzResetMode value) G_GNUC_NON_NULL(1);

#ifndef __GI_SCANNER__
#define FU_STRUCT_STEELSERIES_FIZZ_RESET_REQ_OFFSET_CMD 0x0
#define FU_STRUCT_STEELSERIES_FIZZ_RESET_REQ_OFFSET_MODE 0x1
#endif

#ifndef __GI_SCANNER__
#define FU_STRUCT_STEELSERIES_FIZZ_RESET_REQ_SIZE 0x2
#endif

#ifndef __GI_SCANNER__
#define FU_STRUCT_STEELSERIES_FIZZ_RESET_REQ_DEFAULT_CMD FU_STEELSERIES_FIZZ_CMD_RESET
#endif
typedef struct {
  GByteArray *buf;
  guint refcount;
} FuStructSteelseriesFizzFileCrc32Req;

FuStructSteelseriesFizzFileCrc32Req *fu_struct_steelseries_fizz_file_crc32_req_ref(FuStructSteelseriesFizzFileCrc32Req *st) G_GNUC_NON_NULL(1);
void fu_struct_steelseries_fizz_file_crc32_req_unref(FuStructSteelseriesFizzFileCrc32Req *st) G_GNUC_NON_NULL(1);
G_DEFINE_AUTOPTR_CLEANUP_FUNC(FuStructSteelseriesFizzFileCrc32Req, fu_struct_steelseries_fizz_file_crc32_req_unref)
FuStructSteelseriesFizzFileCrc32Req *fu_struct_steelseries_fizz_file_crc32_req_new(void) G_GNUC_WARN_UNUSED_RESULT;
void fu_struct_steelseries_fizz_file_crc32_req_set_cmd(FuStructSteelseriesFizzFileCrc32Req *st, FuSteelseriesFizzCmd value) G_GNUC_NON_NULL(1);
void fu_struct_steelseries_fizz_file_crc32_req_set_filesystem(FuStructSteelseriesFizzFileCrc32Req *st, guint8 value) G_GNUC_NON_NULL(1);
void fu_struct_steelseries_fizz_file_crc32_req_set_id(FuStructSteelseriesFizzFileCrc32Req *st, guint8 value) G_GNUC_NON_NULL(1);

#ifndef __GI_SCANNER__
#define FU_STRUCT_STEELSERIES_FIZZ_FILE_CRC32_REQ_OFFSET_CMD 0x0
#define FU_STRUCT_STEELSERIES_FIZZ_FILE_CRC32_REQ_OFFSET_FILESYSTEM 0x1
#define FU_STRUCT_STEELSERIES_FIZZ_FILE_CRC32_REQ_OFFSET_ID 0x2
#endif

#ifndef __GI_SCANNER__
#define FU_STRUCT_STEELSERIES_FIZZ_FILE_CRC32_REQ_SIZE 0x3
#endif

#ifndef __GI_SCANNER__
#define FU_STRUCT_STEELSERIES_FIZZ_FILE_CRC32_REQ_DEFAULT_CMD FU_STEELSERIES_FIZZ_CMD_FILE_CRC32
#endif
typedef struct {
  GByteArray *buf;
  guint refcount;
} FuStructSteelseriesFizzFileCrc32Res;

FuStructSteelseriesFizzFileCrc32Res *fu_struct_steelseries_fizz_file_crc32_res_ref(FuStructSteelseriesFizzFileCrc32Res *st) G_GNUC_NON_NULL(1);
void fu_struct_steelseries_fizz_file_crc32_res_unref(FuStructSteelseriesFizzFileCrc32Res *st) G_GNUC_NON_NULL(1);
G_DEFINE_AUTOPTR_CLEANUP_FUNC(FuStructSteelseriesFizzFileCrc32Res, fu_struct_steelseries_fizz_file_crc32_res_unref)
FuStructSteelseriesFizzFileCrc32Res *fu_struct_steelseries_fizz_file_crc32_res_parse(const guint8 *buf, gsize bufsz, gsize offset, GError **error) G_GNUC_NON_NULL(1) G_GNUC_WARN_UNUSED_RESULT;
guint32 fu_struct_steelseries_fizz_file_crc32_res_get_calculated(const FuStructSteelseriesFizzFileCrc32Res *st) G_GNUC_NON_NULL(1) G_GNUC_WARN_UNUSED_RESULT;
guint32 fu_struct_steelseries_fizz_file_crc32_res_get_stored(const FuStructSteelseriesFizzFileCrc32Res *st) G_GNUC_NON_NULL(1) G_GNUC_WARN_UNUSED_RESULT;

#ifndef __GI_SCANNER__
#define FU_STRUCT_STEELSERIES_FIZZ_FILE_CRC32_RES_OFFSET_CALCULATED 0x2
#define FU_STRUCT_STEELSERIES_FIZZ_FILE_CRC32_RES_OFFSET_STORED 0x6
#endif

#ifndef __GI_SCANNER__
#define FU_STRUCT_STEELSERIES_FIZZ_FILE_CRC32_RES_SIZE 0xA
#endif

#ifndef __GI_SCANNER__
#endif
typedef struct {
  GByteArray *buf;
  guint refcount;
} FuStructSteelseriesFizzGenericRes;

FuStructSteelseriesFizzGenericRes *fu_struct_steelseries_fizz_generic_res_ref(FuStructSteelseriesFizzGenericRes *st) G_GNUC_NON_NULL(1);
void fu_struct_steelseries_fizz_generic_res_unref(FuStructSteelseriesFizzGenericRes *st) G_GNUC_NON_NULL(1);
G_DEFINE_AUTOPTR_CLEANUP_FUNC(FuStructSteelseriesFizzGenericRes, fu_struct_steelseries_fizz_generic_res_unref)
FuStructSteelseriesFizzGenericRes *fu_struct_steelseries_fizz_generic_res_parse(const guint8 *buf, gsize bufsz, gsize offset, GError **error) G_GNUC_NON_NULL(1) G_GNUC_WARN_UNUSED_RESULT;
FuSteelseriesFizzCmd fu_struct_steelseries_fizz_generic_res_get_cmd(const FuStructSteelseriesFizzGenericRes *st) G_GNUC_NON_NULL(1) G_GNUC_WARN_UNUSED_RESULT;
guint8 fu_struct_steelseries_fizz_generic_res_get_error(const FuStructSteelseriesFizzGenericRes *st) G_GNUC_NON_NULL(1) G_GNUC_WARN_UNUSED_RESULT;

#ifndef __GI_SCANNER__
#define FU_STRUCT_STEELSERIES_FIZZ_GENERIC_RES_OFFSET_CMD 0x0
#define FU_STRUCT_STEELSERIES_FIZZ_GENERIC_RES_OFFSET_ERROR 0x1
#endif

#ifndef __GI_SCANNER__
#define FU_STRUCT_STEELSERIES_FIZZ_GENERIC_RES_SIZE 0x2
#endif

#ifndef __GI_SCANNER__
#endif
typedef struct {
  GByteArray *buf;
  guint refcount;
} FuStructSteelseriesFizzVersionReq;

FuStructSteelseriesFizzVersionReq *fu_struct_steelseries_fizz_version_req_ref(FuStructSteelseriesFizzVersionReq *st) G_GNUC_NON_NULL(1);
void fu_struct_steelseries_fizz_version_req_unref(FuStructSteelseriesFizzVersionReq *st) G_GNUC_NON_NULL(1);
G_DEFINE_AUTOPTR_CLEANUP_FUNC(FuStructSteelseriesFizzVersionReq, fu_struct_steelseries_fizz_version_req_unref)
FuStructSteelseriesFizzVersionReq *fu_struct_steelseries_fizz_version_req_new(void) G_GNUC_WARN_UNUSED_RESULT;
void fu_struct_steelseries_fizz_version_req_set_cmd(FuStructSteelseriesFizzVersionReq *st, FuSteelseriesFizzCmd value) G_GNUC_NON_NULL(1);

#ifndef __GI_SCANNER__
#define FU_STRUCT_STEELSERIES_FIZZ_VERSION_REQ_OFFSET_CMD 0x0
#define FU_STRUCT_STEELSERIES_FIZZ_VERSION_REQ_OFFSET_MODE 0x1
#endif

#ifndef __GI_SCANNER__
#define FU_STRUCT_STEELSERIES_FIZZ_VERSION_REQ_SIZE 0x2
#endif

#ifndef __GI_SCANNER__
#define FU_STRUCT_STEELSERIES_FIZZ_VERSION_REQ_DEFAULT_CMD FU_STEELSERIES_FIZZ_CMD_VERSION
#define FU_STRUCT_STEELSERIES_FIZZ_VERSION_REQ_DEFAULT_MODE 0
#endif
typedef struct {
  GByteArray *buf;
  guint refcount;
} FuStructSteelseriesPairedStatusReq;

FuStructSteelseriesPairedStatusReq *fu_struct_steelseries_paired_status_req_ref(FuStructSteelseriesPairedStatusReq *st) G_GNUC_NON_NULL(1);
void fu_struct_steelseries_paired_status_req_unref(FuStructSteelseriesPairedStatusReq *st) G_GNUC_NON_NULL(1);
G_DEFINE_AUTOPTR_CLEANUP_FUNC(FuStructSteelseriesPairedStatusReq, fu_struct_steelseries_paired_status_req_unref)
FuStructSteelseriesPairedStatusReq *fu_struct_steelseries_paired_status_req_new(void) G_GNUC_WARN_UNUSED_RESULT;

#ifndef __GI_SCANNER__
#define FU_STRUCT_STEELSERIES_PAIRED_STATUS_REQ_OFFSET_CMD 0x0
#endif

#ifndef __GI_SCANNER__
#define FU_STRUCT_STEELSERIES_PAIRED_STATUS_REQ_SIZE 0x1
#endif

#ifndef __GI_SCANNER__
#define FU_STRUCT_STEELSERIES_PAIRED_STATUS_REQ_DEFAULT_CMD FU_STEELSERIES_FIZZ_CMD_PAIRED_STATUS
#endif
typedef struct {
  GByteArray *buf;
  guint refcount;
} FuStructSteelseriesPairedStatusRes;

FuStructSteelseriesPairedStatusRes *fu_struct_steelseries_paired_status_res_ref(FuStructSteelseriesPairedStatusRes *st) G_GNUC_NON_NULL(1);
void fu_struct_steelseries_paired_status_res_unref(FuStructSteelseriesPairedStatusRes *st) G_GNUC_NON_NULL(1);
G_DEFINE_AUTOPTR_CLEANUP_FUNC(FuStructSteelseriesPairedStatusRes, fu_struct_steelseries_paired_status_res_unref)
FuStructSteelseriesPairedStatusRes *fu_struct_steelseries_paired_status_res_parse(const guint8 *buf, gsize bufsz, gsize offset, GError **error) G_GNUC_NON_NULL(1) G_GNUC_WARN_UNUSED_RESULT;
guint8 fu_struct_steelseries_paired_status_res_get_status(const FuStructSteelseriesPairedStatusRes *st) G_GNUC_NON_NULL(1) G_GNUC_WARN_UNUSED_RESULT;

#ifndef __GI_SCANNER__
#define FU_STRUCT_STEELSERIES_PAIRED_STATUS_RES_OFFSET_STATUS 0x0
#endif

#ifndef __GI_SCANNER__
#define FU_STRUCT_STEELSERIES_PAIRED_STATUS_RES_SIZE 0x1
#endif

#ifndef __GI_SCANNER__
#endif
typedef struct {
  GByteArray *buf;
  guint refcount;
} FuStructSteelseriesConnectionStatusReq;

FuStructSteelseriesConnectionStatusReq *fu_struct_steelseries_connection_status_req_ref(FuStructSteelseriesConnectionStatusReq *st) G_GNUC_NON_NULL(1);
void fu_struct_steelseries_connection_status_req_unref(FuStructSteelseriesConnectionStatusReq *st) G_GNUC_NON_NULL(1);
G_DEFINE_AUTOPTR_CLEANUP_FUNC(FuStructSteelseriesConnectionStatusReq, fu_struct_steelseries_connection_status_req_unref)
FuStructSteelseriesConnectionStatusReq *fu_struct_steelseries_connection_status_req_new(void) G_GNUC_WARN_UNUSED_RESULT;

#ifndef __GI_SCANNER__
#define FU_STRUCT_STEELSERIES_CONNECTION_STATUS_REQ_OFFSET_CMD 0x0
#endif

#ifndef __GI_SCANNER__
#define FU_STRUCT_STEELSERIES_CONNECTION_STATUS_REQ_SIZE 0x1
#endif

#ifndef __GI_SCANNER__
#define FU_STRUCT_STEELSERIES_CONNECTION_STATUS_REQ_DEFAULT_CMD FU_STEELSERIES_FIZZ_CMD_CONNECTION_STATUS
#endif
typedef struct {
  GByteArray *buf;
  guint refcount;
} FuStructSteelseriesConnectionStatusRes;

FuStructSteelseriesConnectionStatusRes *fu_struct_steelseries_connection_status_res_ref(FuStructSteelseriesConnectionStatusRes *st) G_GNUC_NON_NULL(1);
void fu_struct_steelseries_connection_status_res_unref(FuStructSteelseriesConnectionStatusRes *st) G_GNUC_NON_NULL(1);
G_DEFINE_AUTOPTR_CLEANUP_FUNC(FuStructSteelseriesConnectionStatusRes, fu_struct_steelseries_connection_status_res_unref)
FuStructSteelseriesConnectionStatusRes *fu_struct_steelseries_connection_status_res_parse(const guint8 *buf, gsize bufsz, gsize offset, GError **error) G_GNUC_NON_NULL(1) G_GNUC_WARN_UNUSED_RESULT;
guint8 fu_struct_steelseries_connection_status_res_get_status(const FuStructSteelseriesConnectionStatusRes *st) G_GNUC_NON_NULL(1) G_GNUC_WARN_UNUSED_RESULT;

#ifndef __GI_SCANNER__
#define FU_STRUCT_STEELSERIES_CONNECTION_STATUS_RES_OFFSET_STATUS 0x1
#endif

#ifndef __GI_SCANNER__
#define FU_STRUCT_STEELSERIES_CONNECTION_STATUS_RES_SIZE 0x2
#endif

#ifndef __GI_SCANNER__
#endif
typedef struct {
  GByteArray *buf;
  guint refcount;
} FuStructSteelseriesBatteryLevelReq;

FuStructSteelseriesBatteryLevelReq *fu_struct_steelseries_battery_level_req_ref(FuStructSteelseriesBatteryLevelReq *st) G_GNUC_NON_NULL(1);
void fu_struct_steelseries_battery_level_req_unref(FuStructSteelseriesBatteryLevelReq *st) G_GNUC_NON_NULL(1);
G_DEFINE_AUTOPTR_CLEANUP_FUNC(FuStructSteelseriesBatteryLevelReq, fu_struct_steelseries_battery_level_req_unref)
FuStructSteelseriesBatteryLevelReq *fu_struct_steelseries_battery_level_req_new(void) G_GNUC_WARN_UNUSED_RESULT;
void fu_struct_steelseries_battery_level_req_set_cmd(FuStructSteelseriesBatteryLevelReq *st, FuSteelseriesFizzCmd value) G_GNUC_NON_NULL(1);

#ifndef __GI_SCANNER__
#define FU_STRUCT_STEELSERIES_BATTERY_LEVEL_REQ_OFFSET_CMD 0x0
#endif

#ifndef __GI_SCANNER__
#define FU_STRUCT_STEELSERIES_BATTERY_LEVEL_REQ_SIZE 0x1
#endif

#ifndef __GI_SCANNER__
#define FU_STRUCT_STEELSERIES_BATTERY_LEVEL_REQ_DEFAULT_CMD FU_STEELSERIES_FIZZ_CMD_BATTERY_LEVEL
#endif
typedef struct {
  GByteArray *buf;
  guint refcount;
} FuStructSteelseriesBatteryLevelRes;

FuStructSteelseriesBatteryLevelRes *fu_struct_steelseries_battery_level_res_ref(FuStructSteelseriesBatteryLevelRes *st) G_GNUC_NON_NULL(1);
void fu_struct_steelseries_battery_level_res_unref(FuStructSteelseriesBatteryLevelRes *st) G_GNUC_NON_NULL(1);
G_DEFINE_AUTOPTR_CLEANUP_FUNC(FuStructSteelseriesBatteryLevelRes, fu_struct_steelseries_battery_level_res_unref)
FuStructSteelseriesBatteryLevelRes *fu_struct_steelseries_battery_level_res_parse(const guint8 *buf, gsize bufsz, gsize offset, GError **error) G_GNUC_NON_NULL(1) G_GNUC_WARN_UNUSED_RESULT;
guint8 fu_struct_steelseries_battery_level_res_get_level(const FuStructSteelseriesBatteryLevelRes *st) G_GNUC_NON_NULL(1) G_GNUC_WARN_UNUSED_RESULT;

#ifndef __GI_SCANNER__
#define FU_STRUCT_STEELSERIES_BATTERY_LEVEL_RES_OFFSET_LEVEL 0x1
#endif

#ifndef __GI_SCANNER__
#define FU_STRUCT_STEELSERIES_BATTERY_LEVEL_RES_SIZE 0x2
#endif

#ifndef __GI_SCANNER__
#endif
typedef struct {
  GByteArray *buf;
  guint refcount;
} FuStructSteelseriesFizzVersion2Req;

FuStructSteelseriesFizzVersion2Req *fu_struct_steelseries_fizz_version2_req_ref(FuStructSteelseriesFizzVersion2Req *st) G_GNUC_NON_NULL(1);
void fu_struct_steelseries_fizz_version2_req_unref(FuStructSteelseriesFizzVersion2Req *st) G_GNUC_NON_NULL(1);
G_DEFINE_AUTOPTR_CLEANUP_FUNC(FuStructSteelseriesFizzVersion2Req, fu_struct_steelseries_fizz_version2_req_unref)
FuStructSteelseriesFizzVersion2Req *fu_struct_steelseries_fizz_version2_req_new(void) G_GNUC_WARN_UNUSED_RESULT;

#ifndef __GI_SCANNER__
#define FU_STRUCT_STEELSERIES_FIZZ_VERSION2_REQ_OFFSET_CMD 0x0
#endif

#ifndef __GI_SCANNER__
#define FU_STRUCT_STEELSERIES_FIZZ_VERSION2_REQ_SIZE 0x1
#endif

#ifndef __GI_SCANNER__
#define FU_STRUCT_STEELSERIES_FIZZ_VERSION2_REQ_DEFAULT_CMD FU_STEELSERIES_FIZZ_CMD_VERSION2
#endif
typedef struct {
  GByteArray *buf;
  guint refcount;
} FuStructSteelseriesVersion2Res2;

FuStructSteelseriesVersion2Res2 *fu_struct_steelseries_version2_res2_ref(FuStructSteelseriesVersion2Res2 *st) G_GNUC_NON_NULL(1);
void fu_struct_steelseries_version2_res2_unref(FuStructSteelseriesVersion2Res2 *st) G_GNUC_NON_NULL(1);
G_DEFINE_AUTOPTR_CLEANUP_FUNC(FuStructSteelseriesVersion2Res2, fu_struct_steelseries_version2_res2_unref)
FuStructSteelseriesVersion2Res2 *fu_struct_steelseries_version2_res2_parse(const guint8 *buf, gsize bufsz, gsize offset, GError **error) G_GNUC_NON_NULL(1) G_GNUC_WARN_UNUSED_RESULT;
gchar *fu_struct_steelseries_version2_res2_get_version1(const FuStructSteelseriesVersion2Res2 *st) G_GNUC_NON_NULL(1) G_GNUC_WARN_UNUSED_RESULT;
gchar *fu_struct_steelseries_version2_res2_get_version2(const FuStructSteelseriesVersion2Res2 *st) G_GNUC_NON_NULL(1) G_GNUC_WARN_UNUSED_RESULT;

#ifndef __GI_SCANNER__
#define FU_STRUCT_STEELSERIES_VERSION2_RES2_OFFSET_VERSION1 0x1
#define FU_STRUCT_STEELSERIES_VERSION2_RES2_OFFSET_VERSION2 0x19
#endif

#ifndef __GI_SCANNER__
#define FU_STRUCT_STEELSERIES_VERSION2_RES2_SIZE_VERSION1 0xC
#define FU_STRUCT_STEELSERIES_VERSION2_RES2_N_ELEMENTS_VERSION1 12
#define FU_STRUCT_STEELSERIES_VERSION2_RES2_SIZE_VERSION2 0xC
#define FU_STRUCT_STEELSERIES_VERSION2_RES2_N_ELEMENTS_VERSION2 12
#define FU_STRUCT_STEELSERIES_VERSION2_RES2_SIZE 0x25
#endif

#ifndef __GI_SCANNER__
#endif
typedef struct {
  GByteArray *buf;
  guint refcount;
} FuStructSteelseriesVersion2Res3;

FuStructSteelseriesVersion2Res3 *fu_struct_steelseries_version2_res3_ref(FuStructSteelseriesVersion2Res3 *st) G_GNUC_NON_NULL(1);
void fu_struct_steelseries_version2_res3_unref(FuStructSteelseriesVersion2Res3 *st) G_GNUC_NON_NULL(1);
G_DEFINE_AUTOPTR_CLEANUP_FUNC(FuStructSteelseriesVersion2Res3, fu_struct_steelseries_version2_res3_unref)
FuStructSteelseriesVersion2Res3 *fu_struct_steelseries_version2_res3_parse(const guint8 *buf, gsize bufsz, gsize offset, GError **error) G_GNUC_NON_NULL(1) G_GNUC_WARN_UNUSED_RESULT;
gchar *fu_struct_steelseries_version2_res3_get_version1(const FuStructSteelseriesVersion2Res3 *st) G_GNUC_NON_NULL(1) G_GNUC_WARN_UNUSED_RESULT;
gchar *fu_struct_steelseries_version2_res3_get_version2(const FuStructSteelseriesVersion2Res3 *st) G_GNUC_NON_NULL(1) G_GNUC_WARN_UNUSED_RESULT;

#ifndef __GI_SCANNER__
#define FU_STRUCT_STEELSERIES_VERSION2_RES3_OFFSET_VERSION1 0x1
#define FU_STRUCT_STEELSERIES_VERSION2_RES3_OFFSET_VERSION2 0xD
#endif

#ifndef __GI_SCANNER__
#define FU_STRUCT_STEELSERIES_VERSION2_RES3_SIZE_VERSION1 0xC
#define FU_STRUCT_STEELSERIES_VERSION2_RES3_N_ELEMENTS_VERSION1 12
#define FU_STRUCT_STEELSERIES_VERSION2_RES3_SIZE_VERSION2 0xC
#define FU_STRUCT_STEELSERIES_VERSION2_RES3_N_ELEMENTS_VERSION2 12
#define FU_STRUCT_STEELSERIES_VERSION2_RES3_SIZE 0x19
#endif

#ifndef __GI_SCANNER__
#endif
typedef struct {
  GByteArray *buf;
  guint refcount;
} FuStructSteelseriesBatteryLevel2Req;

FuStructSteelseriesBatteryLevel2Req *fu_struct_steelseries_battery_level2_req_ref(FuStructSteelseriesBatteryLevel2Req *st) G_GNUC_NON_NULL(1);
void fu_struct_steelseries_battery_level2_req_unref(FuStructSteelseriesBatteryLevel2Req *st) G_GNUC_NON_NULL(1);
G_DEFINE_AUTOPTR_CLEANUP_FUNC(FuStructSteelseriesBatteryLevel2Req, fu_struct_steelseries_battery_level2_req_unref)
FuStructSteelseriesBatteryLevel2Req *fu_struct_steelseries_battery_level2_req_new(void) G_GNUC_WARN_UNUSED_RESULT;

#ifndef __GI_SCANNER__
#define FU_STRUCT_STEELSERIES_BATTERY_LEVEL2_REQ_OFFSET_CMD 0x0
#endif

#ifndef __GI_SCANNER__
#define FU_STRUCT_STEELSERIES_BATTERY_LEVEL2_REQ_SIZE 0x1
#endif

#ifndef __GI_SCANNER__
#define FU_STRUCT_STEELSERIES_BATTERY_LEVEL2_REQ_DEFAULT_CMD FU_STEELSERIES_FIZZ_CMD_CONNECTION_STATUS2
#endif
typedef struct {
  GByteArray *buf;
  guint refcount;
} FuStructSteelseriesBatteryLevel2Res;

FuStructSteelseriesBatteryLevel2Res *fu_struct_steelseries_battery_level2_res_ref(FuStructSteelseriesBatteryLevel2Res *st) G_GNUC_NON_NULL(1);
void fu_struct_steelseries_battery_level2_res_unref(FuStructSteelseriesBatteryLevel2Res *st) G_GNUC_NON_NULL(1);
G_DEFINE_AUTOPTR_CLEANUP_FUNC(FuStructSteelseriesBatteryLevel2Res, fu_struct_steelseries_battery_level2_res_unref)
FuStructSteelseriesBatteryLevel2Res *fu_struct_steelseries_battery_level2_res_parse(const guint8 *buf, gsize bufsz, gsize offset, GError **error) G_GNUC_NON_NULL(1) G_GNUC_WARN_UNUSED_RESULT;
guint8 fu_struct_steelseries_battery_level2_res_get_level(const FuStructSteelseriesBatteryLevel2Res *st) G_GNUC_NON_NULL(1) G_GNUC_WARN_UNUSED_RESULT;

#ifndef __GI_SCANNER__
#define FU_STRUCT_STEELSERIES_BATTERY_LEVEL2_RES_OFFSET_LEVEL 0x3
#endif

#ifndef __GI_SCANNER__
#define FU_STRUCT_STEELSERIES_BATTERY_LEVEL2_RES_SIZE 0x4
#endif

#ifndef __GI_SCANNER__
#endif
typedef struct {
  GByteArray *buf;
  guint refcount;
} FuStructSteelseriesConnectionStatus2Req;

FuStructSteelseriesConnectionStatus2Req *fu_struct_steelseries_connection_status2_req_ref(FuStructSteelseriesConnectionStatus2Req *st) G_GNUC_NON_NULL(1);
void fu_struct_steelseries_connection_status2_req_unref(FuStructSteelseriesConnectionStatus2Req *st) G_GNUC_NON_NULL(1);
G_DEFINE_AUTOPTR_CLEANUP_FUNC(FuStructSteelseriesConnectionStatus2Req, fu_struct_steelseries_connection_status2_req_unref)
FuStructSteelseriesConnectionStatus2Req *fu_struct_steelseries_connection_status2_req_new(void) G_GNUC_WARN_UNUSED_RESULT;

#ifndef __GI_SCANNER__
#define FU_STRUCT_STEELSERIES_CONNECTION_STATUS2_REQ_OFFSET_CMD 0x0
#endif

#ifndef __GI_SCANNER__
#define FU_STRUCT_STEELSERIES_CONNECTION_STATUS2_REQ_SIZE 0x1
#endif

#ifndef __GI_SCANNER__
#define FU_STRUCT_STEELSERIES_CONNECTION_STATUS2_REQ_DEFAULT_CMD FU_STEELSERIES_FIZZ_CMD_CONNECTION_STATUS2
#endif
typedef struct {
  GByteArray *buf;
  guint refcount;
} FuStructSteelseriesConnectionStatus2Res;

FuStructSteelseriesConnectionStatus2Res *fu_struct_steelseries_connection_status2_res_ref(FuStructSteelseriesConnectionStatus2Res *st) G_GNUC_NON_NULL(1);
void fu_struct_steelseries_connection_status2_res_unref(FuStructSteelseriesConnectionStatus2Res *st) G_GNUC_NON_NULL(1);
G_DEFINE_AUTOPTR_CLEANUP_FUNC(FuStructSteelseriesConnectionStatus2Res, fu_struct_steelseries_connection_status2_res_unref)
FuStructSteelseriesConnectionStatus2Res *fu_struct_steelseries_connection_status2_res_parse(const guint8 *buf, gsize bufsz, gsize offset, GError **error) G_GNUC_NON_NULL(1) G_GNUC_WARN_UNUSED_RESULT;
FuSteelseriesFizzConnection fu_struct_steelseries_connection_status2_res_get_status(const FuStructSteelseriesConnectionStatus2Res *st) G_GNUC_NON_NULL(1) G_GNUC_WARN_UNUSED_RESULT;

#ifndef __GI_SCANNER__
#define FU_STRUCT_STEELSERIES_CONNECTION_STATUS2_RES_OFFSET_STATUS 0x1
#endif

#ifndef __GI_SCANNER__
#define FU_STRUCT_STEELSERIES_CONNECTION_STATUS2_RES_SIZE 0x2
#endif

#ifndef __GI_SCANNER__
#endif
typedef struct {
  GByteArray *buf;
  guint refcount;
} FuStructSteelseriesSerial2Req;

FuStructSteelseriesSerial2Req *fu_struct_steelseries_serial2_req_ref(FuStructSteelseriesSerial2Req *st) G_GNUC_NON_NULL(1);
void fu_struct_steelseries_serial2_req_unref(FuStructSteelseriesSerial2Req *st) G_GNUC_NON_NULL(1);
G_DEFINE_AUTOPTR_CLEANUP_FUNC(FuStructSteelseriesSerial2Req, fu_struct_steelseries_serial2_req_unref)
FuStructSteelseriesSerial2Req *fu_struct_steelseries_serial2_req_new(void) G_GNUC_WARN_UNUSED_RESULT;

#ifndef __GI_SCANNER__
#define FU_STRUCT_STEELSERIES_SERIAL2_REQ_OFFSET_CMD 0x0
#endif

#ifndef __GI_SCANNER__
#define FU_STRUCT_STEELSERIES_SERIAL2_REQ_SIZE 0x1
#endif

#ifndef __GI_SCANNER__
#define FU_STRUCT_STEELSERIES_SERIAL2_REQ_DEFAULT_CMD FU_STEELSERIES_FIZZ_CMD_SERIAL2
#endif
typedef struct {
  GByteArray *buf;
  guint refcount;
} FuStructSteelseriesSerial2Res2;

FuStructSteelseriesSerial2Res2 *fu_struct_steelseries_serial2_res2_ref(FuStructSteelseriesSerial2Res2 *st) G_GNUC_NON_NULL(1);
void fu_struct_steelseries_serial2_res2_unref(FuStructSteelseriesSerial2Res2 *st) G_GNUC_NON_NULL(1);
G_DEFINE_AUTOPTR_CLEANUP_FUNC(FuStructSteelseriesSerial2Res2, fu_struct_steelseries_serial2_res2_unref)
FuStructSteelseriesSerial2Res2 *fu_struct_steelseries_serial2_res2_parse(const guint8 *buf, gsize bufsz, gsize offset, GError **error) G_GNUC_NON_NULL(1) G_GNUC_WARN_UNUSED_RESULT;
gchar *fu_struct_steelseries_serial2_res2_get_serial(const FuStructSteelseriesSerial2Res2 *st) G_GNUC_NON_NULL(1) G_GNUC_WARN_UNUSED_RESULT;

#ifndef __GI_SCANNER__
#define FU_STRUCT_STEELSERIES_SERIAL2_RES2_OFFSET_SERIAL 0x1
#endif

#ifndef __GI_SCANNER__
#define FU_STRUCT_STEELSERIES_SERIAL2_RES2_SIZE_SERIAL 0x13
#define FU_STRUCT_STEELSERIES_SERIAL2_RES2_N_ELEMENTS_SERIAL 19
#define FU_STRUCT_STEELSERIES_SERIAL2_RES2_SIZE 0x14
#endif

#ifndef __GI_SCANNER__
#endif
typedef struct {
  GByteArray *buf;
  guint refcount;
} FuStructSteelseriesSerial2Res3;

FuStructSteelseriesSerial2Res3 *fu_struct_steelseries_serial2_res3_ref(FuStructSteelseriesSerial2Res3 *st) G_GNUC_NON_NULL(1);
void fu_struct_steelseries_serial2_res3_unref(FuStructSteelseriesSerial2Res3 *st) G_GNUC_NON_NULL(1);
G_DEFINE_AUTOPTR_CLEANUP_FUNC(FuStructSteelseriesSerial2Res3, fu_struct_steelseries_serial2_res3_unref)
FuStructSteelseriesSerial2Res3 *fu_struct_steelseries_serial2_res3_parse(const guint8 *buf, gsize bufsz, gsize offset, GError **error) G_GNUC_NON_NULL(1) G_GNUC_WARN_UNUSED_RESULT;
gchar *fu_struct_steelseries_serial2_res3_get_serial1(const FuStructSteelseriesSerial2Res3 *st) G_GNUC_NON_NULL(1) G_GNUC_WARN_UNUSED_RESULT;
gchar *fu_struct_steelseries_serial2_res3_get_serial2(const FuStructSteelseriesSerial2Res3 *st) G_GNUC_NON_NULL(1) G_GNUC_WARN_UNUSED_RESULT;

#ifndef __GI_SCANNER__
#define FU_STRUCT_STEELSERIES_SERIAL2_RES3_OFFSET_SERIAL1 0x1
#define FU_STRUCT_STEELSERIES_SERIAL2_RES3_OFFSET_SERIAL2 0x14
#endif

#ifndef __GI_SCANNER__
#define FU_STRUCT_STEELSERIES_SERIAL2_RES3_SIZE_SERIAL1 0x13
#define FU_STRUCT_STEELSERIES_SERIAL2_RES3_N_ELEMENTS_SERIAL1 19
#define FU_STRUCT_STEELSERIES_SERIAL2_RES3_SIZE_SERIAL2 0x13
#define FU_STRUCT_STEELSERIES_SERIAL2_RES3_N_ELEMENTS_SERIAL2 19
#define FU_STRUCT_STEELSERIES_SERIAL2_RES3_SIZE 0x27
#endif

#ifndef __GI_SCANNER__
#endif
