BASS.NET API for the Un4seen BASS Audio Library

BassAsioHandlerRemoveFullDuplex Method

BASS.NET API for the Un4seen BASS Audio Library
Removes the full-duplex option from ASIO input.

Namespace:  Un4seen.BassAsio
Assembly:  Bass.Net (in Bass.Net.dll) Version: 2.4.17.5
Syntax

public bool RemoveFullDuplex(
	bool disableOutput
)

Parameters

disableOutput
Type: SystemBoolean
Disable and unjoin the ASIO output channel? =leave them enabled and joined.

Return Value

Type: Boolean
On success is returned, else will be returned (use BASS_ASIO_ErrorGetCode to retrieve the error code).
Remarks

The full-duplex option must have been set before via SetFullDuplex(Int32, Int32).

The following will be done internally:

1. The ASIO output FullDuplexDevice will be stopped (if already started).

2. The ASIO output FullDuplexChannel will be disabled and unjoined.

3. The ASIO output device will be started again (only, if it has been started before).

4. The ASIO input Device will be stopped (if already started).

5. The ASIO input Channel will be disabled.

6. Any custom dummy decoding stream (see OutputChannel) will be freed and the AsioInputCallback(Boolean, Int32, IntPtr, Int32, IntPtr) will again be used as the internal ASIOPROC.

7. The ASIO input channel will be (re)enabled, the samplerate, format and number of channels will not be changed for ASIO input, since this will be used as already specified in the constructor.

8. The ASIO input device will be started again (only, if it has been started before).

Note: This method will only disable the FullDuplexChannel if specified in the disableOutput parameter.

This method can not be used with ASIO output (see IsInput). It will immediately return with no effect.

To enable the full-duplex option again, call SetFullDuplex(Int32, Int32).

Note, that this method also resets the BypassFullDuplex property to .

Examples

Automatic use of the BassAsioHandler (recording input, full-duplex):
private BassAsioHandler _asio;
...
// assign ASIO input to the first device and channel (stereo, 32-bit float, 48kHz)
_asio = new BassAsioHandler(true, 0, 0, 2, BASSASIOFormat.BASS_ASIO_FORMAT_FLOAT, 48000);
// set the full-duplex option to the first ASIO output device and channel
// the ASIO output format will aways be the same as the input for full-duplex
_asio.SetFullDuplex(0, 0); // first output device and channel
// start ASIO
_asio.Start(0);
...
// remove the full-duplex option and leave the channel enabled
_asio.RemoveFullDuplex(false);
// but pause the unused output channel
BassAsio.BASS_ASIO_ChannelPause(false, 0);
...
See Also

Reference