al - Audio Library Functions gDP - DP GBI Macros gdSP - General GBI Macros gSP - SP GBI Macros gt - Turbo Microcode RDP gu - Graphics Utilities Math - Math Functions Mus - Mus Library nuSys - NuSystem os - N64 Operating System sp - Sprite Library Functions uh - Host to Target IO 64DD - N64 Disk Drive
|
MusHandleSetVolume()Set the volume scale value using a sound handle. Syntax int MusHandleSetVolume(musHandle handle, int volume); Arguments
Explanation
The handle must be a sound handle returned by MusStartSong(), MusStartEffect() or MusStartEffect2(). If an handle of zero is supplied, this function will always return zero. The volume value should be within the range of 0 to 0x100 (256), with this range representing 0% to 200% of the value defined in the original sound data. The default volume scale value for all channels is 0x80 (100%). Return Value
Example unsigned long SongCrossFade(unsigned long handle, int *song) { int I; unsigned long new_handle; new_handle = MusStartSong(song); MusHandleSetVolume(song, 0); for (I=0x10; I<0x80; I+=0x10) { WaitForVsync(); MusHandleSetVolume(handle, 0x80-i); MusHandleSetVolume(new_handle, I); } MusHandleStop(handle,0); return (new_handle); } void VolFromDistance(unsigned long handle, float distance) { int scale; int volume; /* calculate distance scale */ if (distance>=MAX_DISTANCE) return (0); /* sound is too far away! */ distance = (MAX_DISTANCE-distance)*(65536.0/MAX_DISTANCE); scale = (int)distance; /* calculate volume level */ volume = (0x80*scale)>>16; MusHandleSetVolume(handle, volume); } See Also
|