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

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

class __internal_SmokeClass {};

namespace __smokephonon {

class x_Phonon__AudioOutput : public Phonon::AudioOutput, public __internal_SmokeClass {
    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) {
        // virtual const QMetaObject* metaObject() const
        if (dynamic_cast<__internal_SmokeClass*>(static_cast<Phonon::AudioOutput*>(this))) {
            const QMetaObject* xret = ((const x_Phonon__AudioOutput*)this)->Phonon::AudioOutput::metaObject();
            x[0].s_class = (void*)xret;
        } else {
            const QMetaObject* xret = ((const x_Phonon__AudioOutput*)this)->metaObject();
            x[0].s_class = (void*)xret;
        }
    }
    void x_2(Smoke::Stack x) {
        // virtual void* qt_metacast(const char*)
        if (dynamic_cast<__internal_SmokeClass*>(static_cast<Phonon::AudioOutput*>(this))) {
            void* xret = this->Phonon::AudioOutput::qt_metacast((const char*)x[1].s_class);
            x[0].s_class = (void*)xret;
        } else {
            void* xret = this->qt_metacast((const char*)x[1].s_class);
            x[0].s_class = (void*)xret;
        }
    }
    static void x_3(Smoke::Stack x) {
        // static QString tr(const char*, const char*)
        QString xret = Phonon::AudioOutput::tr((const char*)x[1].s_class,(const char*)x[2].s_class);
        x[0].s_class = (void*)new QString(xret);
    }
    static void x_4(Smoke::Stack x) {
        // static QString trUtf8(const char*, const char*)
        QString xret = Phonon::AudioOutput::trUtf8((const char*)x[1].s_class,(const char*)x[2].s_class);
        x[0].s_class = (void*)new QString(xret);
    }
    static void x_5(Smoke::Stack x) {
        // static QString tr(const char*, const char*, int)
        QString xret = Phonon::AudioOutput::tr((const char*)x[1].s_class,(const char*)x[2].s_class,(int)x[3].s_int);
        x[0].s_class = (void*)new QString(xret);
    }
    static void x_6(Smoke::Stack x) {
        // static QString trUtf8(const char*, const char*, int)
        QString xret = Phonon::AudioOutput::trUtf8((const char*)x[1].s_class,(const char*)x[2].s_class,(int)x[3].s_int);
        x[0].s_class = (void*)new QString(xret);
    }
    void x_7(Smoke::Stack x) {
        // virtual int qt_metacall(QMetaObject::Call, int, void**)
        if (dynamic_cast<__internal_SmokeClass*>(static_cast<Phonon::AudioOutput*>(this))) {
            int xret = this->Phonon::AudioOutput::qt_metacall((QMetaObject::Call)x[1].s_enum,(int)x[2].s_int,(void**)x[3].s_class);
            x[0].s_int = xret;
        } else {
            int xret = this->qt_metacall((QMetaObject::Call)x[1].s_enum,(int)x[2].s_int,(void**)x[3].s_class);
            x[0].s_int = xret;
        }
    }
    static void x_8(Smoke::Stack x) {
        // Phonon::AudioOutput* AudioOutput(Phonon::Category, QObject*)
        x_Phonon__AudioOutput* xret = new x_Phonon__AudioOutput((Phonon::Category)x[1].s_enum,(QObject*)x[2].s_class);
        x[0].s_class = (void*)xret;
    }
    explicit x_Phonon__AudioOutput(Phonon::Category x1, QObject* x2) : AudioOutput(x1, x2) {}
    static void x_9(Smoke::Stack x) {
        // Phonon::AudioOutput* AudioOutput(QObject*)
        x_Phonon__AudioOutput* xret = new x_Phonon__AudioOutput((QObject*)x[1].s_class);
        x[0].s_class = (void*)xret;
    }
    explicit x_Phonon__AudioOutput(QObject* x1) : AudioOutput(x1) {}
    void x_10(Smoke::Stack x) {
        // QString name() const
        QString xret = ((const x_Phonon__AudioOutput*)this)->Phonon::AudioOutput::name();
        x[0].s_class = (void*)new QString(xret);
    }
    void x_11(Smoke::Stack x) {
        // double volume() const
        double xret = ((const x_Phonon__AudioOutput*)this)->Phonon::AudioOutput::volume();
        x[0].s_double = xret;
    }
    void x_12(Smoke::Stack x) {
        // double volumeDecibel() const
        double xret = ((const x_Phonon__AudioOutput*)this)->Phonon::AudioOutput::volumeDecibel();
        x[0].s_double = xret;
    }
    void x_13(Smoke::Stack x) {
        // Phonon::Category category() const
        Phonon::Category xret = ((const x_Phonon__AudioOutput*)this)->Phonon::AudioOutput::category();
        x[0].s_enum = xret;
    }
    void x_14(Smoke::Stack x) {
        // Phonon::ObjectDescription<Phonon::AudioOutputDeviceType> outputDevice() const
        Phonon::ObjectDescription<Phonon::AudioOutputDeviceType> xret = ((const x_Phonon__AudioOutput*)this)->Phonon::AudioOutput::outputDevice();
        x[0].s_class = (void*)new Phonon::ObjectDescription<Phonon::AudioOutputDeviceType>(xret);
    }
    void x_15(Smoke::Stack x) {
        // bool isMuted() const
        bool xret = ((const x_Phonon__AudioOutput*)this)->Phonon::AudioOutput::isMuted();
        x[0].s_bool = xret;
    }
    void x_16(Smoke::Stack x) {
        // void setName(const QString&)
        this->Phonon::AudioOutput::setName(*(const QString*)x[1].s_class);
        (void)x; // noop (for compiler warning)
    }
    void x_17(Smoke::Stack x) {
        // void setVolume(qreal)
        this->Phonon::AudioOutput::setVolume((qreal)x[1].s_double);
        (void)x; // noop (for compiler warning)
    }
    void x_18(Smoke::Stack x) {
        // void setVolumeDecibel(qreal)
        this->Phonon::AudioOutput::setVolumeDecibel((qreal)x[1].s_double);
        (void)x; // noop (for compiler warning)
    }
    void x_19(Smoke::Stack x) {
        // bool setOutputDevice(const Phonon::AudioOutputDevice&)
        bool xret = this->Phonon::AudioOutput::setOutputDevice(*(const Phonon::AudioOutputDevice*)x[1].s_class);
        x[0].s_bool = xret;
    }
    void x_20(Smoke::Stack x) {
        // void setMuted(bool)
        this->Phonon::AudioOutput::setMuted((bool)x[1].s_bool);
        (void)x; // noop (for compiler warning)
    }
    void x_21(Smoke::Stack x) {
        // void volumeChanged(qreal)
        this->Phonon::AudioOutput::volumeChanged((qreal)x[1].s_double);
        (void)x; // noop (for compiler warning)
    }
    void x_22(Smoke::Stack x) {
        // void mutedChanged(bool)
        this->Phonon::AudioOutput::mutedChanged((bool)x[1].s_bool);
        (void)x; // noop (for compiler warning)
    }
    void x_23(Smoke::Stack x) {
        // void outputDeviceChanged(const Phonon::AudioOutputDevice&)
        this->Phonon::AudioOutput::outputDeviceChanged(*(const Phonon::AudioOutputDevice*)x[1].s_class);
        (void)x; // noop (for compiler warning)
    }
    static void x_24(Smoke::Stack x) {
        // static QString tr(const char*)
        QString xret = Phonon::AudioOutput::tr((const char*)x[1].s_class,(const char*)0);
        x[0].s_class = (void*)new QString(xret);
    }
    static void x_25(Smoke::Stack x) {
        // static QString trUtf8(const char*)
        QString xret = Phonon::AudioOutput::trUtf8((const char*)x[1].s_class,(const char*)0);
        x[0].s_class = (void*)new QString(xret);
    }
    static void x_26(Smoke::Stack x) {
        // Phonon::AudioOutput* AudioOutput(Phonon::Category)
        x_Phonon__AudioOutput* xret = new x_Phonon__AudioOutput((Phonon::Category)x[1].s_enum,(QObject*)0);
        x[0].s_class = (void*)xret;
    }
    static void x_27(Smoke::Stack x) {
        // Phonon::AudioOutput* AudioOutput()
        x_Phonon__AudioOutput* xret = new x_Phonon__AudioOutput((QObject*)0);
        x[0].s_class = (void*)xret;
    }
    static void x_28(Smoke::Stack x) {
        // static const QMetaObject staticMetaObject
        x[0].s_class = (void*)&Phonon::AudioOutput::staticMetaObject;
    }
    virtual const QMetaObject* metaObject() const {
        Smoke::StackItem x[1];
        if (this->_binding->callMethod(121, (void*)this, x)) return (const QMetaObject*)x[0].s_class;
        return this->Phonon::AudioOutput::metaObject();
    }
    virtual void* qt_metacast(const char* x1) {
        Smoke::StackItem x[2];
        x[1].s_class = (void*)x1;
        if (this->_binding->callMethod(122, (void*)this, x)) return (void*)x[0].s_class;
        return this->Phonon::AudioOutput::qt_metacast(x1);
    }
    virtual int qt_metacall(QMetaObject::Call x1, int x2, void** x3) {
        Smoke::StackItem x[4];
        x[1].s_enum = x1;
        x[2].s_int = x2;
        x[3].s_class = (void*)x3;
        if (this->_binding->callMethod(127, (void*)this, x)) return (int)x[0].s_int;
        return this->Phonon::AudioOutput::qt_metacall(x1, x2, x3);
    }
    virtual bool event(QEvent* x1) {
        Smoke::StackItem x[2];
        x[1].s_class = (void*)x1;
        if (this->_binding->callMethod(599, (void*)this, x)) return (bool)x[0].s_bool;
        return this->QObject::event(x1);
    }
    virtual bool eventFilter(QObject* x1, QEvent* x2) {
        Smoke::StackItem x[3];
        x[1].s_class = (void*)x1;
        x[2].s_class = (void*)x2;
        if (this->_binding->callMethod(600, (void*)this, x)) return (bool)x[0].s_bool;
        return this->QObject::eventFilter(x1, x2);
    }
    virtual void timerEvent(QTimerEvent* x1) {
        Smoke::StackItem x[2];
        x[1].s_class = (void*)x1;
        if (this->_binding->callMethod(601, (void*)this, x)) return;
        this->QObject::timerEvent(x1);
    }
    virtual void childEvent(QChildEvent* x1) {
        Smoke::StackItem x[2];
        x[1].s_class = (void*)x1;
        if (this->_binding->callMethod(602, (void*)this, x)) return;
        this->QObject::childEvent(x1);
    }
    virtual void customEvent(QEvent* x1) {
        Smoke::StackItem x[2];
        x[1].s_class = (void*)x1;
        if (this->_binding->callMethod(603, (void*)this, x)) return;
        this->QObject::customEvent(x1);
    }
    virtual void connectNotify(const char* x1) {
        Smoke::StackItem x[2];
        x[1].s_class = (void*)x1;
        if (this->_binding->callMethod(604, (void*)this, x)) return;
        this->QObject::connectNotify(x1);
    }
    virtual void disconnectNotify(const char* x1) {
        Smoke::StackItem x[2];
        x[1].s_class = (void*)x1;
        if (this->_binding->callMethod(605, (void*)this, x)) return;
        this->QObject::disconnectNotify(x1);
    }
    ~x_Phonon__AudioOutput() { this->_binding->deleted(9, (void*)this); }
};
void xcall_Phonon__AudioOutput(Smoke::Index xi, void *obj, Smoke::Stack args) {
    x_Phonon__AudioOutput *xself = (x_Phonon__AudioOutput*)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: x_Phonon__AudioOutput::x_3(args);	break;
        case 4: x_Phonon__AudioOutput::x_4(args);	break;
        case 5: x_Phonon__AudioOutput::x_5(args);	break;
        case 6: x_Phonon__AudioOutput::x_6(args);	break;
        case 7: xself->x_7(args);	break;
        case 8: x_Phonon__AudioOutput::x_8(args);	break;
        case 9: x_Phonon__AudioOutput::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: xself->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;
        case 21: xself->x_21(args);	break;
        case 22: xself->x_22(args);	break;
        case 23: xself->x_23(args);	break;
        case 24: x_Phonon__AudioOutput::x_24(args);	break;
        case 25: x_Phonon__AudioOutput::x_25(args);	break;
        case 26: x_Phonon__AudioOutput::x_26(args);	break;
        case 27: x_Phonon__AudioOutput::x_27(args);	break;
        case 28: x_Phonon__AudioOutput::x_28(args);	break;
        case 29: delete (Phonon::AudioOutput*)xself;	break;
    }
}
class x_Phonon__Effect : public Phonon::Effect, public __internal_SmokeClass {
    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) {
        // virtual const QMetaObject* metaObject() const
        if (dynamic_cast<__internal_SmokeClass*>(static_cast<Phonon::Effect*>(this))) {
            const QMetaObject* xret = ((const x_Phonon__Effect*)this)->Phonon::Effect::metaObject();
            x[0].s_class = (void*)xret;
        } else {
            const QMetaObject* xret = ((const x_Phonon__Effect*)this)->metaObject();
            x[0].s_class = (void*)xret;
        }
    }
    void x_2(Smoke::Stack x) {
        // virtual void* qt_metacast(const char*)
        if (dynamic_cast<__internal_SmokeClass*>(static_cast<Phonon::Effect*>(this))) {
            void* xret = this->Phonon::Effect::qt_metacast((const char*)x[1].s_class);
            x[0].s_class = (void*)xret;
        } else {
            void* xret = this->qt_metacast((const char*)x[1].s_class);
            x[0].s_class = (void*)xret;
        }
    }
    static void x_3(Smoke::Stack x) {
        // static QString tr(const char*, const char*)
        QString xret = Phonon::Effect::tr((const char*)x[1].s_class,(const char*)x[2].s_class);
        x[0].s_class = (void*)new QString(xret);
    }
    static void x_4(Smoke::Stack x) {
        // static QString trUtf8(const char*, const char*)
        QString xret = Phonon::Effect::trUtf8((const char*)x[1].s_class,(const char*)x[2].s_class);
        x[0].s_class = (void*)new QString(xret);
    }
    static void x_5(Smoke::Stack x) {
        // static QString tr(const char*, const char*, int)
        QString xret = Phonon::Effect::tr((const char*)x[1].s_class,(const char*)x[2].s_class,(int)x[3].s_int);
        x[0].s_class = (void*)new QString(xret);
    }
    static void x_6(Smoke::Stack x) {
        // static QString trUtf8(const char*, const char*, int)
        QString xret = Phonon::Effect::trUtf8((const char*)x[1].s_class,(const char*)x[2].s_class,(int)x[3].s_int);
        x[0].s_class = (void*)new QString(xret);
    }
    void x_7(Smoke::Stack x) {
        // virtual int qt_metacall(QMetaObject::Call, int, void**)
        if (dynamic_cast<__internal_SmokeClass*>(static_cast<Phonon::Effect*>(this))) {
            int xret = this->Phonon::Effect::qt_metacall((QMetaObject::Call)x[1].s_enum,(int)x[2].s_int,(void**)x[3].s_class);
            x[0].s_int = xret;
        } else {
            int xret = this->qt_metacall((QMetaObject::Call)x[1].s_enum,(int)x[2].s_int,(void**)x[3].s_class);
            x[0].s_int = xret;
        }
    }
    static void x_8(Smoke::Stack x) {
        // Phonon::Effect* Effect(const Phonon::ObjectDescription<Phonon::EffectType>&, QObject*)
        x_Phonon__Effect* xret = new x_Phonon__Effect(*(const Phonon::ObjectDescription<Phonon::EffectType>*)x[1].s_class,(QObject*)x[2].s_class);
        x[0].s_class = (void*)xret;
    }
    explicit x_Phonon__Effect(const Phonon::ObjectDescription<Phonon::EffectType>& x1, QObject* x2) : Effect(x1, x2) {}
    void x_9(Smoke::Stack x) {
        // Phonon::ObjectDescription<Phonon::EffectType> description() const
        Phonon::ObjectDescription<Phonon::EffectType> xret = ((const x_Phonon__Effect*)this)->Phonon::Effect::description();
        x[0].s_class = (void*)new Phonon::ObjectDescription<Phonon::EffectType>(xret);
    }
    void x_10(Smoke::Stack x) {
        // QList<Phonon::EffectParameter> parameters() const
        QList<Phonon::EffectParameter> xret = ((const x_Phonon__Effect*)this)->Phonon::Effect::parameters();
        x[0].s_class = (void*)new QList<Phonon::EffectParameter>(xret);
    }
    void x_11(Smoke::Stack x) {
        // QVariant parameterValue(const Phonon::EffectParameter&) const
        QVariant xret = ((const x_Phonon__Effect*)this)->Phonon::Effect::parameterValue(*(const Phonon::EffectParameter*)x[1].s_class);
        x[0].s_class = (void*)new QVariant(xret);
    }
    void x_12(Smoke::Stack x) {
        // void setParameterValue(const Phonon::EffectParameter&, const QVariant&)
        this->Phonon::Effect::setParameterValue(*(const Phonon::EffectParameter*)x[1].s_class,*(const QVariant*)x[2].s_class);
        (void)x; // noop (for compiler warning)
    }
    static void x_13(Smoke::Stack x) {
        // Phonon::Effect* Effect(Phonon::EffectPrivate&, QObject*)
        x_Phonon__Effect* xret = new x_Phonon__Effect(*(Phonon::EffectPrivate*)x[1].s_class,(QObject*)x[2].s_class);
        x[0].s_class = (void*)xret;
    }
    explicit x_Phonon__Effect(Phonon::EffectPrivate& x1, QObject* x2) : Effect(x1, x2) {}
    static void x_14(Smoke::Stack x) {
        // static QString tr(const char*)
        QString xret = Phonon::Effect::tr((const char*)x[1].s_class,(const char*)0);
        x[0].s_class = (void*)new QString(xret);
    }
    static void x_15(Smoke::Stack x) {
        // static QString trUtf8(const char*)
        QString xret = Phonon::Effect::trUtf8((const char*)x[1].s_class,(const char*)0);
        x[0].s_class = (void*)new QString(xret);
    }
    static void x_16(Smoke::Stack x) {
        // Phonon::Effect* Effect(const Phonon::ObjectDescription<Phonon::EffectType>&)
        x_Phonon__Effect* xret = new x_Phonon__Effect(*(const Phonon::ObjectDescription<Phonon::EffectType>*)x[1].s_class,(QObject*)0);
        x[0].s_class = (void*)xret;
    }
    static void x_17(Smoke::Stack x) {
        // static const QMetaObject staticMetaObject
        x[0].s_class = (void*)&Phonon::Effect::staticMetaObject;
    }
    virtual const QMetaObject* metaObject() const {
        Smoke::StackItem x[1];
        if (this->_binding->callMethod(152, (void*)this, x)) return (const QMetaObject*)x[0].s_class;
        return this->Phonon::Effect::metaObject();
    }
    virtual void* qt_metacast(const char* x1) {
        Smoke::StackItem x[2];
        x[1].s_class = (void*)x1;
        if (this->_binding->callMethod(153, (void*)this, x)) return (void*)x[0].s_class;
        return this->Phonon::Effect::qt_metacast(x1);
    }
    virtual int qt_metacall(QMetaObject::Call x1, int x2, void** x3) {
        Smoke::StackItem x[4];
        x[1].s_enum = x1;
        x[2].s_int = x2;
        x[3].s_class = (void*)x3;
        if (this->_binding->callMethod(158, (void*)this, x)) return (int)x[0].s_int;
        return this->Phonon::Effect::qt_metacall(x1, x2, x3);
    }
    virtual bool event(QEvent* x1) {
        Smoke::StackItem x[2];
        x[1].s_class = (void*)x1;
        if (this->_binding->callMethod(599, (void*)this, x)) return (bool)x[0].s_bool;
        return this->QObject::event(x1);
    }
    virtual bool eventFilter(QObject* x1, QEvent* x2) {
        Smoke::StackItem x[3];
        x[1].s_class = (void*)x1;
        x[2].s_class = (void*)x2;
        if (this->_binding->callMethod(600, (void*)this, x)) return (bool)x[0].s_bool;
        return this->QObject::eventFilter(x1, x2);
    }
    virtual void timerEvent(QTimerEvent* x1) {
        Smoke::StackItem x[2];
        x[1].s_class = (void*)x1;
        if (this->_binding->callMethod(601, (void*)this, x)) return;
        this->QObject::timerEvent(x1);
    }
    virtual void childEvent(QChildEvent* x1) {
        Smoke::StackItem x[2];
        x[1].s_class = (void*)x1;
        if (this->_binding->callMethod(602, (void*)this, x)) return;
        this->QObject::childEvent(x1);
    }
    virtual void customEvent(QEvent* x1) {
        Smoke::StackItem x[2];
        x[1].s_class = (void*)x1;
        if (this->_binding->callMethod(603, (void*)this, x)) return;
        this->QObject::customEvent(x1);
    }
    virtual void connectNotify(const char* x1) {
        Smoke::StackItem x[2];
        x[1].s_class = (void*)x1;
        if (this->_binding->callMethod(604, (void*)this, x)) return;
        this->QObject::connectNotify(x1);
    }
    virtual void disconnectNotify(const char* x1) {
        Smoke::StackItem x[2];
        x[1].s_class = (void*)x1;
        if (this->_binding->callMethod(605, (void*)this, x)) return;
        this->QObject::disconnectNotify(x1);
    }
    ~x_Phonon__Effect() { this->_binding->deleted(12, (void*)this); }
};
void xcall_Phonon__Effect(Smoke::Index xi, void *obj, Smoke::Stack args) {
    x_Phonon__Effect *xself = (x_Phonon__Effect*)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: x_Phonon__Effect::x_3(args);	break;
        case 4: x_Phonon__Effect::x_4(args);	break;
        case 5: x_Phonon__Effect::x_5(args);	break;
        case 6: x_Phonon__Effect::x_6(args);	break;
        case 7: xself->x_7(args);	break;
        case 8: x_Phonon__Effect::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: x_Phonon__Effect::x_13(args);	break;
        case 14: x_Phonon__Effect::x_14(args);	break;
        case 15: x_Phonon__Effect::x_15(args);	break;
        case 16: x_Phonon__Effect::x_16(args);	break;
        case 17: x_Phonon__Effect::x_17(args);	break;
        case 18: delete (Phonon::Effect*)xself;	break;
    }
}

}
