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

#include <memory>
#include "../../muse-4.2.1/src/muse/song.h"
#include <QtCore/qbytearray.h>
#include <QtCore/qmetatype.h>
#if !defined(Q_MOC_OUTPUT_REVISION)
#error "The header file 'song.h' doesn't include <QObject>."
#elif Q_MOC_OUTPUT_REVISION != 67
#error "This file was generated using the moc from 5.15.19. It"
#error "cannot be used with the include files from this version of Qt."
#error "(The moc has changed too much.)"
#endif

QT_BEGIN_MOC_NAMESPACE
QT_WARNING_PUSH
QT_WARNING_DISABLE_DEPRECATED
struct qt_meta_stringdata_MusECore__Song_t {
    QByteArrayData data[81];
    char stringdata0[927];
};
#define QT_MOC_LITERAL(idx, ofs, len) \
    Q_STATIC_BYTE_ARRAY_DATA_HEADER_INITIALIZER_WITH_OFFSET(len, \
    qptrdiff(offsetof(qt_meta_stringdata_MusECore__Song_t, stringdata0) + ofs \
        - idx * sizeof(QByteArrayData)) \
    )
static const qt_meta_stringdata_MusECore__Song_t qt_meta_stringdata_MusECore__Song = {
    {
QT_MOC_LITERAL(0, 0, 14), // "MusECore::Song"
QT_MOC_LITERAL(1, 15, 11), // "songChanged"
QT_MOC_LITERAL(2, 27, 0), // ""
QT_MOC_LITERAL(3, 28, 29), // "MusECore::SongChangedStruct_t"
QT_MOC_LITERAL(4, 58, 10), // "posChanged"
QT_MOC_LITERAL(5, 69, 13), // "MusECore::Pos"
QT_MOC_LITERAL(6, 83, 11), // "loopChanged"
QT_MOC_LITERAL(7, 95, 13), // "recordChanged"
QT_MOC_LITERAL(8, 109, 11), // "playChanged"
QT_MOC_LITERAL(9, 121, 14), // "punchinChanged"
QT_MOC_LITERAL(10, 136, 15), // "punchoutChanged"
QT_MOC_LITERAL(11, 152, 12), // "clickChanged"
QT_MOC_LITERAL(12, 165, 15), // "quantizeChanged"
QT_MOC_LITERAL(13, 181, 13), // "markerChanged"
QT_MOC_LITERAL(14, 195, 8), // "midiNote"
QT_MOC_LITERAL(15, 204, 5), // "pitch"
QT_MOC_LITERAL(16, 210, 4), // "velo"
QT_MOC_LITERAL(17, 215, 17), // "controllerChanged"
QT_MOC_LITERAL(18, 233, 22), // "const MusECore::Track*"
QT_MOC_LITERAL(19, 256, 4), // "clId"
QT_MOC_LITERAL(20, 261, 5), // "frame"
QT_MOC_LITERAL(21, 267, 20), // "CtrlGUIMessage::Type"
QT_MOC_LITERAL(22, 288, 4), // "type"
QT_MOC_LITERAL(23, 293, 15), // "newPartsCreated"
QT_MOC_LITERAL(24, 309, 64), // "std::map<const MusECore::Part..."
QT_MOC_LITERAL(25, 374, 8), // "sigDirty"
QT_MOC_LITERAL(26, 383, 14), // "recModeChanged"
QT_MOC_LITERAL(27, 398, 16), // "cycleModeChanged"
QT_MOC_LITERAL(28, 415, 17), // "midiLearnReceived"
QT_MOC_LITERAL(29, 433, 15), // "MidiRecordEvent"
QT_MOC_LITERAL(30, 449, 6), // "seekTo"
QT_MOC_LITERAL(31, 456, 4), // "tick"
QT_MOC_LITERAL(32, 461, 6), // "update"
QT_MOC_LITERAL(33, 468, 19), // "SongChangedStruct_t"
QT_MOC_LITERAL(34, 488, 5), // "flags"
QT_MOC_LITERAL(35, 494, 14), // "allowRecursion"
QT_MOC_LITERAL(36, 509, 4), // "beat"
QT_MOC_LITERAL(37, 514, 4), // "undo"
QT_MOC_LITERAL(38, 519, 4), // "redo"
QT_MOC_LITERAL(39, 524, 8), // "setTempo"
QT_MOC_LITERAL(40, 533, 1), // "t"
QT_MOC_LITERAL(41, 535, 6), // "setSig"
QT_MOC_LITERAL(42, 542, 1), // "a"
QT_MOC_LITERAL(43, 544, 1), // "b"
QT_MOC_LITERAL(44, 546, 23), // "MusECore::TimeSignature"
QT_MOC_LITERAL(45, 570, 5), // "tempo"
QT_MOC_LITERAL(46, 576, 13), // "setMasterFlag"
QT_MOC_LITERAL(47, 590, 4), // "flag"
QT_MOC_LITERAL(48, 595, 7), // "getLoop"
QT_MOC_LITERAL(49, 603, 7), // "setLoop"
QT_MOC_LITERAL(50, 611, 1), // "f"
QT_MOC_LITERAL(51, 613, 9), // "setRecord"
QT_MOC_LITERAL(52, 623, 13), // "autoRecEnable"
QT_MOC_LITERAL(53, 637, 13), // "clearTrackRec"
QT_MOC_LITERAL(54, 651, 7), // "setPlay"
QT_MOC_LITERAL(55, 659, 7), // "setStop"
QT_MOC_LITERAL(56, 667, 11), // "forwardStep"
QT_MOC_LITERAL(57, 679, 11), // "rewindStart"
QT_MOC_LITERAL(58, 691, 10), // "rewindStep"
QT_MOC_LITERAL(59, 702, 10), // "setPunchin"
QT_MOC_LITERAL(60, 713, 11), // "setPunchout"
QT_MOC_LITERAL(61, 725, 8), // "setClick"
QT_MOC_LITERAL(62, 734, 3), // "val"
QT_MOC_LITERAL(63, 738, 11), // "setQuantize"
QT_MOC_LITERAL(64, 750, 5), // "panic"
QT_MOC_LITERAL(65, 756, 9), // "seqSignal"
QT_MOC_LITERAL(66, 766, 2), // "fd"
QT_MOC_LITERAL(67, 769, 13), // "resetFastMove"
QT_MOC_LITERAL(68, 783, 11), // "createTrack"
QT_MOC_LITERAL(69, 795, 6), // "Track*"
QT_MOC_LITERAL(70, 802, 16), // "Track::TrackType"
QT_MOC_LITERAL(71, 819, 11), // "setDefaults"
QT_MOC_LITERAL(72, 831, 8), // "addTrack"
QT_MOC_LITERAL(73, 840, 8), // "insertAt"
QT_MOC_LITERAL(74, 849, 11), // "addNewTrack"
QT_MOC_LITERAL(75, 861, 8), // "QAction*"
QT_MOC_LITERAL(76, 870, 6), // "action"
QT_MOC_LITERAL(77, 877, 15), // "duplicateTracks"
QT_MOC_LITERAL(78, 893, 8), // "setDirty"
QT_MOC_LITERAL(79, 902, 16), // "restartRecording"
QT_MOC_LITERAL(80, 919, 7) // "discard"

    },
    "MusECore::Song\0songChanged\0\0"
    "MusECore::SongChangedStruct_t\0posChanged\0"
    "MusECore::Pos\0loopChanged\0recordChanged\0"
    "playChanged\0punchinChanged\0punchoutChanged\0"
    "clickChanged\0quantizeChanged\0markerChanged\0"
    "midiNote\0pitch\0velo\0controllerChanged\0"
    "const MusECore::Track*\0clId\0frame\0"
    "CtrlGUIMessage::Type\0type\0newPartsCreated\0"
    "std::map<const MusECore::Part*,std::set<const MusECore::Part*> >\0"
    "sigDirty\0recModeChanged\0cycleModeChanged\0"
    "midiLearnReceived\0MidiRecordEvent\0"
    "seekTo\0tick\0update\0SongChangedStruct_t\0"
    "flags\0allowRecursion\0beat\0undo\0redo\0"
    "setTempo\0t\0setSig\0a\0b\0MusECore::TimeSignature\0"
    "tempo\0setMasterFlag\0flag\0getLoop\0"
    "setLoop\0f\0setRecord\0autoRecEnable\0"
    "clearTrackRec\0setPlay\0setStop\0forwardStep\0"
    "rewindStart\0rewindStep\0setPunchin\0"
    "setPunchout\0setClick\0val\0setQuantize\0"
    "panic\0seqSignal\0fd\0resetFastMove\0"
    "createTrack\0Track*\0Track::TrackType\0"
    "setDefaults\0addTrack\0insertAt\0addNewTrack\0"
    "QAction*\0action\0duplicateTracks\0"
    "setDirty\0restartRecording\0discard"
};
#undef QT_MOC_LITERAL

