Enables a channel, and sets it to use a BASS channel.
BOOL BASS_ASIO_ChannelEnableBASS( BOOL input, DWORD channel, DWORD handle, BOOL join );
input | Dealing with an input channel? FALSE = an output channel. |
channel | The input/output channel number... 0 = first. |
handle | The BASS channel handle. |
join | Join the next ASIO channels according to the number of audio channels in the BASS channel? |
BASS_ERROR_INIT | BASS_ASIO_Init has not been successfully called. |
BASS_ERROR_NOTAVAIL | The BASS library is not loaded. |
BASS_ERROR_START | The device has been started and the channel is not currently enabled. The device needs to be stopped before enabling channels. |
BASS_ERROR_ILLPARAM | The input and channel combination is invalid. |
BASS_ERROR_HANDLE | handle is invalid. |
BASS_ERROR_FORMAT | 8-bit BASS channels are not supported; the BASS_SAMPLE_FLOAT flag can be used to avoid them. |
BASS_ERROR_NOCHAN | The device does not have enough channels to accommodate the BASS channel. |
In the case of output channels, the BASS channel must have the BASS_STREAM_DECODE flag set. In the case of input channels, the BASS channel must be a "push" or "dummy" stream, created with BASS_StreamCreate and STREAMPROC_PUSH or STREAMPROC_DUMMY. A "push" stream will receive the data from the input channel(s), while a "dummy" stream will just apply its DSP/FX (including encoders) to the data.
Raw DSD streams are supported (with the BASSDSD add-on) but the device needs to have been successfully set to DSD mode first with BASS_ASIO_SetDSD. The device's sample rate should also be set to the DSD stream's rate (its BASS_ATTRIB_DSD_RATE attribute) via BASS_ASIO_SetRate.
mixer = BASS_Mixer_StreamCreate(BASS_ASIO_GetRate(), 2, BASS_SAMPLE_FLOAT | BASS_STREAM_DECODE); // create a stereo mixer BASS_ASIO_ChannelEnableBASS(FALSE, 0, mixer, TRUE); // set the first two output channels to use it