public BassAsioStreamOutput(BassAsioStreamOutputBehaviour behaviour, BassOutputStream stream) : this() { this.Behaviour = behaviour; if (BassUtils.GetChannelDsdRaw(stream.ChannelHandle)) { this.Rate = BassUtils.GetChannelDsdRate(stream.ChannelHandle); this.Flags |= BassFlags.DSDRaw; } else { if (behaviour.Output.Rate == stream.Rate) { this.Rate = stream.Rate; } else if (!behaviour.Output.EnforceRate && BassAsioDevice.Info.SupportedRates.Contains(stream.Rate)) { this.Rate = stream.Rate; } else { Logger.Write(this, LogLevel.Debug, "The requested output rate is either enforced or the device does not support the stream's rate: {0} => {1}", stream.Rate, behaviour.Output.Rate); this.Rate = behaviour.Output.Rate; } if (behaviour.Output.Float) { this.Flags |= BassFlags.Float; } } this.Channels = stream.Channels; }
public BassAsioStreamOutput(BassAsioStreamOutputBehaviour behaviour, BassOutputStream stream) : this() { this.Behaviour = behaviour; this.Rate = behaviour.Output.Rate; this.Channels = BassAsioDevice.Info.Outputs; this.Flags = BassFlags.Decode; if (this.Behaviour.Output.Float) { this.Flags |= BassFlags.Float; } }