public unsafe long Seek(long frames, SfSeek seek = SfSeek.Begin) { if (!Seekable) { throw new NotSupportedException(); } var position = sf_seek(Handle, frames, seek); if (position == -1) { throw new InvalidOperationException(GetErrorMessage(Handle)); } return(position); }
public static SeekOrigin ToSeekOrigin(this SfSeek seek) { switch (seek) { case SfSeek.Begin: return(SeekOrigin.Begin); case SfSeek.Current: return(SeekOrigin.Current); case SfSeek.End: return(SeekOrigin.End); default: throw new ArgumentOutOfRangeException(nameof(seek), seek, null); } }
private static extern unsafe long sf_seek( SndFile__ *sndFile, long frames, SfSeek whence );
private long Seek(long offset, SfSeek seek, IntPtr userData) { return(Stream.Seek(offset, seek.ToSeekOrigin())); }