//Auto-generated by /usr/bin/smokegen. DO NOT EDIT.
#include <phonon_includes.h>

#include <smoke.h>
#include <phonon_smoke.h>

class __internal_SmokeClass {};

namespace __smokephonon {

class x_Phonon__ObjectDescriptionModelData : public Phonon::ObjectDescriptionModelData {
    SmokeBinding* _binding;
public:
    void x_0(Smoke::Stack x) {
        // set the smoke binding
        _binding = (SmokeBinding*)x[1].s_class;
    }
    void x_1(Smoke::Stack x) {
        // int rowCount(const QModelIndex&) const
        int xret = ((const x_Phonon__ObjectDescriptionModelData*)this)->Phonon::ObjectDescriptionModelData::rowCount(*(const QModelIndex*)x[1].s_class);
        x[0].s_int = xret;
    }
    void x_2(Smoke::Stack x) {
        // QVariant data(const QModelIndex&, int) const
        QVariant xret = ((const x_Phonon__ObjectDescriptionModelData*)this)->Phonon::ObjectDescriptionModelData::data(*(const QModelIndex*)x[1].s_class,(int)x[2].s_int);
        x[0].s_class = (void*)new QVariant(xret);
    }
    void x_3(Smoke::Stack x) {
        // QFlags<Qt::ItemFlag> flags(const QModelIndex&) const
        QFlags<Qt::ItemFlag> xret = ((const x_Phonon__ObjectDescriptionModelData*)this)->Phonon::ObjectDescriptionModelData::flags(*(const QModelIndex*)x[1].s_class);
        x[0].s_uint = (uint)xret;
    }
    void x_4(Smoke::Stack x) {
        // QList<int> tupleIndexOrder() const
        QList<int> xret = ((const x_Phonon__ObjectDescriptionModelData*)this)->Phonon::ObjectDescriptionModelData::tupleIndexOrder();
        x[0].s_class = (void*)new QList<int>(xret);
    }
    void x_5(Smoke::Stack x) {
        // int tupleIndexAtPositionIndex(int) const
        int xret = ((const x_Phonon__ObjectDescriptionModelData*)this)->Phonon::ObjectDescriptionModelData::tupleIndexAtPositionIndex((int)x[1].s_int);
        x[0].s_int = xret;
    }
    void x_6(Smoke::Stack x) {
        // QMimeData* mimeData(Phonon::ObjectDescriptionType, const QList<QModelIndex>&) const
        QMimeData* xret = ((const x_Phonon__ObjectDescriptionModelData*)this)->Phonon::ObjectDescriptionModelData::mimeData((Phonon::ObjectDescriptionType)x[1].s_enum,*(const QList<QModelIndex>*)x[2].s_class);
        x[0].s_class = (void*)xret;
    }
    void x_7(Smoke::Stack x) {
        // void moveUp(const QModelIndex&)
        this->Phonon::ObjectDescriptionModelData::moveUp(*(const QModelIndex*)x[1].s_class);
        (void)x; // noop (for compiler warning)
    }
    void x_8(Smoke::Stack x) {
        // void moveDown(const QModelIndex&)
        this->Phonon::ObjectDescriptionModelData::moveDown(*(const QModelIndex*)x[1].s_class);
        (void)x; // noop (for compiler warning)
    }
    void x_9(Smoke::Stack x) {
        // void setModelData(const QList<QExplicitlySharedDataPointer<Phonon::ObjectDescriptionData> >&)
        this->Phonon::ObjectDescriptionModelData::setModelData(*(const QList<QExplicitlySharedDataPointer<Phonon::ObjectDescriptionData> >*)x[1].s_class);
        (void)x; // noop (for compiler warning)
    }
    void x_10(Smoke::Stack x) {
        // QList<QExplicitlySharedDataPointer<Phonon::ObjectDescriptionData> > modelData() const
        QList<QExplicitlySharedDataPointer<Phonon::ObjectDescriptionData> > xret = ((const x_Phonon__ObjectDescriptionModelData*)this)->Phonon::ObjectDescriptionModelData::modelData();
        x[0].s_class = (void*)new QList<QExplicitlySharedDataPointer<Phonon::ObjectDescriptionData> >(xret);
    }
    void x_11(Smoke::Stack x) {
        // QExplicitlySharedDataPointer<Phonon::ObjectDescriptionData> modelData(const QModelIndex&) const
        QExplicitlySharedDataPointer<Phonon::ObjectDescriptionData> xret = ((const x_Phonon__ObjectDescriptionModelData*)this)->Phonon::ObjectDescriptionModelData::modelData(*(const QModelIndex*)x[1].s_class);
        x[0].s_class = (void*)new QExplicitlySharedDataPointer<Phonon::ObjectDescriptionData>(xret);
    }
    void x_12(Smoke::Stack x) {
        // QFlags<Qt::DropAction> supportedDropActions() const
        QFlags<Qt::DropAction> xret = ((const x_Phonon__ObjectDescriptionModelData*)this)->Phonon::ObjectDescriptionModelData::supportedDropActions();
        x[0].s_uint = (uint)xret;
    }
    void x_13(Smoke::Stack x) {
        // bool dropMimeData(Phonon::ObjectDescriptionType, const QMimeData*, Qt::DropAction, int, int, const QModelIndex&)
        bool xret = this->Phonon::ObjectDescriptionModelData::dropMimeData((Phonon::ObjectDescriptionType)x[1].s_enum,(const QMimeData*)x[2].s_class,(Qt::DropAction)x[3].s_enum,(int)x[4].s_int,(int)x[5].s_int,*(const QModelIndex*)x[6].s_class);
        x[0].s_bool = xret;
    }
    void x_14(Smoke::Stack x) {
        // bool removeRows(int, int, const QModelIndex&)
        bool xret = this->Phonon::ObjectDescriptionModelData::removeRows((int)x[1].s_int,(int)x[2].s_int,*(const QModelIndex*)x[3].s_class);
        x[0].s_bool = xret;
    }
    void x_15(Smoke::Stack x) {
        // QStringList mimeTypes(Phonon::ObjectDescriptionType) const
        QStringList xret = ((const x_Phonon__ObjectDescriptionModelData*)this)->Phonon::ObjectDescriptionModelData::mimeTypes((Phonon::ObjectDescriptionType)x[1].s_enum);
        x[0].s_class = (void*)new QStringList(xret);
    }
    static void x_16(Smoke::Stack x) {
        // Phonon::ObjectDescriptionModelData* ObjectDescriptionModelData(QAbstractListModel*)
        x_Phonon__ObjectDescriptionModelData* xret = new x_Phonon__ObjectDescriptionModelData((QAbstractListModel*)x[1].s_class);
        x[0].s_class = (void*)xret;
    }
    explicit x_Phonon__ObjectDescriptionModelData(QAbstractListModel* x1) : ObjectDescriptionModelData(x1) {}
    static void x_17(Smoke::Stack x) {
        // Phonon::ObjectDescriptionModelData* ObjectDescriptionModelData(const Phonon::ObjectDescriptionModelData&)
        x_Phonon__ObjectDescriptionModelData* xret = new x_Phonon__ObjectDescriptionModelData(*(const Phonon::ObjectDescriptionModelData*)x[1].s_class);
        x[0].s_class = (void*)xret;
    }
    explicit x_Phonon__ObjectDescriptionModelData(const Phonon::ObjectDescriptionModelData& x1) : ObjectDescriptionModelData(x1) {}
    void x_18(Smoke::Stack x) {
        // int rowCount() const
        int xret = ((const x_Phonon__ObjectDescriptionModelData*)this)->Phonon::ObjectDescriptionModelData::rowCount((const QModelIndex&)QModelIndex());
        x[0].s_int = xret;
    }
    void x_19(Smoke::Stack x) {
        // QVariant data(const QModelIndex&) const
        QVariant xret = ((const x_Phonon__ObjectDescriptionModelData*)this)->Phonon::ObjectDescriptionModelData::data(*(const QModelIndex*)x[1].s_class,(int)Qt::DisplayRole);
        x[0].s_class = (void*)new QVariant(xret);
    }
    void x_20(Smoke::Stack x) {
        // bool removeRows(int, int)
        bool xret = this->Phonon::ObjectDescriptionModelData::removeRows((int)x[1].s_int,(int)x[2].s_int,(const QModelIndex&)QModelIndex());
        x[0].s_bool = xret;
    }
    ~x_Phonon__ObjectDescriptionModelData() { this->_binding->deleted(24, (void*)this); }
};
void xcall_Phonon__ObjectDescriptionModelData(Smoke::Index xi, void *obj, Smoke::Stack args) {
    x_Phonon__ObjectDescriptionModelData *xself = (x_Phonon__ObjectDescriptionModelData*)obj;
    switch(xi) {
        case 0: xself->x_0(args);	break;
        case 1: xself->x_1(args);	break;
        case 2: xself->x_2(args);	break;
        case 3: xself->x_3(args);	break;
        case 4: xself->x_4(args);	break;
        case 5: xself->x_5(args);	break;
        case 6: xself->x_6(args);	break;
        case 7: xself->x_7(args);	break;
        case 8: xself->x_8(args);	break;
        case 9: xself->x_9(args);	break;
        case 10: xself->x_10(args);	break;
        case 11: xself->x_11(args);	break;
        case 12: xself->x_12(args);	break;
        case 13: xself->x_13(args);	break;
        case 14: xself->x_14(args);	break;
        case 15: xself->x_15(args);	break;
        case 16: x_Phonon__ObjectDescriptionModelData::x_16(args);	break;
        case 17: x_Phonon__ObjectDescriptionModelData::x_17(args);	break;
        case 18: xself->x_18(args);	break;
        case 19: xself->x_19(args);	break;
        case 20: xself->x_20(args);	break;
    }
}
class x_Phonon__Path : public Phonon::Path {
    SmokeBinding* _binding;
public:
    void x_0(Smoke::Stack x) {
        // set the smoke binding
        _binding = (SmokeBinding*)x[1].s_class;
    }
    static void x_1(Smoke::Stack x) {
        // Phonon::Path* Path()
        x_Phonon__Path* xret = new x_Phonon__Path();
        x[0].s_class = (void*)xret;
    }
    explicit x_Phonon__Path() : Path() {}
    static void x_2(Smoke::Stack x) {
        // Phonon::Path* Path(const Phonon::Path&)
        x_Phonon__Path* xret = new x_Phonon__Path(*(const Phonon::Path*)x[1].s_class);
        x[0].s_class = (void*)xret;
    }
    explicit x_Phonon__Path(const Phonon::Path& x1) : Path(x1) {}
    void x_3(Smoke::Stack x) {
        // bool isValid() const
        bool xret = ((const x_Phonon__Path*)this)->Phonon::Path::isValid();
        x[0].s_bool = xret;
    }
    void x_4(Smoke::Stack x) {
        // Phonon::Effect* insertEffect(const Phonon::ObjectDescription<Phonon::EffectType>&, Phonon::Effect*)
        Phonon::Effect* xret = this->Phonon::Path::insertEffect(*(const Phonon::ObjectDescription<Phonon::EffectType>*)x[1].s_class,(Phonon::Effect*)x[2].s_class);
        x[0].s_class = (void*)xret;
    }
    void x_5(Smoke::Stack x) {
        // bool insertEffect(Phonon::Effect*, Phonon::Effect*)
        bool xret = this->Phonon::Path::insertEffect((Phonon::Effect*)x[1].s_class,(Phonon::Effect*)x[2].s_class);
        x[0].s_bool = xret;
    }
    void x_6(Smoke::Stack x) {
        // bool removeEffect(Phonon::Effect*)
        bool xret = this->Phonon::Path::removeEffect((Phonon::Effect*)x[1].s_class);
        x[0].s_bool = xret;
    }
    void x_7(Smoke::Stack x) {
        // QList<Phonon::Effect*> effects() const
        QList<Phonon::Effect*> xret = ((const x_Phonon__Path*)this)->Phonon::Path::effects();
        x[0].s_class = (void*)new QList<Phonon::Effect*>(xret);
    }
    void x_8(Smoke::Stack x) {
        // bool reconnect(Phonon::MediaNode*, Phonon::MediaNode*)
        bool xret = this->Phonon::Path::reconnect((Phonon::MediaNode*)x[1].s_class,(Phonon::MediaNode*)x[2].s_class);
        x[0].s_bool = xret;
    }
    void x_9(Smoke::Stack x) {
        // bool disconnect()
        bool xret = this->Phonon::Path::disconnect();
        x[0].s_bool = xret;
    }
    void x_10(Smoke::Stack x) {
        // Phonon::Path& operator=(const Phonon::Path&)
        Phonon::Path& xret = this->Phonon::Path::operator=(*(const Phonon::Path*)x[1].s_class);
        x[0].s_class = (void*)&xret;
    }
    void x_11(Smoke::Stack x) {
        // bool operator==(const Phonon::Path&) const
        bool xret = ((const x_Phonon__Path*)this)->Phonon::Path::operator==(*(const Phonon::Path*)x[1].s_class);
        x[0].s_bool = xret;
    }
    void x_12(Smoke::Stack x) {
        // bool operator!=(const Phonon::Path&) const
        bool xret = ((const x_Phonon__Path*)this)->Phonon::Path::operator!=(*(const Phonon::Path*)x[1].s_class);
        x[0].s_bool = xret;
    }
    void x_13(Smoke::Stack x) {
        // Phonon::MediaNode* source() const
        Phonon::MediaNode* xret = ((const x_Phonon__Path*)this)->Phonon::Path::source();
        x[0].s_class = (void*)xret;
    }
    void x_14(Smoke::Stack x) {
        // Phonon::MediaNode* sink() const
        Phonon::MediaNode* xret = ((const x_Phonon__Path*)this)->Phonon::Path::sink();
        x[0].s_class = (void*)xret;
    }
    void x_15(Smoke::Stack x) {
        // Phonon::Effect* insertEffect(const Phonon::ObjectDescription<Phonon::EffectType>&)
        Phonon::Effect* xret = this->Phonon::Path::insertEffect(*(const Phonon::ObjectDescription<Phonon::EffectType>*)x[1].s_class,(Phonon::Effect*)0);
        x[0].s_class = (void*)xret;
    }
    void x_16(Smoke::Stack x) {
        // bool insertEffect(Phonon::Effect*)
        bool xret = this->Phonon::Path::insertEffect((Phonon::Effect*)x[1].s_class,(Phonon::Effect*)0);
        x[0].s_bool = xret;
    }
    ~x_Phonon__Path() { this->_binding->deleted(26, (void*)this); }
};
void xcall_Phonon__Path(Smoke::Index xi, void *obj, Smoke::Stack args) {
    x_Phonon__Path *xself = (x_Phonon__Path*)obj;
    switch(xi) {
        case 0: xself->x_0(args);	break;
        case 1: x_Phonon__Path::x_1(args);	break;
        case 2: x_Phonon__Path::x_2(args);	break;
        case 3: xself->x_3(args);	break;
        case 4: xself->x_4(args);	break;
        case 5: xself->x_5(args);	break;
        case 6: xself->x_6(args);	break;
        case 7: xself->x_7(args);	break;
        case 8: xself->x_8(args);	break;
        case 9: xself->x_9(args);	break;
        case 10: xself->x_10(args);	break;
        case 11: xself->x_11(args);	break;
        case 12: xself->x_12(args);	break;
        case 13: xself->x_13(args);	break;
        case 14: xself->x_14(args);	break;
        case 15: xself->x_15(args);	break;
        case 16: xself->x_16(args);	break;
        case 17: delete (Phonon::Path*)xself;	break;
    }
}

}
