Remove obsolete \setindexsubitem macros.

Massive migration to methoddesc and memberdesc.

Logical markup as needed.

A sprinkling of index entries for flavor.
diff --git a/Doc/lib/libal.tex b/Doc/lib/libal.tex
index 1126f83..fb31ffa 100644
--- a/Doc/lib/libal.tex
+++ b/Doc/lib/libal.tex
@@ -1,4 +1,4 @@
-\section{Built-in Module \sectcode{al}}
+\section{Built-in Module \module{al}}
 \label{module-al}
 \bimodindex{al}
 
@@ -10,10 +10,11 @@
 specific function is available on your platform.
 
 All functions and methods defined in this module are equivalent to
-the C functions with \samp{AL} prefixed to their name.
+the \C{} functions with \samp{AL} prefixed to their name.
 
-Symbolic constants from the C header file \file{<audio.h>} are defined
-in the standard module \code{AL}, see below.
+Symbolic constants from the \C{} header file \code{<audio.h>} are
+defined in the standard module \module{AL}\refstmodindex{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
@@ -25,145 +26,146 @@
 
 The module defines the following functions:
 
-\setindexsubitem{(in module al)}
 
 \begin{funcdesc}{openport}{name, direction\optional{, config}}
-The name and direction arguments are strings.  The optional config
-argument is a configuration object as returned by
-\code{al.newconfig()}.  The return value is an \dfn{port object};
-methods of port objects are described below.
+The name and direction arguments are strings.  The optional
+\var{config} argument is a configuration object as returned by
+\function{newconfig()}.  The return value is an \dfn{audio port
+object}; methods of audio port objects are described below.
 \end{funcdesc}
 
 \begin{funcdesc}{newconfig}{}
-The return value is a new \dfn{configuration object}; methods of
-configuration objects are described below.
+The return value is a new \dfn{audio configuration object}; methods of
+audio configuration objects are described below.
 \end{funcdesc}
 
 \begin{funcdesc}{queryparams}{device}
 The device argument is an integer.  The return value is a list of
-integers containing the data returned by ALqueryparams().
+integers containing the data returned by \cfunction{ALqueryparams()}.
 \end{funcdesc}
 
 \begin{funcdesc}{getparams}{device, list}
-The device argument is an integer.  The list argument is a list such
-as returned by \code{queryparams}; it is modified in place (!).
+The \var{device} argument is an integer.  The list argument is a list
+such as returned by \function{queryparams()}; it is modified in place
+(!).
 \end{funcdesc}
 
 \begin{funcdesc}{setparams}{device, list}
-The device argument is an integer.  The list argument is a list such
-as returned by \code{al.queryparams}.
+The \var{device} argument is an integer.  The \var{list} argument is a
+list such as returned by \function{queryparams()}.
 \end{funcdesc}
 
+
 \subsection{Configuration Objects}
+\label{al-config-objects}
 
-Configuration objects (returned by \code{al.newconfig()} have the
+Configuration objects (returned by \function{newconfig()} have the
 following methods:
 
-\setindexsubitem{(audio configuration object method)}
-
-\begin{funcdesc}{getqueuesize}{}
+\begin{methoddesc}[audio configuration]{getqueuesize}{}
 Return the queue size.
-\end{funcdesc}
+\end{methoddesc}
 
-\begin{funcdesc}{setqueuesize}{size}
+\begin{methoddesc}[audio configuration]{setqueuesize}{size}
 Set the queue size.
-\end{funcdesc}
+\end{methoddesc}
 
-\begin{funcdesc}{getwidth}{}
+\begin{methoddesc}[audio configuration]{getwidth}{}
 Get the sample width.
-\end{funcdesc}
+\end{methoddesc}
 
-\begin{funcdesc}{setwidth}{width}
+\begin{methoddesc}[audio configuration]{setwidth}{width}
 Set the sample width.
-\end{funcdesc}
+\end{methoddesc}
 
-\begin{funcdesc}{getchannels}{}
+\begin{methoddesc}[audio configuration]{getchannels}{}
 Get the channel count.
-\end{funcdesc}
+\end{methoddesc}
 
-\begin{funcdesc}{setchannels}{nchannels}
+\begin{methoddesc}[audio configuration]{setchannels}{nchannels}
 Set the channel count.
-\end{funcdesc}
+\end{methoddesc}
 
-\begin{funcdesc}{getsampfmt}{}
+\begin{methoddesc}[audio configuration]{getsampfmt}{}
 Get the sample format.
-\end{funcdesc}
+\end{methoddesc}
 
-\begin{funcdesc}{setsampfmt}{sampfmt}
+\begin{methoddesc}[audio configuration]{setsampfmt}{sampfmt}
 Set the sample format.
-\end{funcdesc}
+\end{methoddesc}
 
-\begin{funcdesc}{getfloatmax}{}
+\begin{methoddesc}[audio configuration]{getfloatmax}{}
 Get the maximum value for floating sample formats.
-\end{funcdesc}
+\end{methoddesc}
 
-\begin{funcdesc}{setfloatmax}{floatmax}
+\begin{methoddesc}[audio configuration]{setfloatmax}{floatmax}
 Set the maximum value for floating sample formats.
-\end{funcdesc}
+\end{methoddesc}
+
 
 \subsection{Port Objects}
+\label{al-port-objects}
 
-Port objects (returned by \code{al.openport()} have the following
+Port objects, as returned by \function{openport()}, have the following
 methods:
 
-\setindexsubitem{(audio port object method)}
-
-\begin{funcdesc}{closeport}{}
+\begin{methoddesc}[audio port]{closeport}{}
 Close the port.
-\end{funcdesc}
+\end{methoddesc}[audio port]
 
-\begin{funcdesc}{getfd}{}
+\begin{methoddesc}[audio port]{getfd}{}
 Return the file descriptor as an int.
-\end{funcdesc}
+\end{methoddesc}[audio port]
 
-\begin{funcdesc}{getfilled}{}
+\begin{methoddesc}[audio port]{getfilled}{}
 Return the number of filled samples.
-\end{funcdesc}
+\end{methoddesc}[audio port]
 
-\begin{funcdesc}{getfillable}{}
+\begin{methoddesc}[audio port]{getfillable}{}
 Return the number of fillable samples.
-\end{funcdesc}
+\end{methoddesc}[audio port]
 
-\begin{funcdesc}{readsamps}{nsamples}
+\begin{methoddesc}[audio port]{readsamps}{nsamples}
 Read a number of samples from the queue, blocking if necessary.
 Return the data 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}
+\end{methoddesc}[audio port]
 
-\begin{funcdesc}{writesamps}{samples}
+\begin{methoddesc}[audio port]{writesamps}{samples}
 Write samples into the queue, blocking if necessary.  The samples are
-encoded as described for the \code{readsamps} return value.
-\end{funcdesc}
+encoded as described for the \method{readsamps()} return value.
+\end{methoddesc}[audio port]
 
-\begin{funcdesc}{getfillpoint}{}
+\begin{methoddesc}[audio port]{getfillpoint}{}
 Return the `fill point'.
-\end{funcdesc}
+\end{methoddesc}[audio port]
 
-\begin{funcdesc}{setfillpoint}{fillpoint}
+\begin{methoddesc}[audio port]{setfillpoint}{fillpoint}
 Set the `fill point'.
-\end{funcdesc}
+\end{methoddesc}[audio port]
 
-\begin{funcdesc}{getconfig}{}
+\begin{methoddesc}[audio port]{getconfig}{}
 Return a configuration object containing the current configuration of
 the port.
-\end{funcdesc}
+\end{methoddesc}[audio port]
 
-\begin{funcdesc}{setconfig}{config}
+\begin{methoddesc}[audio port]{setconfig}{config}
 Set the configuration from the argument, a configuration object.
-\end{funcdesc}
+\end{methoddesc}[audio port]
 
-\begin{funcdesc}{getstatus}{list}
+\begin{methoddesc}[audio port]{getstatus}{list}
 Get status information on last error.
-\end{funcdesc}
+\end{methoddesc}[audio port]
 
-\section{Standard Module \sectcode{AL}}
+
+\section{Standard Module \module{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{<audio.h>} except that the name prefix
+module \module{al} (see above); they are equivalent to those defined
+in the \C{} header file \code{<audio.h>} except that the name prefix
 \samp{AL_} is omitted.  Read the module source for a complete list of
 the defined names.  Suggested use: