Exemplo n.º 1
0
        /// <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));
        }
Exemplo n.º 2
0
        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();
        }