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

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

#if defined(SND_CLICK) || (defined(HAVE_DECL_SND_CLICK) && HAVE_DECL_SND_CLICK)
DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
static_assert((SND_CLICK) == (0x00), "SND_CLICK != 0x00");
DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
#else
# define SND_CLICK 0x00
#endif
#if defined(SND_BELL) || (defined(HAVE_DECL_SND_BELL) && HAVE_DECL_SND_BELL)
DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
static_assert((SND_BELL) == (0x01), "SND_BELL != 0x01");
DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
#else
# define SND_BELL 0x01
#endif
#if defined(SND_TONE) || (defined(HAVE_DECL_SND_TONE) && HAVE_DECL_SND_TONE)
DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
static_assert((SND_TONE) == (0x02), "SND_TONE != 0x02");
DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
#else
# define SND_TONE 0x02
#endif

#ifndef XLAT_MACROS_ONLY

# ifdef IN_MPERS

#  error static const struct xlat evdev_snd in mpers mode

# else

static
const struct xlat evdev_snd[] = {
 [SND_CLICK] = XLAT(SND_CLICK),
 [SND_BELL] = XLAT(SND_BELL),
 [SND_TONE] = XLAT(SND_TONE),
 XLAT_END
};

# endif /* !IN_MPERS */

#endif /* !XLAT_MACROS_ONLY */
