public MainWindow() { InitializeComponent(); _configManager = new ConfigManager("config.json", OnConfigUpdated); var fileName = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData), "Google Play Music Desktop Player", "json_store", "playback.json"); var fileWatcher = new JsonWatcher <Playback, PlaybackUpdateEvent>(fileName, 150) { CheckUpdate = (c, p) => new PlaybackUpdateEvent(c, p), OnUpdate = OnPlaybackUpdate, OnLoad = p => { if (p.IsNull()) { return; } Dispatcher.Invoke(new JsonWatcher <Playback, PlaybackUpdateEvent> .DoOnUpdate(OnPlaybackUpdate), new PlaybackUpdateEvent(p, new Playback())); } }; Loaded += (s, e) => { fileWatcher.Start(); Visibility = Visibility.Hidden; _configManager.Load(); }; Deactivated += WindowDeactivated; }
public ConfigManager(string configFile, DoOnConfigUpdated configUpdated) { _configFile = configFile; _configUpdated = configUpdated; var gpmdpSettingsFile = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData), "Google Play Music Desktop Player", "json_store", ".settings.json"); _fileWatcher = new JsonWatcher <GpmdpSettings, GpmdpSettingsEvent>(gpmdpSettingsFile, 1000) { CheckUpdate = (c, p) => new GpmdpSettingsEvent(c, p), OnUpdate = OnGpmdpSettingsUpdate, OnLoad = s => { // if (!s.enableJSON_API) // return; OnGpmdpSettingsUpdate(new GpmdpSettingsEvent(s, new GpmdpSettings())); } }; }