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

#ifdef IN_MPERS

# error static const struct xlat v4l2_control_types in mpers mode

#else

static
const struct xlat v4l2_control_types[] = {
#if defined(V4L2_CTRL_TYPE_INTEGER) || (defined(HAVE_DECL_V4L2_CTRL_TYPE_INTEGER) && HAVE_DECL_V4L2_CTRL_TYPE_INTEGER)
  XLAT(V4L2_CTRL_TYPE_INTEGER),
#endif
#if defined(V4L2_CTRL_TYPE_BOOLEAN) || (defined(HAVE_DECL_V4L2_CTRL_TYPE_BOOLEAN) && HAVE_DECL_V4L2_CTRL_TYPE_BOOLEAN)
  XLAT(V4L2_CTRL_TYPE_BOOLEAN),
#endif
#if defined(V4L2_CTRL_TYPE_MENU) || (defined(HAVE_DECL_V4L2_CTRL_TYPE_MENU) && HAVE_DECL_V4L2_CTRL_TYPE_MENU)
  XLAT(V4L2_CTRL_TYPE_MENU),
#endif
#if defined(V4L2_CTRL_TYPE_INTEGER_MENU) || (defined(HAVE_DECL_V4L2_CTRL_TYPE_INTEGER_MENU) && HAVE_DECL_V4L2_CTRL_TYPE_INTEGER_MENU)
  XLAT(V4L2_CTRL_TYPE_INTEGER_MENU),
#endif
#if defined(V4L2_CTRL_TYPE_BITMASK) || (defined(HAVE_DECL_V4L2_CTRL_TYPE_BITMASK) && HAVE_DECL_V4L2_CTRL_TYPE_BITMASK)
  XLAT(V4L2_CTRL_TYPE_BITMASK),
#endif
#if defined(V4L2_CTRL_TYPE_BUTTON) || (defined(HAVE_DECL_V4L2_CTRL_TYPE_BUTTON) && HAVE_DECL_V4L2_CTRL_TYPE_BUTTON)
  XLAT(V4L2_CTRL_TYPE_BUTTON),
#endif
#if defined(V4L2_CTRL_TYPE_INTEGER64) || (defined(HAVE_DECL_V4L2_CTRL_TYPE_INTEGER64) && HAVE_DECL_V4L2_CTRL_TYPE_INTEGER64)
  XLAT(V4L2_CTRL_TYPE_INTEGER64),
#endif
#if defined(V4L2_CTRL_TYPE_STRING) || (defined(HAVE_DECL_V4L2_CTRL_TYPE_STRING) && HAVE_DECL_V4L2_CTRL_TYPE_STRING)
  XLAT(V4L2_CTRL_TYPE_STRING),
#endif
#if defined(V4L2_CTRL_TYPE_CTRL_CLASS) || (defined(HAVE_DECL_V4L2_CTRL_TYPE_CTRL_CLASS) && HAVE_DECL_V4L2_CTRL_TYPE_CTRL_CLASS)
  XLAT(V4L2_CTRL_TYPE_CTRL_CLASS),
#endif
 XLAT_END
};

#endif /* !IN_MPERS */
