Enum StreamSystem
User file system flag to be used with CreateStream(StreamSystem, BassFlags, FileProcedures, IntPtr)
Namespace: System.Dynamic.ExpandoObject
Assembly: ManagedBass.dll
Syntax
public enum StreamSystem : int
Buffer
Buffered file system (like also used by CreateStream(String, Int32, BassFlags, DownloadProcedure, IntPtr)).
The buffered file system is what is used by CreateStream(String, Int32, BassFlags, DownloadProcedure, IntPtr). As the name suggests, data from the file is buffered so that it's readily available for decoding - BASS creates a thread dedicated to "downloading" the data. This is ideal for when the data is coming from a source that has high latency, like the internet. It's not possible to seek in buffered file streams, until the download has reached the requested position - it's not possible to seek at all if it's being streamed in blocks.
BufferPush
Buffered, with the data pushed to BASS via StreamPutFileData(Int32, IntPtr, Int32).
The push buffered file system is the same as Buffer, except that instead of the file data being pulled from the FileReadProcedure function in a "download" thread, the data is pushed to BASS via StreamPutFileData(Int32, IntPtr, Int32). A FileReadProcedure function is still required, to get the initial data used in the creation of the stream.
NoBuffer
Unbuffered file system (like also used by CreateStream(String, Int64, Int64, BassFlags)).
The unbuffered file system is what is used by CreateStream(String, Int64, Int64, BassFlags). In this system, BASS does not do any intermediate buffering - it simply requests data from the file as and when it needs it. This means that reading (FileReadProcedure) must be quick, otherwise the decoding will be delayed and playback Buffer underruns (old data repeated) are a possibility. It's not so important for seeking (FileSeekProcedure) to be fast, as that is generally not required during decoding, except when looping a file.