public SwavStream(SWAR.Wave wave) { m_Wave = wave; m_WaveFormat = new WaveFormat(wave.m_SampleRate, wave.m_WaveType == SWAR.WaveType.PCM8 ? 8 : 16, 1); m_Position = 0; if (m_Wave.m_WaveType == SWAR.WaveType.ADPCM) { m_CurrPcm16Val = (short)m_Wave.m_TheWave.Read16(0); m_CurrIndex = m_Wave.m_TheWave.Read16(2); m_Position = 4; if (m_Wave.m_Loop) { byte[] buffer = new byte[4 * (m_Wave.m_LoopStart - 4)]; Read(buffer, 0, (int)(4 * (m_Wave.m_LoopStart - 4))); m_LoopStartPcm16Val = m_CurrPcm16Val; m_LoopStartIndex = m_CurrIndex; //restore the starting state m_CurrPcm16Val = (short)m_Wave.m_TheWave.Read16(0); m_CurrIndex = m_Wave.m_TheWave.Read16(2); m_Position = 4; } } m_Resampled = new WdlResamplingSampleProvider(this, 44100); }
public void PlaySound(SWAR.Wave wave) { PlaySound(wave.m_TheTrueWave); }