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

#ifdef IN_MPERS

extern const struct xlat v4l2_tuner_capabilities[];

#else

# if !(defined HAVE_M32_MPERS || defined HAVE_MX32_MPERS)
static
# endif
const struct xlat v4l2_tuner_capabilities[] = {
#if defined(V4L2_TUNER_CAP_LOW) || (defined(HAVE_DECL_V4L2_TUNER_CAP_LOW) && HAVE_DECL_V4L2_TUNER_CAP_LOW)
  XLAT(V4L2_TUNER_CAP_LOW),
#endif
#if defined(V4L2_TUNER_CAP_NORM) || (defined(HAVE_DECL_V4L2_TUNER_CAP_NORM) && HAVE_DECL_V4L2_TUNER_CAP_NORM)
  XLAT(V4L2_TUNER_CAP_NORM),
#endif
#if defined(V4L2_TUNER_CAP_HWSEEK_BOUNDED) || (defined(HAVE_DECL_V4L2_TUNER_CAP_HWSEEK_BOUNDED) && HAVE_DECL_V4L2_TUNER_CAP_HWSEEK_BOUNDED)
  XLAT(V4L2_TUNER_CAP_HWSEEK_BOUNDED),
#endif
#if defined(V4L2_TUNER_CAP_HWSEEK_WRAP) || (defined(HAVE_DECL_V4L2_TUNER_CAP_HWSEEK_WRAP) && HAVE_DECL_V4L2_TUNER_CAP_HWSEEK_WRAP)
  XLAT(V4L2_TUNER_CAP_HWSEEK_WRAP),
#endif
#if defined(V4L2_TUNER_CAP_STEREO) || (defined(HAVE_DECL_V4L2_TUNER_CAP_STEREO) && HAVE_DECL_V4L2_TUNER_CAP_STEREO)
  XLAT(V4L2_TUNER_CAP_STEREO),
#endif
#if defined(V4L2_TUNER_CAP_LANG2) || (defined(HAVE_DECL_V4L2_TUNER_CAP_LANG2) && HAVE_DECL_V4L2_TUNER_CAP_LANG2)
  XLAT(V4L2_TUNER_CAP_LANG2),
#endif
#if defined(V4L2_TUNER_CAP_SAP) || (defined(HAVE_DECL_V4L2_TUNER_CAP_SAP) && HAVE_DECL_V4L2_TUNER_CAP_SAP)
  XLAT(V4L2_TUNER_CAP_SAP),
#endif
#if defined(V4L2_TUNER_CAP_LANG1) || (defined(HAVE_DECL_V4L2_TUNER_CAP_LANG1) && HAVE_DECL_V4L2_TUNER_CAP_LANG1)
  XLAT(V4L2_TUNER_CAP_LANG1),
#endif
#if defined(V4L2_TUNER_CAP_RDS) || (defined(HAVE_DECL_V4L2_TUNER_CAP_RDS) && HAVE_DECL_V4L2_TUNER_CAP_RDS)
  XLAT(V4L2_TUNER_CAP_RDS),
#endif
#if defined(V4L2_TUNER_CAP_RDS_BLOCK_IO) || (defined(HAVE_DECL_V4L2_TUNER_CAP_RDS_BLOCK_IO) && HAVE_DECL_V4L2_TUNER_CAP_RDS_BLOCK_IO)
  XLAT(V4L2_TUNER_CAP_RDS_BLOCK_IO),
#endif
#if defined(V4L2_TUNER_CAP_RDS_CONTROLS) || (defined(HAVE_DECL_V4L2_TUNER_CAP_RDS_CONTROLS) && HAVE_DECL_V4L2_TUNER_CAP_RDS_CONTROLS)
  XLAT(V4L2_TUNER_CAP_RDS_CONTROLS),
#endif
#if defined(V4L2_TUNER_CAP_FREQ_BANDS) || (defined(HAVE_DECL_V4L2_TUNER_CAP_FREQ_BANDS) && HAVE_DECL_V4L2_TUNER_CAP_FREQ_BANDS)
  XLAT(V4L2_TUNER_CAP_FREQ_BANDS),
#endif
#if defined(V4L2_TUNER_CAP_HWSEEK_PROG_LIM) || (defined(HAVE_DECL_V4L2_TUNER_CAP_HWSEEK_PROG_LIM) && HAVE_DECL_V4L2_TUNER_CAP_HWSEEK_PROG_LIM)
  XLAT(V4L2_TUNER_CAP_HWSEEK_PROG_LIM),
#endif
#if defined(V4L2_TUNER_CAP_1HZ) || (defined(HAVE_DECL_V4L2_TUNER_CAP_1HZ) && HAVE_DECL_V4L2_TUNER_CAP_1HZ)
  XLAT(V4L2_TUNER_CAP_1HZ),
#endif
 XLAT_END
};

#endif /* !IN_MPERS */
