Namespace: Un4seen.Bass.AddOn.Mix
Assembly: Bass.Net (in Bass.Net.dll) Version: 2.4.17.5
[DllImportAttribute("bassmix", EntryPoint = "BASS_Mixer_ChannelGetLevelEx")] public static bool BASS_Mixer_ChannelGetLevel( int handle, float[] levels, float length, BASSLevel flags )
Parameters
- handle
- Type: SystemInt32
The channel handle... a HCHANNEL, HMUSIC, HSTREAM, or HRECORD. - levels
- Type: SystemSingle
The array in which the levels are to be returned. - length
- Type: SystemSingle
The amount of data to inspect to calculate the level, in seconds. The maximum is 1 second. Less data than requested may be used if the full amount is not available, eg. if the source's buffer (determined by the BASS_CONFIG_MIXER_BUFFER config option) is shorter. - flags
- Type: Un4seen.BassBASSLevel
What levels to retrieve. One of the following (see BASSLevel):BASS_LEVEL_ALL Retrieves a separate level for each channel. BASS_LEVEL_MONO Retrieve a single mono level. BASS_LEVEL_STEREO Get a stereo level. The left level will be from the even channels, and the right level will be from the odd channels. If there are an odd number of channels then the left and right levels will both include all channels. BASS_LEVEL_RMS Flag: Get the RMS level. Otherwise the peak level. BASS_LEVEL_VOLPAN Apply the current BASS_ATTRIB_VOL and BASS_ATTRIB_PAN values and volume and pan envelopes to the level reading. Due to buffering, these values might not be the same as they were when the currently heard data was mixed.
Return Value
Type: BooleanOn success is returned - else , use BASS_ErrorGetCode to get the error code.
If successful, the requested levels are returned in the levels array.
This function measures the level of the channel's sample data, not its level in the mixer output. It includes the effect of any DSP/FX set on the channel, but not the effect of the channel's BASS_ATTRIB_VOL or BASS_ATTRIB_PAN attributes or matrix mixing or any envelope set via BASS_Mixer_ChannelSetEnvelope(Int32, BASSMIXEnvelope, BASS_MIXER_NODE, Int32).
If the mixer is being played by BASS, the returned level will be in sync with what is currently being heard from the mixer. If another output system is being used, the BASS_ATTRIB_MIXER_LATENCY option can be used to tell the mixer what the latency is so that it can be taken account of, otherwise the channel's most recent data will be used to get the level. The BASS_CONFIG_MIXER_BUFFER config option determines how far back the level will be available from, so it should be set high enough to cover any latency.
ERROR CODE | Description |
---|---|
BASS_ERROR_HANDLE | handle is not plugged into a mixer. |
BASS_ERROR_ILLPARAM | length is not valid. |
BASS_ERROR_NOTAVAIL | The channel does not have buffering (BASS_MIXER_CHAN_BUFFER) enabled. |
BASS_ERROR_NOPLAY | The mixer is not playing. |