コード例 #1
0
ファイル: Sounds.cs プロジェクト: uotools/PlayUO
        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);
        }
コード例 #2
0
ファイル: Sounds.cs プロジェクト: Skinny1001/PlayUO
 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;
 }