static const uint qt_meta_data_MusECore__Song[] = {

 // content:
       8,       // revision
       0,       // classname
       0,    0, // classinfo
      60,   14, // methods
       0,    0, // properties
       0,    0, // enums/sets
       0,    0, // constructors
       0,       // flags
      20,       // signalCount

 // signals: name, argc, parameters, tag, flags
       1,    1,  314,    2, 0x06 /* Public */,
       4,    3,  317,    2, 0x06 /* Public */,
       4,    3,  324,    2, 0x06 /* Public */,
       6,    1,  331,    2, 0x06 /* Public */,
       7,    1,  334,    2, 0x06 /* Public */,
       8,    1,  337,    2, 0x06 /* Public */,
       9,    1,  340,    2, 0x06 /* Public */,
      10,    1,  343,    2, 0x06 /* Public */,
      11,    1,  346,    2, 0x06 /* Public */,
      12,    1,  349,    2, 0x06 /* Public */,
      13,    1,  352,    2, 0x06 /* Public */,
      14,    2,  355,    2, 0x06 /* Public */,
      17,    4,  360,    2, 0x06 /* Public */,
      17,    3,  369,    2, 0x26 /* Public | MethodCloned */,
      17,    2,  376,    2, 0x26 /* Public | MethodCloned */,
      23,    1,  381,    2, 0x06 /* Public */,
      25,    0,  384,    2, 0x06 /* Public */,
      26,    1,  385,    2, 0x06 /* Public */,
      27,    1,  388,    2, 0x06 /* Public */,
      28,    1,  391,    2, 0x06 /* Public */,

 // slots: name, argc, parameters, tag, flags
      30,    1,  394,    2, 0x0a /* Public */,
      32,    2,  397,    2, 0x0a /* Public */,
      32,    1,  402,    2, 0x2a /* Public | MethodCloned */,
      32,    0,  405,    2, 0x2a /* Public | MethodCloned */,
      36,    0,  406,    2, 0x0a /* Public */,
      37,    0,  407,    2, 0x0a /* Public */,
      38,    0,  408,    2, 0x0a /* Public */,
      39,    1,  409,    2, 0x0a /* Public */,
      41,    2,  412,    2, 0x0a /* Public */,
      41,    1,  417,    2, 0x0a /* Public */,
      39,    1,  420,    2, 0x0a /* Public */,
      46,    1,  423,    2, 0x0a /* Public */,
      48,    0,  426,    2, 0x0a /* Public */,
      49,    1,  427,    2, 0x0a /* Public */,
      51,    2,  430,    2, 0x0a /* Public */,
      51,    1,  435,    2, 0x2a /* Public | MethodCloned */,
      53,    0,  438,    2, 0x0a /* Public */,
      54,    1,  439,    2, 0x0a /* Public */,
      55,    1,  442,    2, 0x0a /* Public */,
      56,    0,  445,    2, 0x0a /* Public */,
      57,    0,  446,    2, 0x0a /* Public */,
      58,    0,  447,    2, 0x0a /* Public */,
      59,    1,  448,    2, 0x0a /* Public */,
      60,    1,  451,    2, 0x0a /* Public */,
      61,    1,  454,    2, 0x0a /* Public */,
      63,    1,  457,    2, 0x0a /* Public */,
      64,    0,  460,    2, 0x0a /* Public */,
      65,    1,  461,    2, 0x0a /* Public */,
      67,    0,  464,    2, 0x0a /* Public */,
      68,    2,  465,    2, 0x0a /* Public */,
      68,    1,  470,    2, 0x2a /* Public | MethodCloned */,
      72,    2,  473,    2, 0x0a /* Public */,
      72,    1,  478,    2, 0x2a /* Public | MethodCloned */,
      74,    2,  481,    2, 0x0a /* Public */,
      74,    1,  486,    2, 0x2a /* Public | MethodCloned */,
      77,    1,  489,    2, 0x0a /* Public */,
      77,    0,  492,    2, 0x2a /* Public | MethodCloned */,
      78,    0,  493,    2, 0x0a /* Public */,
      79,    1,  494,    2, 0x0a /* Public */,
      79,    0,  497,    2, 0x2a /* Public | MethodCloned */,

 // signals: parameters
    QMetaType::Void, 0x80000000 | 3,    2,
    QMetaType::Void, QMetaType::Int, QMetaType::UInt, QMetaType::Bool,    2,    2,    2,
    QMetaType::Void, QMetaType::Int, 0x80000000 | 5, QMetaType::Bool,    2,    2,    2,
    QMetaType::Void, QMetaType::Bool,    2,
    QMetaType::Void, QMetaType::Bool,    2,
    QMetaType::Void, QMetaType::Bool,    2,
    QMetaType::Void, QMetaType::Bool,    2,
    QMetaType::Void, QMetaType::Bool,    2,
    QMetaType::Void, QMetaType::Bool,    2,
    QMetaType::Void, QMetaType::Bool,    2,
    QMetaType::Void, QMetaType::Int,    2,
    QMetaType::Void, QMetaType::Int, QMetaType::Int,   15,   16,
    QMetaType::Void, 0x80000000 | 18, QMetaType::Int, QMetaType::UInt, 0x80000000 | 21,    2,   19,   20,   22,
    QMetaType::Void, 0x80000000 | 18, QMetaType::Int, QMetaType::UInt,    2,   19,   20,
    QMetaType::Void, 0x80000000 | 18, QMetaType::Int,    2,   19,
    QMetaType::Void, 0x80000000 | 24,    2,
    QMetaType::Void,
    QMetaType::Void, QMetaType::Int,    2,
    QMetaType::Void, QMetaType::Int,    2,
    QMetaType::Void, 0x80000000 | 29,    2,

 // slots: parameters
    QMetaType::Void, QMetaType::Int,   31,
    QMetaType::Void, 0x80000000 | 33, QMetaType::Bool,   34,   35,
    QMetaType::Void, 0x80000000 | 33,   34,
    QMetaType::Void,
    QMetaType::Void,
    QMetaType::Void,
    QMetaType::Void,
    QMetaType::Void, QMetaType::Int,   40,
    QMetaType::Void, QMetaType::Int, QMetaType::Int,   42,   43,
    QMetaType::Void, 0x80000000 | 44,    2,
    QMetaType::Void, QMetaType::Double,   45,
    QMetaType::Void, QMetaType::Bool,   47,
    QMetaType::Bool,
    QMetaType::Void, QMetaType::Bool,   50,
    QMetaType::Void, QMetaType::Bool, QMetaType::Bool,   50,   52,
    QMetaType::Void, QMetaType::Bool,   50,
    QMetaType::Void,
    QMetaType::Void, QMetaType::Bool,   50,
    QMetaType::Void, QMetaType::Bool,    2,
    QMetaType::Void,
    QMetaType::Void,
    QMetaType::Void,
    QMetaType::Void, QMetaType::Bool,   50,
    QMetaType::Void, QMetaType::Bool,   50,
    QMetaType::Void, QMetaType::Bool,   62,
    QMetaType::Void, QMetaType::Bool,   62,
    QMetaType::Void,
    QMetaType::Void, QMetaType::Int,   66,
    QMetaType::Void,
    0x80000000 | 69, 0x80000000 | 70, QMetaType::Bool,   22,   71,
    0x80000000 | 69, 0x80000000 | 70,   22,
    0x80000000 | 69, 0x80000000 | 70, 0x80000000 | 69,   22,   73,
    0x80000000 | 69, 0x80000000 | 70,   22,
    0x80000000 | 69, 0x80000000 | 75, 0x80000000 | 69,   76,   73,
    0x80000000 | 69, 0x80000000 | 75,   76,
    QMetaType::Void, 0x80000000 | 69,   40,
    QMetaType::Void,
    QMetaType::Void,
    QMetaType::Void, QMetaType::Bool,   80,
    QMetaType::Void,

       0        // eod
};

