BASS.NET API for the Un4seen BASS Audio LibraryBassAsioHandlerAsioToBassFullDuplexCallback Method BASS.NET API for the Un4seen BASS Audio Library
Provides a ready made ASIOPROC callback procedure which might be used for full-duplex ASIO input to Bass output.

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

public virtual int AsioToBassFullDuplexCallback(
	bool input,
	int channel,
	IntPtr buffer,
	int length,
	IntPtr user
)

Parameters

input
Type: SystemBoolean
Dealing with an input channel? Must be , since we are only dealing with Asio input (full-duplex output is via OutputChannel).
channel
Type: SystemInt32
The input channel number... 0 = first.
buffer
Type: SystemIntPtr
The pointer to the buffer containing the recorded data.
length
Type: SystemInt32
The number of BYTES to process.
user
Type: SystemIntPtr
Not used.

Return Value

Type: Int32
Returns 0, since we are only dealing with Asio input.
Remarks

To apply DSP/FX independetly to the input and output you might use the InputChannel and OutputChannel respectively.

If you intend to overload this callback in a derive implementation make sure to call the base method to not loose any functionatily.

Examples

Implementing your own callback in a derived implementation:
VB
Public Class MyAsioHandler 
  Inherits BassAsioHandler

  Public Overrides Function AsioToBassFullDuplexCallback(input As Boolean, channel As Integer, buffer As IntPtr, length As Integer, user As IntPtr) As Integer
    ' FullDuplex not applied yet
    If input Then
      ' do your own input stuff here...
    Else
      ' do your own output stuff here...
    End If
    Dim len As Integer = MyBase.AsioToBassFullDuplexCallback(input, channel, buffer, length, user)
    ' FullDuplex already applied
    If input Then
      ' do your own input stuff here...
    Else
      ' do your own output stuff here...
    End If
    Return len
  End Function

End Class
public class MyAsioHandler : BassAsioHandler
{

  public override int AsioToBassFullDuplexCallback(bool input, int channel, IntPtr buffer, int length, IntPtr user)
  {
    // FullDuplex not applied yet
    if (input)
    {
      // do your own input stuff here...
    }
    else
    {
      // do your own output stuff here...
    }
    int len = base.AsioToBassFullDuplexCallback(input, channel, buffer, length, user);
    // FullDuplex already applied
    if (input)
    {
      // do your own input stuff here...
    }
    else
    {
      // do your own output stuff here...
    }
    return len;
  }

}
See Also

Reference