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

#ifdef IN_MPERS

# error static const struct xlat v4l2_control_classes in mpers mode

#else

static
const struct xlat v4l2_control_classes[] = {
#if defined(V4L2_CTRL_CLASS_USER) || (defined(HAVE_DECL_V4L2_CTRL_CLASS_USER) && HAVE_DECL_V4L2_CTRL_CLASS_USER)
  XLAT(V4L2_CTRL_CLASS_USER),
#endif
#if defined(V4L2_CTRL_CLASS_MPEG) || (defined(HAVE_DECL_V4L2_CTRL_CLASS_MPEG) && HAVE_DECL_V4L2_CTRL_CLASS_MPEG)
  XLAT(V4L2_CTRL_CLASS_MPEG),
#endif
#if defined(V4L2_CTRL_CLASS_CAMERA) || (defined(HAVE_DECL_V4L2_CTRL_CLASS_CAMERA) && HAVE_DECL_V4L2_CTRL_CLASS_CAMERA)
  XLAT(V4L2_CTRL_CLASS_CAMERA),
#endif
#if defined(V4L2_CTRL_CLASS_FM_TX) || (defined(HAVE_DECL_V4L2_CTRL_CLASS_FM_TX) && HAVE_DECL_V4L2_CTRL_CLASS_FM_TX)
  XLAT(V4L2_CTRL_CLASS_FM_TX),
#endif
#if defined(V4L2_CTRL_CLASS_FLASH) || (defined(HAVE_DECL_V4L2_CTRL_CLASS_FLASH) && HAVE_DECL_V4L2_CTRL_CLASS_FLASH)
  XLAT(V4L2_CTRL_CLASS_FLASH),
#endif
#if defined(V4L2_CTRL_CLASS_JPEG) || (defined(HAVE_DECL_V4L2_CTRL_CLASS_JPEG) && HAVE_DECL_V4L2_CTRL_CLASS_JPEG)
  XLAT(V4L2_CTRL_CLASS_JPEG),
#endif
#if defined(V4L2_CTRL_CLASS_IMAGE_SOURCE) || (defined(HAVE_DECL_V4L2_CTRL_CLASS_IMAGE_SOURCE) && HAVE_DECL_V4L2_CTRL_CLASS_IMAGE_SOURCE)
  XLAT(V4L2_CTRL_CLASS_IMAGE_SOURCE),
#endif
#if defined(V4L2_CTRL_CLASS_IMAGE_PROC) || (defined(HAVE_DECL_V4L2_CTRL_CLASS_IMAGE_PROC) && HAVE_DECL_V4L2_CTRL_CLASS_IMAGE_PROC)
  XLAT(V4L2_CTRL_CLASS_IMAGE_PROC),
#endif
#if defined(V4L2_CTRL_CLASS_FM_RX) || (defined(HAVE_DECL_V4L2_CTRL_CLASS_FM_RX) && HAVE_DECL_V4L2_CTRL_CLASS_FM_RX)
  XLAT(V4L2_CTRL_CLASS_FM_RX),
#endif
 XLAT_END
};

#endif /* !IN_MPERS */
