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);
 }