/// <summary> /// Finds the converting method based on the specified formats. /// </summary> /// <param name="data">Reference to the buffer of audio data.</param> /// <param name="from">Audio format that the data will be converted from.</param> /// <param name="to">Audio format that the data will be converted to.</param> /// <returns>New array with the audio data in requested format.</returns> internal static byte[] Convert(short[] data, AudioCodec from, AudioCodec to) { ConvertShortByte cnvDlgt = null; switch (from) { case AudioCodec.PCM16: switch (to) { case AudioCodec.PCM8: cnvDlgt = new ConvertShortByte(ConvertLinear8LinearShortByte); break; case AudioCodec.PCM16: cnvDlgt = new ConvertShortByte(ConvertLinear2LinearShortByte); break; case AudioCodec.G711U: cnvDlgt = new ConvertShortByte(ConvertLinear2ULaw); break; case AudioCodec.G711A: cnvDlgt = new ConvertShortByte(ConvertLinear2ALaw); break; } break; default: throw new FormatException(); } return(cnvDlgt(data, data.Length)); }
internal static byte[] Convert(short[] data, AudioCodec from, AudioCodec to) { ConvertShortByte convertShortByte = null; if (from == AudioCodec.PCM16) { switch (to) { case AudioCodec.PCM8: convertShortByte = ConvertLinear8LinearShortByte; break; case AudioCodec.PCM16: convertShortByte = ConvertLinear2LinearShortByte; break; case AudioCodec.G711U: convertShortByte = ConvertLinear2ULaw; break; case AudioCodec.G711A: convertShortByte = ConvertLinear2ALaw; break; } return(convertShortByte(data, data.Length)); } throw new FormatException(); }