void MusECore::Song::qt_static_metacall(QObject *_o, QMetaObject::Call _c, int _id, void **_a)
{
    if (_c == QMetaObject::InvokeMetaMethod) {
        auto *_t = static_cast<Song *>(_o);
        (void)_t;
        switch (_id) {
        case 0: _t->songChanged((*reinterpret_cast< MusECore::SongChangedStruct_t(*)>(_a[1]))); break;
        case 1: _t->posChanged((*reinterpret_cast< int(*)>(_a[1])),(*reinterpret_cast< uint(*)>(_a[2])),(*reinterpret_cast< bool(*)>(_a[3]))); break;
        case 2: _t->posChanged((*reinterpret_cast< int(*)>(_a[1])),(*reinterpret_cast< const MusECore::Pos(*)>(_a[2])),(*reinterpret_cast< bool(*)>(_a[3]))); break;
        case 3: _t->loopChanged((*reinterpret_cast< bool(*)>(_a[1]))); break;
        case 4: _t->recordChanged((*reinterpret_cast< bool(*)>(_a[1]))); break;
        case 5: _t->playChanged((*reinterpret_cast< bool(*)>(_a[1]))); break;
        case 6: _t->punchinChanged((*reinterpret_cast< bool(*)>(_a[1]))); break;
        case 7: _t->punchoutChanged((*reinterpret_cast< bool(*)>(_a[1]))); break;
        case 8: _t->clickChanged((*reinterpret_cast< bool(*)>(_a[1]))); break;
        case 9: _t->quantizeChanged((*reinterpret_cast< bool(*)>(_a[1]))); break;
        case 10: _t->markerChanged((*reinterpret_cast< int(*)>(_a[1]))); break;
        case 11: _t->midiNote((*reinterpret_cast< int(*)>(_a[1])),(*reinterpret_cast< int(*)>(_a[2]))); break;
        case 12: _t->controllerChanged((*reinterpret_cast< const MusECore::Track*(*)>(_a[1])),(*reinterpret_cast< int(*)>(_a[2])),(*reinterpret_cast< uint(*)>(_a[3])),(*reinterpret_cast< CtrlGUIMessage::Type(*)>(_a[4]))); break;
        case 13: _t->controllerChanged((*reinterpret_cast< const MusECore::Track*(*)>(_a[1])),(*reinterpret_cast< int(*)>(_a[2])),(*reinterpret_cast< uint(*)>(_a[3]))); break;
        case 14: _t->controllerChanged((*reinterpret_cast< const MusECore::Track*(*)>(_a[1])),(*reinterpret_cast< int(*)>(_a[2]))); break;
        case 15: _t->newPartsCreated((*reinterpret_cast< const std::map<const MusECore::Part*,std::set<const MusECore::Part*> >(*)>(_a[1]))); break;
        case 16: _t->sigDirty(); break;
        case 17: _t->recModeChanged((*reinterpret_cast< int(*)>(_a[1]))); break;
        case 18: _t->cycleModeChanged((*reinterpret_cast< int(*)>(_a[1]))); break;
        case 19: _t->midiLearnReceived((*reinterpret_cast< const MidiRecordEvent(*)>(_a[1]))); break;
        case 20: _t->seekTo((*reinterpret_cast< int(*)>(_a[1]))); break;
        case 21: _t->update((*reinterpret_cast< SongChangedStruct_t(*)>(_a[1])),(*reinterpret_cast< bool(*)>(_a[2]))); break;
        case 22: _t->update((*reinterpret_cast< SongChangedStruct_t(*)>(_a[1]))); break;
        case 23: _t->update(); break;
        case 24: _t->beat(); break;
        case 25: _t->undo(); break;
        case 26: _t->redo(); break;
        case 27: _t->setTempo((*reinterpret_cast< int(*)>(_a[1]))); break;
        case 28: _t->setSig((*reinterpret_cast< int(*)>(_a[1])),(*reinterpret_cast< int(*)>(_a[2]))); break;
        case 29: _t->setSig((*reinterpret_cast< const MusECore::TimeSignature(*)>(_a[1]))); break;
        case 30: _t->setTempo((*reinterpret_cast< double(*)>(_a[1]))); break;
        case 31: _t->setMasterFlag((*reinterpret_cast< bool(*)>(_a[1]))); break;
        case 32: { bool _r = _t->getLoop();
            if (_a[0]) *reinterpret_cast< bool*>(_a[0]) = std::move(_r); }  break;
        case 33: _t->setLoop((*reinterpret_cast< bool(*)>(_a[1]))); break;
        case 34: _t->setRecord((*reinterpret_cast< bool(*)>(_a[1])),(*reinterpret_cast< bool(*)>(_a[2]))); break;
        case 35: _t->setRecord((*reinterpret_cast< bool(*)>(_a[1]))); break;
        case 36: _t->clearTrackRec(); break;
        case 37: _t->setPlay((*reinterpret_cast< bool(*)>(_a[1]))); break;
        case 38: _t->setStop((*reinterpret_cast< bool(*)>(_a[1]))); break;
        case 39: _t->forwardStep(); break;
        case 40: _t->rewindStart(); break;
        case 41: _t->rewindStep(); break;
        case 42: _t->setPunchin((*reinterpret_cast< bool(*)>(_a[1]))); break;
        case 43: _t->setPunchout((*reinterpret_cast< bool(*)>(_a[1]))); break;
        case 44: _t->setClick((*reinterpret_cast< bool(*)>(_a[1]))); break;
        case 45: _t->setQuantize((*reinterpret_cast< bool(*)>(_a[1]))); break;
        case 46: _t->panic(); break;
        case 47: _t->seqSignal((*reinterpret_cast< int(*)>(_a[1]))); break;
        case 48: _t->resetFastMove(); break;
        case 49: { Track* _r = _t->createTrack((*reinterpret_cast< Track::TrackType(*)>(_a[1])),(*reinterpret_cast< bool(*)>(_a[2])));
            if (_a[0]) *reinterpret_cast< Track**>(_a[0]) = std::move(_r); }  break;
        case 50: { Track* _r = _t->createTrack((*reinterpret_cast< Track::TrackType(*)>(_a[1])));
            if (_a[0]) *reinterpret_cast< Track**>(_a[0]) = std::move(_r); }  break;
        case 51: { Track* _r = _t->addTrack((*reinterpret_cast< Track::TrackType(*)>(_a[1])),(*reinterpret_cast< Track*(*)>(_a[2])));
            if (_a[0]) *reinterpret_cast< Track**>(_a[0]) = std::move(_r); }  break;
        case 52: { Track* _r = _t->addTrack((*reinterpret_cast< Track::TrackType(*)>(_a[1])));
            if (_a[0]) *reinterpret_cast< Track**>(_a[0]) = std::move(_r); }  break;
        case 53: { Track* _r = _t->addNewTrack((*reinterpret_cast< QAction*(*)>(_a[1])),(*reinterpret_cast< Track*(*)>(_a[2])));
            if (_a[0]) *reinterpret_cast< Track**>(_a[0]) = std::move(_r); }  break;
        case 54: { Track* _r = _t->addNewTrack((*reinterpret_cast< QAction*(*)>(_a[1])));
            if (_a[0]) *reinterpret_cast< Track**>(_a[0]) = std::move(_r); }  break;
        case 55: _t->duplicateTracks((*reinterpret_cast< Track*(*)>(_a[1]))); break;
        case 56: _t->duplicateTracks(); break;
        case 57: _t->setDirty(); break;
        case 58: _t->restartRecording((*reinterpret_cast< bool(*)>(_a[1]))); break;
        case 59: _t->restartRecording(); break;
        default: ;
        }
    } else if (_c == QMetaObject::IndexOfMethod) {
        int *result = reinterpret_cast<int *>(_a[0]);
        {
            using _t = void (Song::*)(MusECore::SongChangedStruct_t );
            if (*reinterpret_cast<_t *>(_a[1]) == static_cast<_t>(&Song::songChanged)) {
                *result = 0;
                return;
            }
        }
        {
            using _t = void (Song::*)(int , unsigned  , bool );
            if (*reinterpret_cast<_t *>(_a[1]) == static_cast<_t>(&Song::posChanged)) {
                *result = 1;
                return;
            }
        }
        {
            using _t = void (Song::*)(int , const MusECore::Pos , bool );
            if (*reinterpret_cast<_t *>(_a[1]) == static_cast<_t>(&Song::posChanged)) {
                *result = 2;
                return;
            }
        }
        {
            using _t = void (Song::*)(bool );
            if (*reinterpret_cast<_t *>(_a[1]) == static_cast<_t>(&Song::loopChanged)) {
                *result = 3;
                return;
            }
        }
        {
            using _t = void (Song::*)(bool );
            if (*reinterpret_cast<_t *>(_a[1]) == static_cast<_t>(&Song::recordChanged)) {
                *result = 4;
                return;
            }
        }
        {
            using _t = void (Song::*)(bool );
            if (*reinterpret_cast<_t *>(_a[1]) == static_cast<_t>(&Song::playChanged)) {
                *result = 5;
                return;
            }
        }
        {
            using _t = void (Song::*)(bool );
            if (*reinterpret_cast<_t *>(_a[1]) == static_cast<_t>(&Song::punchinChanged)) {
                *result = 6;
                return;
            }
        }
        {
            using _t = void (Song::*)(bool );
            if (*reinterpret_cast<_t *>(_a[1]) == static_cast<_t>(&Song::punchoutChanged)) {
                *result = 7;
                return;
            }
        }
        {
            using _t = void (Song::*)(bool );
            if (*reinterpret_cast<_t *>(_a[1]) == static_cast<_t>(&Song::clickChanged)) {
                *result = 8;
                return;
            }
        }
        {
            using _t = void (Song::*)(bool );
            if (*reinterpret_cast<_t *>(_a[1]) == static_cast<_t>(&Song::quantizeChanged)) {
                *result = 9;
                return;
            }
        }
        {
            using _t = void (Song::*)(int );
            if (*reinterpret_cast<_t *>(_a[1]) == static_cast<_t>(&Song::markerChanged)) {
                *result = 10;
                return;
            }
        }
        {
            using _t = void (Song::*)(int , int );
            if (*reinterpret_cast<_t *>(_a[1]) == static_cast<_t>(&Song::midiNote)) {
                *result = 11;
                return;
            }
        }
        {
            using _t = void (Song::*)(const MusECore::Track * , int , unsigned int , CtrlGUIMessage::Type );
            if (*reinterpret_cast<_t *>(_a[1]) == static_cast<_t>(&Song::controllerChanged)) {
                *result = 12;
                return;
            }
        }
        {
            using _t = void (Song::*)(const std::map<const MusECore::Part*,std::set<const MusECore::Part*> > & );
            if (*reinterpret_cast<_t *>(_a[1]) == static_cast<_t>(&Song::newPartsCreated)) {
                *result = 15;
                return;
            }
        }
        {
            using _t = void (Song::*)();
            if (*reinterpret_cast<_t *>(_a[1]) == static_cast<_t>(&Song::sigDirty)) {
                *result = 16;
                return;
            }
        }
        {
            using _t = void (Song::*)(int );
            if (*reinterpret_cast<_t *>(_a[1]) == static_cast<_t>(&Song::recModeChanged)) {
                *result = 17;
                return;
            }
        }
        {
            using _t = void (Song::*)(int );
            if (*reinterpret_cast<_t *>(_a[1]) == static_cast<_t>(&Song::cycleModeChanged)) {
                *result = 18;
                return;
            }
        }
        {
            using _t = void (Song::*)(const MidiRecordEvent & );
            if (*reinterpret_cast<_t *>(_a[1]) == static_cast<_t>(&Song::midiLearnReceived)) {
                *result = 19;
                return;
            }
        }
    }
}

QT_INIT_METAOBJECT const QMetaObject MusECore::Song::staticMetaObject = { {
    QMetaObject::SuperData::link<QObject::staticMetaObject>(),
    qt_meta_stringdata_MusECore__Song.data,
    qt_meta_data_MusECore__Song,
    qt_static_metacall,
    nullptr,
    nullptr
} };


const QMetaObject *MusECore::Song::metaObject() const
{
    return QObject::d_ptr->metaObject ? QObject::d_ptr->dynamicMetaObject() : &staticMetaObject;
}

void *MusECore::Song::qt_metacast(const char *_clname)
{
    if (!_clname) return nullptr;
    if (!strcmp(_clname, qt_meta_stringdata_MusECore__Song.stringdata0))
        return static_cast<void*>(this);
    return QObject::qt_metacast(_clname);
}

int MusECore::Song::qt_metacall(QMetaObject::Call _c, int _id, void **_a)
{
    _id = QObject::qt_metacall(_c, _id, _a);
    if (_id < 0)
        return _id;
    if (_c == QMetaObject::InvokeMetaMethod) {
        if (_id < 60)
            qt_static_metacall(this, _c, _id, _a);
        _id -= 60;
    } else if (_c == QMetaObject::RegisterMethodArgumentMetaType) {
        if (_id < 60)
            *reinterpret_cast<int*>(_a[0]) = -1;
        _id -= 60;
    }
    return _id;
}

