public override bool Wrap(IBassStreamProvider provider, int channelHandle, IEnumerable <IBassStreamAdvice> advice, BassFlags flags, out IBassStream stream) { var offset = default(long); var length = default(long); if (this.Offset != TimeSpan.Zero) { offset = Bass.ChannelSeconds2Bytes(channelHandle, this.Offset.TotalSeconds); } if (this.Length != TimeSpan.Zero) { length = Bass.ChannelSeconds2Bytes(channelHandle, this.Length.TotalSeconds); } if (offset != 0 || length != 0) { if (length == 0) { length = Bass.ChannelGetLength(channelHandle, PositionFlags.Bytes) - offset; } stream = new BassStream( provider, BassSubstream.CreateStream(channelHandle, offset, length, flags), length, advice, flags ); return(true); } stream = null; return(false); }
static BassCueStreamAdvice() { BassSubstream.Init(); BassSubstream.FreeParent = true; }
static BassSkipSilenceStreamAdvice() { BassSubstream.Init(); BassSubstream.FreeParent = true; }