summaryrefslogtreecommitdiffstats
path: root/Mac/Modules/snd/Sndihooks.c
diff options
context:
space:
mode:
Diffstat (limited to 'Mac/Modules/snd/Sndihooks.c')
-rw-r--r--Mac/Modules/snd/Sndihooks.c513
1 files changed, 0 insertions, 513 deletions
diff --git a/Mac/Modules/snd/Sndihooks.c b/Mac/Modules/snd/Sndihooks.c
deleted file mode 100644
index a4aa609..0000000
--- a/Mac/Modules/snd/Sndihooks.c
+++ /dev/null
@@ -1,513 +0,0 @@
-/***********************************************************
-Copyright 1991-1995 by Stichting Mathematisch Centrum, Amsterdam,
-The Netherlands.
-
- All Rights Reserved
-
-Permission to use, copy, modify, and distribute this software and its
-documentation for any purpose and without fee is hereby granted,
-provided that the above copyright notice appear in all copies and that
-both that copyright notice and this permission notice appear in
-supporting documentation, and that the names of Stichting Mathematisch
-Centrum or CWI or Corporation for National Research Initiatives or
-CNRI not be used in advertising or publicity pertaining to
-distribution of the software without specific, written prior
-permission.
-
-While CWI is the initial source for this software, a modified version
-is made available by the Corporation for National Research Initiatives
-(CNRI) at the Internet address ftp://ftp.python.org.
-
-STICHTING MATHEMATISCH CENTRUM AND CNRI DISCLAIM ALL WARRANTIES WITH
-REGARD TO THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF
-MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL STICHTING MATHEMATISCH
-CENTRUM OR CNRI BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL
-DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR
-PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
-TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
-PERFORMANCE OF THIS SOFTWARE.
-
-******************************************************************/
-
-#include "Python.h"
-#include "macglue.h"
-#include "pymactoolbox.h"
-#include <Sound.h>
-
-#pragma options align=mac68k
-struct SampleRateAvailable_arg {
- short numrates;
- Handle rates;
-};
-
-struct SampleSizeAvailable_arg {
- short numsizes;
- Handle sizes;
-};
-
-#pragma options align=reset
-
-static PyObject *ErrorObject;
-
-
-/* Convert Python object to unsigned Fixed */
-static int
-PyMac_GetUFixed(PyObject *v, Fixed *f)
-{
- double d;
- unsigned long uns;
-
- if( !PyArg_Parse(v, "d", &d))
- return 0;
- uns = (unsigned long)(d * 0x10000);
- *f = (Fixed)uns;
- return 1;
-}
-
-/* Convert a Point to a Python object */
-static PyObject *
-PyMac_BuildUFixed(Fixed f)
-{
- double d;
- unsigned long funs;
-
- funs = (unsigned long)f;
-
- d = funs;
- d = d / 0x10000;
- return Py_BuildValue("d", d);
-}
-
-
-/* ----------------------------------------------------- */
-
-static char sndih_getChannelAvailable__doc__[] =
-""
-;
-
-static PyObject *
-sndih_getChannelAvailable(self, args)
- PyObject *self; /* Not used */
- PyObject *args;
-{
- long inRefNum;
- short nchannel;
- OSErr err;
-
- if (!PyArg_ParseTuple(args, "l", &inRefNum))
- return NULL;
-
- if( (err=SPBGetDeviceInfo(inRefNum, siChannelAvailable, (Ptr)&nchannel)) != noErr )
- return PyMac_Error(err);
- return Py_BuildValue("h", nchannel);
-}
-
-static char sndih_getNumberChannels__doc__[] =
-""
-;
-
-static PyObject *
-sndih_getNumberChannels(self, args)
- PyObject *self; /* Not used */
- PyObject *args;
-{
- long inRefNum;
- short nchannel;
- OSErr err;
-
- if (!PyArg_ParseTuple(args, "l", &inRefNum))
- return NULL;
-
- if( (err=SPBGetDeviceInfo(inRefNum, siNumberChannels, (Ptr)&nchannel)) != noErr )
- return PyMac_Error(err);
- return Py_BuildValue("h", nchannel);
-}
-
-static char sndih_setNumberChannels__doc__[] =
-""
-;
-
-static PyObject *
-sndih_setNumberChannels(self, args)
- PyObject *self; /* Not used */
- PyObject *args;
-{
- long inRefNum;
- short nchannel;
- OSErr err;
-
- if (!PyArg_ParseTuple(args, "lh", &inRefNum, &nchannel))
- return NULL;
-
- if( (err=SPBSetDeviceInfo(inRefNum, siNumberChannels, (Ptr)&nchannel)) != noErr )
- return PyMac_Error(err);
- Py_INCREF(Py_None);
- return Py_None;
-}
-
-static char sndih_getContinuous__doc__[] =
-""
-;
-
-static PyObject *
-sndih_getContinuous(self, args)
- PyObject *self; /* Not used */
- PyObject *args;
-{
- long inRefNum;
- short onoff;
- OSErr err;
-
- if (!PyArg_ParseTuple(args, "l", &inRefNum))
- return NULL;
-
- if( (err=SPBGetDeviceInfo(inRefNum, siContinuous, (Ptr)&onoff)) != noErr )
- return PyMac_Error(err);
- return Py_BuildValue("h", onoff);
-}
-
-static char sndih_setContinuous__doc__[] =
-""
-;
-
-static PyObject *
-sndih_setContinuous(self, args)
- PyObject *self; /* Not used */
- PyObject *args;
-{
- long inRefNum;
- short onoff;
- OSErr err;
-
- if (!PyArg_ParseTuple(args, "lh", &inRefNum, &onoff))
- return NULL;
-
- if( (err=SPBSetDeviceInfo(inRefNum, siContinuous, (Ptr)&onoff)) != noErr )
- return PyMac_Error(err);
- Py_INCREF(Py_None);
- return Py_None;
-}
-
-static char sndih_getInputSourceNames__doc__[] =
-""
-;
-
-static PyObject *
-sndih_getInputSourceNames(self, args)
- PyObject *self; /* Not used */
- PyObject *args;
-{
- long inRefNum;
- Handle names;
- OSErr err;
-
- if (!PyArg_ParseTuple(args, "l", &inRefNum))
- return NULL;
-
- if( (err=SPBGetDeviceInfo(inRefNum, siInputSourceNames, (Ptr)&names)) != noErr )
- return PyMac_Error(err);
- return Py_BuildValue("O&", ResObj_New, names);
-}
-
-static char sndih_getInputSource__doc__[] =
-""
-;
-
-static PyObject *
-sndih_getInputSource(self, args)
- PyObject *self; /* Not used */
- PyObject *args;
-{
- long inRefNum;
- short source;
- OSErr err;
-
- if (!PyArg_ParseTuple(args, "l", &inRefNum))
- return NULL;
-
- if( (err=SPBGetDeviceInfo(inRefNum, siInputSource, (Ptr)&source)) != noErr )
- return PyMac_Error(err);
- return Py_BuildValue("h", source);
-}
-
-static char sndih_setInputSource__doc__[] =
-""
-;
-
-static PyObject *
-sndih_setInputSource(self, args)
- PyObject *self; /* Not used */
- PyObject *args;
-{
- long inRefNum;
- short source;
- OSErr err;
-
- if (!PyArg_ParseTuple(args, "lh", &inRefNum, &source))
- return NULL;
-
- if( (err=SPBSetDeviceInfo(inRefNum, siInputSource, (Ptr)&source)) != noErr )
- return PyMac_Error(err);
- Py_INCREF(Py_None);
- return Py_None;
-}
-
-static char sndih_getPlayThruOnOff__doc__[] =
-""
-;
-
-static PyObject *
-sndih_getPlayThruOnOff(self, args)
- PyObject *self; /* Not used */
- PyObject *args;
-{
- long inRefNum;
- short onoff;
- OSErr err;
-
- if (!PyArg_ParseTuple(args, "l", &inRefNum))
- return NULL;
-
- if( (err=SPBGetDeviceInfo(inRefNum, siPlayThruOnOff, (Ptr)&onoff)) != noErr )
- return PyMac_Error(err);
- return Py_BuildValue("h", onoff);
-}
-
-static char sndih_setPlayThruOnOff__doc__[] =
-""
-;
-
-static PyObject *
-sndih_setPlayThruOnOff(self, args)
- PyObject *self; /* Not used */
- PyObject *args;
-{
- long inRefNum;
- short onoff;
- OSErr err;
-
- if (!PyArg_ParseTuple(args, "lh", &inRefNum, &onoff))
- return NULL;
-
- if( (err=SPBSetDeviceInfo(inRefNum, siPlayThruOnOff, (Ptr)&onoff)) != noErr )
- return PyMac_Error(err);
- Py_INCREF(Py_None);
- return Py_None;
-}
-
-static char sndih_getSampleRate__doc__[] =
-""
-;
-
-static PyObject *
-sndih_getSampleRate(self, args)
- PyObject *self; /* Not used */
- PyObject *args;
-{
- long inRefNum;
- Fixed sample_rate;
- OSErr err;
-
- if (!PyArg_ParseTuple(args, "l", &inRefNum))
- return NULL;
-
- if( (err=SPBGetDeviceInfo(inRefNum, siSampleRate, (Ptr)&sample_rate)) != noErr )
- return PyMac_Error(err);
- return Py_BuildValue("O&", PyMac_BuildUFixed, sample_rate);
-}
-
-static char sndih_setSampleRate__doc__[] =
-""
-;
-
-static PyObject *
-sndih_setSampleRate(self, args)
- PyObject *self; /* Not used */
- PyObject *args;
-{
- long inRefNum;
- Fixed sample_rate;
- OSErr err;
-
- if (!PyArg_ParseTuple(args, "lO&", &inRefNum, PyMac_GetUFixed, &sample_rate))
- return NULL;
-
- if( (err=SPBSetDeviceInfo(inRefNum, siSampleRate, (Ptr)&sample_rate)) != noErr )
- return PyMac_Error(err);
- Py_INCREF(Py_None);
- return Py_None;
-}
-
-static char sndih_getSampleSize__doc__[] =
-""
-;
-
-static PyObject *
-sndih_getSampleSize(self, args)
- PyObject *self; /* Not used */
- PyObject *args;
-{
- long inRefNum;
- short bits;
- OSErr err;
-
- if (!PyArg_ParseTuple(args, "l", &inRefNum))
- return NULL;
-
- if( (err=SPBGetDeviceInfo(inRefNum, siSampleSize, (Ptr)&bits)) != noErr )
- return PyMac_Error(err);
- return Py_BuildValue("h", bits);
-}
-
-static char sndih_setSampleSize__doc__[] =
-""
-;
-
-static PyObject *
-sndih_setSampleSize(self, args)
- PyObject *self; /* Not used */
- PyObject *args;
-{
- long inRefNum;
- short size;
- OSErr err;
-
- if (!PyArg_ParseTuple(args, "lh", &inRefNum, &size))
- return NULL;
-
- if( (err=SPBSetDeviceInfo(inRefNum, siSampleSize, (Ptr)&size)) != noErr )
- return PyMac_Error(err);
- Py_INCREF(Py_None);
- return Py_None;
-}
-
-static char sndih_getSampleSizeAvailable__doc__[] =
-""
-;
-
-static PyObject *
-sndih_getSampleSizeAvailable(self, args)
- PyObject *self; /* Not used */
- PyObject *args;
-{
- long inRefNum;
- struct SampleSizeAvailable_arg arg;
- OSErr err;
- PyObject *rsizes;
- short *fsizes;
- int i;
-
- arg.sizes = NULL;
- rsizes = NULL;
- if (!PyArg_ParseTuple(args, "l", &inRefNum))
- return NULL;
-
- if( (err=SPBGetDeviceInfo(inRefNum, siSampleSizeAvailable, (Ptr)&arg)) != noErr ) {
- return PyMac_Error(err);
- }
- fsizes = (short *)*(arg.sizes);
- /* Handle contains a list of rates */
- if( (rsizes = PyTuple_New(arg.numsizes)) == NULL)
- return NULL;
- for( i=0; i<arg.numsizes; i++ )
- PyTuple_SetItem(rsizes, i, PyInt_FromLong((long)fsizes[i]));
- return rsizes;
-}
-
-static char sndih_getSampleRateAvailable__doc__[] =
-""
-;
-
-static PyObject *
-sndih_getSampleRateAvailable(self, args)
- PyObject *self; /* Not used */
- PyObject *args;
-{
- long inRefNum;
- struct SampleRateAvailable_arg arg;
- OSErr err;
- PyObject *rrates, *obj;
- Fixed *frates;
- int i;
-
- arg.rates = NULL;
- rrates = NULL;
- if (!PyArg_ParseTuple(args, "l", &inRefNum))
- return NULL;
-
- if( (err=SPBGetDeviceInfo(inRefNum, siSampleRateAvailable, (Ptr)&arg)) != noErr ) {
- return PyMac_Error(err);
- }
- frates = (Fixed *)*(arg.rates);
- if( arg.numrates == 0 ) {
- /* The handle contains upper and lowerbound */
- rrates = Py_BuildValue("O&O&", frates[0], frates[1]);
- if (rrates == NULL) return NULL;
- } else {
- /* Handle contains a list of rates */
- if( (rrates = PyTuple_New(arg.numrates)) == NULL)
- return NULL;
- for( i=0; i<arg.numrates; i++ ) {
- if( (obj = Py_BuildValue("O&", PyMac_BuildUFixed, frates[i]))==NULL)
- goto out;
- PyTuple_SetItem(rrates, i, obj);
- }
- }
- return Py_BuildValue("hO", arg.numrates, rrates);
-out:
- Py_XDECREF(rrates);
- return NULL;
-}
-
-/* List of methods defined in the module */
-
-static struct PyMethodDef sndih_methods[] = {
- {"getChannelAvailable", (PyCFunction)sndih_getChannelAvailable, METH_VARARGS, sndih_getChannelAvailable__doc__},
- {"getNumberChannels", (PyCFunction)sndih_getNumberChannels, METH_VARARGS, sndih_getNumberChannels__doc__},
- {"setNumberChannels", (PyCFunction)sndih_setNumberChannels, METH_VARARGS, sndih_setNumberChannels__doc__},
- {"getContinuous", (PyCFunction)sndih_getContinuous, METH_VARARGS, sndih_getContinuous__doc__},
- {"setContinuous", (PyCFunction)sndih_setContinuous, METH_VARARGS, sndih_setContinuous__doc__},
- {"getInputSourceNames", (PyCFunction)sndih_getInputSourceNames, METH_VARARGS, sndih_getInputSourceNames__doc__},
- {"getInputSource", (PyCFunction)sndih_getInputSource, METH_VARARGS, sndih_getInputSource__doc__},
- {"setInputSource", (PyCFunction)sndih_setInputSource, METH_VARARGS, sndih_setInputSource__doc__},
- {"getPlayThruOnOff", (PyCFunction)sndih_getPlayThruOnOff, METH_VARARGS, sndih_getPlayThruOnOff__doc__},
- {"setPlayThruOnOff", (PyCFunction)sndih_setPlayThruOnOff, METH_VARARGS, sndih_setPlayThruOnOff__doc__},
- {"getSampleRate", (PyCFunction)sndih_getSampleRate, METH_VARARGS, sndih_getSampleRate__doc__},
- {"setSampleRate", (PyCFunction)sndih_setSampleRate, METH_VARARGS, sndih_setSampleRate__doc__},
- {"getSampleSize", (PyCFunction)sndih_getSampleSize, METH_VARARGS, sndih_getSampleSize__doc__},
- {"setSampleSize", (PyCFunction)sndih_setSampleSize, METH_VARARGS, sndih_setSampleSize__doc__},
- {"getSampleSizeAvailable", (PyCFunction)sndih_getSampleSizeAvailable, METH_VARARGS, sndih_getSampleSizeAvailable__doc__},
- {"getSampleRateAvailable", (PyCFunction)sndih_getSampleRateAvailable, METH_VARARGS, sndih_getSampleRateAvailable__doc__},
-
- {NULL, (PyCFunction)NULL, 0, NULL} /* sentinel */
-};
-
-
-/* Initialization function for the module (*must* be called initSndihooks) */
-
-static char Sndihooks_module_documentation[] =
-""
-;
-
-void
-initSndihooks()
-{
- PyObject *m, *d;
-
- /* Create the module and add the functions */
- m = Py_InitModule4("Sndihooks", sndih_methods,
- Sndihooks_module_documentation,
- (PyObject*)NULL,PYTHON_API_VERSION);
-
- /* Add some symbolic constants to the module */
- d = PyModule_GetDict(m);
- ErrorObject = PyString_FromString("Sndihooks.error");
- PyDict_SetItemString(d, "error", ErrorObject);
-
- /* XXXX Add constants here */
-
- /* Check for errors */
- if (PyErr_Occurred())
- Py_FatalError("can't initialize module Sndihooks");
-}
-