• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 
2 /* ========================== Module _OSA =========================== */
3 
4 #include "Python.h"
5 
6 
7 
8 #include "pymactoolbox.h"
9 
10 /* Macro to test whether a weak-loaded CFM function exists */
11 #define PyMac_PRECHECK(rtn) do { if ( &rtn == NULL )  {\
12         PyErr_SetString(PyExc_NotImplementedError, \
13             "Not available in this shared library/OS version"); \
14         return NULL; \
15     }} while(0)
16 
17 
18 #if PY_VERSION_HEX < 0x02040000
19 PyObject *PyMac_GetOSErrException(void);
20 #endif
21 #include <Carbon/Carbon.h>
22 
23 #ifdef USE_TOOLBOX_OBJECT_GLUE
24 extern PyObject *_OSAObj_New(ComponentInstance);
25 extern int _OSAObj_Convert(PyObject *, ComponentInstance *);
26 
27 #define OSAObj_New _OSAObj_New
28 #define OSAObj_Convert _OSAObj_Convert
29 #endif
30 
31 static PyObject *OSA_Error;
32 
33 /* ---------------- Object type OSAComponentInstance ---------------- */
34 
35 PyTypeObject OSAComponentInstance_Type;
36 
37 #define OSAObj_Check(x) ((x)->ob_type == &OSAComponentInstance_Type || PyObject_TypeCheck((x), &OSAComponentInstance_Type))
38 
39 typedef struct OSAComponentInstanceObject {
40     PyObject_HEAD
41     ComponentInstance ob_itself;
42 } OSAComponentInstanceObject;
43 
OSAObj_New(ComponentInstance itself)44 PyObject *OSAObj_New(ComponentInstance itself)
45 {
46     OSAComponentInstanceObject *it;
47     if (itself == NULL) {
48                                     PyErr_SetString(OSA_Error,"NULL ComponentInstance");
49                                     return NULL;
50                             }
51     it = PyObject_NEW(OSAComponentInstanceObject, &OSAComponentInstance_Type);
52     if (it == NULL) return NULL;
53     it->ob_itself = itself;
54     return (PyObject *)it;
55 }
56 
OSAObj_Convert(PyObject * v,ComponentInstance * p_itself)57 int OSAObj_Convert(PyObject *v, ComponentInstance *p_itself)
58 {
59 
60                         if (CmpInstObj_Convert(v, p_itself))
61                                 return 1;
62                         PyErr_Clear();
63 
64     if (!OSAObj_Check(v))
65     {
66         PyErr_SetString(PyExc_TypeError, "OSAComponentInstance required");
67         return 0;
68     }
69     *p_itself = ((OSAComponentInstanceObject *)v)->ob_itself;
70     return 1;
71 }
72 
OSAObj_dealloc(OSAComponentInstanceObject * self)73 static void OSAObj_dealloc(OSAComponentInstanceObject *self)
74 {
75     /* Cleanup of self->ob_itself goes here */
76     self->ob_type->tp_free((PyObject *)self);
77 }
78 
OSAObj_OSALoad(OSAComponentInstanceObject * _self,PyObject * _args)79 static PyObject *OSAObj_OSALoad(OSAComponentInstanceObject *_self, PyObject *_args)
80 {
81     PyObject *_res = NULL;
82     OSAError _err;
83     AEDesc scriptData;
84     long modeFlags;
85     OSAID resultingScriptID;
86 #ifndef OSALoad
87     PyMac_PRECHECK(OSALoad);
88 #endif
89     if (!PyArg_ParseTuple(_args, "O&l",
90                           AEDesc_Convert, &scriptData,
91                           &modeFlags))
92         return NULL;
93     _err = OSALoad(_self->ob_itself,
94                    &scriptData,
95                    modeFlags,
96                    &resultingScriptID);
97     if (_err != noErr) return PyMac_Error(_err);
98     _res = Py_BuildValue("l",
99                          resultingScriptID);
100     return _res;
101 }
102 
OSAObj_OSAStore(OSAComponentInstanceObject * _self,PyObject * _args)103 static PyObject *OSAObj_OSAStore(OSAComponentInstanceObject *_self, PyObject *_args)
104 {
105     PyObject *_res = NULL;
106     OSAError _err;
107     OSAID scriptID;
108     DescType desiredType;
109     long modeFlags;
110     AEDesc resultingScriptData;
111 #ifndef OSAStore
112     PyMac_PRECHECK(OSAStore);
113 #endif
114     if (!PyArg_ParseTuple(_args, "lO&l",
115                           &scriptID,
116                           PyMac_GetOSType, &desiredType,
117                           &modeFlags))
118         return NULL;
119     _err = OSAStore(_self->ob_itself,
120                     scriptID,
121                     desiredType,
122                     modeFlags,
123                     &resultingScriptData);
124     if (_err != noErr) return PyMac_Error(_err);
125     _res = Py_BuildValue("O&",
126                          AEDesc_New, &resultingScriptData);
127     return _res;
128 }
129 
OSAObj_OSAExecute(OSAComponentInstanceObject * _self,PyObject * _args)130 static PyObject *OSAObj_OSAExecute(OSAComponentInstanceObject *_self, PyObject *_args)
131 {
132     PyObject *_res = NULL;
133     OSAError _err;
134     OSAID compiledScriptID;
135     OSAID contextID;
136     long modeFlags;
137     OSAID resultingScriptValueID;
138 #ifndef OSAExecute
139     PyMac_PRECHECK(OSAExecute);
140 #endif
141     if (!PyArg_ParseTuple(_args, "lll",
142                           &compiledScriptID,
143                           &contextID,
144                           &modeFlags))
145         return NULL;
146     _err = OSAExecute(_self->ob_itself,
147                       compiledScriptID,
148                       contextID,
149                       modeFlags,
150                       &resultingScriptValueID);
151     if (_err != noErr) return PyMac_Error(_err);
152     _res = Py_BuildValue("l",
153                          resultingScriptValueID);
154     return _res;
155 }
156 
OSAObj_OSADisplay(OSAComponentInstanceObject * _self,PyObject * _args)157 static PyObject *OSAObj_OSADisplay(OSAComponentInstanceObject *_self, PyObject *_args)
158 {
159     PyObject *_res = NULL;
160     OSAError _err;
161     OSAID scriptValueID;
162     DescType desiredType;
163     long modeFlags;
164     AEDesc resultingText;
165 #ifndef OSADisplay
166     PyMac_PRECHECK(OSADisplay);
167 #endif
168     if (!PyArg_ParseTuple(_args, "lO&l",
169                           &scriptValueID,
170                           PyMac_GetOSType, &desiredType,
171                           &modeFlags))
172         return NULL;
173     _err = OSADisplay(_self->ob_itself,
174                       scriptValueID,
175                       desiredType,
176                       modeFlags,
177                       &resultingText);
178     if (_err != noErr) return PyMac_Error(_err);
179     _res = Py_BuildValue("O&",
180                          AEDesc_New, &resultingText);
181     return _res;
182 }
183 
OSAObj_OSAScriptError(OSAComponentInstanceObject * _self,PyObject * _args)184 static PyObject *OSAObj_OSAScriptError(OSAComponentInstanceObject *_self, PyObject *_args)
185 {
186     PyObject *_res = NULL;
187     OSAError _err;
188     OSType selector;
189     DescType desiredType;
190     AEDesc resultingErrorDescription;
191 #ifndef OSAScriptError
192     PyMac_PRECHECK(OSAScriptError);
193 #endif
194     if (!PyArg_ParseTuple(_args, "O&O&",
195                           PyMac_GetOSType, &selector,
196                           PyMac_GetOSType, &desiredType))
197         return NULL;
198     _err = OSAScriptError(_self->ob_itself,
199                           selector,
200                           desiredType,
201                           &resultingErrorDescription);
202     if (_err != noErr) return PyMac_Error(_err);
203     _res = Py_BuildValue("O&",
204                          AEDesc_New, &resultingErrorDescription);
205     return _res;
206 }
207 
OSAObj_OSADispose(OSAComponentInstanceObject * _self,PyObject * _args)208 static PyObject *OSAObj_OSADispose(OSAComponentInstanceObject *_self, PyObject *_args)
209 {
210     PyObject *_res = NULL;
211     OSAError _err;
212     OSAID scriptID;
213 #ifndef OSADispose
214     PyMac_PRECHECK(OSADispose);
215 #endif
216     if (!PyArg_ParseTuple(_args, "l",
217                           &scriptID))
218         return NULL;
219     _err = OSADispose(_self->ob_itself,
220                       scriptID);
221     if (_err != noErr) return PyMac_Error(_err);
222     Py_INCREF(Py_None);
223     _res = Py_None;
224     return _res;
225 }
226 
OSAObj_OSASetScriptInfo(OSAComponentInstanceObject * _self,PyObject * _args)227 static PyObject *OSAObj_OSASetScriptInfo(OSAComponentInstanceObject *_self, PyObject *_args)
228 {
229     PyObject *_res = NULL;
230     OSAError _err;
231     OSAID scriptID;
232     OSType selector;
233     long value;
234 #ifndef OSASetScriptInfo
235     PyMac_PRECHECK(OSASetScriptInfo);
236 #endif
237     if (!PyArg_ParseTuple(_args, "lO&l",
238                           &scriptID,
239                           PyMac_GetOSType, &selector,
240                           &value))
241         return NULL;
242     _err = OSASetScriptInfo(_self->ob_itself,
243                             scriptID,
244                             selector,
245                             value);
246     if (_err != noErr) return PyMac_Error(_err);
247     Py_INCREF(Py_None);
248     _res = Py_None;
249     return _res;
250 }
251 
OSAObj_OSAGetScriptInfo(OSAComponentInstanceObject * _self,PyObject * _args)252 static PyObject *OSAObj_OSAGetScriptInfo(OSAComponentInstanceObject *_self, PyObject *_args)
253 {
254     PyObject *_res = NULL;
255     OSAError _err;
256     OSAID scriptID;
257     OSType selector;
258     long result;
259 #ifndef OSAGetScriptInfo
260     PyMac_PRECHECK(OSAGetScriptInfo);
261 #endif
262     if (!PyArg_ParseTuple(_args, "lO&",
263                           &scriptID,
264                           PyMac_GetOSType, &selector))
265         return NULL;
266     _err = OSAGetScriptInfo(_self->ob_itself,
267                             scriptID,
268                             selector,
269                             &result);
270     if (_err != noErr) return PyMac_Error(_err);
271     _res = Py_BuildValue("l",
272                          result);
273     return _res;
274 }
275 
OSAObj_OSAScriptingComponentName(OSAComponentInstanceObject * _self,PyObject * _args)276 static PyObject *OSAObj_OSAScriptingComponentName(OSAComponentInstanceObject *_self, PyObject *_args)
277 {
278     PyObject *_res = NULL;
279     OSAError _err;
280     AEDesc resultingScriptingComponentName;
281 #ifndef OSAScriptingComponentName
282     PyMac_PRECHECK(OSAScriptingComponentName);
283 #endif
284     if (!PyArg_ParseTuple(_args, ""))
285         return NULL;
286     _err = OSAScriptingComponentName(_self->ob_itself,
287                                      &resultingScriptingComponentName);
288     if (_err != noErr) return PyMac_Error(_err);
289     _res = Py_BuildValue("O&",
290                          AEDesc_New, &resultingScriptingComponentName);
291     return _res;
292 }
293 
OSAObj_OSACompile(OSAComponentInstanceObject * _self,PyObject * _args)294 static PyObject *OSAObj_OSACompile(OSAComponentInstanceObject *_self, PyObject *_args)
295 {
296     PyObject *_res = NULL;
297     OSAError _err;
298     AEDesc sourceData;
299     long modeFlags;
300     OSAID previousAndResultingScriptID;
301 #ifndef OSACompile
302     PyMac_PRECHECK(OSACompile);
303 #endif
304     if (!PyArg_ParseTuple(_args, "O&l",
305                           AEDesc_Convert, &sourceData,
306                           &modeFlags))
307         return NULL;
308     _err = OSACompile(_self->ob_itself,
309                       &sourceData,
310                       modeFlags,
311                       &previousAndResultingScriptID);
312     if (_err != noErr) return PyMac_Error(_err);
313     _res = Py_BuildValue("l",
314                          previousAndResultingScriptID);
315     return _res;
316 }
317 
OSAObj_OSACopyID(OSAComponentInstanceObject * _self,PyObject * _args)318 static PyObject *OSAObj_OSACopyID(OSAComponentInstanceObject *_self, PyObject *_args)
319 {
320     PyObject *_res = NULL;
321     OSAError _err;
322     OSAID fromID;
323     OSAID toID;
324 #ifndef OSACopyID
325     PyMac_PRECHECK(OSACopyID);
326 #endif
327     if (!PyArg_ParseTuple(_args, "l",
328                           &fromID))
329         return NULL;
330     _err = OSACopyID(_self->ob_itself,
331                      fromID,
332                      &toID);
333     if (_err != noErr) return PyMac_Error(_err);
334     _res = Py_BuildValue("l",
335                          toID);
336     return _res;
337 }
338 
OSAObj_OSAGetSource(OSAComponentInstanceObject * _self,PyObject * _args)339 static PyObject *OSAObj_OSAGetSource(OSAComponentInstanceObject *_self, PyObject *_args)
340 {
341     PyObject *_res = NULL;
342     OSAError _err;
343     OSAID scriptID;
344     DescType desiredType;
345     AEDesc resultingSourceData;
346 #ifndef OSAGetSource
347     PyMac_PRECHECK(OSAGetSource);
348 #endif
349     if (!PyArg_ParseTuple(_args, "lO&",
350                           &scriptID,
351                           PyMac_GetOSType, &desiredType))
352         return NULL;
353     _err = OSAGetSource(_self->ob_itself,
354                         scriptID,
355                         desiredType,
356                         &resultingSourceData);
357     if (_err != noErr) return PyMac_Error(_err);
358     _res = Py_BuildValue("O&",
359                          AEDesc_New, &resultingSourceData);
360     return _res;
361 }
362 
OSAObj_OSACoerceFromDesc(OSAComponentInstanceObject * _self,PyObject * _args)363 static PyObject *OSAObj_OSACoerceFromDesc(OSAComponentInstanceObject *_self, PyObject *_args)
364 {
365     PyObject *_res = NULL;
366     OSAError _err;
367     AEDesc scriptData;
368     long modeFlags;
369     OSAID resultingScriptID;
370 #ifndef OSACoerceFromDesc
371     PyMac_PRECHECK(OSACoerceFromDesc);
372 #endif
373     if (!PyArg_ParseTuple(_args, "O&l",
374                           AEDesc_Convert, &scriptData,
375                           &modeFlags))
376         return NULL;
377     _err = OSACoerceFromDesc(_self->ob_itself,
378                              &scriptData,
379                              modeFlags,
380                              &resultingScriptID);
381     if (_err != noErr) return PyMac_Error(_err);
382     _res = Py_BuildValue("l",
383                          resultingScriptID);
384     return _res;
385 }
386 
OSAObj_OSACoerceToDesc(OSAComponentInstanceObject * _self,PyObject * _args)387 static PyObject *OSAObj_OSACoerceToDesc(OSAComponentInstanceObject *_self, PyObject *_args)
388 {
389     PyObject *_res = NULL;
390     OSAError _err;
391     OSAID scriptID;
392     DescType desiredType;
393     long modeFlags;
394     AEDesc result;
395 #ifndef OSACoerceToDesc
396     PyMac_PRECHECK(OSACoerceToDesc);
397 #endif
398     if (!PyArg_ParseTuple(_args, "lO&l",
399                           &scriptID,
400                           PyMac_GetOSType, &desiredType,
401                           &modeFlags))
402         return NULL;
403     _err = OSACoerceToDesc(_self->ob_itself,
404                            scriptID,
405                            desiredType,
406                            modeFlags,
407                            &result);
408     if (_err != noErr) return PyMac_Error(_err);
409     _res = Py_BuildValue("O&",
410                          AEDesc_New, &result);
411     return _res;
412 }
413 
OSAObj_OSASetDefaultTarget(OSAComponentInstanceObject * _self,PyObject * _args)414 static PyObject *OSAObj_OSASetDefaultTarget(OSAComponentInstanceObject *_self, PyObject *_args)
415 {
416     PyObject *_res = NULL;
417     OSAError _err;
418     AEAddressDesc target;
419 #ifndef OSASetDefaultTarget
420     PyMac_PRECHECK(OSASetDefaultTarget);
421 #endif
422     if (!PyArg_ParseTuple(_args, "O&",
423                           AEDesc_Convert, &target))
424         return NULL;
425     _err = OSASetDefaultTarget(_self->ob_itself,
426                                &target);
427     if (_err != noErr) return PyMac_Error(_err);
428     Py_INCREF(Py_None);
429     _res = Py_None;
430     return _res;
431 }
432 
OSAObj_OSAStartRecording(OSAComponentInstanceObject * _self,PyObject * _args)433 static PyObject *OSAObj_OSAStartRecording(OSAComponentInstanceObject *_self, PyObject *_args)
434 {
435     PyObject *_res = NULL;
436     OSAError _err;
437     OSAID compiledScriptToModifyID;
438 #ifndef OSAStartRecording
439     PyMac_PRECHECK(OSAStartRecording);
440 #endif
441     if (!PyArg_ParseTuple(_args, ""))
442         return NULL;
443     _err = OSAStartRecording(_self->ob_itself,
444                              &compiledScriptToModifyID);
445     if (_err != noErr) return PyMac_Error(_err);
446     _res = Py_BuildValue("l",
447                          compiledScriptToModifyID);
448     return _res;
449 }
450 
OSAObj_OSAStopRecording(OSAComponentInstanceObject * _self,PyObject * _args)451 static PyObject *OSAObj_OSAStopRecording(OSAComponentInstanceObject *_self, PyObject *_args)
452 {
453     PyObject *_res = NULL;
454     OSAError _err;
455     OSAID compiledScriptID;
456 #ifndef OSAStopRecording
457     PyMac_PRECHECK(OSAStopRecording);
458 #endif
459     if (!PyArg_ParseTuple(_args, "l",
460                           &compiledScriptID))
461         return NULL;
462     _err = OSAStopRecording(_self->ob_itself,
463                             compiledScriptID);
464     if (_err != noErr) return PyMac_Error(_err);
465     Py_INCREF(Py_None);
466     _res = Py_None;
467     return _res;
468 }
469 
OSAObj_OSALoadExecute(OSAComponentInstanceObject * _self,PyObject * _args)470 static PyObject *OSAObj_OSALoadExecute(OSAComponentInstanceObject *_self, PyObject *_args)
471 {
472     PyObject *_res = NULL;
473     OSAError _err;
474     AEDesc scriptData;
475     OSAID contextID;
476     long modeFlags;
477     OSAID resultingScriptValueID;
478 #ifndef OSALoadExecute
479     PyMac_PRECHECK(OSALoadExecute);
480 #endif
481     if (!PyArg_ParseTuple(_args, "O&ll",
482                           AEDesc_Convert, &scriptData,
483                           &contextID,
484                           &modeFlags))
485         return NULL;
486     _err = OSALoadExecute(_self->ob_itself,
487                           &scriptData,
488                           contextID,
489                           modeFlags,
490                           &resultingScriptValueID);
491     if (_err != noErr) return PyMac_Error(_err);
492     _res = Py_BuildValue("l",
493                          resultingScriptValueID);
494     return _res;
495 }
496 
OSAObj_OSACompileExecute(OSAComponentInstanceObject * _self,PyObject * _args)497 static PyObject *OSAObj_OSACompileExecute(OSAComponentInstanceObject *_self, PyObject *_args)
498 {
499     PyObject *_res = NULL;
500     OSAError _err;
501     AEDesc sourceData;
502     OSAID contextID;
503     long modeFlags;
504     OSAID resultingScriptValueID;
505 #ifndef OSACompileExecute
506     PyMac_PRECHECK(OSACompileExecute);
507 #endif
508     if (!PyArg_ParseTuple(_args, "O&ll",
509                           AEDesc_Convert, &sourceData,
510                           &contextID,
511                           &modeFlags))
512         return NULL;
513     _err = OSACompileExecute(_self->ob_itself,
514                              &sourceData,
515                              contextID,
516                              modeFlags,
517                              &resultingScriptValueID);
518     if (_err != noErr) return PyMac_Error(_err);
519     _res = Py_BuildValue("l",
520                          resultingScriptValueID);
521     return _res;
522 }
523 
OSAObj_OSADoScript(OSAComponentInstanceObject * _self,PyObject * _args)524 static PyObject *OSAObj_OSADoScript(OSAComponentInstanceObject *_self, PyObject *_args)
525 {
526     PyObject *_res = NULL;
527     OSAError _err;
528     AEDesc sourceData;
529     OSAID contextID;
530     DescType desiredType;
531     long modeFlags;
532     AEDesc resultingText;
533 #ifndef OSADoScript
534     PyMac_PRECHECK(OSADoScript);
535 #endif
536     if (!PyArg_ParseTuple(_args, "O&lO&l",
537                           AEDesc_Convert, &sourceData,
538                           &contextID,
539                           PyMac_GetOSType, &desiredType,
540                           &modeFlags))
541         return NULL;
542     _err = OSADoScript(_self->ob_itself,
543                        &sourceData,
544                        contextID,
545                        desiredType,
546                        modeFlags,
547                        &resultingText);
548     if (_err != noErr) return PyMac_Error(_err);
549     _res = Py_BuildValue("O&",
550                          AEDesc_New, &resultingText);
551     return _res;
552 }
553 
OSAObj_OSASetCurrentDialect(OSAComponentInstanceObject * _self,PyObject * _args)554 static PyObject *OSAObj_OSASetCurrentDialect(OSAComponentInstanceObject *_self, PyObject *_args)
555 {
556     PyObject *_res = NULL;
557     OSAError _err;
558     short dialectCode;
559 #ifndef OSASetCurrentDialect
560     PyMac_PRECHECK(OSASetCurrentDialect);
561 #endif
562     if (!PyArg_ParseTuple(_args, "h",
563                           &dialectCode))
564         return NULL;
565     _err = OSASetCurrentDialect(_self->ob_itself,
566                                 dialectCode);
567     if (_err != noErr) return PyMac_Error(_err);
568     Py_INCREF(Py_None);
569     _res = Py_None;
570     return _res;
571 }
572 
OSAObj_OSAGetCurrentDialect(OSAComponentInstanceObject * _self,PyObject * _args)573 static PyObject *OSAObj_OSAGetCurrentDialect(OSAComponentInstanceObject *_self, PyObject *_args)
574 {
575     PyObject *_res = NULL;
576     OSAError _err;
577     short resultingDialectCode;
578 #ifndef OSAGetCurrentDialect
579     PyMac_PRECHECK(OSAGetCurrentDialect);
580 #endif
581     if (!PyArg_ParseTuple(_args, ""))
582         return NULL;
583     _err = OSAGetCurrentDialect(_self->ob_itself,
584                                 &resultingDialectCode);
585     if (_err != noErr) return PyMac_Error(_err);
586     _res = Py_BuildValue("h",
587                          resultingDialectCode);
588     return _res;
589 }
590 
OSAObj_OSAAvailableDialects(OSAComponentInstanceObject * _self,PyObject * _args)591 static PyObject *OSAObj_OSAAvailableDialects(OSAComponentInstanceObject *_self, PyObject *_args)
592 {
593     PyObject *_res = NULL;
594     OSAError _err;
595     AEDesc resultingDialectInfoList;
596 #ifndef OSAAvailableDialects
597     PyMac_PRECHECK(OSAAvailableDialects);
598 #endif
599     if (!PyArg_ParseTuple(_args, ""))
600         return NULL;
601     _err = OSAAvailableDialects(_self->ob_itself,
602                                 &resultingDialectInfoList);
603     if (_err != noErr) return PyMac_Error(_err);
604     _res = Py_BuildValue("O&",
605                          AEDesc_New, &resultingDialectInfoList);
606     return _res;
607 }
608 
OSAObj_OSAGetDialectInfo(OSAComponentInstanceObject * _self,PyObject * _args)609 static PyObject *OSAObj_OSAGetDialectInfo(OSAComponentInstanceObject *_self, PyObject *_args)
610 {
611     PyObject *_res = NULL;
612     OSAError _err;
613     short dialectCode;
614     OSType selector;
615     AEDesc resultingDialectInfo;
616 #ifndef OSAGetDialectInfo
617     PyMac_PRECHECK(OSAGetDialectInfo);
618 #endif
619     if (!PyArg_ParseTuple(_args, "hO&",
620                           &dialectCode,
621                           PyMac_GetOSType, &selector))
622         return NULL;
623     _err = OSAGetDialectInfo(_self->ob_itself,
624                              dialectCode,
625                              selector,
626                              &resultingDialectInfo);
627     if (_err != noErr) return PyMac_Error(_err);
628     _res = Py_BuildValue("O&",
629                          AEDesc_New, &resultingDialectInfo);
630     return _res;
631 }
632 
OSAObj_OSAAvailableDialectCodeList(OSAComponentInstanceObject * _self,PyObject * _args)633 static PyObject *OSAObj_OSAAvailableDialectCodeList(OSAComponentInstanceObject *_self, PyObject *_args)
634 {
635     PyObject *_res = NULL;
636     OSAError _err;
637     AEDesc resultingDialectCodeList;
638 #ifndef OSAAvailableDialectCodeList
639     PyMac_PRECHECK(OSAAvailableDialectCodeList);
640 #endif
641     if (!PyArg_ParseTuple(_args, ""))
642         return NULL;
643     _err = OSAAvailableDialectCodeList(_self->ob_itself,
644                                        &resultingDialectCodeList);
645     if (_err != noErr) return PyMac_Error(_err);
646     _res = Py_BuildValue("O&",
647                          AEDesc_New, &resultingDialectCodeList);
648     return _res;
649 }
650 
OSAObj_OSAExecuteEvent(OSAComponentInstanceObject * _self,PyObject * _args)651 static PyObject *OSAObj_OSAExecuteEvent(OSAComponentInstanceObject *_self, PyObject *_args)
652 {
653     PyObject *_res = NULL;
654     OSAError _err;
655     AppleEvent theAppleEvent;
656     OSAID contextID;
657     long modeFlags;
658     OSAID resultingScriptValueID;
659 #ifndef OSAExecuteEvent
660     PyMac_PRECHECK(OSAExecuteEvent);
661 #endif
662     if (!PyArg_ParseTuple(_args, "O&ll",
663                           AEDesc_Convert, &theAppleEvent,
664                           &contextID,
665                           &modeFlags))
666         return NULL;
667     _err = OSAExecuteEvent(_self->ob_itself,
668                            &theAppleEvent,
669                            contextID,
670                            modeFlags,
671                            &resultingScriptValueID);
672     if (_err != noErr) return PyMac_Error(_err);
673     _res = Py_BuildValue("l",
674                          resultingScriptValueID);
675     return _res;
676 }
677 
OSAObj_OSADoEvent(OSAComponentInstanceObject * _self,PyObject * _args)678 static PyObject *OSAObj_OSADoEvent(OSAComponentInstanceObject *_self, PyObject *_args)
679 {
680     PyObject *_res = NULL;
681     OSAError _err;
682     AppleEvent theAppleEvent;
683     OSAID contextID;
684     long modeFlags;
685     AppleEvent reply;
686 #ifndef OSADoEvent
687     PyMac_PRECHECK(OSADoEvent);
688 #endif
689     if (!PyArg_ParseTuple(_args, "O&ll",
690                           AEDesc_Convert, &theAppleEvent,
691                           &contextID,
692                           &modeFlags))
693         return NULL;
694     _err = OSADoEvent(_self->ob_itself,
695                       &theAppleEvent,
696                       contextID,
697                       modeFlags,
698                       &reply);
699     if (_err != noErr) return PyMac_Error(_err);
700     _res = Py_BuildValue("O&",
701                          AEDesc_New, &reply);
702     return _res;
703 }
704 
OSAObj_OSAMakeContext(OSAComponentInstanceObject * _self,PyObject * _args)705 static PyObject *OSAObj_OSAMakeContext(OSAComponentInstanceObject *_self, PyObject *_args)
706 {
707     PyObject *_res = NULL;
708     OSAError _err;
709     AEDesc contextName;
710     OSAID parentContext;
711     OSAID resultingContextID;
712 #ifndef OSAMakeContext
713     PyMac_PRECHECK(OSAMakeContext);
714 #endif
715     if (!PyArg_ParseTuple(_args, "O&l",
716                           AEDesc_Convert, &contextName,
717                           &parentContext))
718         return NULL;
719     _err = OSAMakeContext(_self->ob_itself,
720                           &contextName,
721                           parentContext,
722                           &resultingContextID);
723     if (_err != noErr) return PyMac_Error(_err);
724     _res = Py_BuildValue("l",
725                          resultingContextID);
726     return _res;
727 }
728 
729 static PyMethodDef OSAObj_methods[] = {
730     {"OSALoad", (PyCFunction)OSAObj_OSALoad, 1,
731      PyDoc_STR("(AEDesc scriptData, long modeFlags) -> (OSAID resultingScriptID)")},
732     {"OSAStore", (PyCFunction)OSAObj_OSAStore, 1,
733      PyDoc_STR("(OSAID scriptID, DescType desiredType, long modeFlags) -> (AEDesc resultingScriptData)")},
734     {"OSAExecute", (PyCFunction)OSAObj_OSAExecute, 1,
735      PyDoc_STR("(OSAID compiledScriptID, OSAID contextID, long modeFlags) -> (OSAID resultingScriptValueID)")},
736     {"OSADisplay", (PyCFunction)OSAObj_OSADisplay, 1,
737      PyDoc_STR("(OSAID scriptValueID, DescType desiredType, long modeFlags) -> (AEDesc resultingText)")},
738     {"OSAScriptError", (PyCFunction)OSAObj_OSAScriptError, 1,
739      PyDoc_STR("(OSType selector, DescType desiredType) -> (AEDesc resultingErrorDescription)")},
740     {"OSADispose", (PyCFunction)OSAObj_OSADispose, 1,
741      PyDoc_STR("(OSAID scriptID) -> None")},
742     {"OSASetScriptInfo", (PyCFunction)OSAObj_OSASetScriptInfo, 1,
743      PyDoc_STR("(OSAID scriptID, OSType selector, long value) -> None")},
744     {"OSAGetScriptInfo", (PyCFunction)OSAObj_OSAGetScriptInfo, 1,
745      PyDoc_STR("(OSAID scriptID, OSType selector) -> (long result)")},
746     {"OSAScriptingComponentName", (PyCFunction)OSAObj_OSAScriptingComponentName, 1,
747      PyDoc_STR("() -> (AEDesc resultingScriptingComponentName)")},
748     {"OSACompile", (PyCFunction)OSAObj_OSACompile, 1,
749      PyDoc_STR("(AEDesc sourceData, long modeFlags) -> (OSAID previousAndResultingScriptID)")},
750     {"OSACopyID", (PyCFunction)OSAObj_OSACopyID, 1,
751      PyDoc_STR("(OSAID fromID) -> (OSAID toID)")},
752     {"OSAGetSource", (PyCFunction)OSAObj_OSAGetSource, 1,
753      PyDoc_STR("(OSAID scriptID, DescType desiredType) -> (AEDesc resultingSourceData)")},
754     {"OSACoerceFromDesc", (PyCFunction)OSAObj_OSACoerceFromDesc, 1,
755      PyDoc_STR("(AEDesc scriptData, long modeFlags) -> (OSAID resultingScriptID)")},
756     {"OSACoerceToDesc", (PyCFunction)OSAObj_OSACoerceToDesc, 1,
757      PyDoc_STR("(OSAID scriptID, DescType desiredType, long modeFlags) -> (AEDesc result)")},
758     {"OSASetDefaultTarget", (PyCFunction)OSAObj_OSASetDefaultTarget, 1,
759      PyDoc_STR("(AEAddressDesc target) -> None")},
760     {"OSAStartRecording", (PyCFunction)OSAObj_OSAStartRecording, 1,
761      PyDoc_STR("() -> (OSAID compiledScriptToModifyID)")},
762     {"OSAStopRecording", (PyCFunction)OSAObj_OSAStopRecording, 1,
763      PyDoc_STR("(OSAID compiledScriptID) -> None")},
764     {"OSALoadExecute", (PyCFunction)OSAObj_OSALoadExecute, 1,
765      PyDoc_STR("(AEDesc scriptData, OSAID contextID, long modeFlags) -> (OSAID resultingScriptValueID)")},
766     {"OSACompileExecute", (PyCFunction)OSAObj_OSACompileExecute, 1,
767      PyDoc_STR("(AEDesc sourceData, OSAID contextID, long modeFlags) -> (OSAID resultingScriptValueID)")},
768     {"OSADoScript", (PyCFunction)OSAObj_OSADoScript, 1,
769      PyDoc_STR("(AEDesc sourceData, OSAID contextID, DescType desiredType, long modeFlags) -> (AEDesc resultingText)")},
770     {"OSASetCurrentDialect", (PyCFunction)OSAObj_OSASetCurrentDialect, 1,
771      PyDoc_STR("(short dialectCode) -> None")},
772     {"OSAGetCurrentDialect", (PyCFunction)OSAObj_OSAGetCurrentDialect, 1,
773      PyDoc_STR("() -> (short resultingDialectCode)")},
774     {"OSAAvailableDialects", (PyCFunction)OSAObj_OSAAvailableDialects, 1,
775      PyDoc_STR("() -> (AEDesc resultingDialectInfoList)")},
776     {"OSAGetDialectInfo", (PyCFunction)OSAObj_OSAGetDialectInfo, 1,
777      PyDoc_STR("(short dialectCode, OSType selector) -> (AEDesc resultingDialectInfo)")},
778     {"OSAAvailableDialectCodeList", (PyCFunction)OSAObj_OSAAvailableDialectCodeList, 1,
779      PyDoc_STR("() -> (AEDesc resultingDialectCodeList)")},
780     {"OSAExecuteEvent", (PyCFunction)OSAObj_OSAExecuteEvent, 1,
781      PyDoc_STR("(AppleEvent theAppleEvent, OSAID contextID, long modeFlags) -> (OSAID resultingScriptValueID)")},
782     {"OSADoEvent", (PyCFunction)OSAObj_OSADoEvent, 1,
783      PyDoc_STR("(AppleEvent theAppleEvent, OSAID contextID, long modeFlags) -> (AppleEvent reply)")},
784     {"OSAMakeContext", (PyCFunction)OSAObj_OSAMakeContext, 1,
785      PyDoc_STR("(AEDesc contextName, OSAID parentContext) -> (OSAID resultingContextID)")},
786     {NULL, NULL, 0}
787 };
788 
789 #define OSAObj_getsetlist NULL
790 
791 
792 #define OSAObj_compare NULL
793 
794 #define OSAObj_repr NULL
795 
796 #define OSAObj_hash NULL
797 #define OSAObj_tp_init 0
798 
799 #define OSAObj_tp_alloc PyType_GenericAlloc
800 
OSAObj_tp_new(PyTypeObject * type,PyObject * _args,PyObject * _kwds)801 static PyObject *OSAObj_tp_new(PyTypeObject *type, PyObject *_args, PyObject *_kwds)
802 {
803     PyObject *_self;
804     ComponentInstance itself;
805     char *kw[] = {"itself", 0};
806 
807     if (!PyArg_ParseTupleAndKeywords(_args, _kwds, "O&", kw, OSAObj_Convert, &itself)) return NULL;
808     if ((_self = type->tp_alloc(type, 0)) == NULL) return NULL;
809     ((OSAComponentInstanceObject *)_self)->ob_itself = itself;
810     return _self;
811 }
812 
813 #define OSAObj_tp_free PyObject_Del
814 
815 
816 PyTypeObject OSAComponentInstance_Type = {
817     PyObject_HEAD_INIT(NULL)
818     0, /*ob_size*/
819     "_OSA.OSAComponentInstance", /*tp_name*/
820     sizeof(OSAComponentInstanceObject), /*tp_basicsize*/
821     0, /*tp_itemsize*/
822     /* methods */
823     (destructor) OSAObj_dealloc, /*tp_dealloc*/
824     0, /*tp_print*/
825     (getattrfunc)0, /*tp_getattr*/
826     (setattrfunc)0, /*tp_setattr*/
827     (cmpfunc) OSAObj_compare, /*tp_compare*/
828     (reprfunc) OSAObj_repr, /*tp_repr*/
829     (PyNumberMethods *)0, /* tp_as_number */
830     (PySequenceMethods *)0, /* tp_as_sequence */
831     (PyMappingMethods *)0, /* tp_as_mapping */
832     (hashfunc) OSAObj_hash, /*tp_hash*/
833     0, /*tp_call*/
834     0, /*tp_str*/
835     PyObject_GenericGetAttr, /*tp_getattro*/
836     PyObject_GenericSetAttr, /*tp_setattro */
837     0, /*tp_as_buffer*/
838     Py_TPFLAGS_DEFAULT|Py_TPFLAGS_BASETYPE, /* tp_flags */
839     0, /*tp_doc*/
840     0, /*tp_traverse*/
841     0, /*tp_clear*/
842     0, /*tp_richcompare*/
843     0, /*tp_weaklistoffset*/
844     0, /*tp_iter*/
845     0, /*tp_iternext*/
846     OSAObj_methods, /* tp_methods */
847     0, /*tp_members*/
848     OSAObj_getsetlist, /*tp_getset*/
849     0, /*tp_base*/
850     0, /*tp_dict*/
851     0, /*tp_descr_get*/
852     0, /*tp_descr_set*/
853     0, /*tp_dictoffset*/
854     OSAObj_tp_init, /* tp_init */
855     OSAObj_tp_alloc, /* tp_alloc */
856     OSAObj_tp_new, /* tp_new */
857     OSAObj_tp_free, /* tp_free */
858 };
859 
860 /* -------------- End object type OSAComponentInstance -------------- */
861 
862 
863 static PyMethodDef OSA_methods[] = {
864     {NULL, NULL, 0}
865 };
866 
867 
868 
869 
init_OSA(void)870 void init_OSA(void)
871 {
872     PyObject *m;
873     PyObject *d;
874 
875 
876 
877     /*
878         PyMac_INIT_TOOLBOX_OBJECT_NEW(ComponentInstance, OSAObj_New);
879         PyMac_INIT_TOOLBOX_OBJECT_CONVERT(ComponentInstance, OSAObj_Convert);
880     */
881 
882 
883     m = Py_InitModule("_OSA", OSA_methods);
884     d = PyModule_GetDict(m);
885     OSA_Error = PyMac_GetOSErrException();
886     if (OSA_Error == NULL ||
887         PyDict_SetItemString(d, "Error", OSA_Error) != 0)
888         return;
889     OSAComponentInstance_Type.ob_type = &PyType_Type;
890     if (PyType_Ready(&OSAComponentInstance_Type) < 0) return;
891     Py_INCREF(&OSAComponentInstance_Type);
892     PyModule_AddObject(m, "OSAComponentInstance", (PyObject *)&OSAComponentInstance_Type);
893     /* Backward-compatible name */
894     Py_INCREF(&OSAComponentInstance_Type);
895     PyModule_AddObject(m, "OSAComponentInstanceType", (PyObject *)&OSAComponentInstance_Type);
896 }
897 
898 /* ======================== End module _OSA ========================= */
899 
900