Пример #1
0
        public TimingsEditor(MainWindow parent, SharedDisposable <RegistryKey> monitorKey, bool isCopy, string encodedMonitor, byte[] encodedGlasses)
        {
            InitializeComponent();
            listWaveforms.DataSource = defaultGlassesCmds;

            this.parent       = parent;
            this.monitorKey   = monitorKey;
            this.previousName = isCopy ? null : encodedMonitor;

            if (encodedMonitor != null)
            {
                this.textDisplayTimings.Text = encodedMonitor;
            }
            if (encodedGlasses != null)
            {
                this.textGlassesTimings.Text = StructureExtensions.ByteArrayToString(encodedGlasses);
            }

            if (encodedMonitor != null)
            {
                btnDecode_Click(btnDecodeDisplayTimings, null);
            }
            if (encodedGlasses != null)
            {
                btnDecode_Click(btnDecodeGlassesTimings, null);
            }

            UpdateListBoxButtons();
            UpdateSliderParams();
        }
Пример #2
0
        private void btnDeleteMonitor_Click(object sender, EventArgs e)
        {
            var currMonitorName = (string)comboMonitors.SelectedItem;

            if (currMonitorName == null)
            {
                return;
            }

            if (MessageBox.Show("Delete monitor " + currMonitorName + " ?", "Confirm monitor deletion", MessageBoxButtons.YesNo) != DialogResult.Yes)
            {
                return;
            }

            if (monitorSubKey != null)
            {
                monitorSubKey.Dispose();
                monitorSubKey = null;
            }

            try
            {
                parametersKey.DeleteSubKeyTree(currMonitorName);
                comboMonitors.SelectedIndex--;
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message, "Error deleting registry key");
            }

            btnRefreshMonitors_Click(null, null);
        }
Пример #3
0
 private void TimingsEditor_FormClosed(object sender, FormClosedEventArgs e)
 {
     if (monitorKey != null)
     {
         monitorKey.Dispose();
         monitorKey = null;
     }
 }
Пример #4
0
        private void comboMonitors_SelectedIndexChanged(object sender, EventArgs e)
        {
            if (suppressComboSelectedIndexChanged)
            {
                return;
            }

            var currMonitorName = (string)comboMonitors.SelectedItem;

            if (currMonitorName == null)
            {
                listMonitorTimings.SelectedIndex = -1;
                listMonitorTimings.DataSource    = null;
                btnCopyMonitor.Enabled           = false;
                btnDeleteMonitor.Enabled         = false;
                btnRefreshTimings.Enabled        = false;
                btnNewTiming.Enabled             = false;
                btnPatchNvStRes.Enabled          = false;
                listMonitorTimings_SelectedIndexChanged(listMonitorTimings, null);
                return;
            }
            else
            {
                btnCopyMonitor.Enabled    = true;
                btnDeleteMonitor.Enabled  = true;
                btnRefreshTimings.Enabled = true;
                btnNewTiming.Enabled      = true;
                btnPatchNvStRes.Enabled   = true;
            }

            try
            {
                if (monitorSubKey != null)
                {
                    monitorSubKey.Dispose();
                }
            }
            catch (Exception) { }
            finally { monitorSubKey = null; }

            try
            {
                monitorSubKey = new SharedDisposable <RegistryKey>(() => parametersKey.OpenSubKey(currMonitorName, true));
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message, String.Format("Error opening registry subkey for monitor {0}", currMonitorName));
                return;
            }

            btnRefreshTimings_Click(null, null);
        }
Пример #5
0
 private void MainWindow_FormClosed(object sender, FormClosedEventArgs e)
 {
     if (monitorSubKey != null)
     {
         monitorSubKey.Dispose();
         monitorSubKey = null;
     }
     if (parametersKey != null)
     {
         parametersKey.Dispose();
         parametersKey = null;
     }
 }
Пример #6
0
 public SharedDisposable(SharedDisposable <T> share)
 {
     lock (share.target)
     {
         // Check that Dispose() did not get a lock and dispose the
         //   object before we are able to obtain a reference to it.
         if (share.target.count == 0)
         {
             throw new ObjectDisposedException(nameof(share), "Target object has been disposed before being shared.");
         }
         target = share.target;
         target.count++;
     }
 }