\section{Built-in Module \sectcode{al}} \bimodindex{al} This module provides access to the audio facilities of the Indigo and 4D/35 workstations, described in section 3A of the IRIX 4.0 man pages (and also available as an option in IRIX 3.3). You'll need to read those man pages to understand what these functions do! Some of the functions are not available in releases below 4.0.5. Again, see the manual to check whether a specific function is available on your platform. Symbolic constants from the C header file \file{} are defined in the standard module \code{AL}, see below. \strong{Warning:} the current version of the audio library may dump core when bad argument values are passed rather than returning an error status. Unfortunately, since the precise circumstances under which this may happen are undocumented and hard to check, the Python interface can provide no protection against this kind of problems. (One example is specifying an excessive queue size --- there is no documented upper limit.) Module \code{al} defines the following functions: \renewcommand{\indexsubitem}{(in module al)} \begin{funcdesc}{openport}{name\, direction\optional{\, config}} Equivalent to the C function ALopenport(). The name and direction arguments are strings. The optional config argument is an opaque configuration object as returned by \code{al.newconfig()}. The return value is an opaque port object; methods of port objects are described below. \end{funcdesc} \begin{funcdesc}{newconfig}{} Equivalent to the C function ALnewconfig(). The return value is a new opaque configuration object; methods of configuration objects are described below. \end{funcdesc} \begin{funcdesc}{queryparams}{device} Equivalent to the C function ALqueryparams(). The device argument is an integer. The return value is a list of integers containing the data returned by ALqueryparams(). \end{funcdesc} \begin{funcdesc}{getparams}{device\, list} Equivalent to the C function ALgetparams(). The device argument is an integer. The list argument is a list such as returned by \code{queryparams}; it is modified in place (!). \end{funcdesc} \begin{funcdesc}{setparams}{device\, list} Equivalent to the C function ALsetparams(). The device argument is an integer.The list argument is a list such as returned by \code{al.queryparams}. \end{funcdesc} Configuration objects (returned by \code{al.newconfig()} have the following methods: \renewcommand{\indexsubitem}{(audio configuration object method)} \begin{funcdesc}{getqueuesize}{} Return the queue size; equivalent to the C function ALgetqueuesize(). \end{funcdesc} \begin{funcdesc}{setqueuesize}{size} Set the queue size; equivalent to the C function ALsetqueuesize(). \end{funcdesc} \begin{funcdesc}{getwidth}{} Get the sample width; equivalent to the C function ALgetwidth(). \end{funcdesc} \begin{funcdesc}{getwidth}{width} Set the sample width; equivalent to the C function ALsetwidth(). \end{funcdesc} \begin{funcdesc}{getchannels}{} Get the channel count; equivalent to the C function ALgetchannels(). \end{funcdesc} \begin{funcdesc}{setchannels}{nchannels} Set the channel count; equivalent to the C function ALsetchannels(). \end{funcdesc} \begin{funcdesc}{getsampfmt}{} Get the sample format; equivalent to the C function ALgetsampfmt(). \end{funcdesc} \begin{funcdesc}{setsampfmt}{sampfmt} Set the sample format; equivalent to the C function ALsetsampfmt(). \end{funcdesc} \begin{funcdesc}{getfloatmax}{} Get the maximum value for floating sample formats; equivalent to the C function ALgetfloatmax(). \end{funcdesc} \begin{funcdesc}{setfloatmax}{floatmax} Set the maximum value for floating sample formats; equivalent to the C function ALsetfloatmax(). \end{funcdesc} Port objects (returned by \code{al.openport()} have the following methods: \renewcommand{\indexsubitem}{(audio port object method)} \begin{funcdesc}{closeport}{} Close the port; equivalent to the C function ALcloseport(). \end{funcdesc} \begin{funcdesc}{getfd}{} Return the file descriptor as an int; equivalent to the C function ALgetfd(). \end{funcdesc} \begin{funcdesc}{getfilled}{} Return the number of filled samples; equivalent to the C function ALgetfilled(). \end{funcdesc} \begin{funcdesc}{getfillable}{} Return the number of fillable samples; equivalent to the C function ALgetfillable(). \end{funcdesc} \begin{funcdesc}{readsamps}{nsamples} Read a number of samples from the queue, blocking if necessary; equivalent to the C function ALreadsamples. The data is returned as a string containing the raw data (e.g. 2 bytes per sample in big-endian byte order (high byte, low byte) if you have set the sample width to 2 bytes. \end{funcdesc} \begin{funcdesc}{writesamps}{samples} Write samples into the queue, blocking if necessary; equivalent to the C function ALwritesamples. The samples are encoded as described for the \code{readsamps} return value. \end{funcdesc} \begin{funcdesc}{getfillpoint}{} Return the `fill point'; equivalent to the C function ALgetfillpoint(). \end{funcdesc} \begin{funcdesc}{setfillpoint}{fillpoint} Set the `fill point'; equivalent to the C function ALsetfillpoint(). \end{funcdesc} \begin{funcdesc}{getconfig}{} Return a configuration object containing the current configuration of the port; equivalent to the C function ALgetconfig(). \end{funcdesc} \begin{funcdesc}{setconfig}{config} Set the configuration from the argument, a configuration object; equivalent to the C function ALsetconfig(). \end{funcdesc} \begin{funcdesc}{getstatus}{list} Get status information on last error equivalent to C function ALgetstatus(). \end{funcdesc} \section{Standard Module \sectcode{AL}} \nodename{AL (uppercase)} \stmodindex{AL} This module defines symbolic constants needed to use the built-in module \code{al} (see above); they are equivalent to those defined in the C header file \file{} except that the name prefix \samp{AL_} is omitted. Read the module source for a complete list of the defined names. Suggested use: \bcode\begin{verbatim} import al from AL import * \end{verbatim}\ecode