/* Generated by ./xlat/gen.sh from ./xlat/v4l2_control_id_bases.in; do not edit. */

#include "gcc_compat.h"
#include "static_assert.h"

#if defined(V4L2_CID_BASE) || (defined(HAVE_DECL_V4L2_CID_BASE) && HAVE_DECL_V4L2_CID_BASE)
DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
static_assert((V4L2_CID_BASE) == ((V4L2_CTRL_CLASS_USER | 0x900)), "V4L2_CID_BASE != (V4L2_CTRL_CLASS_USER | 0x900)");
DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
#else
# define V4L2_CID_BASE (V4L2_CTRL_CLASS_USER | 0x900)
#endif
#if defined(V4L2_CID_USER_MEYE_BASE) || (defined(HAVE_DECL_V4L2_CID_USER_MEYE_BASE) && HAVE_DECL_V4L2_CID_USER_MEYE_BASE)
DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
static_assert((V4L2_CID_USER_MEYE_BASE) == ((V4L2_CID_BASE + 0x1000)), "V4L2_CID_USER_MEYE_BASE != (V4L2_CID_BASE + 0x1000)");
DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
#else
# define V4L2_CID_USER_MEYE_BASE (V4L2_CID_BASE + 0x1000)
#endif
#if defined(V4L2_CID_USER_BTTV_BASE) || (defined(HAVE_DECL_V4L2_CID_USER_BTTV_BASE) && HAVE_DECL_V4L2_CID_USER_BTTV_BASE)
DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
static_assert((V4L2_CID_USER_BTTV_BASE) == ((V4L2_CID_BASE + 0x1010)), "V4L2_CID_USER_BTTV_BASE != (V4L2_CID_BASE + 0x1010)");
DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
#else
# define V4L2_CID_USER_BTTV_BASE (V4L2_CID_BASE + 0x1010)
#endif
#if defined(V4L2_CID_USER_TI_VPE_BASE) || (defined(HAVE_DECL_V4L2_CID_USER_TI_VPE_BASE) && HAVE_DECL_V4L2_CID_USER_TI_VPE_BASE)
DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
static_assert((V4L2_CID_USER_TI_VPE_BASE) == ((V4L2_CID_BASE + 0x1050)), "V4L2_CID_USER_TI_VPE_BASE != (V4L2_CID_BASE + 0x1050)");
DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
#else
# define V4L2_CID_USER_TI_VPE_BASE (V4L2_CID_BASE + 0x1050)
#endif
#if defined(V4L2_CID_USER_IMX_BASE) || (defined(HAVE_DECL_V4L2_CID_USER_IMX_BASE) && HAVE_DECL_V4L2_CID_USER_IMX_BASE)
DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
static_assert((V4L2_CID_USER_IMX_BASE) == ((V4L2_CID_BASE + 0x1090)), "V4L2_CID_USER_IMX_BASE != (V4L2_CID_BASE + 0x1090)");
DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
#else
# define V4L2_CID_USER_IMX_BASE (V4L2_CID_BASE + 0x1090)
#endif
#if defined(V4L2_CID_MPEG_BASE) || (defined(HAVE_DECL_V4L2_CID_MPEG_BASE) && HAVE_DECL_V4L2_CID_MPEG_BASE)
DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
static_assert((V4L2_CID_MPEG_BASE) == ((V4L2_CTRL_CLASS_MPEG | 0x900)), "V4L2_CID_MPEG_BASE != (V4L2_CTRL_CLASS_MPEG | 0x900)");
DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
#else
# define V4L2_CID_MPEG_BASE (V4L2_CTRL_CLASS_MPEG | 0x900)
#endif
#if defined(V4L2_CID_MPEG_CX2341X_BASE) || (defined(HAVE_DECL_V4L2_CID_MPEG_CX2341X_BASE) && HAVE_DECL_V4L2_CID_MPEG_CX2341X_BASE)
DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
static_assert((V4L2_CID_MPEG_CX2341X_BASE) == ((V4L2_CTRL_CLASS_MPEG | 0x1000)), "V4L2_CID_MPEG_CX2341X_BASE != (V4L2_CTRL_CLASS_MPEG | 0x1000)");
DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
#else
# define V4L2_CID_MPEG_CX2341X_BASE (V4L2_CTRL_CLASS_MPEG | 0x1000)
#endif
#if defined(V4L2_CID_MPEG_MFC51_BASE) || (defined(HAVE_DECL_V4L2_CID_MPEG_MFC51_BASE) && HAVE_DECL_V4L2_CID_MPEG_MFC51_BASE)
DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
static_assert((V4L2_CID_MPEG_MFC51_BASE) == ((V4L2_CTRL_CLASS_MPEG | 0x1100)), "V4L2_CID_MPEG_MFC51_BASE != (V4L2_CTRL_CLASS_MPEG | 0x1100)");
DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
#else
# define V4L2_CID_MPEG_MFC51_BASE (V4L2_CTRL_CLASS_MPEG | 0x1100)
#endif
#if defined(V4L2_CID_CAMERA_CLASS_BASE) || (defined(HAVE_DECL_V4L2_CID_CAMERA_CLASS_BASE) && HAVE_DECL_V4L2_CID_CAMERA_CLASS_BASE)
DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
static_assert((V4L2_CID_CAMERA_CLASS_BASE) == ((V4L2_CTRL_CLASS_CAMERA | 0x900)), "V4L2_CID_CAMERA_CLASS_BASE != (V4L2_CTRL_CLASS_CAMERA | 0x900)");
DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
#else
# define V4L2_CID_CAMERA_CLASS_BASE (V4L2_CTRL_CLASS_CAMERA | 0x900)
#endif
#if defined(V4L2_CID_FM_TX_CLASS_BASE) || (defined(HAVE_DECL_V4L2_CID_FM_TX_CLASS_BASE) && HAVE_DECL_V4L2_CID_FM_TX_CLASS_BASE)
DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
static_assert((V4L2_CID_FM_TX_CLASS_BASE) == ((V4L2_CTRL_CLASS_FM_TX | 0x900)), "V4L2_CID_FM_TX_CLASS_BASE != (V4L2_CTRL_CLASS_FM_TX | 0x900)");
DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
#else
# define V4L2_CID_FM_TX_CLASS_BASE (V4L2_CTRL_CLASS_FM_TX | 0x900)
#endif
#if defined(V4L2_CID_FLASH_CLASS_BASE) || (defined(HAVE_DECL_V4L2_CID_FLASH_CLASS_BASE) && HAVE_DECL_V4L2_CID_FLASH_CLASS_BASE)
DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
static_assert((V4L2_CID_FLASH_CLASS_BASE) == ((V4L2_CTRL_CLASS_FLASH | 0x900)), "V4L2_CID_FLASH_CLASS_BASE != (V4L2_CTRL_CLASS_FLASH | 0x900)");
DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
#else
# define V4L2_CID_FLASH_CLASS_BASE (V4L2_CTRL_CLASS_FLASH | 0x900)
#endif
#if defined(V4L2_CID_JPEG_CLASS_BASE) || (defined(HAVE_DECL_V4L2_CID_JPEG_CLASS_BASE) && HAVE_DECL_V4L2_CID_JPEG_CLASS_BASE)
DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
static_assert((V4L2_CID_JPEG_CLASS_BASE) == ((V4L2_CTRL_CLASS_JPEG | 0x900)), "V4L2_CID_JPEG_CLASS_BASE != (V4L2_CTRL_CLASS_JPEG | 0x900)");
DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
#else
# define V4L2_CID_JPEG_CLASS_BASE (V4L2_CTRL_CLASS_JPEG | 0x900)
#endif
#if defined(V4L2_CID_IMAGE_SOURCE_CLASS_BASE) || (defined(HAVE_DECL_V4L2_CID_IMAGE_SOURCE_CLASS_BASE) && HAVE_DECL_V4L2_CID_IMAGE_SOURCE_CLASS_BASE)
DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
static_assert((V4L2_CID_IMAGE_SOURCE_CLASS_BASE) == ((V4L2_CTRL_CLASS_IMAGE_SOURCE | 0x900)), "V4L2_CID_IMAGE_SOURCE_CLASS_BASE != (V4L2_CTRL_CLASS_IMAGE_SOURCE | 0x900)");
DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
#else
# define V4L2_CID_IMAGE_SOURCE_CLASS_BASE (V4L2_CTRL_CLASS_IMAGE_SOURCE | 0x900)
#endif
#if defined(V4L2_CID_IMAGE_PROC_CLASS_BASE) || (defined(HAVE_DECL_V4L2_CID_IMAGE_PROC_CLASS_BASE) && HAVE_DECL_V4L2_CID_IMAGE_PROC_CLASS_BASE)
DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
static_assert((V4L2_CID_IMAGE_PROC_CLASS_BASE) == ((V4L2_CTRL_CLASS_IMAGE_PROC | 0x900)), "V4L2_CID_IMAGE_PROC_CLASS_BASE != (V4L2_CTRL_CLASS_IMAGE_PROC | 0x900)");
DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
#else
# define V4L2_CID_IMAGE_PROC_CLASS_BASE (V4L2_CTRL_CLASS_IMAGE_PROC | 0x900)
#endif
#if defined(V4L2_CID_DV_CLASS_BASE) || (defined(HAVE_DECL_V4L2_CID_DV_CLASS_BASE) && HAVE_DECL_V4L2_CID_DV_CLASS_BASE)
DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
static_assert((V4L2_CID_DV_CLASS_BASE) == ((V4L2_CTRL_CLASS_DV | 0x900)), "V4L2_CID_DV_CLASS_BASE != (V4L2_CTRL_CLASS_DV | 0x900)");
DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
#else
# define V4L2_CID_DV_CLASS_BASE (V4L2_CTRL_CLASS_DV | 0x900)
#endif
#if defined(V4L2_CID_FM_RX_CLASS_BASE) || (defined(HAVE_DECL_V4L2_CID_FM_RX_CLASS_BASE) && HAVE_DECL_V4L2_CID_FM_RX_CLASS_BASE)
DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
static_assert((V4L2_CID_FM_RX_CLASS_BASE) == ((V4L2_CTRL_CLASS_FM_RX | 0x900)), "V4L2_CID_FM_RX_CLASS_BASE != (V4L2_CTRL_CLASS_FM_RX | 0x900)");
DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
#else
# define V4L2_CID_FM_RX_CLASS_BASE (V4L2_CTRL_CLASS_FM_RX | 0x900)
#endif
#if defined(V4L2_CID_RF_TUNER_CLASS_BASE) || (defined(HAVE_DECL_V4L2_CID_RF_TUNER_CLASS_BASE) && HAVE_DECL_V4L2_CID_RF_TUNER_CLASS_BASE)
DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
static_assert((V4L2_CID_RF_TUNER_CLASS_BASE) == ((V4L2_CTRL_CLASS_RF_TUNER | 0x900)), "V4L2_CID_RF_TUNER_CLASS_BASE != (V4L2_CTRL_CLASS_RF_TUNER | 0x900)");
DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
#else
# define V4L2_CID_RF_TUNER_CLASS_BASE (V4L2_CTRL_CLASS_RF_TUNER | 0x900)
#endif
#if defined(V4L2_CID_DETECT_CLASS_BASE) || (defined(HAVE_DECL_V4L2_CID_DETECT_CLASS_BASE) && HAVE_DECL_V4L2_CID_DETECT_CLASS_BASE)
DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
static_assert((V4L2_CID_DETECT_CLASS_BASE) == ((V4L2_CTRL_CLASS_DETECT | 0x900)), "V4L2_CID_DETECT_CLASS_BASE != (V4L2_CTRL_CLASS_DETECT | 0x900)");
DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
#else
# define V4L2_CID_DETECT_CLASS_BASE (V4L2_CTRL_CLASS_DETECT | 0x900)
#endif

