anx.framework/Support/WaveUtils/WaveConverter.cs

51 lines
1.1 KiB
C#

using System;
using System.IO;
// This file is part of the ANX.Framework and originally taken from
// the AC.AL OpenAL library, released under the MIT License.
// For details see: http://acal.codeplex.com/license
namespace WaveUtils
{
public class WaveConverter
{
private WaveInfo loadedData;
public WaveConverter(WaveInfo setLoadedData)
{
setLoadedData = loadedData;
}
public void ConvertToPcm()
{
ConvertToPcm(loadedData.Channels);
}
public void ConvertToPcm(int resultChannelCount)
{
switch (loadedData.WaveFormat)
{
case WaveFormat.ALAW:
ALaw.ConvertToPcm(loadedData, resultChannelCount);
break;
case WaveFormat.MULAW:
MuLaw.ConvertToPcm(loadedData, resultChannelCount);
break;
case WaveFormat.IEEE_FLOAT:
IEEEFloat.ConvertToPcm(loadedData, resultChannelCount);
break;
case WaveFormat.MS_ADPCM:
MsAdpcm.ConvertToPcm(loadedData);
break;
default:
throw new NotSupportedException("The WAVE format " + loadedData.WaveFormat +
" is not supported yet. Unable to load!");
}
}
}
}