/*
 * Module code.
 *
 * Generated by SIP 6.15.3
 */

#include "sipAPIrcc_backend.h"

#line 25 "/build/calibre/src/calibre-9.11.0/build/pyqt/rcc_backend/rcc.sip"
#include "rcc.h"
#line 12 "/build/calibre/src/calibre-9.11.0/build/pyqt/rcc_backend/build/rcc_backend/siprcc_backendcmodule.cpp"

/* Define the strings used by this module. */
const char sipStrings_rcc_backend[] = {
    'R', 'C', 'C', 'R', 'e', 's', 'o', 'u', 'r', 'c', 'e', 'L', 'i', 'b', 'r', 'a', 'r', 'y', ':', ':', 'C', 'o', 'm', 'p', 'r', 'e', 's', 's', 'i', 'o', 'n', 'A', 'l', 'g', 'o', 'r', 'i', 't', 'h', 'm', 0,
    'R', 'C', 'C', 'R', 'e', 's', 'o', 'u', 'r', 'c', 'e', 'L', 'i', 'b', 'r', 'a', 'r', 'y', ':', ':', 'F', 'o', 'r', 'm', 'a', 't', 0,
    's', 'e', 't', 'C', 'o', 'm', 'p', 'r', 'e', 's', 's', 'i', 'o', 'n', 'A', 'l', 'g', 'o', 'r', 'i', 't', 'h', 'm', 0,
    'c', 'o', 'm', 'p', 'r', 'e', 's', 's', 'i', 'o', 'n', 'A', 'l', 'g', 'o', 'r', 'i', 't', 'h', 'm', 0,
    'R', 'C', 'C', 'R', 'e', 's', 'o', 'u', 'r', 'c', 'e', 'L', 'i', 'b', 'r', 'a', 'r', 'y', 0,
    'f', 'a', 'i', 'l', 'e', 'd', 'R', 'e', 's', 'o', 'u', 'r', 'c', 'e', 's', 0,
    's', 'e', 't', 'R', 'e', 's', 'o', 'u', 'r', 'c', 'e', 'R', 'o', 'o', 't', 0,
    's', 'e', 't', 'U', 's', 'e', 'N', 'a', 'm', 'e', 'S', 'p', 'a', 'c', 'e', 0,
    'f', 'o', 'r', 'm', 'a', 't', 'V', 'e', 'r', 's', 'i', 'o', 'n', 0,
    's', 'e', 't', 'I', 'n', 'p', 'u', 't', 'F', 'i', 'l', 'e', 's', 0,
    's', 'e', 't', 'O', 'u', 't', 'p', 'u', 't', 'N', 'a', 'm', 'e', 0,
    'r', 'e', 's', 'o', 'u', 'r', 'c', 'e', 'R', 'o', 'o', 't', 0,
    'u', 's', 'e', 'N', 'a', 'm', 'e', 'S', 'p', 'a', 'c', 'e', 0,
    'P', 'y', 't', 'h', 'o', 'n', '_', 'C', 'o', 'd', 'e', 0,
    'r', 'c', 'c', '_', 'b', 'a', 'c', 'k', 'e', 'n', 'd', 0,
    's', 'e', 't', 'I', 'n', 'i', 't', 'N', 'a', 'm', 'e', 0,
    'o', 'u', 't', 'p', 'u', 't', 'N', 'a', 'm', 'e', 0,
    's', 'e', 't', 'V', 'e', 'r', 'b', 'o', 's', 'e', 0,
    'd', 'a', 't', 'a', 'F', 'i', 'l', 'e', 's', 0,
    'r', 'e', 'a', 'd', 'F', 'i', 'l', 'e', 's', 0,
    's', 'e', 't', 'F', 'o', 'r', 'm', 'a', 't', 0,
    's', 'e', 't', 'N', 'o', 'Z', 's', 't', 'd', 0,
    'i', 'n', 'i', 't', 'N', 'a', 'm', 'e', 0,
    'v', 'e', 'r', 'b', 'o', 's', 'e', 0,
    'B', 'i', 'n', 'a', 'r', 'y', 0,
    'C', '_', 'C', 'o', 'd', 'e', 0,
    'f', 'o', 'r', 'm', 'a', 't', 0,
    'n', 'o', 'Z', 's', 't', 'd', 0,
    'o', 'u', 't', 'p', 'u', 't', 0,
    'N', 'o', 'n', 'e', '_', 0,
    'P', 'a', 's', 's', '1', 0,
    'P', 'a', 's', 's', '2', 0,
    'B', 'e', 's', 't', 0,
    'Z', 'l', 'i', 'b', 0,
};
static sipEnumTypeDef enumTypes[] = {
    {{SIP_NULLPTR, SIP_TYPE_ENUM, sipNameNr_RCCResourceLibrary__CompressionAlgorithm, SIP_NULLPTR, 0}, SIP_ENUM_ENUM, sipNameNr_CompressionAlgorithm, 0, 4, SIP_NULLPTR},
    {{SIP_NULLPTR, SIP_TYPE_ENUM, sipNameNr_RCCResourceLibrary__Format, SIP_NULLPTR, 0}, SIP_ENUM_ENUM, sipNameNr_Format, 0, 5, SIP_NULLPTR},
};


/*
 * This defines each type in this module.
 */
