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

#include <smoke.h>
#include <solid_smoke.h>

class __internal_SmokeClass {};

namespace __smokesolid {

class x_Solid__Device : public Solid::Device {
    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) {
        // static QList<Solid::Device> allDevices()
        QList<Solid::Device> xret = Solid::Device::allDevices();
        x[0].s_class = (void*)new QList<Solid::Device>(xret);
    }
    static void x_2(Smoke::Stack x) {
        // static QList<Solid::Device> listFromType(const Solid::DeviceInterface::Type&, const QString&)
        QList<Solid::Device> xret = Solid::Device::listFromType(*(const Solid::DeviceInterface::Type*)x[1].s_class,*(const QString*)x[2].s_class);
        x[0].s_class = (void*)new QList<Solid::Device>(xret);
    }
    static void x_3(Smoke::Stack x) {
        // static QList<Solid::Device> listFromQuery(const Solid::Predicate&, const QString&)
        QList<Solid::Device> xret = Solid::Device::listFromQuery(*(const Solid::Predicate*)x[1].s_class,*(const QString*)x[2].s_class);
        x[0].s_class = (void*)new QList<Solid::Device>(xret);
    }
    static void x_4(Smoke::Stack x) {
        // static QList<Solid::Device> listFromQuery(const QString&, const QString&)
        QList<Solid::Device> xret = Solid::Device::listFromQuery(*(const QString*)x[1].s_class,*(const QString*)x[2].s_class);
        x[0].s_class = (void*)new QList<Solid::Device>(xret);
    }
    static void x_5(Smoke::Stack x) {
        // Solid::Device* Device(const QString&)
        x_Solid__Device* xret = new x_Solid__Device(*(const QString*)x[1].s_class);
        x[0].s_class = (void*)xret;
    }
    explicit x_Solid__Device(const QString& x1) : Device(x1) {}
    static void x_6(Smoke::Stack x) {
        // Solid::Device* Device(const Solid::Device&)
        x_Solid__Device* xret = new x_Solid__Device(*(const Solid::Device*)x[1].s_class);
        x[0].s_class = (void*)xret;
    }
    explicit x_Solid__Device(const Solid::Device& x1) : Device(x1) {}
    void x_7(Smoke::Stack x) {
        // Solid::Device& operator=(const Solid::Device&)
        Solid::Device& xret = this->Solid::Device::operator=(*(const Solid::Device*)x[1].s_class);
        x[0].s_class = (void*)&xret;
    }
    void x_8(Smoke::Stack x) {
        // bool isValid() const
        bool xret = ((const x_Solid__Device*)this)->Solid::Device::isValid();
        x[0].s_bool = xret;
    }
    void x_9(Smoke::Stack x) {
        // QString udi() const
        QString xret = ((const x_Solid__Device*)this)->Solid::Device::udi();
        x[0].s_class = (void*)new QString(xret);
    }
    void x_10(Smoke::Stack x) {
        // QString parentUdi() const
        QString xret = ((const x_Solid__Device*)this)->Solid::Device::parentUdi();
        x[0].s_class = (void*)new QString(xret);
    }
    void x_11(Smoke::Stack x) {
        // Solid::Device parent() const
        Solid::Device xret = ((const x_Solid__Device*)this)->Solid::Device::parent();
        x[0].s_class = (void*)new Solid::Device(xret);
    }
    void x_12(Smoke::Stack x) {
        // QString vendor() const
        QString xret = ((const x_Solid__Device*)this)->Solid::Device::vendor();
        x[0].s_class = (void*)new QString(xret);
    }
    void x_13(Smoke::Stack x) {
        // QString product() const
        QString xret = ((const x_Solid__Device*)this)->Solid::Device::product();
        x[0].s_class = (void*)new QString(xret);
    }
    void x_14(Smoke::Stack x) {
        // QString icon() const
        QString xret = ((const x_Solid__Device*)this)->Solid::Device::icon();
        x[0].s_class = (void*)new QString(xret);
    }
    void x_15(Smoke::Stack x) {
        // QStringList emblems() const
        QStringList xret = ((const x_Solid__Device*)this)->Solid::Device::emblems();
        x[0].s_class = (void*)new QStringList(xret);
    }
    void x_16(Smoke::Stack x) {
        // QString description() const
        QString xret = ((const x_Solid__Device*)this)->Solid::Device::description();
        x[0].s_class = (void*)new QString(xret);
    }
    void x_17(Smoke::Stack x) {
        // bool isDeviceInterface(const Solid::DeviceInterface::Type&) const
        bool xret = ((const x_Solid__Device*)this)->Solid::Device::isDeviceInterface(*(const Solid::DeviceInterface::Type*)x[1].s_class);
        x[0].s_bool = xret;
    }
    void x_18(Smoke::Stack x) {
        // Solid::DeviceInterface* asDeviceInterface(const Solid::DeviceInterface::Type&)
        Solid::DeviceInterface* xret = this->Solid::Device::asDeviceInterface(*(const Solid::DeviceInterface::Type*)x[1].s_class);
        x[0].s_class = (void*)xret;
    }
    void x_19(Smoke::Stack x) {
        // const Solid::DeviceInterface* asDeviceInterface(const Solid::DeviceInterface::Type&) const
        const Solid::DeviceInterface* xret = ((const x_Solid__Device*)this)->Solid::Device::asDeviceInterface(*(const Solid::DeviceInterface::Type*)x[1].s_class);
        x[0].s_class = (void*)xret;
    }
    static void x_20(Smoke::Stack x) {
        // static QList<Solid::Device> listFromType(const Solid::DeviceInterface::Type&)
        QList<Solid::Device> xret = Solid::Device::listFromType(*(const Solid::DeviceInterface::Type*)x[1].s_class,(const QString&)QString());
        x[0].s_class = (void*)new QList<Solid::Device>(xret);
    }
    static void x_21(Smoke::Stack x) {
        // static QList<Solid::Device> listFromQuery(const Solid::Predicate&)
        QList<Solid::Device> xret = Solid::Device::listFromQuery(*(const Solid::Predicate*)x[1].s_class,(const QString&)QString());
        x[0].s_class = (void*)new QList<Solid::Device>(xret);
    }
    static void x_22(Smoke::Stack x) {
        // static QList<Solid::Device> listFromQuery(const QString&)
        QList<Solid::Device> xret = Solid::Device::listFromQuery(*(const QString*)x[1].s_class,(const QString&)QString());
        x[0].s_class = (void*)new QList<Solid::Device>(xret);
    }
    static void x_23(Smoke::Stack x) {
        // Solid::Device* Device()
        x_Solid__Device* xret = new x_Solid__Device((const QString&)QString());
        x[0].s_class = (void*)xret;
    }
    ~x_Solid__Device() { this->_binding->deleted(17, (void*)this); }
};
void xcall_Solid__Device(Smoke::Index xi, void *obj, Smoke::Stack args) {
    x_Solid__Device *xself = (x_Solid__Device*)obj;
    switch(xi) {
        case 0: xself->x_0(args);	break;
        case 1: x_Solid__Device::x_1(args);	break;
        case 2: x_Solid__Device::x_2(args);	break;
        case 3: x_Solid__Device::x_3(args);	break;
        case 4: x_Solid__Device::x_4(args);	break;
        case 5: x_Solid__Device::x_5(args);	break;
        case 6: x_Solid__Device::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: xself->x_17(args);	break;
        case 18: xself->x_18(args);	break;
        case 19: xself->x_19(args);	break;
        case 20: x_Solid__Device::x_20(args);	break;
        case 21: x_Solid__Device::x_21(args);	break;
        case 22: x_Solid__Device::x_22(args);	break;
        case 23: x_Solid__Device::x_23(args);	break;
        case 24: delete (Solid::Device*)xself;	break;
    }
}
class x_Solid__DeviceInterface : public Solid::DeviceInterface, 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<Solid::DeviceInterface*>(this))) {
            const QMetaObject* xret = ((const x_Solid__DeviceInterface*)this)->Solid::DeviceInterface::metaObject();
            x[0].s_class = (void*)xret;
        } else {
            const QMetaObject* xret = ((const x_Solid__DeviceInterface*)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<Solid::DeviceInterface*>(this))) {
            void* xret = this->Solid::DeviceInterface::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 = Solid::DeviceInterface::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 = Solid::DeviceInterface::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 = Solid::DeviceInterface::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 = Solid::DeviceInterface::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<Solid::DeviceInterface*>(this))) {
            int xret = this->Solid::DeviceInterface::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;
        }
    }
    void x_8(Smoke::Stack x) {
        // bool isValid() const
        bool xret = ((const x_Solid__DeviceInterface*)this)->Solid::DeviceInterface::isValid();
        x[0].s_bool = xret;
    }
    static void x_9(Smoke::Stack x) {
        // static QString typeToString(Solid::DeviceInterface::Type)
        QString xret = Solid::DeviceInterface::typeToString((Solid::DeviceInterface::Type)x[1].s_enum);
        x[0].s_class = (void*)new QString(xret);
    }
    static void x_10(Smoke::Stack x) {
        // static Solid::DeviceInterface::Type stringToType(const QString&)
        Solid::DeviceInterface::Type xret = Solid::DeviceInterface::stringToType(*(const QString*)x[1].s_class);
        x[0].s_enum = xret;
    }
    static void x_11(Smoke::Stack x) {
        // static QString typeDescription(Solid::DeviceInterface::Type)
        QString xret = Solid::DeviceInterface::typeDescription((Solid::DeviceInterface::Type)x[1].s_enum);
        x[0].s_class = (void*)new QString(xret);
    }
    static void x_12(Smoke::Stack x) {
        // Solid::DeviceInterface* DeviceInterface(Solid::DeviceInterfacePrivate&, QObject*)
        x_Solid__DeviceInterface* xret = new x_Solid__DeviceInterface(*(Solid::DeviceInterfacePrivate*)x[1].s_class,(QObject*)x[2].s_class);
        x[0].s_class = (void*)xret;
    }
    explicit x_Solid__DeviceInterface(Solid::DeviceInterfacePrivate& x1, QObject* x2) : DeviceInterface(x1, x2) {}
    static void x_13(Smoke::Stack x) {
        // static QString tr(const char*)
        QString xret = Solid::DeviceInterface::tr((const char*)x[1].s_class,(const char*)0);
        x[0].s_class = (void*)new QString(xret);
    }
    static void x_14(Smoke::Stack x) {
        // static QString trUtf8(const char*)
        QString xret = Solid::DeviceInterface::trUtf8((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 const QMetaObject staticMetaObject
        x[0].s_class = (void*)&Solid::DeviceInterface::staticMetaObject;
    }
    static void x_16(Smoke::Stack x) {
        x[0].s_enum = (long)Solid::DeviceInterface::Unknown;
    }
    static void x_17(Smoke::Stack x) {
        x[0].s_enum = (long)Solid::DeviceInterface::GenericInterface;
    }
    static void x_18(Smoke::Stack x) {
        x[0].s_enum = (long)Solid::DeviceInterface::Processor;
    }
    static void x_19(Smoke::Stack x) {
        x[0].s_enum = (long)Solid::DeviceInterface::Block;
    }
    static void x_20(Smoke::Stack x) {
        x[0].s_enum = (long)Solid::DeviceInterface::StorageAccess;
    }
    static void x_21(Smoke::Stack x) {
        x[0].s_enum = (long)Solid::DeviceInterface::StorageDrive;
    }
    static void x_22(Smoke::Stack x) {
        x[0].s_enum = (long)Solid::DeviceInterface::OpticalDrive;
    }
    static void x_23(Smoke::Stack x) {
        x[0].s_enum = (long)Solid::DeviceInterface::StorageVolume;
    }
    static void x_24(Smoke::Stack x) {
        x[0].s_enum = (long)Solid::DeviceInterface::OpticalDisc;
    }
    static void x_25(Smoke::Stack x) {
        x[0].s_enum = (long)Solid::DeviceInterface::Camera;
    }
    static void x_26(Smoke::Stack x) {
        x[0].s_enum = (long)Solid::DeviceInterface::PortableMediaPlayer;
    }
    static void x_27(Smoke::Stack x) {
        x[0].s_enum = (long)Solid::DeviceInterface::NetworkInterface;
    }
    static void x_28(Smoke::Stack x) {
        x[0].s_enum = (long)Solid::DeviceInterface::AcAdapter;
    }
    static void x_29(Smoke::Stack x) {
        x[0].s_enum = (long)Solid::DeviceInterface::Battery;
    }
    static void x_30(Smoke::Stack x) {
        x[0].s_enum = (long)Solid::DeviceInterface::Button;
    }
    static void x_31(Smoke::Stack x) {
        x[0].s_enum = (long)Solid::DeviceInterface::AudioInterface;
    }
    static void x_32(Smoke::Stack x) {
        x[0].s_enum = (long)Solid::DeviceInterface::DvbInterface;
    }
    static void x_33(Smoke::Stack x) {
        x[0].s_enum = (long)Solid::DeviceInterface::Video;
    }
    static void x_34(Smoke::Stack x) {
        x[0].s_enum = (long)Solid::DeviceInterface::SerialInterface;
    }
    static void x_35(Smoke::Stack x) {
        x[0].s_enum = (long)Solid::DeviceInterface::SmartCardReader;
    }
    static void x_36(Smoke::Stack x) {
        x[0].s_enum = (long)Solid::DeviceInterface::InternetGateway;
    }
    static void x_37(Smoke::Stack x) {
        x[0].s_enum = (long)Solid::DeviceInterface::NetworkShare;
    }
    static void x_38(Smoke::Stack x) {
        x[0].s_enum = (long)Solid::DeviceInterface::Last;
    }
    virtual const QMetaObject* metaObject() const {
        Smoke::StackItem x[1];
        if (this->_binding->callMethod(171, (void*)this, x)) return (const QMetaObject*)x[0].s_class;
        return this->Solid::DeviceInterface::metaObject();
    }
    virtual void* qt_metacast(const char* x1) {
        Smoke::StackItem x[2];
        x[1].s_class = (void*)x1;
        if (this->_binding->callMethod(172, (void*)this, x)) return (void*)x[0].s_class;
        return this->Solid::DeviceInterface::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(177, (void*)this, x)) return (int)x[0].s_int;
        return this->Solid::DeviceInterface::qt_metacall(x1, x2, x3);
    }
    virtual bool event(QEvent* x1) {
        Smoke::StackItem x[2];
        x[1].s_class = (void*)x1;
        if (this->_binding->callMethod(1, (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(2, (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(3, (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(4, (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(5, (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(6, (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(7, (void*)this, x)) return;
        this->QObject::disconnectNotify(x1);
    }
    static void xenum_operation(Smoke::EnumOperation xop, Smoke::Index xtype, void *&xdata, long &xvalue) {
        switch(xtype) {
        case 104: //Solid::DeviceInterface::Type
            switch(xop) {
                case Smoke::EnumNew:
                    xdata = (void*)new Solid::DeviceInterface::Type;
                    break;
                case Smoke::EnumDelete:
                    delete (Solid::DeviceInterface::Type*)xdata;
                    break;
                case Smoke::EnumFromLong:
                    *(Solid::DeviceInterface::Type*)xdata = (Solid::DeviceInterface::Type)xvalue;
                    break;
                case Smoke::EnumToLong:
                    xvalue = (long)*(Solid::DeviceInterface::Type*)xdata;
                    break;
            }
            break;
        }
    }
    ~x_Solid__DeviceInterface() { this->_binding->deleted(18, (void*)this); }
};
void xenum_Solid__DeviceInterface(Smoke::EnumOperation xop, Smoke::Index xtype, void *&xdata, long &xvalue) {
    x_Solid__DeviceInterface::xenum_operation(xop, xtype, xdata, xvalue);
}
void xcall_Solid__DeviceInterface(Smoke::Index xi, void *obj, Smoke::Stack args) {
    x_Solid__DeviceInterface *xself = (x_Solid__DeviceInterface*)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_Solid__DeviceInterface::x_3(args);	break;
        case 4: x_Solid__DeviceInterface::x_4(args);	break;
        case 5: x_Solid__DeviceInterface::x_5(args);	break;
        case 6: x_Solid__DeviceInterface::x_6(args);	break;
        case 7: xself->x_7(args);	break;
        case 8: xself->x_8(args);	break;
        case 9: x_Solid__DeviceInterface::x_9(args);	break;
        case 10: x_Solid__DeviceInterface::x_10(args);	break;
        case 11: x_Solid__DeviceInterface::x_11(args);	break;
        case 12: x_Solid__DeviceInterface::x_12(args);	break;
        case 13: x_Solid__DeviceInterface::x_13(args);	break;
        case 14: x_Solid__DeviceInterface::x_14(args);	break;
        case 15: x_Solid__DeviceInterface::x_15(args);	break;
        case 16: x_Solid__DeviceInterface::x_16(args);	break;
        case 17: x_Solid__DeviceInterface::x_17(args);	break;
        case 18: x_Solid__DeviceInterface::x_18(args);	break;
        case 19: x_Solid__DeviceInterface::x_19(args);	break;
        case 20: x_Solid__DeviceInterface::x_20(args);	break;
        case 21: x_Solid__DeviceInterface::x_21(args);	break;
        case 22: x_Solid__DeviceInterface::x_22(args);	break;
        case 23: x_Solid__DeviceInterface::x_23(args);	break;
        case 24: x_Solid__DeviceInterface::x_24(args);	break;
        case 25: x_Solid__DeviceInterface::x_25(args);	break;
        case 26: x_Solid__DeviceInterface::x_26(args);	break;
        case 27: x_Solid__DeviceInterface::x_27(args);	break;
        case 28: x_Solid__DeviceInterface::x_28(args);	break;
        case 29: x_Solid__DeviceInterface::x_29(args);	break;
        case 30: x_Solid__DeviceInterface::x_30(args);	break;
        case 31: x_Solid__DeviceInterface::x_31(args);	break;
        case 32: x_Solid__DeviceInterface::x_32(args);	break;
        case 33: x_Solid__DeviceInterface::x_33(args);	break;
        case 34: x_Solid__DeviceInterface::x_34(args);	break;
        case 35: x_Solid__DeviceInterface::x_35(args);	break;
        case 36: x_Solid__DeviceInterface::x_36(args);	break;
        case 37: x_Solid__DeviceInterface::x_37(args);	break;
        case 38: x_Solid__DeviceInterface::x_38(args);	break;
        case 39: delete (Solid::DeviceInterface*)xself;	break;
    }
}

}
