AGS.Editor.Components.SpeechComponent.CompileLipSyncFiles C# (CSharp) Method

CompileLipSyncFiles() private method

private CompileLipSyncFiles ( CompileMessages errors ) : void
errors CompileMessages
return void
        private void CompileLipSyncFiles(CompileMessages errors)
        {
            List<SpeechLipSyncLine> lipSyncDataLines = new List<SpeechLipSyncLine>();

            foreach (string fileName in Utilities.GetDirectoryFileList(Directory.GetCurrentDirectory(), PAMELA_FILE_FILTER))
            {
                lipSyncDataLines.Add(CompilePamelaFile(fileName, errors));
            }

            foreach (string fileName in Utilities.GetDirectoryFileList(Directory.GetCurrentDirectory(), PAPAGAYO_FILE_FILTER))
            {
                lipSyncDataLines.Add(CompilePapagayoFile(fileName, errors));
            }

            if (File.Exists(LIP_SYNC_DATA_OUTPUT))
            {
                File.Delete(LIP_SYNC_DATA_OUTPUT);
            }

            if ((!errors.HasErrors) && (lipSyncDataLines.Count > 0))
            {
                BinaryWriter bw = new BinaryWriter(new FileStream(LIP_SYNC_DATA_OUTPUT, FileMode.Create, FileAccess.Write));
                bw.Write((int)4);
                bw.Write(lipSyncDataLines.Count);

                foreach (SpeechLipSyncLine line in lipSyncDataLines)
                {
                    bw.Write((short)line.Phonemes.Count);

                    byte[] fileNameBytes = Encoding.Default.GetBytes(line.FileName);
                    byte[] paddedFileNameBytes = new byte[14];
                    Array.Copy(fileNameBytes, paddedFileNameBytes, fileNameBytes.Length);
                    paddedFileNameBytes[fileNameBytes.Length] = 0;
                    bw.Write(paddedFileNameBytes);

                    for (int i = 0; i < line.Phonemes.Count; i++)
                    {
                        bw.Write((int)line.Phonemes[i].EndTimeOffset);
                    }
                    for (int i = 0; i < line.Phonemes.Count; i++)
                    {
                        bw.Write((short)line.Phonemes[i].Frame);
                    }
                }

                bw.Close();
            }
        }