sipTypeDef *sipExportedTypes_rcc_backend[] = {
    &sipTypeDef_rcc_backend_RCCResourceLibrary.ctd_base,
    &enumTypes[0].etd_base,
    &enumTypes[1].etd_base,
};


/* This defines the types that this module needs to import from QtCore. */
sipImportedTypeDef sipImportedTypes_rcc_backend_QtCore[] = {
    {"QIODevice"},
    {"QString"},
    {"QStringList"},
    {SIP_NULLPTR}
};


/* This defines the modules that this module needs to import. */
static sipImportedModuleDef importsTable[] = {
    {"PyQt6.QtCore", sipImportedTypes_rcc_backend_QtCore, SIP_NULLPTR, SIP_NULLPTR},
    {SIP_NULLPTR, SIP_NULLPTR, SIP_NULLPTR, SIP_NULLPTR}
};


/* This defines this module. */
sipExportedModuleDef sipModuleAPI_rcc_backend = {
    SIP_NULLPTR,
    8,
    sipNameNr_rcc_backend,
    0,
    sipStrings_rcc_backend,
    importsTable,
    3,
    sipExportedTypes_rcc_backend,
    SIP_NULLPTR,
    0,
    SIP_NULLPTR,
    SIP_NULLPTR,
    SIP_NULLPTR,
    {SIP_NULLPTR, SIP_NULLPTR, SIP_NULLPTR, SIP_NULLPTR, SIP_NULLPTR, SIP_NULLPTR, SIP_NULLPTR, SIP_NULLPTR, SIP_NULLPTR, SIP_NULLPTR},
    SIP_NULLPTR,
    SIP_NULLPTR,
    SIP_NULLPTR,
    SIP_NULLPTR,
    SIP_NULLPTR,
    SIP_NULLPTR,
    SIP_NULLPTR,
};


/* The SIP API and the APIs of any imported modules. */
const sipAPIDef *sipAPI_rcc_backend;

sip_qt_metaobject_func sip_rcc_backend_qt_metaobject;
sip_qt_metacall_func sip_rcc_backend_qt_metacall;
sip_qt_metacast_func sip_rcc_backend_qt_metacast;


/* The Python module initialisation function. */
#if defined(SIP_STATIC_MODULE)
extern "C" PyObject *PyInit_rcc_backend()
#else
PyMODINIT_FUNC PyInit_rcc_backend()
#endif
{
    static PyMethodDef sip_methods[] = {
        {SIP_NULLPTR, SIP_NULLPTR, 0, SIP_NULLPTR}
    };
    static PyModuleDef sip_module_def = {
        PyModuleDef_HEAD_INIT,
        "rcc_backend",
        SIP_NULLPTR,
        -1,
        sip_methods,
        SIP_NULLPTR,
        SIP_NULLPTR,
        SIP_NULLPTR,
        SIP_NULLPTR
    };

    PyObject *sipModule, *sipModuleDict;
    PyObject *sip_sipmod, *sip_capiobj;

    /* Initialise the module and get it's dictionary. */
    if ((sipModule = PyModule_Create(&sip_module_def)) == SIP_NULLPTR)
        return SIP_NULLPTR;

    sipModuleDict = PyModule_GetDict(sipModule);

    /* Get the SIP module's API. */
    if ((sip_sipmod = PyImport_ImportModule("PyQt6.sip")) == SIP_NULLPTR)
    {
        Py_DECREF(sipModule);
        return SIP_NULLPTR;
    }

    sip_capiobj = PyDict_GetItemString(PyModule_GetDict(sip_sipmod), "_C_API");
    Py_DECREF(sip_sipmod);

    if (sip_capiobj == SIP_NULLPTR || !PyCapsule_CheckExact(sip_capiobj))
    {
        PyErr_SetString(PyExc_AttributeError, "PyQt6.sip._C_API is missing or has the wrong type");
        Py_DECREF(sipModule);
        return SIP_NULLPTR;
    }

    sipAPI_rcc_backend = reinterpret_cast<const sipAPIDef *>(PyCapsule_GetPointer(sip_capiobj, "PyQt6.sip._C_API"));

    if (sipAPI_rcc_backend == SIP_NULLPTR)
    {
        Py_DECREF(sipModule);
        return SIP_NULLPTR;
    }

    /* Export the module and publish it's API. */
    if (sipExportModule(&sipModuleAPI_rcc_backend, 13, 8, 0) < 0)
    {
        Py_DECREF(sipModule);
        return SIP_NULLPTR;
    }


    sip_rcc_backend_qt_metaobject = (sip_qt_metaobject_func)sipImportSymbol("qtcore_qt_metaobject");
    sip_rcc_backend_qt_metacall = (sip_qt_metacall_func)sipImportSymbol("qtcore_qt_metacall");
    sip_rcc_backend_qt_metacast = (sip_qt_metacast_func)sipImportSymbol("qtcore_qt_metacast");

    if (!sip_rcc_backend_qt_metacast)
        Py_FatalError("Unable to import qtcore_qt_metacast");

    /* Initialise the module now all its dependencies have been set up. */
    if (sipInitModule(&sipModuleAPI_rcc_backend, sipModuleDict) < 0)
    {
        Py_DECREF(sipModule);
        return SIP_NULLPTR;
    }
    qMetaTypeId<::RCCResourceLibrary::CompressionAlgorithm>();
    qMetaTypeId<::RCCResourceLibrary::Format>();

    return sipModule;
}
