public Sett SourceSettings() { if (!Directory.Exists(configDir)) { // User probably removed the config directory, creat it again Directory.CreateDirectory(configDir); } if (!File.Exists(configFile)) { // No config file detected, recreate it try { File.Create(configFile).Dispose(); // create file } catch { Debug.WriteLine("Could not create '" + configFile + "'."); } try { System.IO.File.WriteAllText(configFile, defaultConfig); // fill with default config } catch { Debug.WriteLine("Could not write to '" + configFile + "'. Possibly in use"); } } FileAttributes fileAttributes = File.GetAttributes(configFile); if ((fileAttributes & FileAttributes.ReadOnly) != FileAttributes.ReadOnly) { try { Debug.WriteLine("Hello " + configFile + "'."); String jsonString = System.IO.File.ReadAllText(configFile); //probably should validate its a json, and that it has the correct structure Sett settings = JsonConvert.DeserializeObject <Sett>(jsonString); if (settings == null) { return(null); } return(settings); } catch { Debug.WriteLine("Empty File " + appConfigFile + "'."); } } return(null); }
public void saveConfig(Sett settings) { String objectJson = JsonConvert.SerializeObject(settings); FileAttributes fileAttributes = File.GetAttributes(configFile); if ((fileAttributes & FileAttributes.ReadOnly) != FileAttributes.ReadOnly) { try { System.IO.File.WriteAllText(configFile, objectJson); } catch { Debug.WriteLine("Could not get Stream for '" + configFile + "'. Possibly in use"); } } }
static void Main() { Config config = new Config(); Sett settings = config.SourceSettings(); List <App> apps = config.SourceAppConfig(); if (apps == null) // error in json { const string message = "Configuration Volume file error."; const string caption = "Midi2Vol"; MessageBox.Show(message, caption, MessageBoxButtons.OK, MessageBoxIcon.Error); config.removeAppConfig(); Application.Restart(); // restart to load new app configs Environment.Exit(0); } else if (settings == null) //error in json { const string message = "Configuration Setting file error."; const string caption = "Midi2Vol"; MessageBox.Show(message, caption, MessageBoxButtons.OK, MessageBoxIcon.Error); config.removeSett(); Application.Restart(); // restart to load new sett configs Environment.Exit(0); } else { TrayApplicationContext nanoSliderTray = new TrayApplicationContext(settings); MidiSlider nanoSlider = new MidiSlider(settings, apps, nanoSliderTray); if (RunningInstance() == null) { Debug.WriteLine("lets run"); Task.Run(() => nanoSlider.Slider()); Application.Run(nanoSliderTray);//run everything before this line or wont be runned } else { nanoSliderTray.ProgramAlreadyRuning(); } } }
public MidiSlider(Sett settings, List <App> apps, TrayApplicationContext nanoSliderTray) { this.settings = settings; this.apps = apps; this.nanoSliderTray = nanoSliderTray; }
public TrayApplicationContext(Sett settings) { this.settings = settings; ; ContextMenu _trayMenu = new ContextMenu { }; _trayIcon.Icon = GetIcon(settings.trayBarIcon)[0]; _trayIcon.Text = Application.ProductName + " - Ver: " + Application.ProductVersion; // Main menu appConfig = _trayMenu.MenuItems.Add("Volume Settings", configClick); settingsmenu = _trayMenu.MenuItems.Add("Midi2Vol Settings"); icon = _trayMenu.MenuItems.Add("Icon Settings"); _trayMenu.MenuItems.Add("-"); exit = _trayMenu.MenuItems.Add("Exit", ExitClick); // Settings submenu noti = settingsmenu.MenuItems.Add("Notify", notif); if (settings.notifyApp) { noti.Checked = true; } runStartup = settingsmenu.MenuItems.Add("Run on StartUp", startupClick); if (settings.bootStartUp) { runStartup.Checked = true; } notifyStatus = settingsmenu.MenuItems.Add("Notify Status", notifS); if (settings.notifyStatus) { notifyStatus.Checked = true; } // Icon submenu iconSlider = icon.MenuItems.Add("Default", clickSlider); iconBento = icon.MenuItems.Add("NanoBento", clickBento); iconWavez = icon.MenuItems.Add("NanoWavez", clickWavez); iconMizu = icon.MenuItems.Add("NanoMizu", clickMizu); iconWhite = icon.MenuItems.Add("NanoWhite", clickWhite); iconDynamic = icon.MenuItems.Add("NanoDynamic", clickDynamic); switch (settings.trayBarIcon) { case "NanoSlider": iconSlider.Checked = true; break; case "NanoBento": iconBento.Checked = true; break; case "NanoWavez": iconWavez.Checked = true; break; case "NanoMizu": iconMizu.Checked = true; break; case "NanoWhite": iconWhite.Checked = true; break; case "NanoDynamic": iconDynamic.Checked = true; break; default: iconSlider.Checked = true; break; } _trayIcon.ContextMenu = _trayMenu; _trayIcon.Visible = true; }