/****************************************************************************
** Meta object code from reading C++ file 'qmediametadata.h'
**
** Created by: The Qt Meta Object Compiler version 69 (Qt 6.12.0)
**
** WARNING! All changes made in this file will be lost!
*****************************************************************************/

#include "../../../../../qtmultimedia/src/multimedia/qmediametadata.h"
#include <QtCore/qmetatype.h>

#include <QtCore/qtmochelpers.h>

#include <memory>


#include <QtCore/qxptype_traits.h>
#if !defined(Q_MOC_OUTPUT_REVISION)
#error "The header file 'qmediametadata.h' doesn't include <QObject>."
#elif Q_MOC_OUTPUT_REVISION != 69
#error "This file was generated using the moc from 6.12.0. It"
#error "cannot be used with the include files from this version of Qt."
#error "(The moc has changed too much.)"
#endif

#ifndef Q_CONSTINIT
#define Q_CONSTINIT
#endif

QT_WARNING_PUSH
QT_WARNING_DISABLE_DEPRECATED
QT_WARNING_DISABLE_GCC("-Wuseless-cast")
namespace {
struct qt_meta_tag_ZN14QMediaMetaDataE_t {};
} // unnamed namespace

template <> constexpr inline auto QMediaMetaData::qt_create_metaobjectdata<qt_meta_tag_ZN14QMediaMetaDataE_t>()
{
    namespace QMC = QtMocConstants;
    QtMocHelpers::StringRefStorage qt_stringData {
        "QMediaMetaData",
        "value",
        "QVariant",
        "",
        "Key",
        "k",
        "insert",
        "remove",
        "keys",
        "QList<Key>",
        "clear",
        "isEmpty",
        "stringValue",
        "metaDataKeyToString",
        "Title",
        "Author",
        "Comment",
        "Description",
        "Genre",
        "Date",
        "Language",
        "Publisher",
        "Copyright",
        "Url",
        "Duration",
        "MediaType",
        "FileFormat",
        "AudioBitRate",
        "AudioCodec",
        "VideoBitRate",
        "VideoCodec",
        "VideoFrameRate",
        "AlbumTitle",
        "AlbumArtist",
        "ContributingArtist",
        "TrackNumber",
        "Composer",
        "LeadPerformer",
        "ThumbnailImage",
        "CoverArtImage",
        "Orientation",
        "Resolution",
        "HasHdrContent"
    };

    QtMocHelpers::UintData qt_methods {
        // Method 'value'
        QtMocHelpers::MethodData<QVariant(enum Key) const>(1, 3, QMC::AccessPublic, 0x80000000 | 2, {{
            { 0x80000000 | 4, 5 },
        }}),
        // Method 'insert'
        QtMocHelpers::MethodData<void(enum Key, const QVariant &)>(6, 3, QMC::AccessPublic, QMetaType::Void, {{
            { 0x80000000 | 4, 5 }, { 0x80000000 | 2, 1 },
        }}),
        // Method 'remove'
        QtMocHelpers::MethodData<void(enum Key)>(7, 3, QMC::AccessPublic, QMetaType::Void, {{
            { 0x80000000 | 4, 5 },
        }}),
        // Method 'keys'
        QtMocHelpers::MethodData<QList<Key>() const>(8, 3, QMC::AccessPublic, 0x80000000 | 9),
        // Method 'clear'
        QtMocHelpers::MethodData<void()>(10, 3, QMC::AccessPublic, QMetaType::Void),
        // Method 'isEmpty'
        QtMocHelpers::MethodData<bool() const>(11, 3, QMC::AccessPublic, QMetaType::Bool),
        // Method 'stringValue'
        QtMocHelpers::MethodData<QString(enum Key) const>(12, 3, QMC::AccessPublic, QMetaType::QString, {{
            { 0x80000000 | 4, 5 },
        }}),
        // Method 'metaDataKeyToString'
        QtMocHelpers::MethodData<QString(enum Key)>(13, 3, QMC::AccessPublic, QMetaType::QString, {{
            { 0x80000000 | 4, 5 },
        }}),
    };
    QtMocHelpers::UintData qt_properties {
    };
    QtMocHelpers::UintData qt_enums {
        // enum 'Key'
        QtMocHelpers::EnumData<enum Key>(4, 4, QMC::EnumFlags{}).add({
            {   14, Key::Title },
            {   15, Key::Author },
            {   16, Key::Comment },
            {   17, Key::Description },
            {   18, Key::Genre },
            {   19, Key::Date },
            {   20, Key::Language },
            {   21, Key::Publisher },
            {   22, Key::Copyright },
            {   23, Key::Url },
            {   24, Key::Duration },
            {   25, Key::MediaType },
            {   26, Key::FileFormat },
            {   27, Key::AudioBitRate },
            {   28, Key::AudioCodec },
            {   29, Key::VideoBitRate },
            {   30, Key::VideoCodec },
            {   31, Key::VideoFrameRate },
            {   32, Key::AlbumTitle },
            {   33, Key::AlbumArtist },
            {   34, Key::ContributingArtist },
            {   35, Key::TrackNumber },
            {   36, Key::Composer },
            {   37, Key::LeadPerformer },
            {   38, Key::ThumbnailImage },
            {   39, Key::CoverArtImage },
            {   40, Key::Orientation },
            {   41, Key::Resolution },
            {   42, Key::HasHdrContent },
        }),
    };
    return QtMocHelpers::metaObjectData<QMediaMetaData, qt_meta_tag_ZN14QMediaMetaDataE_t>(QMC::PropertyAccessInStaticMetaCall, qt_stringData,
            qt_methods, qt_properties, qt_enums);
}
Q_CONSTINIT const QMetaObject QMediaMetaData::staticMetaObject = { {
    nullptr,
    qt_staticMetaObjectStaticContent<qt_meta_tag_ZN14QMediaMetaDataE_t>.stringdata,
    qt_staticMetaObjectStaticContent<qt_meta_tag_ZN14QMediaMetaDataE_t>.data,
    qt_static_metacall,
    nullptr,
    qt_staticMetaObjectRelocatingContent<qt_meta_tag_ZN14QMediaMetaDataE_t>.metaTypes,
    nullptr
} };

