]> git.ipfire.org Git - thirdparty/Python/cpython.git/commitdiff
Backport of 1.7:
authorJack Jansen <jack.jansen@cwi.nl>
Wed, 27 Feb 2002 23:18:00 +0000 (23:18 +0000)
committerJack Jansen <jack.jansen@cwi.nl>
Wed, 27 Feb 2002 23:18:00 +0000 (23:18 +0000)
Added SndRecord and (classic only) SndRecordToFile.

Mac/Modules/snd/_Sndmodule.c
Mac/Modules/snd/sndscan.py
Mac/Modules/snd/sndsupport.py

index dc2f5da258ba69b78c2b9e95c4b4c1667bc923bc..69c8bfeabba097aa1b761c5899e6bdab39ce6ddc 100644 (file)
@@ -961,6 +961,52 @@ static PyObject *Snd_SPBVersion(PyObject *_self, PyObject *_args)
        return _res;
 }
 
+static PyObject *Snd_SndRecord(PyObject *_self, PyObject *_args)
+{
+       PyObject *_res = NULL;
+       OSErr _err;
+       Point corner;
+       OSType quality;
+       SndListHandle sndHandle;
+       if (!PyArg_ParseTuple(_args, "O&O&",
+                             PyMac_GetPoint, &corner,
+                             PyMac_GetOSType, &quality))
+               return NULL;
+       _err = SndRecord((ModalFilterUPP)0,
+                        corner,
+                        quality,
+                        &sndHandle);
+       if (_err != noErr) return PyMac_Error(_err);
+       _res = Py_BuildValue("O&",
+                            ResObj_New, sndHandle);
+       return _res;
+}
+
+#if !TARGET_API_MAC_CARBON
+
+static PyObject *Snd_SndRecordToFile(PyObject *_self, PyObject *_args)
+{
+       PyObject *_res = NULL;
+       OSErr _err;
+       Point corner;
+       OSType quality;
+       short fRefNum;
+       if (!PyArg_ParseTuple(_args, "O&O&h",
+                             PyMac_GetPoint, &corner,
+                             PyMac_GetOSType, &quality,
+                             &fRefNum))
+               return NULL;
+       _err = SndRecordToFile((ModalFilterUPP)0,
+                              corner,
+                              quality,
+                              fRefNum);
+       if (_err != noErr) return PyMac_Error(_err);
+       Py_INCREF(Py_None);
+       _res = Py_None;
+       return _res;
+}
+#endif
+
 static PyObject *Snd_SPBSignInDevice(PyObject *_self, PyObject *_args)
 {
        PyObject *_res = NULL;
@@ -1309,6 +1355,13 @@ static PyMethodDef Snd_methods[] = {
         "(OSType compressionType) -> (Str255 compressionName)"},
        {"SPBVersion", (PyCFunction)Snd_SPBVersion, 1,
         "() -> (NumVersion _rv)"},
+       {"SndRecord", (PyCFunction)Snd_SndRecord, 1,
+        "(Point corner, OSType quality) -> (SndListHandle sndHandle)"},
+
+#if !TARGET_API_MAC_CARBON
+       {"SndRecordToFile", (PyCFunction)Snd_SndRecordToFile, 1,
+        "(Point corner, OSType quality, short fRefNum) -> None"},
+#endif
        {"SPBSignInDevice", (PyCFunction)Snd_SPBSignInDevice, 1,
         "(short deviceRefNum, Str255 deviceName) -> None"},
        {"SPBSignOutDevice", (PyCFunction)Snd_SPBSignOutDevice, 1,
index 1873c190dedbd1ecb91fc86597a07f04ab6bab05..560e2fd0eb88c4f044cdda7b9c4cc6f77ae88031 100644 (file)
@@ -64,6 +64,7 @@ class SoundScanner(Scanner):
                                'SndStopFilePlay',
                                'SndStartFilePlay',
                                'SndPauseFilePlay',
+                               'SndRecordToFile',
                        ])]
 
        def makeblacklisttypes(self):
@@ -78,7 +79,6 @@ class SoundScanner(Scanner):
                        "SoundComponentData",
                        "SoundComponentData_ptr",
                        "SoundConverter",
-                       "ModalFilterUPP",
                        ]
 
        def makerepairinstructions(self):
index 91f3bb6e6cc8486a36fbef6cf399cc66172dd284..47c17cebe081c0f3a95818f575187dadcf2ebf1d 100644 (file)
@@ -45,6 +45,7 @@ SndCommand = OpaqueType('SndCommand', 'SndCmd')
 SndCommand_ptr = OpaqueType('SndCommand', 'SndCmd')
 SndListHandle = OpaqueByValueType("SndListHandle", "ResObj")
 SPBPtr = OpaqueByValueType("SPBPtr", "SPBObj")
+ModalFilterUPP = FakeType("(ModalFilterUPP)0")
 
 #
 # NOTE: the following is pretty dangerous. For void pointers we pass buffer addresses