public MusicList(Settings settings, SongRules rules) { if(rules != null) { Rules = rules; } else { throw new ArgumentNullException(nameof(rules)); } AppSettings = settings; Random = new Random(); ReadListFromDisc(); Rules.OnChange += (s, a) => { FillSongLists(); }; }
public RulesEdit(SongRules rules, MusicList allMusic) { if(rules != null) { Rules = rules; } else { throw new ArgumentNullException(nameof(rules)); } if(allMusic != null) { AllMusic = allMusic; } else { throw new ArgumentNullException(nameof(allMusic)); } InitializeComponent(); SetupLists(); }
private void Init() { string rulesPath; if(AppSettings.TryGetSetting("SongRulesPath", out rulesPath) && !string.IsNullOrEmpty(rulesPath)) { CurrentSongRules = SettingsFile.ReadSettingFile<SongRules>(rulesPath); if(CurrentSongRules == null) { File.Delete(rulesPath); CurrentSongRules = new SongRules(rulesPath); } } else { MessageBox.Show("Error: RulesPath setting is empty"); return; } MusicCollection = new MusicList(AppSettings, CurrentSongRules); WriteLine($"Loaded {MusicCollection.ActiveSongs.Count()} songs"); string playerPath; if(AppSettings.TryGetSetting("PlayerPath", out playerPath) && !string.IsNullOrEmpty(playerPath)) { SpeechControll = new SpeechInput(AppSettings, MusicCollection, playerPath); } else { MessageBox.Show("Error: PlayerPath setting is empty"); return; } foreach(var word in SpeechControll.Keywords) { Write(word + ", "); } WriteLine("Possible: "); UpdateSuggestions(); SpeechControll.MessageSend += (s) => { Action<string> update = WriteLine; Invoke(update, s); }; CurrentSongRules.OnChange += (s, a) => { Action update = UpdateSuggestions; Invoke(update); }; MusicCollection.SongListUpdated += (s, a) => { Action update = UpdateSuggestions; Invoke(update); }; new MessageOverlay("SpeechMusicController is listening!", 1500).Show(); }