4#ifndef QMULTIMEDIA_ENUM_TO_STRING_CONVERTER_P_H
5#define QMULTIMEDIA_ENUM_TO_STRING_CONVERTER_P_H
18#include <QtCore/qdebug.h>
19#include <QtCore/qstring.h>
20#include <QtCore/private/qglobal_p.h>
27#define QT_MM_IMPL_CAT(x, y) x##y
31#define QT_MM_IMPL_GEN_CASE_MAP_ENUM_TO_STRING(SYMBOL, STRING)
33 return QStringLiteral(STRING);
37#define QT_MM_IMPL_GEN_CASES_ENUM_TO_STRING(seq)
39 static_assert(true, "force semicolon")
40#define QT_MM_IMPL_GEN_CASES_ENUM_TO_STRING_1(x, y)
42#define QT_MM_IMPL_GEN_CASES_ENUM_TO_STRING_2(x, y)
44#define QT_MM_IMPL_GEN_CASES_ENUM_TO_STRING_1_END
45#define QT_MM_IMPL_GEN_CASES_ENUM_TO_STRING_2_END
53template <
typename Enum,
typename Role =
EnumName>
63#define QT_MM_MAKE_STRING_RESOLVER(Enum, EnumName, ...)
65 struct QtMultimediaPrivate::StringResolver<Enum, EnumName>
67 static std::optional<QString> toQString(Enum arg)
76 static_assert(true, "force semicolon")
80#define QT_MM_DEFINE_QDEBUG_ENUM(EnumType)
81 QDebug operator
<<(QDebug dbg, EnumType arg)
83 QDebugStateSaver saver(dbg);
85 std::optional<QString> resolved =
86 QtMultimediaPrivate::StringResolver<EnumType>::toQString(arg);
90 dbg << "Unknown Enum value";
93 static_assert(true, "force semicolon")