| |
| /* ========================== Module _OSA =========================== */ |
| |
| #include "Python.h" |
| |
| |
| |
| #include "pymactoolbox.h" |
| |
| /* Macro to test whether a weak-loaded CFM function exists */ |
| #define PyMac_PRECHECK(rtn) do { if ( &rtn == NULL ) {\ |
| PyErr_SetString(PyExc_NotImplementedError, \ |
| "Not available in this shared library/OS version"); \ |
| return NULL; \ |
| }} while(0) |
| |
| |
| #if PY_VERSION_HEX < 0x02040000 |
| PyObject *PyMac_GetOSErrException(void); |
| #endif |
| #include <Carbon/Carbon.h> |
| |
| #ifdef USE_TOOLBOX_OBJECT_GLUE |
| extern PyObject *_OSAObj_New(ComponentInstance); |
| extern int _OSAObj_Convert(PyObject *, ComponentInstance *); |
| |
| #define OSAObj_New _OSAObj_New |
| #define OSAObj_Convert _OSAObj_Convert |
| #endif |
| |
| static PyObject *OSA_Error; |
| |
| /* ---------------- Object type OSAComponentInstance ---------------- */ |
| |
| PyTypeObject OSAComponentInstance_Type; |
| |
| #define OSAObj_Check(x) ((x)->ob_type == &OSAComponentInstance_Type || PyObject_TypeCheck((x), &OSAComponentInstance_Type)) |
| |
| typedef struct OSAComponentInstanceObject { |
| PyObject_HEAD |
| ComponentInstance ob_itself; |
| } OSAComponentInstanceObject; |
| |
| PyObject *OSAObj_New(ComponentInstance itself) |
| { |
| OSAComponentInstanceObject *it; |
| if (itself == NULL) { |
| PyErr_SetString(OSA_Error,"NULL ComponentInstance"); |
| return NULL; |
| } |
| it = PyObject_NEW(OSAComponentInstanceObject, &OSAComponentInstance_Type); |
| if (it == NULL) return NULL; |
| it->ob_itself = itself; |
| return (PyObject *)it; |
| } |
| |
| int OSAObj_Convert(PyObject *v, ComponentInstance *p_itself) |
| { |
| |
| if (CmpInstObj_Convert(v, p_itself)) |
| return 1; |
| PyErr_Clear(); |
| |
| if (!OSAObj_Check(v)) |
| { |
| PyErr_SetString(PyExc_TypeError, "OSAComponentInstance required"); |
| return 0; |
| } |
| *p_itself = ((OSAComponentInstanceObject *)v)->ob_itself; |
| return 1; |
| } |
| |
| static void OSAObj_dealloc(OSAComponentInstanceObject *self) |
| { |
| /* Cleanup of self->ob_itself goes here */ |
| self->ob_type->tp_free((PyObject *)self); |
| } |
| |
| static PyObject *OSAObj_OSALoad(OSAComponentInstanceObject *_self, PyObject *_args) |
| { |
| PyObject *_res = NULL; |
| OSAError _err; |
| AEDesc scriptData; |
| long modeFlags; |
| OSAID resultingScriptID; |
| #ifndef OSALoad |
| PyMac_PRECHECK(OSALoad); |
| #endif |
| if (!PyArg_ParseTuple(_args, "O&l", |
| AEDesc_Convert, &scriptData, |
| &modeFlags)) |
| return NULL; |
| _err = OSALoad(_self->ob_itself, |
| &scriptData, |
| modeFlags, |
| &resultingScriptID); |
| if (_err != noErr) return PyMac_Error(_err); |
| _res = Py_BuildValue("l", |
| resultingScriptID); |
| return _res; |
| } |
| |
| static PyObject *OSAObj_OSAStore(OSAComponentInstanceObject *_self, PyObject *_args) |
| { |
| PyObject *_res = NULL; |
| OSAError _err; |
| OSAID scriptID; |
| DescType desiredType; |
| long modeFlags; |
| AEDesc resultingScriptData; |
| #ifndef OSAStore |
| PyMac_PRECHECK(OSAStore); |
| #endif |
| if (!PyArg_ParseTuple(_args, "lO&l", |
| &scriptID, |
| PyMac_GetOSType, &desiredType, |
| &modeFlags)) |
| return NULL; |
| _err = OSAStore(_self->ob_itself, |
| scriptID, |
| desiredType, |
| modeFlags, |
| &resultingScriptData); |
| if (_err != noErr) return PyMac_Error(_err); |
| _res = Py_BuildValue("O&", |
| AEDesc_New, &resultingScriptData); |
| return _res; |
| } |
| |
| static PyObject *OSAObj_OSAExecute(OSAComponentInstanceObject *_self, PyObject *_args) |
| { |
| PyObject *_res = NULL; |
| OSAError _err; |
| OSAID compiledScriptID; |
| OSAID contextID; |
| long modeFlags; |
| OSAID resultingScriptValueID; |
| #ifndef OSAExecute |
| PyMac_PRECHECK(OSAExecute); |
| #endif |
| if (!PyArg_ParseTuple(_args, "lll", |
| &compiledScriptID, |
| &contextID, |
| &modeFlags)) |
| return NULL; |
| _err = OSAExecute(_self->ob_itself, |
| compiledScriptID, |
| contextID, |
| modeFlags, |
| &resultingScriptValueID); |
| if (_err != noErr) return PyMac_Error(_err); |
| _res = Py_BuildValue("l", |
| resultingScriptValueID); |
| return _res; |
| } |
| |
| static PyObject *OSAObj_OSADisplay(OSAComponentInstanceObject *_self, PyObject *_args) |
| { |
| PyObject *_res = NULL; |
| OSAError _err; |
| OSAID scriptValueID; |
| DescType desiredType; |
| long modeFlags; |
| AEDesc resultingText; |
| #ifndef OSADisplay |
| PyMac_PRECHECK(OSADisplay); |
| #endif |
| if (!PyArg_ParseTuple(_args, "lO&l", |
| &scriptValueID, |
| PyMac_GetOSType, &desiredType, |
| &modeFlags)) |
| return NULL; |
| _err = OSADisplay(_self->ob_itself, |
| scriptValueID, |
| desiredType, |
| modeFlags, |
| &resultingText); |
| if (_err != noErr) return PyMac_Error(_err); |
| _res = Py_BuildValue("O&", |
| AEDesc_New, &resultingText); |
| return _res; |
| } |
| |
| static PyObject *OSAObj_OSAScriptError(OSAComponentInstanceObject *_self, PyObject *_args) |
| { |
| PyObject *_res = NULL; |
| OSAError _err; |
| OSType selector; |
| DescType desiredType; |
| AEDesc resultingErrorDescription; |
| #ifndef OSAScriptError |
| PyMac_PRECHECK(OSAScriptError); |
| #endif |
| if (!PyArg_ParseTuple(_args, "O&O&", |
| PyMac_GetOSType, &selector, |
| PyMac_GetOSType, &desiredType)) |
| return NULL; |
| _err = OSAScriptError(_self->ob_itself, |
| selector, |
| desiredType, |
| &resultingErrorDescription); |
| if (_err != noErr) return PyMac_Error(_err); |
| _res = Py_BuildValue("O&", |
| AEDesc_New, &resultingErrorDescription); |
| return _res; |
| } |
| |
| static PyObject *OSAObj_OSADispose(OSAComponentInstanceObject *_self, PyObject *_args) |
| { |
| PyObject *_res = NULL; |
| OSAError _err; |
| OSAID scriptID; |
| #ifndef OSADispose |
| PyMac_PRECHECK(OSADispose); |
| #endif |
| if (!PyArg_ParseTuple(_args, "l", |
| &scriptID)) |
| return NULL; |
| _err = OSADispose(_self->ob_itself, |
| scriptID); |
| if (_err != noErr) return PyMac_Error(_err); |
| Py_INCREF(Py_None); |
| _res = Py_None; |
| return _res; |
| } |
| |
| static PyObject *OSAObj_OSASetScriptInfo(OSAComponentInstanceObject *_self, PyObject *_args) |
| { |
| PyObject *_res = NULL; |
| OSAError _err; |
| OSAID scriptID; |
| OSType selector; |
| long value; |
| #ifndef OSASetScriptInfo |
| PyMac_PRECHECK(OSASetScriptInfo); |
| #endif |
| if (!PyArg_ParseTuple(_args, "lO&l", |
| &scriptID, |
| PyMac_GetOSType, &selector, |
| &value)) |
| return NULL; |
| _err = OSASetScriptInfo(_self->ob_itself, |
| scriptID, |
| selector, |
| value); |
| if (_err != noErr) return PyMac_Error(_err); |
| Py_INCREF(Py_None); |
| _res = Py_None; |
| return _res; |
| } |
| |
| static PyObject *OSAObj_OSAGetScriptInfo(OSAComponentInstanceObject *_self, PyObject *_args) |
| { |
| PyObject *_res = NULL; |
| OSAError _err; |
| OSAID scriptID; |
| OSType selector; |
| long result; |
| #ifndef OSAGetScriptInfo |
| PyMac_PRECHECK(OSAGetScriptInfo); |
| #endif |
| if (!PyArg_ParseTuple(_args, "lO&", |
| &scriptID, |
| PyMac_GetOSType, &selector)) |
| return NULL; |
| _err = OSAGetScriptInfo(_self->ob_itself, |
| scriptID, |
| selector, |
| &result); |
| if (_err != noErr) return PyMac_Error(_err); |
| _res = Py_BuildValue("l", |
| result); |
| return _res; |
| } |
| |
| static PyObject *OSAObj_OSAScriptingComponentName(OSAComponentInstanceObject *_self, PyObject *_args) |
| { |
| PyObject *_res = NULL; |
| OSAError _err; |
| AEDesc resultingScriptingComponentName; |
| #ifndef OSAScriptingComponentName |
| PyMac_PRECHECK(OSAScriptingComponentName); |
| #endif |
| if (!PyArg_ParseTuple(_args, "")) |
| return NULL; |
| _err = OSAScriptingComponentName(_self->ob_itself, |
| &resultingScriptingComponentName); |
| if (_err != noErr) return PyMac_Error(_err); |
| _res = Py_BuildValue("O&", |
| AEDesc_New, &resultingScriptingComponentName); |
| return _res; |
| } |
| |
| static PyObject *OSAObj_OSACompile(OSAComponentInstanceObject *_self, PyObject *_args) |
| { |
| PyObject *_res = NULL; |
| OSAError _err; |
| AEDesc sourceData; |
| long modeFlags; |
| OSAID previousAndResultingScriptID; |
| #ifndef OSACompile |
| PyMac_PRECHECK(OSACompile); |
| #endif |
| if (!PyArg_ParseTuple(_args, "O&l", |
| AEDesc_Convert, &sourceData, |
| &modeFlags)) |
| return NULL; |
| _err = OSACompile(_self->ob_itself, |
| &sourceData, |
| modeFlags, |
| &previousAndResultingScriptID); |
| if (_err != noErr) return PyMac_Error(_err); |
| _res = Py_BuildValue("l", |
| previousAndResultingScriptID); |
| return _res; |
| } |
| |
| static PyObject *OSAObj_OSACopyID(OSAComponentInstanceObject *_self, PyObject *_args) |
| { |
| PyObject *_res = NULL; |
| OSAError _err; |
| OSAID fromID; |
| OSAID toID; |
| #ifndef OSACopyID |
| PyMac_PRECHECK(OSACopyID); |
| #endif |
| if (!PyArg_ParseTuple(_args, "l", |
| &fromID)) |
| return NULL; |
| _err = OSACopyID(_self->ob_itself, |
| fromID, |
| &toID); |
| if (_err != noErr) return PyMac_Error(_err); |
| _res = Py_BuildValue("l", |
| toID); |
| return _res; |
| } |
| |
| static PyObject *OSAObj_OSAGetSource(OSAComponentInstanceObject *_self, PyObject *_args) |
| { |
| PyObject *_res = NULL; |
| OSAError _err; |
| OSAID scriptID; |
| DescType desiredType; |
| AEDesc resultingSourceData; |
| #ifndef OSAGetSource |
| PyMac_PRECHECK(OSAGetSource); |
| #endif |
| if (!PyArg_ParseTuple(_args, "lO&", |
| &scriptID, |
| PyMac_GetOSType, &desiredType)) |
| return NULL; |
| _err = OSAGetSource(_self->ob_itself, |
| scriptID, |
| desiredType, |
| &resultingSourceData); |
| if (_err != noErr) return PyMac_Error(_err); |
| _res = Py_BuildValue("O&", |
| AEDesc_New, &resultingSourceData); |
| return _res; |
| } |
| |
| static PyObject *OSAObj_OSACoerceFromDesc(OSAComponentInstanceObject *_self, PyObject *_args) |
| { |
| PyObject *_res = NULL; |
| OSAError _err; |
| AEDesc scriptData; |
| long modeFlags; |
| OSAID resultingScriptID; |
| #ifndef OSACoerceFromDesc |
| PyMac_PRECHECK(OSACoerceFromDesc); |
| #endif |
| if (!PyArg_ParseTuple(_args, "O&l", |
| AEDesc_Convert, &scriptData, |
| &modeFlags)) |
| return NULL; |
| _err = OSACoerceFromDesc(_self->ob_itself, |
| &scriptData, |
| modeFlags, |
| &resultingScriptID); |
| if (_err != noErr) return PyMac_Error(_err); |
| _res = Py_BuildValue("l", |
| resultingScriptID); |
| return _res; |
| } |
| |
| static PyObject *OSAObj_OSACoerceToDesc(OSAComponentInstanceObject *_self, PyObject *_args) |
| { |
| PyObject *_res = NULL; |
| OSAError _err; |
| OSAID scriptID; |
| DescType desiredType; |
| long modeFlags; |
| AEDesc result; |
| #ifndef OSACoerceToDesc |
| PyMac_PRECHECK(OSACoerceToDesc); |
| #endif |
| if (!PyArg_ParseTuple(_args, "lO&l", |
| &scriptID, |
| PyMac_GetOSType, &desiredType, |
| &modeFlags)) |
| return NULL; |
| _err = OSACoerceToDesc(_self->ob_itself, |
| scriptID, |
| desiredType, |
| modeFlags, |
| &result); |
| if (_err != noErr) return PyMac_Error(_err); |
| _res = Py_BuildValue("O&", |
| AEDesc_New, &result); |
| return _res; |
| } |
| |
| static PyObject *OSAObj_OSASetDefaultTarget(OSAComponentInstanceObject *_self, PyObject *_args) |
| { |
| PyObject *_res = NULL; |
| OSAError _err; |
| AEAddressDesc target; |
| #ifndef OSASetDefaultTarget |
| PyMac_PRECHECK(OSASetDefaultTarget); |
| #endif |
| if (!PyArg_ParseTuple(_args, "O&", |
| AEDesc_Convert, &target)) |
| return NULL; |
| _err = OSASetDefaultTarget(_self->ob_itself, |
| &target); |
| if (_err != noErr) return PyMac_Error(_err); |
| Py_INCREF(Py_None); |
| _res = Py_None; |
| return _res; |
| } |
| |
| static PyObject *OSAObj_OSAStartRecording(OSAComponentInstanceObject *_self, PyObject *_args) |
| { |
| PyObject *_res = NULL; |
| OSAError _err; |
| OSAID compiledScriptToModifyID; |
| #ifndef OSAStartRecording |
| PyMac_PRECHECK(OSAStartRecording); |
| #endif |
| if (!PyArg_ParseTuple(_args, "")) |
| return NULL; |
| _err = OSAStartRecording(_self->ob_itself, |
| &compiledScriptToModifyID); |
| if (_err != noErr) return PyMac_Error(_err); |
| _res = Py_BuildValue("l", |
| compiledScriptToModifyID); |
| return _res; |
| } |
| |
| static PyObject *OSAObj_OSAStopRecording(OSAComponentInstanceObject *_self, PyObject *_args) |
| { |
| PyObject *_res = NULL; |
| OSAError _err; |
| OSAID compiledScriptID; |
| #ifndef OSAStopRecording |
| PyMac_PRECHECK(OSAStopRecording); |
| #endif |
| if (!PyArg_ParseTuple(_args, "l", |
| &compiledScriptID)) |
| return NULL; |
| _err = OSAStopRecording(_self->ob_itself, |
| compiledScriptID); |
| if (_err != noErr) return PyMac_Error(_err); |
| Py_INCREF(Py_None); |
| _res = Py_None; |
| return _res; |
| } |
| |
| static PyObject *OSAObj_OSALoadExecute(OSAComponentInstanceObject *_self, PyObject *_args) |
| { |
| PyObject *_res = NULL; |
| OSAError _err; |
| AEDesc scriptData; |
| OSAID contextID; |
| long modeFlags; |
| OSAID resultingScriptValueID; |
| #ifndef OSALoadExecute |
| PyMac_PRECHECK(OSALoadExecute); |
| #endif |
| if (!PyArg_ParseTuple(_args, "O&ll", |
| AEDesc_Convert, &scriptData, |
| &contextID, |
| &modeFlags)) |
| return NULL; |
| _err = OSALoadExecute(_self->ob_itself, |
| &scriptData, |
| contextID, |
| modeFlags, |
| &resultingScriptValueID); |
| if (_err != noErr) return PyMac_Error(_err); |
| _res = Py_BuildValue("l", |
| resultingScriptValueID); |
| return _res; |
| } |
| |
| static PyObject *OSAObj_OSACompileExecute(OSAComponentInstanceObject *_self, PyObject *_args) |
| { |
| PyObject *_res = NULL; |
| OSAError _err; |
| AEDesc sourceData; |
| OSAID contextID; |
| long modeFlags; |
| OSAID resultingScriptValueID; |
| #ifndef OSACompileExecute |
| PyMac_PRECHECK(OSACompileExecute); |
| #endif |
| if (!PyArg_ParseTuple(_args, "O&ll", |
| AEDesc_Convert, &sourceData, |
| &contextID, |
| &modeFlags)) |
| return NULL; |
| _err = OSACompileExecute(_self->ob_itself, |
| &sourceData, |
| contextID, |
| modeFlags, |
| &resultingScriptValueID); |
| if (_err != noErr) return PyMac_Error(_err); |
| _res = Py_BuildValue("l", |
| resultingScriptValueID); |
| return _res; |
| } |
| |
| static PyObject *OSAObj_OSADoScript(OSAComponentInstanceObject *_self, PyObject *_args) |
| { |
| PyObject *_res = NULL; |
| OSAError _err; |
| AEDesc sourceData; |
| OSAID contextID; |
| DescType desiredType; |
| long modeFlags; |
| AEDesc resultingText; |
| #ifndef OSADoScript |
| PyMac_PRECHECK(OSADoScript); |
| #endif |
| if (!PyArg_ParseTuple(_args, "O&lO&l", |
| AEDesc_Convert, &sourceData, |
| &contextID, |
| PyMac_GetOSType, &desiredType, |
| &modeFlags)) |
| return NULL; |
| _err = OSADoScript(_self->ob_itself, |
| &sourceData, |
| contextID, |
| desiredType, |
| modeFlags, |
| &resultingText); |
| if (_err != noErr) return PyMac_Error(_err); |
| _res = Py_BuildValue("O&", |
| AEDesc_New, &resultingText); |
| return _res; |
| } |
| |
| static PyObject *OSAObj_OSASetCurrentDialect(OSAComponentInstanceObject *_self, PyObject *_args) |
| { |
| PyObject *_res = NULL; |
| OSAError _err; |
| short dialectCode; |
| #ifndef OSASetCurrentDialect |
| PyMac_PRECHECK(OSASetCurrentDialect); |
| #endif |
| if (!PyArg_ParseTuple(_args, "h", |
| &dialectCode)) |
| return NULL; |
| _err = OSASetCurrentDialect(_self->ob_itself, |
| dialectCode); |
| if (_err != noErr) return PyMac_Error(_err); |
| Py_INCREF(Py_None); |
| _res = Py_None; |
| return _res; |
| } |
| |
| static PyObject *OSAObj_OSAGetCurrentDialect(OSAComponentInstanceObject *_self, PyObject *_args) |
| { |
| PyObject *_res = NULL; |
| OSAError _err; |
| short resultingDialectCode; |
| #ifndef OSAGetCurrentDialect |
| PyMac_PRECHECK(OSAGetCurrentDialect); |
| #endif |
| if (!PyArg_ParseTuple(_args, "")) |
| return NULL; |
| _err = OSAGetCurrentDialect(_self->ob_itself, |
| &resultingDialectCode); |
| if (_err != noErr) return PyMac_Error(_err); |
| _res = Py_BuildValue("h", |
| resultingDialectCode); |
| return _res; |
| } |
| |
| static PyObject *OSAObj_OSAAvailableDialects(OSAComponentInstanceObject *_self, PyObject *_args) |
| { |
| PyObject *_res = NULL; |
| OSAError _err; |
| AEDesc resultingDialectInfoList; |
| #ifndef OSAAvailableDialects |
| PyMac_PRECHECK(OSAAvailableDialects); |
| #endif |
| if (!PyArg_ParseTuple(_args, "")) |
| return NULL; |
| _err = OSAAvailableDialects(_self->ob_itself, |
| &resultingDialectInfoList); |
| if (_err != noErr) return PyMac_Error(_err); |
| _res = Py_BuildValue("O&", |
| AEDesc_New, &resultingDialectInfoList); |
| return _res; |
| } |
| |
| static PyObject *OSAObj_OSAGetDialectInfo(OSAComponentInstanceObject *_self, PyObject *_args) |
| { |
| PyObject *_res = NULL; |
| OSAError _err; |
| short dialectCode; |
| OSType selector; |
| AEDesc resultingDialectInfo; |
| #ifndef OSAGetDialectInfo |
| PyMac_PRECHECK(OSAGetDialectInfo); |
| #endif |
| if (!PyArg_ParseTuple(_args, "hO&", |
| &dialectCode, |
| PyMac_GetOSType, &selector)) |
| return NULL; |
| _err = OSAGetDialectInfo(_self->ob_itself, |
| dialectCode, |
| selector, |
| &resultingDialectInfo); |
| if (_err != noErr) return PyMac_Error(_err); |
| _res = Py_BuildValue("O&", |
| AEDesc_New, &resultingDialectInfo); |
| return _res; |
| } |
| |
| static PyObject *OSAObj_OSAAvailableDialectCodeList(OSAComponentInstanceObject *_self, PyObject *_args) |
| { |
| PyObject *_res = NULL; |
| OSAError _err; |
| AEDesc resultingDialectCodeList; |
| #ifndef OSAAvailableDialectCodeList |
| PyMac_PRECHECK(OSAAvailableDialectCodeList); |
| #endif |
| if (!PyArg_ParseTuple(_args, "")) |
| return NULL; |
| _err = OSAAvailableDialectCodeList(_self->ob_itself, |
| &resultingDialectCodeList); |
| if (_err != noErr) return PyMac_Error(_err); |
| _res = Py_BuildValue("O&", |
| AEDesc_New, &resultingDialectCodeList); |
| return _res; |
| } |
| |
| static PyObject *OSAObj_OSAExecuteEvent(OSAComponentInstanceObject *_self, PyObject *_args) |
| { |
| PyObject *_res = NULL; |
| OSAError _err; |
| AppleEvent theAppleEvent; |
| OSAID contextID; |
| long modeFlags; |
| OSAID resultingScriptValueID; |
| #ifndef OSAExecuteEvent |
| PyMac_PRECHECK(OSAExecuteEvent); |
| #endif |
| if (!PyArg_ParseTuple(_args, "O&ll", |
| AEDesc_Convert, &theAppleEvent, |
| &contextID, |
| &modeFlags)) |
| return NULL; |
| _err = OSAExecuteEvent(_self->ob_itself, |
| &theAppleEvent, |
| contextID, |
| modeFlags, |
| &resultingScriptValueID); |
| if (_err != noErr) return PyMac_Error(_err); |
| _res = Py_BuildValue("l", |
| resultingScriptValueID); |
| return _res; |
| } |
| |
| static PyObject *OSAObj_OSADoEvent(OSAComponentInstanceObject *_self, PyObject *_args) |
| { |
| PyObject *_res = NULL; |
| OSAError _err; |
| AppleEvent theAppleEvent; |
| OSAID contextID; |
| long modeFlags; |
| AppleEvent reply; |
| #ifndef OSADoEvent |
| PyMac_PRECHECK(OSADoEvent); |
| #endif |
| if (!PyArg_ParseTuple(_args, "O&ll", |
| AEDesc_Convert, &theAppleEvent, |
| &contextID, |
| &modeFlags)) |
| return NULL; |
| _err = OSADoEvent(_self->ob_itself, |
| &theAppleEvent, |
| contextID, |
| modeFlags, |
| &reply); |
| if (_err != noErr) return PyMac_Error(_err); |
| _res = Py_BuildValue("O&", |
| AEDesc_New, &reply); |
| return _res; |
| } |
| |
| static PyObject *OSAObj_OSAMakeContext(OSAComponentInstanceObject *_self, PyObject *_args) |
| { |
| PyObject *_res = NULL; |
| OSAError _err; |
| AEDesc contextName; |
| OSAID parentContext; |
| OSAID resultingContextID; |
| #ifndef OSAMakeContext |
| PyMac_PRECHECK(OSAMakeContext); |
| #endif |
| if (!PyArg_ParseTuple(_args, "O&l", |
| AEDesc_Convert, &contextName, |
| &parentContext)) |
| return NULL; |
| _err = OSAMakeContext(_self->ob_itself, |
| &contextName, |
| parentContext, |
| &resultingContextID); |
| if (_err != noErr) return PyMac_Error(_err); |
| _res = Py_BuildValue("l", |
| resultingContextID); |
| return _res; |
| } |
| |
| static PyMethodDef OSAObj_methods[] = { |
| {"OSALoad", (PyCFunction)OSAObj_OSALoad, 1, |
| PyDoc_STR("(AEDesc scriptData, long modeFlags) -> (OSAID resultingScriptID)")}, |
| {"OSAStore", (PyCFunction)OSAObj_OSAStore, 1, |
| PyDoc_STR("(OSAID scriptID, DescType desiredType, long modeFlags) -> (AEDesc resultingScriptData)")}, |
| {"OSAExecute", (PyCFunction)OSAObj_OSAExecute, 1, |
| PyDoc_STR("(OSAID compiledScriptID, OSAID contextID, long modeFlags) -> (OSAID resultingScriptValueID)")}, |
| {"OSADisplay", (PyCFunction)OSAObj_OSADisplay, 1, |
| PyDoc_STR("(OSAID scriptValueID, DescType desiredType, long modeFlags) -> (AEDesc resultingText)")}, |
| {"OSAScriptError", (PyCFunction)OSAObj_OSAScriptError, 1, |
| PyDoc_STR("(OSType selector, DescType desiredType) -> (AEDesc resultingErrorDescription)")}, |
| {"OSADispose", (PyCFunction)OSAObj_OSADispose, 1, |
| PyDoc_STR("(OSAID scriptID) -> None")}, |
| {"OSASetScriptInfo", (PyCFunction)OSAObj_OSASetScriptInfo, 1, |
| PyDoc_STR("(OSAID scriptID, OSType selector, long value) -> None")}, |
| {"OSAGetScriptInfo", (PyCFunction)OSAObj_OSAGetScriptInfo, 1, |
| PyDoc_STR("(OSAID scriptID, OSType selector) -> (long result)")}, |
| {"OSAScriptingComponentName", (PyCFunction)OSAObj_OSAScriptingComponentName, 1, |
| PyDoc_STR("() -> (AEDesc resultingScriptingComponentName)")}, |
| {"OSACompile", (PyCFunction)OSAObj_OSACompile, 1, |
| PyDoc_STR("(AEDesc sourceData, long modeFlags) -> (OSAID previousAndResultingScriptID)")}, |
| {"OSACopyID", (PyCFunction)OSAObj_OSACopyID, 1, |
| PyDoc_STR("(OSAID fromID) -> (OSAID toID)")}, |
| {"OSAGetSource", (PyCFunction)OSAObj_OSAGetSource, 1, |
| PyDoc_STR("(OSAID scriptID, DescType desiredType) -> (AEDesc resultingSourceData)")}, |
| {"OSACoerceFromDesc", (PyCFunction)OSAObj_OSACoerceFromDesc, 1, |
| PyDoc_STR("(AEDesc scriptData, long modeFlags) -> (OSAID resultingScriptID)")}, |
| {"OSACoerceToDesc", (PyCFunction)OSAObj_OSACoerceToDesc, 1, |
| PyDoc_STR("(OSAID scriptID, DescType desiredType, long modeFlags) -> (AEDesc result)")}, |
| {"OSASetDefaultTarget", (PyCFunction)OSAObj_OSASetDefaultTarget, 1, |
| PyDoc_STR("(AEAddressDesc target) -> None")}, |
| {"OSAStartRecording", (PyCFunction)OSAObj_OSAStartRecording, 1, |
| PyDoc_STR("() -> (OSAID compiledScriptToModifyID)")}, |
| {"OSAStopRecording", (PyCFunction)OSAObj_OSAStopRecording, 1, |
| PyDoc_STR("(OSAID compiledScriptID) -> None")}, |
| {"OSALoadExecute", (PyCFunction)OSAObj_OSALoadExecute, 1, |
| PyDoc_STR("(AEDesc scriptData, OSAID contextID, long modeFlags) -> (OSAID resultingScriptValueID)")}, |
| {"OSACompileExecute", (PyCFunction)OSAObj_OSACompileExecute, 1, |
| PyDoc_STR("(AEDesc sourceData, OSAID contextID, long modeFlags) -> (OSAID resultingScriptValueID)")}, |
| {"OSADoScript", (PyCFunction)OSAObj_OSADoScript, 1, |
| PyDoc_STR("(AEDesc sourceData, OSAID contextID, DescType desiredType, long modeFlags) -> (AEDesc resultingText)")}, |
| {"OSASetCurrentDialect", (PyCFunction)OSAObj_OSASetCurrentDialect, 1, |
| PyDoc_STR("(short dialectCode) -> None")}, |
| {"OSAGetCurrentDialect", (PyCFunction)OSAObj_OSAGetCurrentDialect, 1, |
| PyDoc_STR("() -> (short resultingDialectCode)")}, |
| {"OSAAvailableDialects", (PyCFunction)OSAObj_OSAAvailableDialects, 1, |
| PyDoc_STR("() -> (AEDesc resultingDialectInfoList)")}, |
| {"OSAGetDialectInfo", (PyCFunction)OSAObj_OSAGetDialectInfo, 1, |
| PyDoc_STR("(short dialectCode, OSType selector) -> (AEDesc resultingDialectInfo)")}, |
| {"OSAAvailableDialectCodeList", (PyCFunction)OSAObj_OSAAvailableDialectCodeList, 1, |
| PyDoc_STR("() -> (AEDesc resultingDialectCodeList)")}, |
| {"OSAExecuteEvent", (PyCFunction)OSAObj_OSAExecuteEvent, 1, |
| PyDoc_STR("(AppleEvent theAppleEvent, OSAID contextID, long modeFlags) -> (OSAID resultingScriptValueID)")}, |
| {"OSADoEvent", (PyCFunction)OSAObj_OSADoEvent, 1, |
| PyDoc_STR("(AppleEvent theAppleEvent, OSAID contextID, long modeFlags) -> (AppleEvent reply)")}, |
| {"OSAMakeContext", (PyCFunction)OSAObj_OSAMakeContext, 1, |
| PyDoc_STR("(AEDesc contextName, OSAID parentContext) -> (OSAID resultingContextID)")}, |
| {NULL, NULL, 0} |
| }; |
| |
| #define OSAObj_getsetlist NULL |
| |
| |
| #define OSAObj_compare NULL |
| |
| #define OSAObj_repr NULL |
| |
| #define OSAObj_hash NULL |
| #define OSAObj_tp_init 0 |
| |
| #define OSAObj_tp_alloc PyType_GenericAlloc |
| |
| static PyObject *OSAObj_tp_new(PyTypeObject *type, PyObject *_args, PyObject *_kwds) |
| { |
| PyObject *_self; |
| ComponentInstance itself; |
| char *kw[] = {"itself", 0}; |
| |
| if (!PyArg_ParseTupleAndKeywords(_args, _kwds, "O&", kw, OSAObj_Convert, &itself)) return NULL; |
| if ((_self = type->tp_alloc(type, 0)) == NULL) return NULL; |
| ((OSAComponentInstanceObject *)_self)->ob_itself = itself; |
| return _self; |
| } |
| |
| #define OSAObj_tp_free PyObject_Del |
| |
| |
| PyTypeObject OSAComponentInstance_Type = { |
| PyObject_HEAD_INIT(NULL) |
| 0, /*ob_size*/ |
| "_OSA.OSAComponentInstance", /*tp_name*/ |
| sizeof(OSAComponentInstanceObject), /*tp_basicsize*/ |
| 0, /*tp_itemsize*/ |
| /* methods */ |
| (destructor) OSAObj_dealloc, /*tp_dealloc*/ |
| 0, /*tp_print*/ |
| (getattrfunc)0, /*tp_getattr*/ |
| (setattrfunc)0, /*tp_setattr*/ |
| (cmpfunc) OSAObj_compare, /*tp_compare*/ |
| (reprfunc) OSAObj_repr, /*tp_repr*/ |
| (PyNumberMethods *)0, /* tp_as_number */ |
| (PySequenceMethods *)0, /* tp_as_sequence */ |
| (PyMappingMethods *)0, /* tp_as_mapping */ |
| (hashfunc) OSAObj_hash, /*tp_hash*/ |
| 0, /*tp_call*/ |
| 0, /*tp_str*/ |
| PyObject_GenericGetAttr, /*tp_getattro*/ |
| PyObject_GenericSetAttr, /*tp_setattro */ |
| 0, /*tp_as_buffer*/ |
| Py_TPFLAGS_DEFAULT|Py_TPFLAGS_BASETYPE, /* tp_flags */ |
| 0, /*tp_doc*/ |
| 0, /*tp_traverse*/ |
| 0, /*tp_clear*/ |
| 0, /*tp_richcompare*/ |
| 0, /*tp_weaklistoffset*/ |
| 0, /*tp_iter*/ |
| 0, /*tp_iternext*/ |
| OSAObj_methods, /* tp_methods */ |
| 0, /*tp_members*/ |
| OSAObj_getsetlist, /*tp_getset*/ |
| 0, /*tp_base*/ |
| 0, /*tp_dict*/ |
| 0, /*tp_descr_get*/ |
| 0, /*tp_descr_set*/ |
| 0, /*tp_dictoffset*/ |
| OSAObj_tp_init, /* tp_init */ |
| OSAObj_tp_alloc, /* tp_alloc */ |
| OSAObj_tp_new, /* tp_new */ |
| OSAObj_tp_free, /* tp_free */ |
| }; |
| |
| /* -------------- End object type OSAComponentInstance -------------- */ |
| |
| |
| static PyMethodDef OSA_methods[] = { |
| {NULL, NULL, 0} |
| }; |
| |
| |
| |
| |
| void init_OSA(void) |
| { |
| PyObject *m; |
| PyObject *d; |
| |
| |
| |
| /* |
| PyMac_INIT_TOOLBOX_OBJECT_NEW(ComponentInstance, OSAObj_New); |
| PyMac_INIT_TOOLBOX_OBJECT_CONVERT(ComponentInstance, OSAObj_Convert); |
| */ |
| |
| |
| m = Py_InitModule("_OSA", OSA_methods); |
| d = PyModule_GetDict(m); |
| OSA_Error = PyMac_GetOSErrException(); |
| if (OSA_Error == NULL || |
| PyDict_SetItemString(d, "Error", OSA_Error) != 0) |
| return; |
| OSAComponentInstance_Type.ob_type = &PyType_Type; |
| if (PyType_Ready(&OSAComponentInstance_Type) < 0) return; |
| Py_INCREF(&OSAComponentInstance_Type); |
| PyModule_AddObject(m, "OSAComponentInstance", (PyObject *)&OSAComponentInstance_Type); |
| /* Backward-compatible name */ |
| Py_INCREF(&OSAComponentInstance_Type); |
| PyModule_AddObject(m, "OSAComponentInstanceType", (PyObject *)&OSAComponentInstance_Type); |
| } |
| |
| /* ======================== End module _OSA ========================= */ |
| |