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 - it 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" stream, created with BASS_StreamCreate and STREAMPROC_PUSH, which will receive the data from the input channel(s).
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