protected virtual bool ConfigureASIO(IBassStreamComponent previous) { Logger.Write(this, LogLevel.Debug, "Configuring ASIO."); BassAsioUtils.OK(BassAsioHandler.StreamSet(previous.ChannelHandle)); BassAsioUtils.OK(BassAsioHandler.ChannelEnable(false, BassAsioDevice.PRIMARY_CHANNEL)); if (previous.Channels == 1) { Logger.Write(this, LogLevel.Debug, "Mirroring channel: {0} => {1}", BassAsioDevice.PRIMARY_CHANNEL, BassAsioDevice.SECONDARY_CHANNEL); BassAsioUtils.OK(BassAsio.ChannelEnableMirror(BassAsioDevice.SECONDARY_CHANNEL, false, BassAsioDevice.PRIMARY_CHANNEL)); } else { for (var channel = 1; channel < previous.Channels; channel++) { Logger.Write(this, LogLevel.Debug, "Joining channel: {0} => {1}", channel, BassAsioDevice.PRIMARY_CHANNEL); BassAsioUtils.OK(BassAsio.ChannelJoin(false, channel, BassAsioDevice.PRIMARY_CHANNEL)); } } return(true); }