// SIGNAL 0
void MusECore::Song::songChanged(MusECore::SongChangedStruct_t _t1)
{
    void *_a[] = { nullptr, const_cast<void*>(reinterpret_cast<const void*>(std::addressof(_t1))) };
    QMetaObject::activate(this, &staticMetaObject, 0, _a);
}

// SIGNAL 1
void MusECore::Song::posChanged(int _t1, unsigned  _t2, bool _t3)
{
    void *_a[] = { nullptr, const_cast<void*>(reinterpret_cast<const void*>(std::addressof(_t1))), const_cast<void*>(reinterpret_cast<const void*>(std::addressof(_t2))), const_cast<void*>(reinterpret_cast<const void*>(std::addressof(_t3))) };
    QMetaObject::activate(this, &staticMetaObject, 1, _a);
}

// SIGNAL 2
void MusECore::Song::posChanged(int _t1, const MusECore::Pos _t2, bool _t3)
{
    void *_a[] = { nullptr, const_cast<void*>(reinterpret_cast<const void*>(std::addressof(_t1))), const_cast<void*>(reinterpret_cast<const void*>(std::addressof(_t2))), const_cast<void*>(reinterpret_cast<const void*>(std::addressof(_t3))) };
    QMetaObject::activate(this, &staticMetaObject, 2, _a);
}

