Exemple #1
0
        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()));
                }
            };
        }