void QMediaMetaData::qt_static_metacall(QObject *_o, QMetaObject::Call _c, int _id, void **_a)
{
    auto *_t = reinterpret_cast<QMediaMetaData *>(_o);
    if (_c == QMetaObject::InvokeMetaMethod) {
        switch (_id) {
        case 0: { QVariant _r = _t->value((*reinterpret_cast<std::add_pointer_t<enum Key>>(_a[1])));
            if (_a[0]) *reinterpret_cast<QVariant*>(_a[0]) = std::move(_r); }  break;
        case 1: _t->insert((*reinterpret_cast<std::add_pointer_t<enum Key>>(_a[1])),(*reinterpret_cast<std::add_pointer_t<QVariant>>(_a[2]))); break;
        case 2: _t->remove((*reinterpret_cast<std::add_pointer_t<enum Key>>(_a[1]))); break;
        case 3: { QList<Key> _r = _t->keys();
            if (_a[0]) *reinterpret_cast<QList<Key>*>(_a[0]) = std::move(_r); }  break;
        case 4: _t->clear(); break;
        case 5: { bool _r = _t->isEmpty();
            if (_a[0]) *reinterpret_cast<bool*>(_a[0]) = std::move(_r); }  break;
        case 6: { QString _r = _t->stringValue((*reinterpret_cast<std::add_pointer_t<enum Key>>(_a[1])));
            if (_a[0]) *reinterpret_cast<QString*>(_a[0]) = std::move(_r); }  break;
        case 7: { QString _r = _t->metaDataKeyToString((*reinterpret_cast<std::add_pointer_t<enum Key>>(_a[1])));
            if (_a[0]) *reinterpret_cast<QString*>(_a[0]) = std::move(_r); }  break;
        default: ;
        }
    }
}
QT_WARNING_POP
