diff options
Diffstat (limited to 'Mac/Modules/carbonevt')
-rw-r--r-- | Mac/Modules/carbonevt/CarbonEvtscan.py | 5 | ||||
-rw-r--r-- | Mac/Modules/carbonevt/CarbonEvtsupport.py | 6 | ||||
-rwxr-xr-x | Mac/Modules/carbonevt/_CarbonEvtmodule.c | 16 |
3 files changed, 18 insertions, 9 deletions
diff --git a/Mac/Modules/carbonevt/CarbonEvtscan.py b/Mac/Modules/carbonevt/CarbonEvtscan.py index e93baf3..37faa54 100644 --- a/Mac/Modules/carbonevt/CarbonEvtscan.py +++ b/Mac/Modules/carbonevt/CarbonEvtscan.py @@ -107,7 +107,10 @@ class CarbonEvents_Scanner(Scanner_OSX): # ] def makerepairinstructions(self): - return [] + return [ + ([("UInt32", 'inSize', "InMode"), ("void_ptr", 'inDataPtr', "InMode")], + [("MyInBuffer", 'inDataPtr', "InMode")]) + ] if __name__ == "__main__": main() diff --git a/Mac/Modules/carbonevt/CarbonEvtsupport.py b/Mac/Modules/carbonevt/CarbonEvtsupport.py index 0ce2af8..8ed13eb 100644 --- a/Mac/Modules/carbonevt/CarbonEvtsupport.py +++ b/Mac/Modules/carbonevt/CarbonEvtsupport.py @@ -34,6 +34,12 @@ EventTypeSpec_ptr = OpaqueType("EventTypeSpec", "EventTypeSpec") void_ptr = stringptr # here are some types that are really other types +class MyVarInputBufferType(VarInputBufferType): + def passInput(self, name): + return "%s__len__, %s__in__" % (name, name) + +MyInBuffer = MyVarInputBufferType('char', 'long', 'l') # (buf, len) + EventTime = double EventTimeout = EventTime EventTimerInterval = EventTime diff --git a/Mac/Modules/carbonevt/_CarbonEvtmodule.c b/Mac/Modules/carbonevt/_CarbonEvtmodule.c index eef1e3c..8488a2f 100755 --- a/Mac/Modules/carbonevt/_CarbonEvtmodule.c +++ b/Mac/Modules/carbonevt/_CarbonEvtmodule.c @@ -215,19 +215,19 @@ static PyObject *EventRef_SetEventParameter(EventRefObject *_self, PyObject *_ar OSStatus _err; OSType inName; OSType inType; - UInt32 inSize; - char* inDataPtr; - if (!PyArg_ParseTuple(_args, "O&O&ls", + char *inDataPtr__in__; + long inDataPtr__len__; + int inDataPtr__in_len__; + if (!PyArg_ParseTuple(_args, "O&O&s#", PyMac_GetOSType, &inName, PyMac_GetOSType, &inType, - &inSize, - &inDataPtr)) + &inDataPtr__in__, &inDataPtr__in_len__)) return NULL; + inDataPtr__len__ = inDataPtr__in_len__; _err = SetEventParameter(_self->ob_itself, inName, inType, - inSize, - inDataPtr); + inDataPtr__len__, inDataPtr__in__); if (_err != noErr) return PyMac_Error(_err); Py_INCREF(Py_None); _res = Py_None; @@ -386,7 +386,7 @@ static PyMethodDef EventRef_methods[] = { {"ReleaseEvent", (PyCFunction)EventRef_ReleaseEvent, 1, "() -> None"}, {"SetEventParameter", (PyCFunction)EventRef_SetEventParameter, 1, - "(OSType inName, OSType inType, UInt32 inSize, char* inDataPtr) -> None"}, + "(OSType inName, OSType inType, Buffer inDataPtr) -> None"}, {"GetEventClass", (PyCFunction)EventRef_GetEventClass, 1, "() -> (UInt32 _rv)"}, {"GetEventKind", (PyCFunction)EventRef_GetEventKind, 1, |