summaryrefslogtreecommitdiffstats
path: root/src/overlay.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/overlay.c')
-rw-r--r--src/overlay.c51
1 files changed, 51 insertions, 0 deletions
diff --git a/src/overlay.c b/src/overlay.c
index 79fee08..74910f9 100644
--- a/src/overlay.c
+++ b/src/overlay.c
@@ -93,10 +93,61 @@ int overlayIsOfficial(Overlay *o)
return (int) PyLong_AsLong(iso);
}
+int overlayIsSupported(Overlay *o)
+{
+ if (!o || !o->object)
+ return -1;
+
+ PyObject *iss = PyObject_CallMethod(o->object, "is_supported", NULL);
+
+ //TODO:Py_DECREF me !
+
+ return (int) PyLong_AsLong(iss);
+}
+
+const char *overlayShortList(Overlay *o)
+{
+ if (!o || !o->object)
+ return NULL;
+
+ PyObject *sl = PyObject_CallMethod(o->object, "short_list", NULL);
+
+ //TODO:Py_DECREF me !
+
+ return PyBytes_AsString(sl);
+}
+
+const char *overlayStr(Overlay *o)
+{
+ if (!o || !o->object)
+ return NULL;
+
+ PyObject *str = PyObject_CallMethod(o->object, "str", NULL);
+
+ //TODO:Py_DECREF me !
+
+ return PyBytes_AsString(str);
+}
+
+const char *overlayToXml(Overlay *o)
+{
+ if (!o || !o->object)
+ return NULL;
+
+ PyObject *element = PyObject_CallMethod(o->object, "to_xml", NULL);
+ PyObject *str = executeFunction("xml.etree.ElementTree", "tostring", "(O)", element);
+
+ Py_DECREF(element);
+
+ return PyBytes_AsString(str);
+}
+
void overlayFree(Overlay *o)
{
if (o && o->object)
+ {
Py_DECREF(o->object);
+ }
if (o)
free(o);
}