// SIGNAL 3
void MusECore::Song::loopChanged(bool _t1)
{
    void *_a[] = { nullptr, const_cast<void*>(reinterpret_cast<const void*>(std::addressof(_t1))) };
    QMetaObject::activate(this, &staticMetaObject, 3, _a);
}

// SIGNAL 4
void MusECore::Song::recordChanged(bool _t1)
{
    void *_a[] = { nullptr, const_cast<void*>(reinterpret_cast<const void*>(std::addressof(_t1))) };
    QMetaObject::activate(this, &staticMetaObject, 4, _a);
}

// SIGNAL 5
void MusECore::Song::playChanged(bool _t1)
{
    void *_a[] = { nullptr, const_cast<void*>(reinterpret_cast<const void*>(std::addressof(_t1))) };
    QMetaObject::activate(this, &staticMetaObject, 5, _a);
}

// SIGNAL 6
void MusECore::Song::punchinChanged(bool _t1)
{
    void *_a[] = { nullptr, const_cast<void*>(reinterpret_cast<const void*>(std::addressof(_t1))) };
    QMetaObject::activate(this, &staticMetaObject, 6, _a);
}

// SIGNAL 7
void MusECore::Song::punchoutChanged(bool _t1)
{
    void *_a[] = { nullptr, const_cast<void*>(reinterpret_cast<const void*>(std::addressof(_t1))) };
    QMetaObject::activate(this, &staticMetaObject, 7, _a);
}

