move CPython code into yaze_c_py.cc

This commit is contained in:
scawful
2024-08-07 17:00:57 -04:00
parent c9300f576d
commit 594b2498e8
2 changed files with 34 additions and 36 deletions

34
src/py/yaze_c_py.cc Normal file
View File

@@ -0,0 +1,34 @@
#include <Python.h>
static PyObject *yaze_init(PyObject *self, PyObject *args);
/**
* Python C API Example, in case I need more functionality than Boost.Python
*/
static PyMethodDef YazeMethods[] = {
{"system", yaze_init, METH_VARARGS, "Initialize the yaze lib."},
{NULL, NULL, 0, NULL} /* Sentinel */
};
static struct PyModuleDef yaze_module = {PyModuleDef_HEAD_INIT,
"yaze", // Module title
NULL, // Documentation
-1, // Interpreter state size
YazeMethods};
// PyMODINIT_FUNC PyInit_yaze(void) { return PyModule_Create(&yaze_module); }
static PyObject *YazeError;
static PyObject *yaze_init(PyObject *self, PyObject *args) {
const char *command;
int sts;
if (!PyArg_ParseTuple(args, "s", &command)) return NULL;
sts = system(command);
if (sts < 0) {
PyErr_SetString(YazeError, "System command failed");
return NULL;
}
return PyLong_FromLong(sts);
}

View File

@@ -1,16 +1,11 @@
#include <Python.h>
#include <boost/python.hpp>
#include "base/snes_color.h"
#include "base/sprite.h"
#include "yaze.h"
static PyObject *yaze_init(PyObject *self, PyObject *args);
BOOST_PYTHON_MODULE(yaze) {
using namespace boost::python;
def("yaze_init", yaze_init);
class_<rom>("rom")
.def_readonly("filename", &rom::filename)
@@ -37,34 +32,3 @@ BOOST_PYTHON_MODULE(yaze) {
.def_readonly("id", &sprite::id)
.def_readonly("actions", &sprite::actions);
}
/**
* Python C API Example, in case I need more functionality than Boost.Python
*/
static PyMethodDef YazeMethods[] = {
{"system", yaze_init, METH_VARARGS, "Initialize the yaze lib."},
{NULL, NULL, 0, NULL} /* Sentinel */
};
static struct PyModuleDef yaze_module = {PyModuleDef_HEAD_INIT,
"yaze", // Module title
NULL, // Documentation
-1, // Interpreter state size
YazeMethods};
// PyMODINIT_FUNC PyInit_yaze(void) { return PyModule_Create(&yaze_module); }
static PyObject *YazeError;
static PyObject *yaze_init(PyObject *self, PyObject *args) {
const char *command;
int sts;
if (!PyArg_ParseTuple(args, "s", &command)) return NULL;
sts = system(command);
if (sts < 0) {
PyErr_SetString(YazeError, "System command failed");
return NULL;
}
return PyLong_FromLong(sts);
}