void LoadHardware <T>() { Settings set = Settings.Get <Settings>(); if (set != null) { try { string proxystr = set.Read(Settings.LAST_USED, Settings.PROXY <T>(), string.Empty); if (String.IsNullOrEmpty(proxystr)) { return; } Type proxyType = Reflector.GetType(proxystr); if (proxyType == null) { return; } if (Settings.Get(proxyType) != null) { return; } /// change and use the provider instead of the proxy, to avoir creation of proxy just to create the last used IHardwareProxy proxy = Reflector.CreateInstance <IHardwareProxy>(proxyType); string hardwareId = set.Read(Settings.LAST_USED, Settings.HARDWAREID <T>(), string.Empty); proxy = proxy.LoadFromHardwareId(hardwareId); Settings.RegisterInstance(proxy); } catch { } } }
void SaveHardware <T>() { Settings set = Settings.Get <Settings>(); if (set != null) { IHardwareProxy proxy = Settings.Get <T>() as IHardwareProxy; if (proxy != null) { set.Write(Settings.LAST_USED, Settings.PROXY <T>(), proxy.GetType().AssemblyQualifiedName); set.Write(Settings.LAST_USED, Settings.HARDWAREID <T>(), proxy.HardwareId); } else { set.Write(Settings.LAST_USED, Settings.PROXY <T>(), string.Empty); set.Write(Settings.LAST_USED, Settings.HARDWAREID <T>(), string.Empty); } } }
private void ShowHideHardwareView(StatusImageButton button) { IHardwareProxy proxy = GetAssociatedProxy(button); if (proxy != null) { Control viewer = proxy.GetViewer(); if (viewer == null || (SettingsPanel.Controls.Count > 0 && SettingsPanel.Controls[0].GetType() == viewer.GetType())) { ClearSettingsPanel(); if (viewer is IDisposable) { ((IDisposable)viewer).Dispose(); } } else { ShowSettingsPanel(viewer); } } }