// SIGNAL 8
void MusECore::Song::clickChanged(bool _t1)
{
    void *_a[] = { nullptr, const_cast<void*>(reinterpret_cast<const void*>(std::addressof(_t1))) };
    QMetaObject::activate(this, &staticMetaObject, 8, _a);
}

// SIGNAL 9
void MusECore::Song::quantizeChanged(bool _t1)
{
    void *_a[] = { nullptr, const_cast<void*>(reinterpret_cast<const void*>(std::addressof(_t1))) };
    QMetaObject::activate(this, &staticMetaObject, 9, _a);
}

// SIGNAL 10
void MusECore::Song::markerChanged(int _t1)
{
    void *_a[] = { nullptr, const_cast<void*>(reinterpret_cast<const void*>(std::addressof(_t1))) };
    QMetaObject::activate(this, &staticMetaObject, 10, _a);
}

// SIGNAL 11
void MusECore::Song::midiNote(int _t1, int _t2)
{
    void *_a[] = { nullptr, const_cast<void*>(reinterpret_cast<const void*>(std::addressof(_t1))), const_cast<void*>(reinterpret_cast<const void*>(std::addressof(_t2))) };
    QMetaObject::activate(this, &staticMetaObject, 11, _a);
}

// SIGNAL 12
void MusECore::Song::controllerChanged(const MusECore::Track * _t1, int _t2, unsigned int _t3, CtrlGUIMessage::Type _t4)
{
    void *_a[] = { nullptr, const_cast<void*>(reinterpret_cast<const void*>(std::addressof(_t1))), const_cast<void*>(reinterpret_cast<const void*>(std::addressof(_t2))), const_cast<void*>(reinterpret_cast<const void*>(std::addressof(_t3))), const_cast<void*>(reinterpret_cast<const void*>(std::addressof(_t4))) };
    QMetaObject::activate(this, &staticMetaObject, 12, _a);
}

