mirror of
https://github.com/kovidgoyal/calibre.git
synced 2025-06-23 15:30:45 -04:00
More multi-phase init
This commit is contained in:
parent
da1b470b54
commit
7d7b52f01c
@ -125,44 +125,31 @@ static PyMethodDef libusb_methods[] = {
|
|||||||
{NULL, NULL, 0, NULL}
|
{NULL, NULL, 0, NULL}
|
||||||
};
|
};
|
||||||
|
|
||||||
static struct PyModuleDef libusb_module = {
|
static int
|
||||||
/* m_base */ PyModuleDef_HEAD_INIT,
|
exec_module(PyObject *m) {
|
||||||
/* m_name */ "libusb",
|
|
||||||
/* m_doc */ libusb_doc,
|
|
||||||
/* m_size */ -1,
|
|
||||||
/* m_methods */ libusb_methods,
|
|
||||||
/* m_slots */ 0,
|
|
||||||
/* m_traverse */ 0,
|
|
||||||
/* m_clear */ 0,
|
|
||||||
/* m_free */ 0,
|
|
||||||
};
|
|
||||||
CALIBRE_MODINIT_FUNC PyInit_libusb(void) {
|
|
||||||
PyObject *m;
|
|
||||||
|
|
||||||
// We deliberately use the default context. This is the context used by
|
// We deliberately use the default context. This is the context used by
|
||||||
// libmtp and we want to ensure that the busnum/devnum numbers are the same
|
// libmtp and we want to ensure that the busnum/devnum numbers are the same
|
||||||
// here and for libmtp.
|
// here and for libmtp.
|
||||||
if(libusb_init(NULL) != 0) {
|
if(libusb_init(NULL) != 0) return -1;
|
||||||
return NULL;
|
|
||||||
}
|
|
||||||
|
|
||||||
Error = PyErr_NewException("libusb.Error", NULL, NULL);
|
Error = PyErr_NewException("libusb.Error", NULL, NULL);
|
||||||
if (Error == NULL) {
|
if (Error == NULL) return -1;
|
||||||
return NULL;
|
|
||||||
}
|
|
||||||
|
|
||||||
cache = PyDict_New();
|
cache = PyDict_New();
|
||||||
if (cache == NULL) {
|
if (cache == NULL) return -1;
|
||||||
return NULL;
|
|
||||||
}
|
|
||||||
|
|
||||||
m = PyModule_Create(&libusb_module);
|
|
||||||
if (m == NULL) {
|
|
||||||
return NULL;
|
|
||||||
}
|
|
||||||
|
|
||||||
PyModule_AddObject(m, "Error", Error);
|
PyModule_AddObject(m, "Error", Error);
|
||||||
PyModule_AddObject(m, "cache", cache);
|
PyModule_AddObject(m, "cache", cache);
|
||||||
|
return 0;
|
||||||
return m;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static PyModuleDef_Slot slots[] = { {Py_mod_exec, exec_module}, {0, NULL} };
|
||||||
|
|
||||||
|
static struct PyModuleDef module_def = {
|
||||||
|
.m_base = PyModuleDef_HEAD_INIT,
|
||||||
|
.m_name = "libusb",
|
||||||
|
.m_doc = libusb_doc,
|
||||||
|
.m_methods = libusb_methods,
|
||||||
|
.m_slots = slots,
|
||||||
|
};
|
||||||
|
|
||||||
|
CALIBRE_MODINIT_FUNC PyInit_libusb(void) { return PyModuleDef_Init(&module_def); }
|
||||||
|
@ -711,34 +711,13 @@ static PyMethodDef libmtp_methods[] = {
|
|||||||
|
|
||||||
{NULL, NULL, 0, NULL}
|
{NULL, NULL, 0, NULL}
|
||||||
};
|
};
|
||||||
|
static int
|
||||||
|
exec_module(PyObject *m) {
|
||||||
static struct PyModuleDef libmtp_module = {
|
|
||||||
/* m_base */ PyModuleDef_HEAD_INIT,
|
|
||||||
/* m_name */ "libmtp",
|
|
||||||
/* m_doc */ libmtp_doc,
|
|
||||||
/* m_size */ -1,
|
|
||||||
/* m_methods */ libmtp_methods,
|
|
||||||
/* m_slots */ 0,
|
|
||||||
/* m_traverse */ 0,
|
|
||||||
/* m_clear */ 0,
|
|
||||||
/* m_free */ 0,
|
|
||||||
};
|
|
||||||
CALIBRE_MODINIT_FUNC PyInit_libmtp(void) {
|
|
||||||
DeviceType.tp_new = PyType_GenericNew;
|
DeviceType.tp_new = PyType_GenericNew;
|
||||||
if (PyType_Ready(&DeviceType) < 0) {
|
if (PyType_Ready(&DeviceType) < 0) return -1;
|
||||||
return NULL;
|
|
||||||
}
|
|
||||||
|
|
||||||
PyObject *m = PyModule_Create(&libmtp_module);
|
|
||||||
if (m == NULL) {
|
|
||||||
return NULL;
|
|
||||||
}
|
|
||||||
|
|
||||||
MTPError = PyErr_NewException("libmtp.MTPError", NULL, NULL);
|
MTPError = PyErr_NewException("libmtp.MTPError", NULL, NULL);
|
||||||
if (MTPError == NULL) {
|
if (MTPError == NULL) return -1;
|
||||||
return NULL;
|
|
||||||
}
|
|
||||||
PyModule_AddObject(m, "MTPError", MTPError);
|
PyModule_AddObject(m, "MTPError", MTPError);
|
||||||
|
|
||||||
// Redirect stdout to get rid of the annoying message about mtpz. Really,
|
// Redirect stdout to get rid of the annoying message about mtpz. Really,
|
||||||
@ -769,5 +748,17 @@ CALIBRE_MODINIT_FUNC PyInit_libmtp(void) {
|
|||||||
PyModule_AddIntMacro(m, LIBMTP_DEBUG_DATA);
|
PyModule_AddIntMacro(m, LIBMTP_DEBUG_DATA);
|
||||||
PyModule_AddIntMacro(m, LIBMTP_DEBUG_ALL);
|
PyModule_AddIntMacro(m, LIBMTP_DEBUG_ALL);
|
||||||
|
|
||||||
return m;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static PyModuleDef_Slot slots[] = { {Py_mod_exec, exec_module}, {0, NULL} };
|
||||||
|
|
||||||
|
static struct PyModuleDef module_def = {
|
||||||
|
.m_base = PyModuleDef_HEAD_INIT,
|
||||||
|
.m_name = "libmtp",
|
||||||
|
.m_doc = libmtp_doc,
|
||||||
|
.m_methods = libmtp_methods,
|
||||||
|
.m_slots = slots,
|
||||||
|
};
|
||||||
|
|
||||||
|
CALIBRE_MODINIT_FUNC PyInit_libmtp(void) { return PyModuleDef_Init(&module_def); }
|
||||||
|
@ -183,50 +183,36 @@ static PyMethodDef wpd_methods[] = {
|
|||||||
{NULL, NULL, 0, NULL}
|
{NULL, NULL, 0, NULL}
|
||||||
};
|
};
|
||||||
|
|
||||||
static struct PyModuleDef wpd_module = {
|
static int
|
||||||
/* m_base */ PyModuleDef_HEAD_INIT,
|
exec_module(PyObject *m) {
|
||||||
/* m_name */ "wpd",
|
|
||||||
/* m_doc */ wpd_doc,
|
|
||||||
/* m_size */ -1,
|
|
||||||
/* m_methods */ wpd_methods,
|
|
||||||
/* m_slots */ 0,
|
|
||||||
/* m_traverse */ 0,
|
|
||||||
/* m_clear */ 0,
|
|
||||||
/* m_free */ 0,
|
|
||||||
};
|
|
||||||
|
|
||||||
CALIBRE_MODINIT_FUNC PyInit_wpd(void) {
|
|
||||||
PyObject *m;
|
|
||||||
|
|
||||||
wpd::DeviceType.tp_new = PyType_GenericNew;
|
wpd::DeviceType.tp_new = PyType_GenericNew;
|
||||||
if (PyType_Ready(&wpd::DeviceType) < 0)
|
if (PyType_Ready(&wpd::DeviceType) < 0) return -1;
|
||||||
return NULL;
|
|
||||||
|
|
||||||
m = PyModule_Create(&wpd_module);
|
|
||||||
if (m == NULL) {
|
|
||||||
return NULL;
|
|
||||||
}
|
|
||||||
|
|
||||||
WPDError = PyErr_NewException("wpd.WPDError", NULL, NULL);
|
WPDError = PyErr_NewException("wpd.WPDError", NULL, NULL);
|
||||||
if (WPDError == NULL) {
|
if (WPDError == NULL) return -1;
|
||||||
return NULL;
|
|
||||||
}
|
|
||||||
PyModule_AddObject(m, "WPDError", WPDError);
|
PyModule_AddObject(m, "WPDError", WPDError);
|
||||||
|
|
||||||
NoWPD = PyErr_NewException("wpd.NoWPD", NULL, NULL);
|
NoWPD = PyErr_NewException("wpd.NoWPD", NULL, NULL);
|
||||||
if (NoWPD == NULL) {
|
if (NoWPD == NULL) return -1;
|
||||||
return NULL;
|
|
||||||
}
|
|
||||||
PyModule_AddObject(m, "NoWPD", NoWPD);
|
PyModule_AddObject(m, "NoWPD", NoWPD);
|
||||||
|
|
||||||
WPDFileBusy = PyErr_NewException("wpd.WPDFileBusy", NULL, NULL);
|
WPDFileBusy = PyErr_NewException("wpd.WPDFileBusy", NULL, NULL);
|
||||||
if (WPDFileBusy == NULL) {
|
if (WPDFileBusy == NULL) return -1;
|
||||||
return NULL;
|
|
||||||
}
|
|
||||||
PyModule_AddObject(m, "WPDFileBusy", WPDFileBusy);
|
PyModule_AddObject(m, "WPDFileBusy", WPDFileBusy);
|
||||||
|
|
||||||
Py_INCREF(&DeviceType);
|
Py_INCREF(&DeviceType);
|
||||||
PyModule_AddObject(m, "Device", (PyObject *)&DeviceType);
|
PyModule_AddObject(m, "Device", (PyObject *)&DeviceType);
|
||||||
|
return 0;
|
||||||
return m;
|
}
|
||||||
|
|
||||||
|
static PyModuleDef_Slot slots[] = { {Py_mod_exec, (void*)exec_module}, {0, NULL} };
|
||||||
|
|
||||||
|
static struct PyModuleDef module_def = {PyModuleDef_HEAD_INIT};
|
||||||
|
|
||||||
|
CALIBRE_MODINIT_FUNC PyInit_wpd(void) {
|
||||||
|
module_def.m_name = "wpd";
|
||||||
|
module_def.m_slots = slots;
|
||||||
|
module_def.m_doc = wpd_doc;
|
||||||
|
module_def.m_methods = wpd_methods;
|
||||||
|
return PyModuleDef_Init(&module_def);
|
||||||
}
|
}
|
||||||
|
@ -460,21 +460,17 @@ static PyMethodDef usbobserver_methods[] = {
|
|||||||
|
|
||||||
{NULL, NULL, 0, NULL}
|
{NULL, NULL, 0, NULL}
|
||||||
};
|
};
|
||||||
|
static int
|
||||||
|
exec_module(PyObject *module) { return 0; }
|
||||||
|
|
||||||
static struct PyModuleDef usbobserver_module = {
|
static PyModuleDef_Slot slots[] = { {Py_mod_exec, exec_module}, {0, NULL} };
|
||||||
/* m_base */ PyModuleDef_HEAD_INIT,
|
|
||||||
/* m_name */ "usbobserver",
|
static struct PyModuleDef module_def = {
|
||||||
/* m_doc */ usbobserver_doc,
|
.m_base = PyModuleDef_HEAD_INIT,
|
||||||
/* m_size */ -1,
|
.m_name = "usbobserver",
|
||||||
/* m_methods */ usbobserver_methods,
|
.m_doc = usbobserver_doc,
|
||||||
/* m_slots */ 0,
|
.m_methods = usbobserver_methods,
|
||||||
/* m_traverse */ 0,
|
.m_slots = slots,
|
||||||
/* m_clear */ 0,
|
|
||||||
/* m_free */ 0,
|
|
||||||
};
|
};
|
||||||
CALIBRE_MODINIT_FUNC PyInit_usbobserver(void) {
|
|
||||||
PyObject *m = NULL;
|
|
||||||
m = PyModule_Create(&usbobserver_module);
|
|
||||||
|
|
||||||
return m;
|
CALIBRE_MODINIT_FUNC PyInit_usbobserver(void) { return PyModuleDef_Init(&module_def); }
|
||||||
}
|
|
||||||
|
@ -101,22 +101,16 @@ static PyMethodDef module_methods[] = {
|
|||||||
{NULL, NULL, 0, NULL} /* Sentinel */
|
{NULL, NULL, 0, NULL} /* Sentinel */
|
||||||
};
|
};
|
||||||
|
|
||||||
|
static int
|
||||||
|
exec_module(PyObject *module) { return 0; }
|
||||||
|
|
||||||
static struct PyModuleDef cocoa_module = {
|
static PyModuleDef_Slot slots[] = { {Py_mod_exec, exec_module}, {0, NULL} };
|
||||||
/* m_base */ PyModuleDef_HEAD_INIT,
|
|
||||||
/* m_name */ "cocoa",
|
static struct PyModuleDef module_def = {
|
||||||
/* m_doc */ "",
|
.m_base = PyModuleDef_HEAD_INIT,
|
||||||
/* m_size */ -1,
|
.m_name = "cocoa",
|
||||||
/* m_methods */ module_methods,
|
.m_methods = module_methods,
|
||||||
/* m_slots */ 0,
|
.m_slots = slots,
|
||||||
/* m_traverse */ 0,
|
|
||||||
/* m_clear */ 0,
|
|
||||||
/* m_free */ 0,
|
|
||||||
};
|
};
|
||||||
CALIBRE_MODINIT_FUNC PyInit_cocoa(void) {
|
|
||||||
PyObject *m = PyModule_Create(&cocoa_module);
|
CALIBRE_MODINIT_FUNC PyInit_cocoa(void) { return PyModuleDef_Init(&module_def); }
|
||||||
if (m == NULL) {
|
|
||||||
return NULL;
|
|
||||||
}
|
|
||||||
return m;
|
|
||||||
}
|
|
||||||
|
@ -234,27 +234,8 @@ static PyMethodDef winfonts_methods[] = {
|
|||||||
|
|
||||||
{NULL, NULL, 0, NULL}
|
{NULL, NULL, 0, NULL}
|
||||||
};
|
};
|
||||||
|
static int
|
||||||
|
exec_module(PyObject *m) {
|
||||||
static struct PyModuleDef winfonts_module = {
|
|
||||||
/* m_base */ PyModuleDef_HEAD_INIT,
|
|
||||||
/* m_name */ "winfonts",
|
|
||||||
/* m_doc */ winfonts_doc,
|
|
||||||
/* m_size */ -1,
|
|
||||||
/* m_methods */ winfonts_methods,
|
|
||||||
/* m_slots */ 0,
|
|
||||||
/* m_traverse */ 0,
|
|
||||||
/* m_clear */ 0,
|
|
||||||
/* m_free */ 0,
|
|
||||||
};
|
|
||||||
|
|
||||||
CALIBRE_MODINIT_FUNC PyInit_winfonts(void) {
|
|
||||||
PyObject *m;
|
|
||||||
m = PyModule_Create(&winfonts_module);
|
|
||||||
if (m == NULL) {
|
|
||||||
return NULL;
|
|
||||||
}
|
|
||||||
|
|
||||||
PyModule_AddIntMacro(m, FW_DONTCARE);
|
PyModule_AddIntMacro(m, FW_DONTCARE);
|
||||||
PyModule_AddIntMacro(m, FW_THIN);
|
PyModule_AddIntMacro(m, FW_THIN);
|
||||||
PyModule_AddIntMacro(m, FW_EXTRALIGHT);
|
PyModule_AddIntMacro(m, FW_EXTRALIGHT);
|
||||||
@ -271,5 +252,17 @@ CALIBRE_MODINIT_FUNC PyInit_winfonts(void) {
|
|||||||
PyModule_AddIntMacro(m, FW_HEAVY);
|
PyModule_AddIntMacro(m, FW_HEAVY);
|
||||||
PyModule_AddIntMacro(m, FW_BLACK);
|
PyModule_AddIntMacro(m, FW_BLACK);
|
||||||
|
|
||||||
return m;
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
static PyModuleDef_Slot slots[] = { {Py_mod_exec, (void*)exec_module}, {0, NULL} };
|
||||||
|
|
||||||
|
static struct PyModuleDef module_def = {PyModuleDef_HEAD_INIT};
|
||||||
|
|
||||||
|
CALIBRE_MODINIT_FUNC PyInit_winfonts(void) {
|
||||||
|
module_def.m_name = "winfonts";
|
||||||
|
module_def.m_slots = slots;
|
||||||
|
module_def.m_doc = winfonts_doc;
|
||||||
|
module_def.m_methods = winfonts_methods;
|
||||||
|
return PyModuleDef_Init(&module_def);
|
||||||
}
|
}
|
||||||
|
@ -506,10 +506,9 @@ exec_module(PyObject *m) {
|
|||||||
|
|
||||||
static PyModuleDef_Slot slots[] = { {Py_mod_exec, (void*)exec_module}, {0, NULL} };
|
static PyModuleDef_Slot slots[] = { {Py_mod_exec, (void*)exec_module}, {0, NULL} };
|
||||||
|
|
||||||
static struct PyModuleDef module_def = {0};
|
static struct PyModuleDef module_def = {PyModuleDef_HEAD_INIT};
|
||||||
|
|
||||||
CALIBRE_MODINIT_FUNC PyInit_winsapi(void) {
|
CALIBRE_MODINIT_FUNC PyInit_winsapi(void) {
|
||||||
module_def.m_base = PyModuleDef_HEAD_INIT;
|
|
||||||
module_def.m_name = "winsapi";
|
module_def.m_name = "winsapi";
|
||||||
module_def.m_doc = "SAPI wrapper";
|
module_def.m_doc = "SAPI wrapper";
|
||||||
module_def.m_methods = winsapi_methods;
|
module_def.m_methods = winsapi_methods;
|
||||||
|
@ -1395,10 +1395,9 @@ exec_module(PyObject *m) {
|
|||||||
|
|
||||||
static PyModuleDef_Slot slots[] = { {Py_mod_exec, (void*)exec_module}, {0, NULL} };
|
static PyModuleDef_Slot slots[] = { {Py_mod_exec, (void*)exec_module}, {0, NULL} };
|
||||||
|
|
||||||
static struct PyModuleDef module_def = {0};
|
static struct PyModuleDef module_def = {PyModuleDef_HEAD_INIT};
|
||||||
|
|
||||||
CALIBRE_MODINIT_FUNC PyInit_winutil(void) {
|
CALIBRE_MODINIT_FUNC PyInit_winutil(void) {
|
||||||
module_def.m_base = PyModuleDef_HEAD_INIT;
|
|
||||||
module_def.m_name = "winutil";
|
module_def.m_name = "winutil";
|
||||||
module_def.m_doc = winutil_doc;
|
module_def.m_doc = winutil_doc;
|
||||||
module_def.m_methods = winutil_methods;
|
module_def.m_methods = winutil_methods;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user