symbian-qemu-0.9.1-12/python-2.6.1/Mac/Modules/osa/_OSAmodule.c
author Gareth Stockwell <gareth.stockwell@accenture.com>
Wed, 22 Sep 2010 15:40:40 +0100
branchgraphics-phase-3
changeset 111 345f1c88c950
parent 1 2fb8b9db1c86
permissions -rw-r--r--
Fixes to syborg-graphicswrapper.vcproj These changes allow syborg-graphicswrapper to link against the hostthreadadapter and khronosapiwrapper libraries built by the graphics.simulator component. The .vcproj file uses relative paths, which requires that the following three packages are laid out as follows: os/ graphics adapt/ graphics.simulator qemu


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