Kaydet (Commit) 9784295b authored tarafından Guido van Rossum's avatar Guido van Rossum

another round... ported to __SC__

üst 295d1716
...@@ -11,7 +11,7 @@ import StringIO ...@@ -11,7 +11,7 @@ import StringIO
from Res import * from Res import *
def main(): def main():
filename = raw_input("Listing file? (default stdout): ") filename = ""
redirect(filename, realmain) redirect(filename, realmain)
def redirect(filename, func, *args): def redirect(filename, func, *args):
...@@ -27,14 +27,14 @@ def redirect(filename, func, *args): ...@@ -27,14 +27,14 @@ def redirect(filename, func, *args):
def realmain(): def realmain():
#list('C:System Folder:Extensions:AppleScript\252') #list('C:System Folder:Extensions:AppleScript\252')
#list('C:Tao AppleScript:Finder Liaison:Finder Liaison 1.0') #list('C:Tao AppleScript:Finder Liaison:Finder Liaison 1.0')
#list('C:Tao AppleScript:Scriptable Text Editor') list('C:Tao AppleScript:Scriptable Text Editor')
#list('C:Internet:Eudora 1.4.2:Eudora1.4.2') #list('C:Internet:Eudora 1.4.2:Eudora1.4.2')
#list('E:Excel 4.0:Microsoft Excel') #list('E:Excel 4.0:Microsoft Excel')
#list('C:Internet:Netscape 1.0N:Netscape 1.0N') #list('C:Internet:Netscape 1.0N:Netscape 1.0N')
#find('C:') #find('C:')
find('D:') #find('D:')
find('E:') #find('E:')
find('F:') #find('F:')
def find(dir, maxlevel = 5): def find(dir, maxlevel = 5):
hits = [] hits = []
......
...@@ -6,14 +6,21 @@ especially to figure out all the different forms an object specifier ...@@ -6,14 +6,21 @@ especially to figure out all the different forms an object specifier
can have (without having to rely on Apple's implementation). can have (without having to rely on Apple's implementation).
""" """
import addpack
addpack.addpack('Demo')
addpack.addpack('bgen')
addpack.addpack('ae')
addpack.addpack('evt')
import sys
sys.stdout = sys.stderr
import traceback
import MacOS
import AE import AE
from AppleEvents import * from AppleEvents import *
import Evt import Evt
from Events import * from Events import *
import aetools import aetools
import sys
import MacOS
import traceback
kHighLevelEvent = 23 # Not defined anywhere for Python yet? kHighLevelEvent = 23 # Not defined anywhere for Python yet?
...@@ -49,6 +56,9 @@ class EchoServer: ...@@ -49,6 +56,9 @@ class EchoServer:
def mainloop(self, mask = everyEvent, timeout = 60*60): def mainloop(self, mask = everyEvent, timeout = 60*60):
while 1: while 1:
self.dooneevent(mask, timeout)
def dooneevent(self, mask = everyEvent, timeout = 60*60):
got, event = Evt.WaitNextEvent(mask, timeout) got, event = Evt.WaitNextEvent(mask, timeout)
if got: if got:
self.lowlevelhandler(event) self.lowlevelhandler(event)
...@@ -116,4 +126,3 @@ def code(x): ...@@ -116,4 +126,3 @@ def code(x):
if __name__ == '__main__': if __name__ == '__main__':
main() main()
else: main()
...@@ -136,8 +136,10 @@ def unpack(desc): ...@@ -136,8 +136,10 @@ def unpack(desc):
def mkfss(data): def mkfss(data):
print "mkfss data =", `data`
vol, dir, fnlen = struct.unpack('hlb', data[:7]) vol, dir, fnlen = struct.unpack('hlb', data[:7])
filename = data[7:7+fnlen] filename = data[7:7+fnlen]
print (vol, dir, fnlen, filename)
return macfs.FSSpec((vol, dir, filename)) return macfs.FSSpec((vol, dir, filename))
......
...@@ -82,7 +82,7 @@ typedef struct AEDescObject { ...@@ -82,7 +82,7 @@ typedef struct AEDescObject {
} AEDescObject; } AEDescObject;
static PyObject *AEDesc_New(itself) static PyObject *AEDesc_New(itself)
const AEDesc *itself; AEDesc *itself;
{ {
AEDescObject *it; AEDescObject *it;
it = PyObject_NEW(AEDescObject, &AEDesc_Type); it = PyObject_NEW(AEDescObject, &AEDesc_Type);
...@@ -174,11 +174,13 @@ static PyObject *AEDesc_AEPutPtr(_self, _args) ...@@ -174,11 +174,13 @@ static PyObject *AEDesc_AEPutPtr(_self, _args)
DescType typeCode; DescType typeCode;
char *dataPtr__in__; char *dataPtr__in__;
long dataPtr__len__; long dataPtr__len__;
int dataPtr__in_len__;
if (!PyArg_ParseTuple(_args, "lO&s#", if (!PyArg_ParseTuple(_args, "lO&s#",
&index, &index,
PyMac_GetOSType, &typeCode, PyMac_GetOSType, &typeCode,
&dataPtr__in__, &dataPtr__len__)) &dataPtr__in__, &dataPtr__in_len__))
return NULL; return NULL;
dataPtr__len__ = dataPtr__in_len__;
_err = AEPutPtr(&_self->ob_itself, _err = AEPutPtr(&_self->ob_itself,
index, index,
typeCode, typeCode,
...@@ -223,16 +225,18 @@ static PyObject *AEDesc_AEGetNthPtr(_self, _args) ...@@ -223,16 +225,18 @@ static PyObject *AEDesc_AEGetNthPtr(_self, _args)
DescType typeCode; DescType typeCode;
char *dataPtr__out__; char *dataPtr__out__;
long dataPtr__len__; long dataPtr__len__;
if (!PyArg_ParseTuple(_args, "lO&l", int dataPtr__in_len__;
if (!PyArg_ParseTuple(_args, "lO&i",
&index, &index,
PyMac_GetOSType, &desiredType, PyMac_GetOSType, &desiredType,
&dataPtr__len__)) &dataPtr__in_len__))
return NULL; return NULL;
if ((dataPtr__out__ = malloc(dataPtr__len__)) == NULL) if ((dataPtr__out__ = malloc(dataPtr__in_len__)) == NULL)
{ {
PyErr_NoMemory(); PyErr_NoMemory();
goto dataPtr__error__; goto dataPtr__error__;
} }
dataPtr__len__ = dataPtr__in_len__;
_err = AEGetNthPtr(&_self->ob_itself, _err = AEGetNthPtr(&_self->ob_itself,
index, index,
desiredType, desiredType,
...@@ -243,7 +247,7 @@ static PyObject *AEDesc_AEGetNthPtr(_self, _args) ...@@ -243,7 +247,7 @@ static PyObject *AEDesc_AEGetNthPtr(_self, _args)
_res = Py_BuildValue("O&O&s#", _res = Py_BuildValue("O&O&s#",
PyMac_BuildOSType, theAEKeyword, PyMac_BuildOSType, theAEKeyword,
PyMac_BuildOSType, typeCode, PyMac_BuildOSType, typeCode,
dataPtr__out__, dataPtr__len__); dataPtr__out__, (int)dataPtr__len__);
free(dataPtr__out__); free(dataPtr__out__);
dataPtr__error__: ; dataPtr__error__: ;
return _res; return _res;
...@@ -326,11 +330,13 @@ static PyObject *AEDesc_AEPutKeyPtr(_self, _args) ...@@ -326,11 +330,13 @@ static PyObject *AEDesc_AEPutKeyPtr(_self, _args)
DescType typeCode; DescType typeCode;
char *dataPtr__in__; char *dataPtr__in__;
long dataPtr__len__; long dataPtr__len__;
int dataPtr__in_len__;
if (!PyArg_ParseTuple(_args, "O&O&s#", if (!PyArg_ParseTuple(_args, "O&O&s#",
PyMac_GetOSType, &theAEKeyword, PyMac_GetOSType, &theAEKeyword,
PyMac_GetOSType, &typeCode, PyMac_GetOSType, &typeCode,
&dataPtr__in__, &dataPtr__len__)) &dataPtr__in__, &dataPtr__in_len__))
return NULL; return NULL;
dataPtr__len__ = dataPtr__in_len__;
_err = AEPutKeyPtr(&_self->ob_itself, _err = AEPutKeyPtr(&_self->ob_itself,
theAEKeyword, theAEKeyword,
typeCode, typeCode,
...@@ -374,16 +380,18 @@ static PyObject *AEDesc_AEGetKeyPtr(_self, _args) ...@@ -374,16 +380,18 @@ static PyObject *AEDesc_AEGetKeyPtr(_self, _args)
DescType typeCode; DescType typeCode;
char *dataPtr__out__; char *dataPtr__out__;
long dataPtr__len__; long dataPtr__len__;
if (!PyArg_ParseTuple(_args, "O&O&l", int dataPtr__in_len__;
if (!PyArg_ParseTuple(_args, "O&O&i",
PyMac_GetOSType, &theAEKeyword, PyMac_GetOSType, &theAEKeyword,
PyMac_GetOSType, &desiredType, PyMac_GetOSType, &desiredType,
&dataPtr__len__)) &dataPtr__in_len__))
return NULL; return NULL;
if ((dataPtr__out__ = malloc(dataPtr__len__)) == NULL) if ((dataPtr__out__ = malloc(dataPtr__in_len__)) == NULL)
{ {
PyErr_NoMemory(); PyErr_NoMemory();
goto dataPtr__error__; goto dataPtr__error__;
} }
dataPtr__len__ = dataPtr__in_len__;
_err = AEGetKeyPtr(&_self->ob_itself, _err = AEGetKeyPtr(&_self->ob_itself,
theAEKeyword, theAEKeyword,
desiredType, desiredType,
...@@ -392,7 +400,7 @@ static PyObject *AEDesc_AEGetKeyPtr(_self, _args) ...@@ -392,7 +400,7 @@ static PyObject *AEDesc_AEGetKeyPtr(_self, _args)
if (_err != noErr) return PyMac_Error(_err); if (_err != noErr) return PyMac_Error(_err);
_res = Py_BuildValue("O&s#", _res = Py_BuildValue("O&s#",
PyMac_BuildOSType, typeCode, PyMac_BuildOSType, typeCode,
dataPtr__out__, dataPtr__len__); dataPtr__out__, (int)dataPtr__len__);
free(dataPtr__out__); free(dataPtr__out__);
dataPtr__error__: ; dataPtr__error__: ;
return _res; return _res;
...@@ -472,11 +480,13 @@ static PyObject *AEDesc_AEPutParamPtr(_self, _args) ...@@ -472,11 +480,13 @@ static PyObject *AEDesc_AEPutParamPtr(_self, _args)
DescType typeCode; DescType typeCode;
char *dataPtr__in__; char *dataPtr__in__;
long dataPtr__len__; long dataPtr__len__;
int dataPtr__in_len__;
if (!PyArg_ParseTuple(_args, "O&O&s#", if (!PyArg_ParseTuple(_args, "O&O&s#",
PyMac_GetOSType, &theAEKeyword, PyMac_GetOSType, &theAEKeyword,
PyMac_GetOSType, &typeCode, PyMac_GetOSType, &typeCode,
&dataPtr__in__, &dataPtr__len__)) &dataPtr__in__, &dataPtr__in_len__))
return NULL; return NULL;
dataPtr__len__ = dataPtr__in_len__;
_err = AEPutParamPtr(&_self->ob_itself, _err = AEPutParamPtr(&_self->ob_itself,
theAEKeyword, theAEKeyword,
typeCode, typeCode,
...@@ -520,16 +530,18 @@ static PyObject *AEDesc_AEGetParamPtr(_self, _args) ...@@ -520,16 +530,18 @@ static PyObject *AEDesc_AEGetParamPtr(_self, _args)
DescType typeCode; DescType typeCode;
char *dataPtr__out__; char *dataPtr__out__;
long dataPtr__len__; long dataPtr__len__;
if (!PyArg_ParseTuple(_args, "O&O&l", int dataPtr__in_len__;
if (!PyArg_ParseTuple(_args, "O&O&i",
PyMac_GetOSType, &theAEKeyword, PyMac_GetOSType, &theAEKeyword,
PyMac_GetOSType, &desiredType, PyMac_GetOSType, &desiredType,
&dataPtr__len__)) &dataPtr__in_len__))
return NULL; return NULL;
if ((dataPtr__out__ = malloc(dataPtr__len__)) == NULL) if ((dataPtr__out__ = malloc(dataPtr__in_len__)) == NULL)
{ {
PyErr_NoMemory(); PyErr_NoMemory();
goto dataPtr__error__; goto dataPtr__error__;
} }
dataPtr__len__ = dataPtr__in_len__;
_err = AEGetParamPtr(&_self->ob_itself, _err = AEGetParamPtr(&_self->ob_itself,
theAEKeyword, theAEKeyword,
desiredType, desiredType,
...@@ -538,7 +550,7 @@ static PyObject *AEDesc_AEGetParamPtr(_self, _args) ...@@ -538,7 +550,7 @@ static PyObject *AEDesc_AEGetParamPtr(_self, _args)
if (_err != noErr) return PyMac_Error(_err); if (_err != noErr) return PyMac_Error(_err);
_res = Py_BuildValue("O&s#", _res = Py_BuildValue("O&s#",
PyMac_BuildOSType, typeCode, PyMac_BuildOSType, typeCode,
dataPtr__out__, dataPtr__len__); dataPtr__out__, (int)dataPtr__len__);
free(dataPtr__out__); free(dataPtr__out__);
dataPtr__error__: ; dataPtr__error__: ;
return _res; return _res;
...@@ -619,16 +631,18 @@ static PyObject *AEDesc_AEGetAttributePtr(_self, _args) ...@@ -619,16 +631,18 @@ static PyObject *AEDesc_AEGetAttributePtr(_self, _args)
DescType typeCode; DescType typeCode;
char *dataPtr__out__; char *dataPtr__out__;
long dataPtr__len__; long dataPtr__len__;
if (!PyArg_ParseTuple(_args, "O&O&l", int dataPtr__in_len__;
if (!PyArg_ParseTuple(_args, "O&O&i",
PyMac_GetOSType, &theAEKeyword, PyMac_GetOSType, &theAEKeyword,
PyMac_GetOSType, &desiredType, PyMac_GetOSType, &desiredType,
&dataPtr__len__)) &dataPtr__in_len__))
return NULL; return NULL;
if ((dataPtr__out__ = malloc(dataPtr__len__)) == NULL) if ((dataPtr__out__ = malloc(dataPtr__in_len__)) == NULL)
{ {
PyErr_NoMemory(); PyErr_NoMemory();
goto dataPtr__error__; goto dataPtr__error__;
} }
dataPtr__len__ = dataPtr__in_len__;
_err = AEGetAttributePtr(&_self->ob_itself, _err = AEGetAttributePtr(&_self->ob_itself,
theAEKeyword, theAEKeyword,
desiredType, desiredType,
...@@ -637,7 +651,7 @@ static PyObject *AEDesc_AEGetAttributePtr(_self, _args) ...@@ -637,7 +651,7 @@ static PyObject *AEDesc_AEGetAttributePtr(_self, _args)
if (_err != noErr) return PyMac_Error(_err); if (_err != noErr) return PyMac_Error(_err);
_res = Py_BuildValue("O&s#", _res = Py_BuildValue("O&s#",
PyMac_BuildOSType, typeCode, PyMac_BuildOSType, typeCode,
dataPtr__out__, dataPtr__len__); dataPtr__out__, (int)dataPtr__len__);
free(dataPtr__out__); free(dataPtr__out__);
dataPtr__error__: ; dataPtr__error__: ;
return _res; return _res;
...@@ -699,11 +713,13 @@ static PyObject *AEDesc_AEPutAttributePtr(_self, _args) ...@@ -699,11 +713,13 @@ static PyObject *AEDesc_AEPutAttributePtr(_self, _args)
DescType typeCode; DescType typeCode;
char *dataPtr__in__; char *dataPtr__in__;
long dataPtr__len__; long dataPtr__len__;
int dataPtr__in_len__;
if (!PyArg_ParseTuple(_args, "O&O&s#", if (!PyArg_ParseTuple(_args, "O&O&s#",
PyMac_GetOSType, &theAEKeyword, PyMac_GetOSType, &theAEKeyword,
PyMac_GetOSType, &typeCode, PyMac_GetOSType, &typeCode,
&dataPtr__in__, &dataPtr__len__)) &dataPtr__in__, &dataPtr__in_len__))
return NULL; return NULL;
dataPtr__len__ = dataPtr__in_len__;
_err = AEPutAttributePtr(&_self->ob_itself, _err = AEPutAttributePtr(&_self->ob_itself,
theAEKeyword, theAEKeyword,
typeCode, typeCode,
...@@ -927,7 +943,7 @@ static PyObject *AEDesc_getattr(self, name) ...@@ -927,7 +943,7 @@ static PyObject *AEDesc_getattr(self, name)
#define AEDesc_setattr NULL #define AEDesc_setattr NULL
static PyTypeObject AEDesc_Type = { staticforward PyTypeObject AEDesc_Type = {
PyObject_HEAD_INIT(&PyType_Type) PyObject_HEAD_INIT(&PyType_Type)
0, /*ob_size*/ 0, /*ob_size*/
"AEDesc", /*tp_name*/ "AEDesc", /*tp_name*/
...@@ -952,11 +968,13 @@ static PyObject *AE_AECreateDesc(_self, _args) ...@@ -952,11 +968,13 @@ static PyObject *AE_AECreateDesc(_self, _args)
DescType typeCode; DescType typeCode;
char *dataPtr__in__; char *dataPtr__in__;
long dataPtr__len__; long dataPtr__len__;
int dataPtr__in_len__;
AEDesc result; AEDesc result;
if (!PyArg_ParseTuple(_args, "O&s#", if (!PyArg_ParseTuple(_args, "O&s#",
PyMac_GetOSType, &typeCode, PyMac_GetOSType, &typeCode,
&dataPtr__in__, &dataPtr__len__)) &dataPtr__in__, &dataPtr__in_len__))
return NULL; return NULL;
dataPtr__len__ = dataPtr__in_len__;
_err = AECreateDesc(typeCode, _err = AECreateDesc(typeCode,
dataPtr__in__, dataPtr__len__, dataPtr__in__, dataPtr__len__,
&result); &result);
...@@ -976,13 +994,15 @@ static PyObject *AE_AECoercePtr(_self, _args) ...@@ -976,13 +994,15 @@ static PyObject *AE_AECoercePtr(_self, _args)
DescType typeCode; DescType typeCode;
char *dataPtr__in__; char *dataPtr__in__;
long dataPtr__len__; long dataPtr__len__;
int dataPtr__in_len__;
DescType toType; DescType toType;
AEDesc result; AEDesc result;
if (!PyArg_ParseTuple(_args, "O&s#O&", if (!PyArg_ParseTuple(_args, "O&s#O&",
PyMac_GetOSType, &typeCode, PyMac_GetOSType, &typeCode,
&dataPtr__in__, &dataPtr__len__, &dataPtr__in__, &dataPtr__in_len__,
PyMac_GetOSType, &toType)) PyMac_GetOSType, &toType))
return NULL; return NULL;
dataPtr__len__ = dataPtr__in_len__;
_err = AECoercePtr(typeCode, _err = AECoercePtr(typeCode,
dataPtr__in__, dataPtr__len__, dataPtr__in__, dataPtr__len__,
toType, toType,
...@@ -1002,12 +1022,14 @@ static PyObject *AE_AECreateList(_self, _args) ...@@ -1002,12 +1022,14 @@ static PyObject *AE_AECreateList(_self, _args)
OSErr _err; OSErr _err;
char *factoringPtr__in__; char *factoringPtr__in__;
long factoringPtr__len__; long factoringPtr__len__;
int factoringPtr__in_len__;
Boolean isRecord; Boolean isRecord;
AEDescList resultList; AEDescList resultList;
if (!PyArg_ParseTuple(_args, "s#b", if (!PyArg_ParseTuple(_args, "s#b",
&factoringPtr__in__, &factoringPtr__len__, &factoringPtr__in__, &factoringPtr__in_len__,
&isRecord)) &isRecord))
return NULL; return NULL;
factoringPtr__len__ = factoringPtr__in_len__;
_err = AECreateList(factoringPtr__in__, factoringPtr__len__, _err = AECreateList(factoringPtr__in__, factoringPtr__len__,
isRecord, isRecord,
&resultList); &resultList);
...@@ -1232,7 +1254,7 @@ static PyMethodDef AE_methods[] = { ...@@ -1232,7 +1254,7 @@ static PyMethodDef AE_methods[] = {
static pascal OSErr static pascal OSErr
GenericEventHandler(const AppleEvent *request, AppleEvent *reply, long refcon) GenericEventHandler(AppleEvent *request, AppleEvent *reply, long refcon)
{ {
PyObject *handler = (PyObject *)refcon; PyObject *handler = (PyObject *)refcon;
AEDescObject *requestObject, *replyObject; AEDescObject *requestObject, *replyObject;
......
...@@ -115,7 +115,7 @@ AEIdleUPP upp_AEIdleProc; ...@@ -115,7 +115,7 @@ AEIdleUPP upp_AEIdleProc;
finalstuff = finalstuff + """ finalstuff = finalstuff + """
static pascal OSErr static pascal OSErr
GenericEventHandler(const AppleEvent *request, AppleEvent *reply, long refcon) GenericEventHandler(AppleEvent *request, AppleEvent *reply, long refcon)
{ {
PyObject *handler = (PyObject *)refcon; PyObject *handler = (PyObject *)refcon;
AEDescObject *requestObject, *replyObject; AEDescObject *requestObject, *replyObject;
......
...@@ -34,6 +34,10 @@ extern PyObject *WinObj_WhichWindow(WindowPtr); ...@@ -34,6 +34,10 @@ extern PyObject *WinObj_WhichWindow(WindowPtr);
#include <Dialogs.h> #include <Dialogs.h>
#ifndef HAVE_UNIVERSAL_HEADERS
#define NewModalFilterProc(x) (x)
#endif
#define resNotFound -192 /* Can't include <Errors.h> because of Python's "errors.h" */ #define resNotFound -192 /* Can't include <Errors.h> because of Python's "errors.h" */
/* XXX Shouldn't this be a stack? */ /* XXX Shouldn't this be a stack? */
...@@ -51,7 +55,7 @@ static pascal Boolean Dlg_UnivFilterProc(DialogPtr dialog, ...@@ -51,7 +55,7 @@ static pascal Boolean Dlg_UnivFilterProc(DialogPtr dialog,
if (callback == NULL) if (callback == NULL)
return 0; /* Default behavior */ return 0; /* Default behavior */
Dlg_FilterProc_callback = NULL; /* We'll restore it when call successful */ Dlg_FilterProc_callback = NULL; /* We'll restore it when call successful */
args = Py_BuildValue("O&s#", DlgObj_New, dialog, event, sizeof(EventRecord)); args = Py_BuildValue("O&s#", DlgObj_New, dialog, event, (int)sizeof(EventRecord));
if (args == NULL) if (args == NULL)
res = NULL; res = NULL;
else { else {
...@@ -108,7 +112,7 @@ typedef struct DialogObject { ...@@ -108,7 +112,7 @@ typedef struct DialogObject {
} DialogObject; } DialogObject;
PyObject *DlgObj_New(itself) PyObject *DlgObj_New(itself)
const DialogPtr itself; DialogPtr itself;
{ {
DialogObject *it; DialogObject *it;
if (itself == NULL) return Py_None; if (itself == NULL) return Py_None;
...@@ -154,20 +158,6 @@ static PyObject *DlgObj_DrawDialog(_self, _args) ...@@ -154,20 +158,6 @@ static PyObject *DlgObj_DrawDialog(_self, _args)
return _res; return _res;
} }
static PyObject *DlgObj_UpdtDialog(_self, _args)
DialogObject *_self;
PyObject *_args;
{
PyObject *_res = NULL;
if (!PyArg_ParseTuple(_args, ""))
return NULL;
UpdtDialog(_self->ob_itself,
_self->ob_itself->visRgn);
Py_INCREF(Py_None);
_res = Py_None;
return _res;
}
static PyObject *DlgObj_UpdateDialog(_self, _args) static PyObject *DlgObj_UpdateDialog(_self, _args)
DialogObject *_self; DialogObject *_self;
PyObject *_args; PyObject *_args;
...@@ -406,8 +396,6 @@ static PyObject *DlgObj_ShortenDITL(_self, _args) ...@@ -406,8 +396,6 @@ static PyObject *DlgObj_ShortenDITL(_self, _args)
static PyMethodDef DlgObj_methods[] = { static PyMethodDef DlgObj_methods[] = {
{"DrawDialog", (PyCFunction)DlgObj_DrawDialog, 1, {"DrawDialog", (PyCFunction)DlgObj_DrawDialog, 1,
"() -> None"}, "() -> None"},
{"UpdtDialog", (PyCFunction)DlgObj_UpdtDialog, 1,
"() -> None"},
{"UpdateDialog", (PyCFunction)DlgObj_UpdateDialog, 1, {"UpdateDialog", (PyCFunction)DlgObj_UpdateDialog, 1,
"() -> None"}, "() -> None"},
{"GetDItem", (PyCFunction)DlgObj_GetDItem, 1, {"GetDItem", (PyCFunction)DlgObj_GetDItem, 1,
...@@ -524,36 +512,6 @@ static PyObject *Dlg_GetNewDialog(_self, _args) ...@@ -524,36 +512,6 @@ static PyObject *Dlg_GetNewDialog(_self, _args)
return _res; return _res;
} }
static PyObject *Dlg_CouldDialog(_self, _args)
PyObject *_self;
PyObject *_args;
{
PyObject *_res = NULL;
short dialogID;
if (!PyArg_ParseTuple(_args, "h",
&dialogID))
return NULL;
CouldDialog(dialogID);
Py_INCREF(Py_None);
_res = Py_None;
return _res;
}
static PyObject *Dlg_FreeDialog(_self, _args)
PyObject *_self;
PyObject *_args;
{
PyObject *_res = NULL;
short dialogID;
if (!PyArg_ParseTuple(_args, "h",
&dialogID))
return NULL;
FreeDialog(dialogID);
Py_INCREF(Py_None);
_res = Py_None;
return _res;
}
static PyObject *Dlg_ParamText(_self, _args) static PyObject *Dlg_ParamText(_self, _args)
PyObject *_self; PyObject *_self;
PyObject *_args; PyObject *_args;
...@@ -588,7 +546,7 @@ static PyObject *Dlg_ModalDialog(_self, _args) ...@@ -588,7 +546,7 @@ static PyObject *Dlg_ModalDialog(_self, _args)
if (!PyArg_ParseTuple(_args, "O", if (!PyArg_ParseTuple(_args, "O",
&filterProc)) &filterProc))
return NULL; return NULL;
ModalDialog(Dlg_PassFilterProc(filterProc), ModalDialog(NewModalFilterProc(Dlg_PassFilterProc(filterProc)),
&itemHit); &itemHit);
_res = Py_BuildValue("h", _res = Py_BuildValue("h",
itemHit); itemHit);
...@@ -646,7 +604,7 @@ static PyObject *Dlg_Alert(_self, _args) ...@@ -646,7 +604,7 @@ static PyObject *Dlg_Alert(_self, _args)
&filterProc)) &filterProc))
return NULL; return NULL;
_rv = Alert(alertID, _rv = Alert(alertID,
Dlg_PassFilterProc(filterProc)); NewModalFilterProc(Dlg_PassFilterProc(filterProc)));
_res = Py_BuildValue("h", _res = Py_BuildValue("h",
_rv); _rv);
return _res; return _res;
...@@ -665,7 +623,7 @@ static PyObject *Dlg_StopAlert(_self, _args) ...@@ -665,7 +623,7 @@ static PyObject *Dlg_StopAlert(_self, _args)
&filterProc)) &filterProc))
return NULL; return NULL;
_rv = StopAlert(alertID, _rv = StopAlert(alertID,
Dlg_PassFilterProc(filterProc)); NewModalFilterProc(Dlg_PassFilterProc(filterProc)));
_res = Py_BuildValue("h", _res = Py_BuildValue("h",
_rv); _rv);
return _res; return _res;
...@@ -684,7 +642,7 @@ static PyObject *Dlg_NoteAlert(_self, _args) ...@@ -684,7 +642,7 @@ static PyObject *Dlg_NoteAlert(_self, _args)
&filterProc)) &filterProc))
return NULL; return NULL;
_rv = NoteAlert(alertID, _rv = NoteAlert(alertID,
Dlg_PassFilterProc(filterProc)); NewModalFilterProc(Dlg_PassFilterProc(filterProc)));
_res = Py_BuildValue("h", _res = Py_BuildValue("h",
_rv); _rv);
return _res; return _res;
...@@ -703,42 +661,12 @@ static PyObject *Dlg_CautionAlert(_self, _args) ...@@ -703,42 +661,12 @@ static PyObject *Dlg_CautionAlert(_self, _args)
&filterProc)) &filterProc))
return NULL; return NULL;
_rv = CautionAlert(alertID, _rv = CautionAlert(alertID,
Dlg_PassFilterProc(filterProc)); NewModalFilterProc(Dlg_PassFilterProc(filterProc)));
_res = Py_BuildValue("h", _res = Py_BuildValue("h",
_rv); _rv);
return _res; return _res;
} }
static PyObject *Dlg_CouldAlert(_self, _args)
PyObject *_self;
PyObject *_args;
{
PyObject *_res = NULL;
short alertID;
if (!PyArg_ParseTuple(_args, "h",
&alertID))
return NULL;
CouldAlert(alertID);
Py_INCREF(Py_None);
_res = Py_None;
return _res;
}
static PyObject *Dlg_FreeAlert(_self, _args)
PyObject *_self;
PyObject *_args;
{
PyObject *_res = NULL;
short alertID;
if (!PyArg_ParseTuple(_args, "h",
&alertID))
return NULL;
FreeAlert(alertID);
Py_INCREF(Py_None);
_res = Py_None;
return _res;
}
static PyObject *Dlg_GetIText(_self, _args) static PyObject *Dlg_GetIText(_self, _args)
PyObject *_self; PyObject *_self;
PyObject *_args; PyObject *_args;
...@@ -845,10 +773,6 @@ static PyMethodDef Dlg_methods[] = { ...@@ -845,10 +773,6 @@ static PyMethodDef Dlg_methods[] = {
"(Rect boundsRect, Str255 title, Boolean visible, short procID, WindowPtr behind, Boolean goAwayFlag, long refCon, Handle itmLstHndl) -> (DialogPtr _rv)"}, "(Rect boundsRect, Str255 title, Boolean visible, short procID, WindowPtr behind, Boolean goAwayFlag, long refCon, Handle itmLstHndl) -> (DialogPtr _rv)"},
{"GetNewDialog", (PyCFunction)Dlg_GetNewDialog, 1, {"GetNewDialog", (PyCFunction)Dlg_GetNewDialog, 1,
"(short dialogID, WindowPtr behind) -> (DialogPtr _rv)"}, "(short dialogID, WindowPtr behind) -> (DialogPtr _rv)"},
{"CouldDialog", (PyCFunction)Dlg_CouldDialog, 1,
"(short dialogID) -> None"},
{"FreeDialog", (PyCFunction)Dlg_FreeDialog, 1,
"(short dialogID) -> None"},
{"ParamText", (PyCFunction)Dlg_ParamText, 1, {"ParamText", (PyCFunction)Dlg_ParamText, 1,
"(Str255 param0, Str255 param1, Str255 param2, Str255 param3) -> None"}, "(Str255 param0, Str255 param1, Str255 param2, Str255 param3) -> None"},
{"ModalDialog", (PyCFunction)Dlg_ModalDialog, 1, {"ModalDialog", (PyCFunction)Dlg_ModalDialog, 1,
...@@ -865,10 +789,6 @@ static PyMethodDef Dlg_methods[] = { ...@@ -865,10 +789,6 @@ static PyMethodDef Dlg_methods[] = {
"(short alertID, PyObject* filterProc) -> (short _rv)"}, "(short alertID, PyObject* filterProc) -> (short _rv)"},
{"CautionAlert", (PyCFunction)Dlg_CautionAlert, 1, {"CautionAlert", (PyCFunction)Dlg_CautionAlert, 1,
"(short alertID, PyObject* filterProc) -> (short _rv)"}, "(short alertID, PyObject* filterProc) -> (short _rv)"},
{"CouldAlert", (PyCFunction)Dlg_CouldAlert, 1,
"(short alertID) -> None"},
{"FreeAlert", (PyCFunction)Dlg_FreeAlert, 1,
"(short alertID) -> None"},
{"GetIText", (PyCFunction)Dlg_GetIText, 1, {"GetIText", (PyCFunction)Dlg_GetIText, 1,
"(Handle item) -> (Str255 text)"}, "(Handle item) -> (Str255 text)"},
{"SetIText", (PyCFunction)Dlg_SetIText, 1, {"SetIText", (PyCFunction)Dlg_SetIText, 1,
......
...@@ -37,6 +37,11 @@ class MyScanner(Scanner): ...@@ -37,6 +37,11 @@ class MyScanner(Scanner):
'CloseDialog', 'CloseDialog',
'DisposDialog', 'DisposDialog',
'DisposeDialog', 'DisposeDialog',
'UpdtDialog',
'CouldAlert',
'FreeAlert',
'CouldDialog',
'FreeDialog',
] ]
def makeblacklisttypes(self): def makeblacklisttypes(self):
......
...@@ -10,7 +10,7 @@ from macsupport import * ...@@ -10,7 +10,7 @@ from macsupport import *
DialogPtr = OpaqueByValueType("DialogPtr", "DlgObj") DialogPtr = OpaqueByValueType("DialogPtr", "DlgObj")
ModalFilterProcPtr = InputOnlyType("PyObject*", "O") ModalFilterProcPtr = InputOnlyType("PyObject*", "O")
ModalFilterProcPtr.passInput = lambda name: "Dlg_PassFilterProc(%s)" % name ModalFilterProcPtr.passInput = lambda name: "NewModalFilterProc(Dlg_PassFilterProc(%s))" % name
RgnHandle = FakeType("_self->ob_itself->visRgn") # XXX RgnHandle = FakeType("_self->ob_itself->visRgn") # XXX
...@@ -19,6 +19,10 @@ DITLMethod = Type("DITLMethod", "h") ...@@ -19,6 +19,10 @@ DITLMethod = Type("DITLMethod", "h")
includestuff = includestuff + """ includestuff = includestuff + """
#include <Dialogs.h> #include <Dialogs.h>
#ifndef HAVE_UNIVERSAL_HEADERS
#define NewModalFilterProc(x) (x)
#endif
#define resNotFound -192 /* Can't include <Errors.h> because of Python's "errors.h" */ #define resNotFound -192 /* Can't include <Errors.h> because of Python's "errors.h" */
/* XXX Shouldn't this be a stack? */ /* XXX Shouldn't this be a stack? */
...@@ -36,7 +40,7 @@ static pascal Boolean Dlg_UnivFilterProc(DialogPtr dialog, ...@@ -36,7 +40,7 @@ static pascal Boolean Dlg_UnivFilterProc(DialogPtr dialog,
if (callback == NULL) if (callback == NULL)
return 0; /* Default behavior */ return 0; /* Default behavior */
Dlg_FilterProc_callback = NULL; /* We'll restore it when call successful */ Dlg_FilterProc_callback = NULL; /* We'll restore it when call successful */
args = Py_BuildValue("O&s#", DlgObj_New, dialog, event, sizeof(EventRecord)); args = Py_BuildValue("O&s#", DlgObj_New, dialog, event, (int)sizeof(EventRecord));
if (args == NULL) if (args == NULL)
res = NULL; res = NULL;
else { else {
......
...@@ -30,9 +30,11 @@ extern int MenuObj_Convert(PyObject *, MenuHandle *); ...@@ -30,9 +30,11 @@ extern int MenuObj_Convert(PyObject *, MenuHandle *);
extern PyObject *CtlObj_New(ControlHandle); extern PyObject *CtlObj_New(ControlHandle);
extern int CtlObj_Convert(PyObject *, ControlHandle *); extern int CtlObj_Convert(PyObject *, ControlHandle *);
extern PyObject *WinObj_WhichWindow(WindowPtr);
#include <Sound.h> #include <Sound.h>
#ifndef __MWERKS__ #ifndef HAVE_UNIVERSAL_HEADERS
#define SndCallBackUPP ProcPtr #define SndCallBackUPP ProcPtr
#define NewSndCallBackProc(x) (x) #define NewSndCallBackProc(x) (x)
#define SndListHandle Handle #define SndListHandle Handle
...@@ -100,7 +102,7 @@ typedef struct SndChannelObject { ...@@ -100,7 +102,7 @@ typedef struct SndChannelObject {
} SndChannelObject; } SndChannelObject;
static PyObject *SndCh_New(itself) static PyObject *SndCh_New(itself)
const SndChannelPtr itself; SndChannelPtr itself;
{ {
SndChannelObject *it; SndChannelObject *it;
it = PyObject_NEW(SndChannelObject, &SndChannel_Type); it = PyObject_NEW(SndChannelObject, &SndChannel_Type);
...@@ -262,7 +264,6 @@ static PyObject *SndCh_SndChannelStatus(_self, _args) ...@@ -262,7 +264,6 @@ static PyObject *SndCh_SndChannelStatus(_self, _args)
OSErr _err; OSErr _err;
short theLength; short theLength;
SCStatus theStatus__out__; SCStatus theStatus__out__;
int theStatus__len__;
if (!PyArg_ParseTuple(_args, "h", if (!PyArg_ParseTuple(_args, "h",
&theLength)) &theLength))
return NULL; return NULL;
...@@ -271,7 +272,7 @@ static PyObject *SndCh_SndChannelStatus(_self, _args) ...@@ -271,7 +272,7 @@ static PyObject *SndCh_SndChannelStatus(_self, _args)
&theStatus__out__); &theStatus__out__);
if (_err != noErr) return PyMac_Error(_err); if (_err != noErr) return PyMac_Error(_err);
_res = Py_BuildValue("s#", _res = Py_BuildValue("s#",
(char *)&theStatus__out__, sizeof(SCStatus)); (char *)&theStatus__out__, (int)sizeof(SCStatus));
theStatus__error__: ; theStatus__error__: ;
return _res; return _res;
} }
...@@ -305,7 +306,7 @@ static PyObject *SndCh_getattr(self, name) ...@@ -305,7 +306,7 @@ static PyObject *SndCh_getattr(self, name)
#define SndCh_setattr NULL #define SndCh_setattr NULL
static PyTypeObject SndChannel_Type = { staticforward PyTypeObject SndChannel_Type = {
PyObject_HEAD_INIT(&PyType_Type) PyObject_HEAD_INIT(&PyType_Type)
0, /*ob_size*/ 0, /*ob_size*/
"SndChannel", /*tp_name*/ "SndChannel", /*tp_name*/
...@@ -344,7 +345,7 @@ static PyObject *Snd_SndNewChannel(_self, _args) ...@@ -344,7 +345,7 @@ static PyObject *Snd_SndNewChannel(_self, _args)
_err = SndNewChannel(&chan, _err = SndNewChannel(&chan,
synth, synth,
init, init,
(SndCallBackProcPtr)&SndCh_UserRoutine); NewSndCallBackProc(SndCh_UserRoutine));
if (_err != noErr) return PyMac_Error(_err); if (_err != noErr) return PyMac_Error(_err);
_res = Py_BuildValue("O&", _res = Py_BuildValue("O&",
SndCh_New, chan); SndCh_New, chan);
...@@ -378,35 +379,6 @@ static PyObject *Snd_SndControl(_self, _args) ...@@ -378,35 +379,6 @@ static PyObject *Snd_SndControl(_self, _args)
return _res; return _res;
} }
static PyObject *Snd_SetSoundVol(_self, _args)
PyObject *_self;
PyObject *_args;
{
PyObject *_res = NULL;
short level;
if (!PyArg_ParseTuple(_args, "h",
&level))
return NULL;
SetSoundVol(level);
Py_INCREF(Py_None);
_res = Py_None;
return _res;
}
static PyObject *Snd_GetSoundVol(_self, _args)
PyObject *_self;
PyObject *_args;
{
PyObject *_res = NULL;
short level;
if (!PyArg_ParseTuple(_args, ""))
return NULL;
GetSoundVol(&level);
_res = Py_BuildValue("h",
level);
return _res;
}
static PyObject *Snd_SndSoundManagerVersion(_self, _args) static PyObject *Snd_SndSoundManagerVersion(_self, _args)
PyObject *_self; PyObject *_self;
PyObject *_args; PyObject *_args;
...@@ -429,7 +401,6 @@ static PyObject *Snd_SndManagerStatus(_self, _args) ...@@ -429,7 +401,6 @@ static PyObject *Snd_SndManagerStatus(_self, _args)
OSErr _err; OSErr _err;
short theLength; short theLength;
SMStatus theStatus__out__; SMStatus theStatus__out__;
int theStatus__len__;
if (!PyArg_ParseTuple(_args, "h", if (!PyArg_ParseTuple(_args, "h",
&theLength)) &theLength))
return NULL; return NULL;
...@@ -437,7 +408,7 @@ static PyObject *Snd_SndManagerStatus(_self, _args) ...@@ -437,7 +408,7 @@ static PyObject *Snd_SndManagerStatus(_self, _args)
&theStatus__out__); &theStatus__out__);
if (_err != noErr) return PyMac_Error(_err); if (_err != noErr) return PyMac_Error(_err);
_res = Py_BuildValue("s#", _res = Py_BuildValue("s#",
(char *)&theStatus__out__, sizeof(SMStatus)); (char *)&theStatus__out__, (int)sizeof(SMStatus));
theStatus__error__: ; theStatus__error__: ;
return _res; return _res;
} }
...@@ -495,34 +466,38 @@ static PyObject *Snd_Comp3to1(_self, _args) ...@@ -495,34 +466,38 @@ static PyObject *Snd_Comp3to1(_self, _args)
char *buffer__in__; char *buffer__in__;
char *buffer__out__; char *buffer__out__;
long buffer__len__; long buffer__len__;
int buffer__in_len__;
char *state__in__; char *state__in__;
char state__out__[128]; char state__out__[128];
int state__len__; int state__len__;
int state__in_len__;
unsigned long numChannels; unsigned long numChannels;
unsigned long whichChannel; unsigned long whichChannel;
if (!PyArg_ParseTuple(_args, "s#s#ll", if (!PyArg_ParseTuple(_args, "s#s#ll",
&buffer__in__, &buffer__len__, &buffer__in__, &buffer__in_len__,
&state__in__, &state__len__, &state__in__, &state__in_len__,
&numChannels, &numChannels,
&whichChannel)) &whichChannel))
return NULL; return NULL;
if ((buffer__out__ = malloc(buffer__len__)) == NULL) if ((buffer__out__ = malloc(buffer__in_len__)) == NULL)
{ {
PyErr_NoMemory(); PyErr_NoMemory();
goto buffer__error__; goto buffer__error__;
} }
if (state__len__ != 128) buffer__len__ = buffer__in_len__;
if (state__in_len__ != 128)
{ {
PyErr_SetString(PyExc_TypeError, "buffer length should be 128"); PyErr_SetString(PyExc_TypeError, "buffer length should be 128");
goto state__error__; goto state__error__;
} }
Comp3to1(buffer__in__, buffer__out__, buffer__len__, state__len__ = state__in_len__;
Comp3to1(buffer__in__, buffer__out__, (long)buffer__len__,
state__in__, state__out__, state__in__, state__out__,
numChannels, numChannels,
whichChannel); whichChannel);
_res = Py_BuildValue("s#s#", _res = Py_BuildValue("s#s#",
buffer__out__, buffer__len__, buffer__out__, (int)buffer__len__,
state__out__, 128); state__out__, (int)128);
state__error__: ; state__error__: ;
free(buffer__out__); free(buffer__out__);
buffer__error__: ; buffer__error__: ;
...@@ -537,34 +512,38 @@ static PyObject *Snd_Exp1to3(_self, _args) ...@@ -537,34 +512,38 @@ static PyObject *Snd_Exp1to3(_self, _args)
char *buffer__in__; char *buffer__in__;
char *buffer__out__; char *buffer__out__;
long buffer__len__; long buffer__len__;
int buffer__in_len__;
char *state__in__; char *state__in__;
char state__out__[128]; char state__out__[128];
int state__len__; int state__len__;
int state__in_len__;
unsigned long numChannels; unsigned long numChannels;
unsigned long whichChannel; unsigned long whichChannel;
if (!PyArg_ParseTuple(_args, "s#s#ll", if (!PyArg_ParseTuple(_args, "s#s#ll",
&buffer__in__, &buffer__len__, &buffer__in__, &buffer__in_len__,
&state__in__, &state__len__, &state__in__, &state__in_len__,
&numChannels, &numChannels,
&whichChannel)) &whichChannel))
return NULL; return NULL;
if ((buffer__out__ = malloc(buffer__len__)) == NULL) if ((buffer__out__ = malloc(buffer__in_len__)) == NULL)
{ {
PyErr_NoMemory(); PyErr_NoMemory();
goto buffer__error__; goto buffer__error__;
} }
if (state__len__ != 128) buffer__len__ = buffer__in_len__;
if (state__in_len__ != 128)
{ {
PyErr_SetString(PyExc_TypeError, "buffer length should be 128"); PyErr_SetString(PyExc_TypeError, "buffer length should be 128");
goto state__error__; goto state__error__;
} }
Exp1to3(buffer__in__, buffer__out__, buffer__len__, state__len__ = state__in_len__;
Exp1to3(buffer__in__, buffer__out__, (long)buffer__len__,
state__in__, state__out__, state__in__, state__out__,
numChannels, numChannels,
whichChannel); whichChannel);
_res = Py_BuildValue("s#s#", _res = Py_BuildValue("s#s#",
buffer__out__, buffer__len__, buffer__out__, (int)buffer__len__,
state__out__, 128); state__out__, (int)128);
state__error__: ; state__error__: ;
free(buffer__out__); free(buffer__out__);
buffer__error__: ; buffer__error__: ;
...@@ -579,34 +558,38 @@ static PyObject *Snd_Comp6to1(_self, _args) ...@@ -579,34 +558,38 @@ static PyObject *Snd_Comp6to1(_self, _args)
char *buffer__in__; char *buffer__in__;
char *buffer__out__; char *buffer__out__;
long buffer__len__; long buffer__len__;
int buffer__in_len__;
char *state__in__; char *state__in__;
char state__out__[128]; char state__out__[128];
int state__len__; int state__len__;
int state__in_len__;
unsigned long numChannels; unsigned long numChannels;
unsigned long whichChannel; unsigned long whichChannel;
if (!PyArg_ParseTuple(_args, "s#s#ll", if (!PyArg_ParseTuple(_args, "s#s#ll",
&buffer__in__, &buffer__len__, &buffer__in__, &buffer__in_len__,
&state__in__, &state__len__, &state__in__, &state__in_len__,
&numChannels, &numChannels,
&whichChannel)) &whichChannel))
return NULL; return NULL;
if ((buffer__out__ = malloc(buffer__len__)) == NULL) if ((buffer__out__ = malloc(buffer__in_len__)) == NULL)
{ {
PyErr_NoMemory(); PyErr_NoMemory();
goto buffer__error__; goto buffer__error__;
} }
if (state__len__ != 128) buffer__len__ = buffer__in_len__;
if (state__in_len__ != 128)
{ {
PyErr_SetString(PyExc_TypeError, "buffer length should be 128"); PyErr_SetString(PyExc_TypeError, "buffer length should be 128");
goto state__error__; goto state__error__;
} }
Comp6to1(buffer__in__, buffer__out__, buffer__len__, state__len__ = state__in_len__;
Comp6to1(buffer__in__, buffer__out__, (long)buffer__len__,
state__in__, state__out__, state__in__, state__out__,
numChannels, numChannels,
whichChannel); whichChannel);
_res = Py_BuildValue("s#s#", _res = Py_BuildValue("s#s#",
buffer__out__, buffer__len__, buffer__out__, (int)buffer__len__,
state__out__, 128); state__out__, (int)128);
state__error__: ; state__error__: ;
free(buffer__out__); free(buffer__out__);
buffer__error__: ; buffer__error__: ;
...@@ -621,34 +604,38 @@ static PyObject *Snd_Exp1to6(_self, _args) ...@@ -621,34 +604,38 @@ static PyObject *Snd_Exp1to6(_self, _args)
char *buffer__in__; char *buffer__in__;
char *buffer__out__; char *buffer__out__;
long buffer__len__; long buffer__len__;
int buffer__in_len__;
char *state__in__; char *state__in__;
char state__out__[128]; char state__out__[128];
int state__len__; int state__len__;
int state__in_len__;
unsigned long numChannels; unsigned long numChannels;
unsigned long whichChannel; unsigned long whichChannel;
if (!PyArg_ParseTuple(_args, "s#s#ll", if (!PyArg_ParseTuple(_args, "s#s#ll",
&buffer__in__, &buffer__len__, &buffer__in__, &buffer__in_len__,
&state__in__, &state__len__, &state__in__, &state__in_len__,
&numChannels, &numChannels,
&whichChannel)) &whichChannel))
return NULL; return NULL;
if ((buffer__out__ = malloc(buffer__len__)) == NULL) if ((buffer__out__ = malloc(buffer__in_len__)) == NULL)
{ {
PyErr_NoMemory(); PyErr_NoMemory();
goto buffer__error__; goto buffer__error__;
} }
if (state__len__ != 128) buffer__len__ = buffer__in_len__;
if (state__in_len__ != 128)
{ {
PyErr_SetString(PyExc_TypeError, "buffer length should be 128"); PyErr_SetString(PyExc_TypeError, "buffer length should be 128");
goto state__error__; goto state__error__;
} }
Exp1to6(buffer__in__, buffer__out__, buffer__len__, state__len__ = state__in_len__;
Exp1to6(buffer__in__, buffer__out__, (long)buffer__len__,
state__in__, state__out__, state__in__, state__out__,
numChannels, numChannels,
whichChannel); whichChannel);
_res = Py_BuildValue("s#s#", _res = Py_BuildValue("s#s#",
buffer__out__, buffer__len__, buffer__out__, (int)buffer__len__,
state__out__, 128); state__out__, (int)128);
state__error__: ; state__error__: ;
free(buffer__out__); free(buffer__out__);
buffer__error__: ; buffer__error__: ;
...@@ -660,10 +647,6 @@ static PyMethodDef Snd_methods[] = { ...@@ -660,10 +647,6 @@ static PyMethodDef Snd_methods[] = {
"(short synth, long init, PyObject* userRoutine) -> (SndChannelPtr chan)"}, "(short synth, long init, PyObject* userRoutine) -> (SndChannelPtr chan)"},
{"SndControl", (PyCFunction)Snd_SndControl, 1, {"SndControl", (PyCFunction)Snd_SndControl, 1,
"(short id) -> (SndCommand cmd)"}, "(short id) -> (SndCommand cmd)"},
{"SetSoundVol", (PyCFunction)Snd_SetSoundVol, 1,
"(short level) -> None"},
{"GetSoundVol", (PyCFunction)Snd_GetSoundVol, 1,
"() -> (short level)"},
{"SndSoundManagerVersion", (PyCFunction)Snd_SndSoundManagerVersion, 1, {"SndSoundManagerVersion", (PyCFunction)Snd_SndSoundManagerVersion, 1,
"() -> (NumVersion _rv)"}, "() -> (NumVersion _rv)"},
{"SndManagerStatus", (PyCFunction)Snd_SndManagerStatus, 1, {"SndManagerStatus", (PyCFunction)Snd_SndManagerStatus, 1,
......
...@@ -41,6 +41,8 @@ class SoundScanner(Scanner): ...@@ -41,6 +41,8 @@ class SoundScanner(Scanner):
def makeblacklisttypes(self): def makeblacklisttypes(self):
return [ return [
"GetSoundVol",
"SetSoundVol",
] ]
def makerepairinstructions(self): def makerepairinstructions(self):
......
...@@ -19,7 +19,7 @@ class SndMethod(SndMixIn, OSErrMethodGenerator): pass ...@@ -19,7 +19,7 @@ class SndMethod(SndMixIn, OSErrMethodGenerator): pass
includestuff = includestuff + """ includestuff = includestuff + """
#include <Sound.h> #include <Sound.h>
#ifndef __MWERKS__ #ifndef HAVE_UNIVERSAL_HEADERS
#define SndCallBackUPP ProcPtr #define SndCallBackUPP ProcPtr
#define NewSndCallBackProc(x) (x) #define NewSndCallBackProc(x) (x)
#define SndListHandle Handle #define SndListHandle Handle
...@@ -50,13 +50,13 @@ class SndCallBackType(InputOnlyType): ...@@ -50,13 +50,13 @@ class SndCallBackType(InputOnlyType):
def __init__(self): def __init__(self):
Type.__init__(self, 'PyObject*', 'O') Type.__init__(self, 'PyObject*', 'O')
def getargsCheck(self, name): def getargsCheck(self, name):
Output("if (%s != Py_None && !callable(%s))", name, name) Output("if (%s != Py_None && !PyCallable_Check(%s))", name, name)
OutLbrace() OutLbrace()
Output('PyErr_SetString(PyExc_TypeError, "callback must be callable");') Output('PyErr_SetString(PyExc_TypeError, "callback must be callable");')
Output("goto %s__error__;", name) Output("goto %s__error__;", name)
OutRbrace() OutRbrace()
def passInput(self, name): def passInput(self, name):
return "(SndCallBackProcPtr)&SndCh_UserRoutine" return "NewSndCallBackProc(SndCh_UserRoutine)"
def cleanup(self, name): def cleanup(self, name):
# XXX This knows it is executing inside the SndNewChannel wrapper # XXX This knows it is executing inside the SndNewChannel wrapper
Output("if (_res != NULL && %s != Py_None)", name) Output("if (_res != NULL && %s != Py_None)", name)
......
...@@ -36,12 +36,10 @@ extern PyObject *WinObj_WhichWindow(WindowPtr); ...@@ -36,12 +36,10 @@ extern PyObject *WinObj_WhichWindow(WindowPtr);
#define resNotFound -192 /* Can't include <Errors.h> because of Python's "errors.h" */ #define resNotFound -192 /* Can't include <Errors.h> because of Python's "errors.h" */
#ifdef __MWERKS__ #ifdef HAVE_UNIVERSAL_HEADERS
#define WindowPeek WindowPtr #define WindowPeek WindowPtr
#endif #endif
extern PyObject *WinObj_WhichWindow(WindowPtr w); /* Forward */
static PyObject *Win_Error; static PyObject *Win_Error;
/* ----------------------- Object type Window ----------------------- */ /* ----------------------- Object type Window ----------------------- */
...@@ -56,7 +54,7 @@ typedef struct WindowObject { ...@@ -56,7 +54,7 @@ typedef struct WindowObject {
} WindowObject; } WindowObject;
PyObject *WinObj_New(itself) PyObject *WinObj_New(itself)
const WindowPtr itself; WindowPtr itself;
{ {
WindowObject *it; WindowObject *it;
if (itself == NULL) return PyMac_Error(resNotFound); if (itself == NULL) return PyMac_Error(resNotFound);
...@@ -844,7 +842,10 @@ WinObj_WhichWindow(w) ...@@ -844,7 +842,10 @@ WinObj_WhichWindow(w)
/* XXX What if we find a stdwin window or a window belonging /* XXX What if we find a stdwin window or a window belonging
to some other package? */ to some other package? */
it = (PyObject *) GetWRefCon(w); if (w == NULL)
it = NULL;
else
it = (PyObject *) GetWRefCon(w);
if (it == NULL || ((WindowObject *)it)->ob_itself != w) if (it == NULL || ((WindowObject *)it)->ob_itself != w)
it = Py_None; it = Py_None;
Py_INCREF(it); Py_INCREF(it);
......
...@@ -32,7 +32,7 @@ includestuff = includestuff + """ ...@@ -32,7 +32,7 @@ includestuff = includestuff + """
#define resNotFound -192 /* Can't include <Errors.h> because of Python's "errors.h" */ #define resNotFound -192 /* Can't include <Errors.h> because of Python's "errors.h" */
#ifdef __MWERKS__ #ifdef HAVE_UNIVERSAL_HEADERS
#define WindowPeek WindowPtr #define WindowPeek WindowPtr
#endif #endif
""" """
......
...@@ -76,7 +76,7 @@ class ObjectDefinition(GeneratorGroup): ...@@ -76,7 +76,7 @@ class ObjectDefinition(GeneratorGroup):
Output() Output()
Output("%sPyObject *%s_New(itself)", self.static, self.prefix) Output("%sPyObject *%s_New(itself)", self.static, self.prefix)
IndentLevel() IndentLevel()
Output("const %s %sitself;", self.itselftype, self.argref) Output("%s %sitself;", self.itselftype, self.argref)
DedentLevel() DedentLevel()
OutLbrace() OutLbrace()
Output("%s *it;", self.objecttype) Output("%s *it;", self.objecttype)
...@@ -154,8 +154,9 @@ class ObjectDefinition(GeneratorGroup): ...@@ -154,8 +154,9 @@ class ObjectDefinition(GeneratorGroup):
Output("#define %s_setattr NULL", self.prefix) Output("#define %s_setattr NULL", self.prefix)
def outputTypeObject(self): def outputTypeObject(self):
sf = self.static and "staticforward "
Output() Output()
Output("%sPyTypeObject %s = {", self.static, self.typename) Output("%sPyTypeObject %s = {", sf, self.typename)
IndentLevel() IndentLevel()
Output("PyObject_HEAD_INIT(&PyType_Type)") Output("PyObject_HEAD_INIT(&PyType_Type)")
Output("0, /*ob_size*/") Output("0, /*ob_size*/")
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment