mirror of
https://github.com/python/cpython.git
synced 2026-03-25 06:00:50 +00:00
svn+ssh://pythondev@svn.python.org/python/trunk ........ r59343 | georg.brandl | 2007-12-05 08:02:47 +0100 (Wed, 05 Dec 2007) | 2 lines Fix typo. ........ r59347 | christian.heimes | 2007-12-05 13:31:44 +0100 (Wed, 05 Dec 2007) | 1 line Fixed quoting and paths in the sqlite project file ........ r59348 | christian.heimes | 2007-12-05 13:45:11 +0100 (Wed, 05 Dec 2007) | 1 line Fixed error in regrtest. I must have missed the spot. ........ r59350 | christian.heimes | 2007-12-05 13:49:14 +0100 (Wed, 05 Dec 2007) | 1 line merge -r59315:59316 from py3k: Fix issue #1553: An errornous __length_hint__ can make list() raise a SystemError ........ r59352 | christian.heimes | 2007-12-05 13:52:34 +0100 (Wed, 05 Dec 2007) | 1 line Added msg to Misc/NEWS ........ r59354 | andrew.kuchling | 2007-12-05 14:27:20 +0100 (Wed, 05 Dec 2007) | 1 line Spelling fix ........ r59356 | georg.brandl | 2007-12-05 18:56:50 +0100 (Wed, 05 Dec 2007) | 3 lines Add examples to csv, pprint and traceback docs. Written by Ross for GHOP. ........ r59358 | raymond.hettinger | 2007-12-05 19:11:08 +0100 (Wed, 05 Dec 2007) | 1 line Error checking was too aggressive (reported by Chris Tismer) ........ r59359 | georg.brandl | 2007-12-05 19:30:48 +0100 (Wed, 05 Dec 2007) | 2 lines Add examples to re docs. Written for GHOP by Dan Finnie. ........ r59366 | georg.brandl | 2007-12-05 20:49:21 +0100 (Wed, 05 Dec 2007) | 2 lines Fix markup. ........ r59367 | christian.heimes | 2007-12-05 20:57:54 +0100 (Wed, 05 Dec 2007) | 1 line Updated documentation and build_tkinter.py script ........ r59368 | georg.brandl | 2007-12-05 21:03:57 +0100 (Wed, 05 Dec 2007) | 2 lines Another markup fix. ........ r59369 | ronald.oussoren | 2007-12-05 21:07:36 +0100 (Wed, 05 Dec 2007) | 7 lines This "fixes" compilation issues for the Carbon._OSA module on OSX Leopard by purging bindings to OSA's debug API's. Those APIs we're completely unsupported on OSX 10.4 and are no longer available on OSX 10.5. Note that this patches a generated file. This is somewhat acceptable because regenerating the file is non-trivial and wouldn't use system headers anyway. ........ r59370 | christian.heimes | 2007-12-05 21:10:38 +0100 (Wed, 05 Dec 2007) | 1 line Fixed bug #1557 by using popen.communicate() before popen.wait() ........
898 lines
27 KiB
C
898 lines
27 KiB
C
|
|
/* ========================== 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) (Py_Type(x) == &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 */
|
|
Py_Type(self)->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 = {
|
|
PyVarObject_HEAD_INIT(NULL, 0)
|
|
"_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;
|
|
Py_Type(&OSAComponentInstance_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 ========================= */
|
|
|