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

#pragma once
#include <fu-input-stream.h>
/**
 * FuDdcOpcode:
 */
typedef enum {
    /**
     * FU_DDC_OPCODE_GET_VCP:
     *
     * standard get vcp feature
     */
    FU_DDC_OPCODE_GET_VCP = 0x01,
    /**
     * FU_DDC_OPCODE_REQ:
     *
     * vendor specific opcode
     */
    FU_DDC_OPCODE_REQ = 0xCC,
}  FuDdcOpcode;
/**
 * FuDdcVcpCode:
 */
typedef enum {
    /**
     * FU_DDC_VCP_CODE_CONTROLLER_TYPE:
     *
     * standard display controller type
     */
    FU_DDC_VCP_CODE_CONTROLLER_TYPE = 0xC8,
    /**
     * FU_DDC_VCP_CODE_PRIORITY:
     */
    FU_DDC_VCP_CODE_PRIORITY = 0x90,
    /**
     * FU_DDC_VCP_CODE_UPDATE_PREP:
     */
    FU_DDC_VCP_CODE_UPDATE_PREP = 0xF2,
    /**
     * FU_DDC_VCP_CODE_UPDATE_ACK:
     */
    FU_DDC_VCP_CODE_UPDATE_ACK = 0xF3,
    /**
     * FU_DDC_VCP_CODE_SET_DATA:
     */
    FU_DDC_VCP_CODE_SET_DATA = 0xF4,
    /**
     * FU_DDC_VCP_CODE_GET_STAGED:
     */
    FU_DDC_VCP_CODE_GET_STAGED = 0xF5,
    /**
     * FU_DDC_VCP_CODE_SET_DATA_FF:
     */
    FU_DDC_VCP_CODE_SET_DATA_FF = 0xF6,
    /**
     * FU_DDC_VCP_CODE_COMMIT_FW:
     */
    FU_DDC_VCP_CODE_COMMIT_FW = 0xF7,
    /**
     * FU_DDC_VCP_CODE_GET_ISP_MODE:
     */
    FU_DDC_VCP_CODE_GET_ISP_MODE = 0xF8,
    /**
     * FU_DDC_VCP_CODE_REBOOT:
     */
    FU_DDC_VCP_CODE_REBOOT = 0xFB,
    /**
     * FU_DDC_VCP_CODE_SUM:
     */
    FU_DDC_VCP_CODE_SUM = 0xFE,
    /**
     * FU_DDC_VCP_CODE_VERSION:
     */
    FU_DDC_VCP_CODE_VERSION = 0xFF,
}  FuDdcVcpCode;
/**
 * FuDdcI2cAddr:
 */
typedef enum {
    /**
     * FU_DDC_I2C_ADDR_DISPLAY_DEVICE:
     */
    FU_DDC_I2C_ADDR_DISPLAY_DEVICE = 0x6E,
    /**
     * FU_DDC_I2C_ADDR_HOST_DEVICE:
     */
    FU_DDC_I2C_ADDR_HOST_DEVICE = 0x51,
    /**
     * FU_DDC_I2C_ADDR_CHECKSUM:
     */
    FU_DDC_I2C_ADDR_CHECKSUM = 0x50,
}  FuDdcI2cAddr;
/**
 * FuDdcciPriority:
 */
typedef enum {
    /**
     * FU_DDCCI_PRIORITY_NORMAL:
     */
    FU_DDCCI_PRIORITY_NORMAL,
    /**
     * FU_DDCCI_PRIORITY_UP:
     */
    FU_DDCCI_PRIORITY_UP,
}  FuDdcciPriority;
#define FU_DDCCI_PRIORITY_LAST 2
const gchar *fu_ddcci_priority_to_string(FuDdcciPriority val) G_GNUC_CONST;
/**
 * FuMediatekScalerIspStatus:
 */
typedef enum {
    /**
     * FU_MEDIATEK_SCALER_ISP_STATUS_BUSY:
     */
    FU_MEDIATEK_SCALER_ISP_STATUS_BUSY = 0x00,
    /**
     * FU_MEDIATEK_SCALER_ISP_STATUS_FAILURE:
     */
    FU_MEDIATEK_SCALER_ISP_STATUS_FAILURE,
    /**
     * FU_MEDIATEK_SCALER_ISP_STATUS_SUCCESS:
     */
    FU_MEDIATEK_SCALER_ISP_STATUS_SUCCESS,
    /**
     * FU_MEDIATEK_SCALER_ISP_STATUS_IDLE:
     */
    FU_MEDIATEK_SCALER_ISP_STATUS_IDLE = 0x99,
}  FuMediatekScalerIspStatus;
typedef struct {
  GByteArray *buf;
  guint refcount;
} FuStructDdcCmd;

FuStructDdcCmd *fu_struct_ddc_cmd_ref(FuStructDdcCmd *st) G_GNUC_NON_NULL(1);
void fu_struct_ddc_cmd_unref(FuStructDdcCmd *st) G_GNUC_NON_NULL(1);
G_DEFINE_AUTOPTR_CLEANUP_FUNC(FuStructDdcCmd, fu_struct_ddc_cmd_unref)
FuStructDdcCmd *fu_struct_ddc_cmd_new(void) G_GNUC_WARN_UNUSED_RESULT;
void fu_struct_ddc_cmd_set_opcode(FuStructDdcCmd *st, FuDdcOpcode value) G_GNUC_NON_NULL(1);
void fu_struct_ddc_cmd_set_vcp_code(FuStructDdcCmd *st, FuDdcVcpCode value) G_GNUC_NON_NULL(1);

#ifndef __GI_SCANNER__
#define FU_STRUCT_DDC_CMD_OFFSET_OPCODE 0x0
#define FU_STRUCT_DDC_CMD_OFFSET_VCP_CODE 0x1
#endif

#ifndef __GI_SCANNER__
#define FU_STRUCT_DDC_CMD_SIZE 0x2
#endif

#ifndef __GI_SCANNER__
#define FU_STRUCT_DDC_CMD_DEFAULT_OPCODE FU_DDC_OPCODE_REQ
#endif
