# NNS_SndArcStrmPrepare

## C Specification

      #include <nnsys/snd.h>

      BOOL NNS_SndArcStrmPrepare(
      NNSSndStrmHandle* handle,
      int strmNo,
      u32 offset );

## Arguments

`handle` | Pointer to a stream handle
`strmNo` | This is the stream number
`offset` | This is the starting offset position It is in msec

## Return Values

Returns TRUE when successful. If it fails FALSE is returned.

## Description

This function prepares the stream. Use the `NNS_SndArcStrmPrepareEx` function or the `NNS_SndArcStrmPrepareEx2` function to specify the player number.

The sound archive stream library must be initialized in advance using the `NNS_SndArcStrmInit` function.

The stream handle `handle` needs to be initialized only once in advance using the `NNS_SndStrmHandleInit` function. Calling this function releases the stream already attached to the stream handle (this does not mean it is stopped). If the function is successful, the stream is attached to the stream handle.

If a non-zero value is set for the start offset position `offset`, it is possible to play from the middle of the stream data.

You can check whether the preparations are completed with the `NNS_SndArcStrmIsPrepared` function. Call the `NNS_SndArcStrmStartPrepared` function to play back the streams for which preparations are completed.

The channels used for stream playback are set aside in this function. If the channels set aside were being used by sequence playback, the sound being produced is automatically stopped. To control the timing of the channel set aside the `NNS_SndArcStrmAllocChannel` function needs to be called in advance.

If the stream data is in stereo, channel 0 is output from the left and channel 1 from the right. These settings can be changed with the `NNS_SndArcStrmSetChannelPan` function.

The following are possible causes for this function to fail.

- The stream number is invalid.
- The priority is lower than the stream already being played.
- The priority is lower than the stream already being played.

## See Also

`NNS_SndArcStrmPrepareEx`, `NNS_SndArcStrmPrepareEx2`, `NNS_SndArcStrmInit`, `NNS_SndStrmHandleInit`, `NNS_SndArcStrmIsPrepared`, `NNS_SndArcStrmStartPrepared`, `NNS_SndArcStrmAllocChannel`, `NNS_SndArcStrmSetChannelPan`

## Revision History

11/26/2004 Separated out the explanation for NNS_SndArcStrmPrepareEx function.

10/05/2004 Added the NNS_SndArcStrmPrepareEx function.

08/10/2004 Initial version.