diff options
| author | Jeff Armstrong <jeffrey.armstrong@approximatrix.com> | 2011-07-22 19:05:15 -0400 |
|---|---|---|
| committer | Jeff Armstrong <jeffrey.armstrong@approximatrix.com> | 2011-07-22 19:05:15 -0400 |
| commit | 6a51839ca252a993fee42c9e1b7c7079e74d652e (patch) | |
| tree | 7deeb95ec14c10bf243d268cc2fdff4f1ebfa22e /lib | |
| parent | 4887bfbc732ff6ffe456a980874c65219ca08674 (diff) | |
| download | gempy-6a51839ca252a993fee42c9e1b7c7079e74d652e.tar.gz gempy-6a51839ca252a993fee42c9e1b7c7079e74d652e.zip | |
Various fixes to get the example running.
Diffstat (limited to 'lib')
| -rw-r--r-- | lib/gem.c | 6 | ||||
| -rw-r--r-- | lib/ldg_Python.h | 5 | ||||
| -rw-r--r-- | lib/py_aes.c | 37 | ||||
| -rw-r--r-- | lib/py_aes.h | 3 |
4 files changed, 35 insertions, 16 deletions
@@ -45,9 +45,10 @@ GemMethods[] = { {"wind_delete", py_wind_delete, METH_VARARGS, "Delete a window (after closing...)"}, {"wind_close", py_wind_close, METH_VARARGS, "Close a window"}, {"wind_set", py_wind_set, METH_VARARGS, "Set a window parameter"}, + {"wind_set_string", py_wind_set_string, METH_VARARGS, "Set a string window parameter"}, {"wind_update", py_wind_update, METH_VARARGS, "Lock window redraw for updates"}, - {"evnt_multi", py_evnt_multi, METH_VARARGS, "Process multiple GEM events."}, + {"evnt_multi", py_evnt_multi, METH_VARARGS | METH_KEYWORDS, "Process multiple GEM events."}, {NULL,NULL,0,NULL} }; @@ -111,6 +112,7 @@ PROC LibFunc[] = { "py_wind_close", "Internal\n", py_wind_close, "py_wind_update", "Internal\n", py_wind_update, "py_wind_set", "Internal\n", py_wind_set, + "py_wind_set_string", "Internal\n", py_wind_set_string, /* AES Event Library */ "py_evnt_multi", "Internal\n", py_evnt_multi, @@ -119,7 +121,7 @@ PROC LibFunc[] = { }; LDGLIB LibLdg[] = { - 0x0001, 22, LibFunc, "GEM Extensions for Python", 0 + 0x0001, 23, LibFunc, "GEM Extensions for Python", 0 }; int main( void) diff --git a/lib/ldg_Python.h b/lib/ldg_Python.h index e4538b4..5bb03c6 100644 --- a/lib/ldg_Python.h +++ b/lib/ldg_Python.h @@ -4,7 +4,7 @@ #include <Python.h> #include <ldg.h> -#define PY_API_FCOUNT 12 +#define PY_API_FCOUNT 14 #ifndef LDG_INTERNAL extern void *pycallbacks[PY_API_FCOUNT]; @@ -26,6 +26,9 @@ PyObject *GEMError; #define Py_DecRef(obj) ldg_callback(pycallbacks[9],obj) #define Py_None ((PyObject *)pycallbacks[10]) #define PyArg_ParseTupleAndKeywords(tpl,...) ldg_callback(pycallbacks[11],tpl,##__VA_ARGS__) +#define PyString_Check(obj) (Py_TYPE(obj) == pycallbacks[12]) +#define PyString_AsString(obj) (const char *)ldg_callback(pycallbacks[13],obj) + #define Py_INCREF(obj) ldg_callback(pycallbacks[8],obj) #define Py_DECREF(obj) ldg_callback(pycallbacks[9],obj) diff --git a/lib/py_aes.c b/lib/py_aes.c index ede4788..b112876 100644 --- a/lib/py_aes.c +++ b/lib/py_aes.c @@ -349,13 +349,28 @@ int ret; return Py_None; } +PyObject* __CDECL py_wind_set_string(PyObject *self, PyObject *args) +{ +int id, sp; +char *str; +short w1, w2; + + if(!PyArg_ParseTuple(args,"iiz",&id,&sp,&str)) + return NULL; + + wind_set_str(id,sp,str); + + Py_INCREF(Py_None); + return Py_None; +} + PyObject* __CDECL py_wind_set(PyObject *self, PyObject *args) { int id, sp; int w1, w2, w3, w4; int ret; PyObject *tpl; - + if(!PyArg_ParseTuple(args,"ii|O",&id,&sp,&tpl)) return NULL; @@ -410,7 +425,7 @@ PyObject *tpl; /* --- Event Library --- */ -PyObject* __CDECL py_evnt_multi(PyObject self, PyObject *args, PyObject *kwargs) +PyObject* __CDECL py_evnt_multi(PyObject *self, PyObject *args, PyObject *kwargs) { EVMULT_IN em_in; @@ -438,15 +453,13 @@ static char *kwlist[] = {"mouse_buttons","mouse_movement","timer",NULL}; mmovement = NULL; timer = 0l; - - form_alert(0,"[3][Start evnt_multi][Ok]"); - //if(!PyArg_ParseTupleAndKeywords(args, kwargs, "i|OOl", kwlist, - // &ev_mflags, &mbuttons, &mmovement, &timer)) - if(!PyArg_ParseTuple(args,"i",&ev_mflags)) + if(!PyArg_ParseTupleAndKeywords(args, kwargs, "i|OOl", kwlist, + &ev_mflags, &mbuttons, &mmovement, &timer)) + //if(!PyArg_ParseTuple(args,"i",&ev_mflags)) return NULL; - - form_alert(0,"[3][Args parsed][Ok]"); - em_in.emi_flags = ev_mflags; + + //form_alert(0,"[3][Args parsed][Ok]"); + em_in.emi_flags = (short)ev_mflags; /* Timer handling */ em_in.emi_tlow = loword(timer); @@ -462,7 +475,7 @@ static char *kwlist[] = {"mouse_buttons","mouse_movement","timer",NULL}; /* Mouse movement handling */ if(mmovement != NULL) { - PyArg_ParseTuple(mmovement,"(iiiii)(iiiii)",&ev_mm1flags,&ev_mm1x,&ev_mm1y,&ev_mm1width,ev_mm1height, + PyArg_ParseTuple(mmovement,"iiiiiiiiii)",&ev_mm1flags,&ev_mm1x,&ev_mm1y,&ev_mm1width,ev_mm1height, &ev_mm2flags,&ev_mm2x,&ev_mm2y,&ev_mm2width,ev_mm2height); em_in.emi_m1leave = (short)ev_mm1flags; em_in.emi_m1.g_x = (short)ev_mm1x; @@ -479,7 +492,7 @@ static char *kwlist[] = {"mouse_buttons","mouse_movement","timer",NULL}; /* Use the not-so-portable fast multi call */ ret = evnt_multi_fast(&em_in, message, &em_out); - form_alert(0,"[3][Args parsed][Ok]"); + //form_alert(0,"[3][Args parsed][Ok]"); //#ifdef PYTHON_3_API //return Py_BuildValue("{s:i,s:y#,s:(ii),s:(ii),s:(ii)}", //#else diff --git a/lib/py_aes.h b/lib/py_aes.h index 81beb50..e9bf132 100644 --- a/lib/py_aes.h +++ b/lib/py_aes.h @@ -25,8 +25,9 @@ PyObject* __CDECL py_wind_delete(PyObject *self, PyObject *args); PyObject* __CDECL py_wind_close(PyObject *self, PyObject *args); PyObject* __CDECL py_wind_set(PyObject *self, PyObject *args); + PyObject* __CDECL py_wind_set_string(PyObject *self, PyObject *args); PyObject* __CDECL py_wind_update(PyObject *self, PyObject *args); - PyObject* __CDECL py_evnt_multi(PyObject self, PyObject *args); + PyObject* __CDECL py_evnt_multi(PyObject *self, PyObject *args, PyObject *kwargs); #endif /* __PY_AES_HEADERS */ |
