# SND_SetTrackAllocatableChannel

## C Specification

      #include <nitro/snd.h>

      void SND_SetTrackAllocatableChannel(
              int playerNo,
              u32 trackBitMask,
              u32 chBitFlag );

## Arguments

`playerNo` | The Player number. Takes a value between 0 and 15.
`trackBitMask` | This is the track bit mask. It designates which track to use.
`chBitFlag` | This is an allocatable channel bit flag.

## Return Values

None.

## Description

Changes the allocatable channel with a track for the sequence currently playing on player number `playerNo`.

The track bit mask, `trackBitMask`, designates which track to use. Each bit expresses a track in descending order track 0 as the lowest bit. Operations are performed only on tracks with active bits.

`chBitFlag` designates the allocatable channels. The channels are represented in order, with the lowest bit representing channel 0. Operations are performed only on tracks with active bits. If a 0 is set in `chBitFlag`, allocation can be performed from all channels. This is the initially configured state.

### Caution

This function is an ARM7 reserved function. After this function is called, processing occurs only after the command is issued with the `SND_FlushCommand` function.

When it is necessary to synchronize something with the completion of the process, first use `SND_GetCurrentCommandTag` to obtain the command tag immediately after calling this function. After the command is issued, use the command tag and call either the `SND_IsFinishedCommandTag` or `SND_WaitForCommandProc` function to confirm that the process has finished or to wait for it to complete.

## See Also

`SND_FlushCommand, SND_GetCurrentCommandTag, SND_IsFinishedCommandTag, SND_WaitForCommandProc`

## Revision History

02/17/2005 Added a note about ARM7 command processing
01/05/2005 Initial version

CONFIDENTIAL