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

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
};
