X Audio extension:
The calls are:
	int
	XAudioOpen(Display)
		XAudioOpen() returns 1  if open is successful.

	XAudioSetVolume(Display, playvolume, recordvolume)
		int	playvolume, recordvolume;
	int
	XAudioRecord(Display,buffer)
		char	buffer[WRITE_SIZE];
		XAudioRecord() returns number of bytes read.

	XAudioRecordOff(Display)

	int
	XAudioPlay(Display, buffer , sizeofbuffer)
		char    buffer[WRITE_SIZE];
		int	sizeofbuffer;

	XAudioPlayOff(Display, forced )
		int	forced;
		If forced = 1 , then audio io stops immediately.
		Otherwise, it waits for all the sent buffers to
		stop playing first.

	int
	XAudioClose(Display)
		XAudioClose() returns 1 if close is sucessful.
		If audio is still playing, then close return 0.

XAudioOpen() must be called first to initialize the extension and
open the audio channel.

XAudioPlay() returns zero if successful, otherwise it will return the number of
bytes it failed to send to the sound chip. The data can be retransmitted.

XAudioSetVolume() takes arguments in the range MIN_VOLUME to MAX_VOLUME.

The size of the buffers of data send to and from the extension must
be in multiples of 4 bytes.

All the above calls will affect other sound programs accessing the
same chip.

Be real careful if multiple clients are accessing the sound chip on one server.
It doesn't really do enough error checking and it may crash the server.

