public void BuildConfigFromDir(string subDirName) { if (Directory.Exists(subDirName)) { var cfg = $".\\{subDirName}\\{subDirName}.json"; if (File.Exists(cfg)) { Load(cfg); } else { DisposeAudioCache(); ActiveConfig = new SoundConfig(); ActiveConfig.SourceFileName = cfg; } var filesFound = Directory.GetFiles(Environment.CurrentDirectory + "\\" + subDirName, "*.*") .Where(s => s.EndsWith(".mp3", StringComparison.OrdinalIgnoreCase) || s.EndsWith(".wav", StringComparison.OrdinalIgnoreCase)); var y = 0; foreach (var f in filesFound) { var localFile = f.ToLower().Replace(Environment.CurrentDirectory.ToLower(), "."); if (!ActiveConfig.Sounds.Any((x) => x.FilePath.Equals(localFile, StringComparison.InvariantCultureIgnoreCase))) { var s = new Sound { FilePath = f.ToLower().Replace(Environment.CurrentDirectory.ToLower(), "."), Id = (new FileInfo(f)).Name, Loop = false }; for (var x = 0; x < 8; x++) { s.Cues.Add( new SoundCue { CueName = $"Grid({x},{y})", FadeInTime = 0, FadeOutTime = 0, PitchFactor = x == 0.0f ? 1.0f : ((x / 7.0f) * 2.0f), StartPosition = 0, StartSilent = false } ); } ActiveConfig.Sounds.Add(s); y++; } } ActiveConfig.Save(); } else { Log($"Director not found {subDirName}"); } }
public void Load(string fileName) { if (File.Exists(fileName)) { DisposeAudioCache(); try { ActiveConfig = SoundConfig.Load(fileName); } catch (Exception ex) { Log($"Failed to load cfg {fileName}, reason: {ex.Message}"); ActiveConfig = new SoundConfig(); } } }