mixSetPanning function
Set the panning of a channel.
The left and right channels are specified as integers between 0 and 255, quietest to loudest, respectively.
Technically, this is just individual volume control for a sample with two (stereo) channels, so it can be used for more than just panning. If you want real panning, call it like this:
Mix_SetPanning(channel, left, 255 - left);
Setting channel
to MIX_CHANNEL_POST registers this as a posteffect, and
the panning will be done to the final mixed stream before passing it on to
the audio device.
This uses the Mix_RegisterEffect() API internally, and returns without
registering the effect function if the audio device is not configured for
stereo output. Setting both left
and right
to 255 causes this effect to
be unregistered, since that is the data's normal state.
Note that an audio device in mono mode is a no-op, but this call will return successful in that case. Error messages can be retrieved from Mix_GetError().
Note that unlike most SDL and SDL_mixer functions, this function returns zero if there's an error, not on success. We apologize for the API design inconsistency here.
\param channel The mixer channel to pan or MIX_CHANNEL_POST. \param left Volume of stereo left channel, 0 is silence, 255 is full volume. \param right Volume of stereo right channel, 0 is silence, 255 is full volume. \returns true on success or false on failure; call SDL_GetError() for more information.
\since This function is available since SDL_mixer 3.0.0.
\sa Mix_SetPosition \sa Mix_SetDistance
extern SDL_DECLSPEC bool SDLCALL Mix_SetPanning(int channel, Uint8 left, Uint8 right)
Implementation
bool mixSetPanning(int channel, int left, int right) {
final mixSetPanningLookupFunction = libSdl3Mixer.lookupFunction<
Uint8 Function(Int32 channel, Uint8 left, Uint8 right),
int Function(int channel, int left, int right)>('Mix_SetPanning');
return mixSetPanningLookupFunction(channel, left, right) == 1;
}