Accord.Audio.Formats.WaveEncoder.firstWriteHeaders C# (CSharp) Method

firstWriteHeaders() private method

private firstWriteHeaders ( ) : void
return void
        private void firstWriteHeaders()
        {
            // Create data header
            header.Header = new char[] { 'd', 'a', 't', 'a' };
            header.Length = this.bytes;
            byte[] dataHeader = header.GetBytes();

            // Create Wave format header
            format.FmtHeader = new char[] { 'f', 'm', 't', ' ' };
            format.Length = 16;
            format.Channels = (short)this.channels;
            format.FormatTag = (short)sampleFormat.ToWaveFormat();
            format.SamplesPerSecond = sampleRate;
            format.BitsPerSample = (short)this.bitsPerSample;
            format.BlockAlignment = (short)this.blockAlign;
            format.AverageBytesPerSecond = this.averageBitsPerSecond / 8;
            waveFormat = format.GetBytes();

            // Create RIFF header
            riff.RiffHeader = new char[] { 'R', 'I', 'F', 'F' };
            riff.WaveHeader = new char[] { 'W', 'A', 'V', 'E' };
            riff.Length = this.bytes + dataHeader.Length + waveFormat.Length;
            byte[] riffHeader = riff.GetBytes();

            // Write headers to allocate space
            waveStream.Write(riffHeader, 0, riffHeader.Length);
            waveStream.Write(waveFormat, 0, waveFormat.Length);
            waveStream.Write(dataHeader, 0, dataHeader.Length);
        }