public SecondaryBuffer ReadFromDisk(int SoundID) { if (m_Device == null) { return(null); } if (SoundID < 0) { return(null); } m_Index.BaseStream.Seek((long)(SoundID * 12), SeekOrigin.Begin); int num = m_Index.ReadInt32(); int num2 = m_Index.ReadInt32(); int num3 = m_Index.ReadInt32(); if ((num < 0) || (num2 <= 0)) { if (!this.Translate(ref SoundID)) { return(null); } m_Index.BaseStream.Seek((long)(SoundID * 12), SeekOrigin.Begin); num = m_Index.ReadInt32(); num2 = m_Index.ReadInt32(); num3 = m_Index.ReadInt32(); } if ((num < 0) || (num2 <= 0)) { return(null); } num2 -= 40; m_Stream.Seek((long)(num + 40), SeekOrigin.Begin); BufferDescription description = new BufferDescription(m_Format); description.set_BufferBytes(num2); description.set_ControlPan(true); description.set_ControlVolume(true); SecondaryBuffer buffer = new SecondaryBuffer(description, m_Device); buffer.Write(0, m_Stream, num2, 2); return(buffer); }
public SecondaryBuffer ReadFromDisk(int SoundID) { if (m_Device == null) { return null; } if (SoundID < 0) { return null; } m_Index.BaseStream.Seek((long) (SoundID * 12), SeekOrigin.Begin); int num = m_Index.ReadInt32(); int num2 = m_Index.ReadInt32(); int num3 = m_Index.ReadInt32(); if ((num < 0) || (num2 <= 0)) { if (!this.Translate(ref SoundID)) { return null; } m_Index.BaseStream.Seek((long) (SoundID * 12), SeekOrigin.Begin); num = m_Index.ReadInt32(); num2 = m_Index.ReadInt32(); num3 = m_Index.ReadInt32(); } if ((num < 0) || (num2 <= 0)) { return null; } num2 -= 40; m_Stream.Seek((long) (num + 40), SeekOrigin.Begin); BufferDescription description = new BufferDescription(m_Format); description.set_BufferBytes(num2); description.set_ControlPan(true); description.set_ControlVolume(true); SecondaryBuffer buffer = new SecondaryBuffer(description, m_Device); buffer.Write(0, m_Stream, num2, 2); return buffer; }