36 public override int Read(
byte[] buffer,
int offset,
int count) {
37 ArgumentNullException.ThrowIfNull(buffer);
40 || offset + count > buffer.Length) {
41 throw new InvalidOperationException(
"Invalid range.");
45 int count2 = Math.Min(count / 2,
m_samples.Length);
51 if (BitConverter.IsLittleEndian) {
52 for (
int i = 0; i < num2; i++) {
53 short num3 = (short)(
m_samples[i] * 32767f);
54 buffer[offset++] = (byte)num3;
55 buffer[offset++] = (byte)(num3 >> 8);
59 for (
int j = 0; j < num2; j++) {
60 short num4 = (short)(
m_samples[j] * 32767f);
61 buffer[offset++] = (byte)(num4 >> 8);
62 buffer[offset++] = (byte)num4;