The absolute channel number in the channel pool. <BR>
Remember software channels come first, followed by hardware channels. <BR>
You cannot play a software sample on a hardware channel and vice versa.<BR>
FSOUND_FREE<BR>
Chooses a free channel to play in. If all channels are used then it<BR>
selects a channel with a sample playing that has an EQUAL or LOWER priority <BR>
than the sample to be played.<BR>
FSOUND_ALL<BR>
Passing this will cause ALL channels to play. (note this will make things<BR>
VERY noisy!)<BR>
If FSOUND_ALL is used the last channel success flag will be returned.<BR>
</TD><TRVALIGN=top><TD><I>sptr</I></TD>
<TD>Pointer to the sample to be played.<BR>
</TD></TABLE>
<H3>Return Value</H3>
On success, the channel handle that was selected is returned.<BR>
On failure, -1 is returned.<BR>
<H3>Remarks</H3>
If you play a FSOUND_HW3D declared sample with this function, then the position and velocity<BR>
are set to those of the listener. Other attributes such as volume, frequency and pan are taken<BR>
from the sample's default volume, frequency, pan etc.<BR>
----------<BR>
The channel handle :<BR>
The return value is reference counted. This stops the user from updating a stolen channel.<BR>
Basically it means the only sound you can change the attributes (ie volume/pan/frequency/3d position) for are the one you specifically called playsound for. If another sound steals that channel, and you keep trying to change its attributes (ie volume/pan/frequency/3d position), it will do nothing.<BR>
This is great if you have sounds being updated from tasks and you just forget about it.<BR>
You can keep updating the sound attributes and if another task steals that channel, your original task wont change the attributes of the new sound!!!<BR>
The lower 12 bits contain the channel number. (yes this means a 4096 channel limit for FMOD :)<BR>
The upper 19 bits contain the reference count.<BR>
The top 1 bit is the sign bit.<BR>
ie<BR>
S RRRRRRRRRRRRRRRRRRR CCCCCCCCCCCC<BR>
----------<BR>
Remember if not using FSOUND_FREE, then the channel pool is split up into software and hardware channels.<BR>
Software channels occupy the first n indicies specified by the value passed into FSOUND_Init.<BR>
Hardware channels occupy the next n indicies after this, and can be a variable amount, depending on the hardware.<BR>
Use FSOUND_GetNumHardwareChannels to query how many channels are available in hardware.<BR>
___________________<BR>
Supported on the following platforms : Win32, WinCE, Linux, Macintosh, XBox, PlayStation 2, GameCube<BR>