# Sound Spooler Function Calls

The sound spooler currently includes these function calls, grouped here by the type of function that each performs.The calls can be broken down into four different categories:

## Convenience calls

The following two calls are convenience calls:

- `ssplPlayData()` Waits for next available buffer then sends a block full of data to the DSP.
- `ssplSpoolData()` Send a block full of data.

## SoundSpooler management calls

The following calls are used to manage the sound spooler:

- `ssplAbort()` Abort SoundSpooler.
- `ssplCreateSoundSpooler()` Create a SoundSpooler data structure and initialize it.
- `ssplDeleteSoundSpooler()` Delete a SoundSpooler data structure.
- `ssplDetachInstrument()` Detach the current sample player instrument from the SoundSpooler.
- `ssplGetSpoolerStatus()` Get SoundSpooler status flags.
- `ssplPause()` Pauses the SoundSpooler.
- `ssplProcessSignals()` Process completion signals that have been received.
- `ssplReset()` Reset Sound Spooler.
- `ssplResume()` Resume SoundSpooler playback.
- `ssplSetSoundBufferFunc()` Install new SoundBufferFunc in SoundSpooler.
- `ssplStartSpooler()` Start SoundSpooler.
- `ssplStartSpoolerTags()` Start SoundSpooler with tags.
- `ssplStopSpooler()` Stop SoundSpooler.

## SoundBufferNode management calls

The following calls help manage a SoundBufferNode:

- `ssplGetSequenceNum()` Get sequence number of a SoundBufferNode.
- `ssplGetUserData()` Get user data from a SoundBufferNode.
- `ssplRequestBuffer()` Asks for an available buffer.
- `ssplSendBuffer()` Send a buffer full of data.
- `ssplSetBufferAddressLength()` Attach sample data to a SoundBufferNode.
- `ssplSetUserData()` Store user data in a SoundBufferNode.
- `ssplUnrequestBuffer()` Return an unused buffer to the sound spooler.

## Low level calls

The following low level calls help manage the sound spooler:

- `ssplAttachInstrument()` Attach new sample player to instrument SoundSpooler.
- `ssplDetachInstrument()` Detach the current sample player instrument from the SoundSpooler.

## Callback routine

The following call is used by spplProcessSignals():

- `SoundBufferFunc` SoundSpooler callback function typedef.
- `UserBufferProcessor`Callback function called by ssplProcessSignals().