private IOReclist GetIOReclist(Reclist reclist) { if (reclist == null) { return(null); } var iOReclist = new IOReclist(); var phonemes = new IOPhonemes(); phonemes.Vowels = reclist.Vowels.Select(n => n.Alias).ToArray(); phonemes.Consonants = reclist.Consonants.Select(n => n.Alias).ToArray(); iOReclist.Phonemes = phonemes; var files = new List <IOWavParams>(); foreach (var recline in reclist.Reclines) { var wavParams = new IOWavParams() { Filename = recline.Name, Description = recline.Description, Phonemes = recline.PhonemesRaw == null ? new string[0] : recline.PhonemesRaw.Select(n => n.Alias).ToArray() }; files.Add(wavParams); } iOReclist.Files = files.ToArray(); return(iOReclist); }
public void WriteYaml(string filename, IOReclist ioReclist) { using (var writer = new StreamWriter(filename, false, Encoding.UTF8)) { var serializer = new Serializer(); serializer.Serialize(writer, ioReclist, typeof(IOReclist)); } }
private Reclist GetReclist(IOReclist ioReclist, string name, bool isTest = false) { var reclist = new Reclist(); reclist.IsTest = isTest; reclist.Name = name; reclist.WavMask = WavMaskReader.Current.Read(PathResolver.Current.Mask(reclist.Name, reclist.IsTest)); var phonemes = new List <Phoneme> { Rest.Create() }; foreach (var phoneme in ioReclist.Phonemes.Consonants) { if (phoneme == Rest.ALIAS || phoneme == "") { continue; } // HACK: can't find how to escape ~ in yaml if (phoneme == null) { phonemes.Add(new Consonant("~")); } else { phonemes.Add(new Consonant(phoneme)); } } foreach (var phoneme in ioReclist.Phonemes.Vowels) { if (phoneme == Rest.ALIAS || phoneme == "") { continue; } if (phoneme == null) { phonemes.Add(new Vowel("~")); } else { phonemes.Add(new Vowel(phoneme)); } } reclist.SetPhonemes(phonemes); foreach (var file in ioReclist.Files) { var reclinePhonemes = file.Phonemes.Select(n => reclist.GetPhoneme(n)).ToList(); var recline = new Recline(reclist, file.Filename, reclinePhonemes, file.Description); reclist.AddRecline(recline); } reclist.IsLoaded = true; return(reclist); }
public IOReclist ReadYaml(string filename) { IOReclist ioReclist = null; try { using (var fileStream = new FileStream(filename, FileMode.Open)) { var serializer = new Deserializer(); ioReclist = serializer.Deserialize(new StreamReader(fileStream, Encoding.UTF8), typeof(IOReclist)) as IOReclist; } } catch { } return(ioReclist); }
private void CheckReclist(string[] commandParams) { var command = CONSOLE_COMMAND_CHECK_RECLIST; if (!CheckArgsCount(commandParams, 1, command)) { return; } var reclistName = commandParams[0]; var filename = PathResolver.Current.Reclist(reclistName + PathResolver.RECLIST_EXT); PrintMessage("Filename: " + filename); if (!CheckFileExists(filename, mustExist: true)) { return; } IOReclist ioReclist = null; using (var fileStream = new FileStream(filename, FileMode.OpenOrCreate)) { var serializer = new Deserializer(); try { ioReclist = serializer.Deserialize(new StreamReader(fileStream, Encoding.UTF8), typeof(IOReclist)) as IOReclist; } catch { } } if (ioReclist == null) { PrintError(Localization.STR_COMMAND_ERROR_CANT_READ_YAML); return; } var reclist = ReclistReader.Current.Read(reclistName); if (reclist == null || !reclist.IsLoaded) { PrintError(Localization.STR_COMMAND_ERROR_CANT_READ_RECLIST); return; } PrintSuccess(Localization.STR_COMMAND_CHECK_RECLIST_LOADED); var replacerFilename = PathResolver.Current.Replacer(reclist.Name); PrintMessage("Replacer filename: " + replacerFilename); if (!File.Exists(replacerFilename)) { PrintMessage(Localization.STR_COMMAND_CHECK_RECLIST_WTR_IS_MISSING); } else { PrintSuccess(Localization.STR_COMMAND_CHECK_RECLIST_WTR_IS_OK); } var maskFilename = PathResolver.Current.Mask(reclist.Name); PrintMessage("Mask filename: " + maskFilename); if (!File.Exists(maskFilename)) { PrintMessage(Localization.STR_COMMAND_CHECK_RECLIST_MASK_IS_MISSING); } else { var serializer = new Deserializer(); IOWavMask ioWavMask = null; using (var fileStream = new FileStream(maskFilename, FileMode.OpenOrCreate)) { try { ioWavMask = serializer.Deserialize(new StreamReader(fileStream, Encoding.UTF8), typeof(IOWavMask)) as IOWavMask; } catch { } } if (ioWavMask == null) { PrintError(Localization.STR_COMMAND_CHECK_RECLIST_MASK_CANT_READ_YAML); return; } PrintSuccess(Localization.STR_COMMAND_CHECK_RECLIST_MASK_IS_OK); } PrintSuccess(Localization.STR_COMMAND_CHECK_RECLIST_FINISH); }