// SIGNAL 15
void MusECore::Song::newPartsCreated(const std::map<const MusECore::Part*,std::set<const MusECore::Part*> > & _t1)
{
    void *_a[] = { nullptr, const_cast<void*>(reinterpret_cast<const void*>(std::addressof(_t1))) };
    QMetaObject::activate(this, &staticMetaObject, 15, _a);
}

// SIGNAL 16
void MusECore::Song::sigDirty()
{
    QMetaObject::activate(this, &staticMetaObject, 16, nullptr);
}

// SIGNAL 17
void MusECore::Song::recModeChanged(int _t1)
{
    void *_a[] = { nullptr, const_cast<void*>(reinterpret_cast<const void*>(std::addressof(_t1))) };
    QMetaObject::activate(this, &staticMetaObject, 17, _a);
}

// SIGNAL 18
void MusECore::Song::cycleModeChanged(int _t1)
{
    void *_a[] = { nullptr, const_cast<void*>(reinterpret_cast<const void*>(std::addressof(_t1))) };
    QMetaObject::activate(this, &staticMetaObject, 18, _a);
}

// SIGNAL 19
void MusECore::Song::midiLearnReceived(const MidiRecordEvent & _t1)
{
    void *_a[] = { nullptr, const_cast<void*>(reinterpret_cast<const void*>(std::addressof(_t1))) };
    QMetaObject::activate(this, &staticMetaObject, 19, _a);
}
QT_WARNING_POP
QT_END_MOC_NAMESPACE
