namespace Bmp.Core.FFMpeg.CsCorePorts;
///
/// Defines the base for all audio streams which provide samples instead of raw byte data.
///
///
/// Compared to the , the provides samples instead of raw bytes.
/// That means that the and the properties
/// are expressed in samples.
/// Also the method provides samples instead of raw bytes.
///
public interface ISampleSource : IReadableAudioSource
{
/*///
/// Reads a sequence of samples from the and advances the position within the stream by the
/// number of samples read.
///
///
/// An array of floats. When this method returns, the contains the specified
/// float array with the values between and ( +
/// - 1) replaced by the floats read from the current source.
///
///
/// The zero-based offset in the at which to begin storing the data
/// read from the current stream.
///
/// The maximum number of samples to read from the current source.
/// The total number of samples read into the buffer.
int Read(float[] buffer, int offset, int count);
*/
}
///
/// Defines the base for all aggregators.
///
public interface ISampleAggregator : ISampleSource, IAggregator
{
}
///
/// Defines the base for all aggregators.
///
public interface IWaveAggregator : IWaveSource, IAggregator
{
}
///
/// Defines the base for all aggregators.
///
/// The type of data, the aggregator provides.
/// The type of the aggreator type.
public interface IAggregator
: IReadableAudioSource where TAggregator : IReadableAudioSource
{
///
/// Gets the underlying .
///
///
/// The underlying .
///
TAggregator BaseSource { get; }
}