#ifndef XLAT_MACROS_ONLY

# ifdef IN_MPERS

extern const struct xlat v4l2_control_id_bases[];

# else

#  if !(defined HAVE_M32_MPERS || defined HAVE_MX32_MPERS)
static
#  endif
const struct xlat v4l2_control_id_bases[] = {
 XLAT(V4L2_CID_BASE),
 XLAT(V4L2_CID_USER_MEYE_BASE),
 XLAT(V4L2_CID_USER_BTTV_BASE),
 XLAT(V4L2_CID_USER_TI_VPE_BASE),
 XLAT(V4L2_CID_USER_IMX_BASE),
 XLAT(V4L2_CID_MPEG_BASE),
 XLAT(V4L2_CID_MPEG_CX2341X_BASE),
 XLAT(V4L2_CID_MPEG_MFC51_BASE),
 XLAT(V4L2_CID_CAMERA_CLASS_BASE),
 XLAT(V4L2_CID_FM_TX_CLASS_BASE),
 XLAT(V4L2_CID_FLASH_CLASS_BASE),
 XLAT(V4L2_CID_JPEG_CLASS_BASE),
 XLAT(V4L2_CID_IMAGE_SOURCE_CLASS_BASE),
 XLAT(V4L2_CID_IMAGE_PROC_CLASS_BASE),
 XLAT(V4L2_CID_DV_CLASS_BASE),
 XLAT(V4L2_CID_FM_RX_CLASS_BASE),
 XLAT(V4L2_CID_RF_TUNER_CLASS_BASE),
 XLAT(V4L2_CID_DETECT_CLASS_BASE),
 XLAT_END
};

# endif /* !IN_MPERS */

#endif /* !XLAT_MACROS_ONLY */
