cpython/Mac/Modules/osa/_OSAmodule.c
Christian Heimes b9eccbfe2a Merged revisions 59333-59370 via svnmerge from
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()
........
2007-12-05 20:18:38 +00:00

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 ========================= */