public void Start()
 {
     if (!connected)
     {
         try
         {
             TimerResolution.TimeBeginPeriod(1);
             List <string> deviceNames = CaptureDevice.GetDeviceNames();
             int           deviceIndex = deviceNames.IndexOf(deviceName);
             if (deviceIndex >= 0)
             {
                 millisecondSleepInterval = (int)Math.Round(1000 / (double)this.frameRate);
                 List <CameraResolution> cr = CaptureDevice.GetAvailableResolutions(deviceIndex);
                 captureDevice = new CaptureDevice(deviceIndex, this.frameRate, this.ImageWidth, this.ImageHeight);
                 captureDevice.Start();
                 connected = true;
                 OnCameraStarted();
                 //    OnCameraStarted();
                 //     captureDevice.SetVideoProperty(VideoProcAmpProperty.Brightness, 200);
             }
         }
         catch
         {
             connected = false;
         }
     }
     if (connected)
     {
         runThread = new Thread(new ThreadStart(RunLoop));
         runThread.Start();
     }
 }
 private void OnTimer2ResolutionChanged(TimerResolution value)
 {
     if (this.Timer2ResolutionChanged == null)
     {
         return;
     }
     this.Timer2ResolutionChanged((object)this, new TimerResolutionEventArg(value));
 }
Beispiel #3
0
 private void stopButton_Click(object sender, EventArgs e)
 {
     stopButton.Enabled = false;
     agent?.Stop();
     TimerResolution.TimeEndPeriod(1); // See also the startButton_Click method.
     memoryViewer.Clear();
     communicationLogColorListBox.Items.Clear();
 }
Beispiel #4
0
 public void ThrowsOutOfRange()
 {
     Assert.Throws <ArgumentOutOfRangeException>(delegate {
         var mmTimer = new TimerResolution(0);
     });
     Assert.Throws <ArgumentOutOfRangeException>(delegate {
         var mmTimer = new TimerResolution(16);
     });
 }
 private void startButton_Click(object sender, EventArgs e)
 {
     TimerResolution.TimeBeginPeriod(1);  // Sets the timer resolution to 1 ms (default in Windows 7: 15.6 ms)
     startButton.Enabled = false;
     stopButton.Enabled  = true;
     agentTabControl.SelectTab(workingMemoryTabPage);
     agent.Start();
     agent.SetWindowPositions();
     agent.ShowVisualizerOnly();
 }
Beispiel #6
0
        private void btnIncrease_Click(object sender, System.EventArgs e)
        {
            using var mmTimerRes = new TimerResolution(4);
            var sb = new StringBuilder();

            if (mmTimerRes.Successful)
            {
                sb.AppendLine($"Resolution (set): {mmTimerRes.DesiredResolutionInMilliseconds} ms");
            }
            else
            {
                sb.AppendLine($"Resolution (failed): {mmTimerRes.DesiredResolutionInMilliseconds} ms");
            }
            sb.AppendLine($"Resolution (current): {SystemTimerResolution.ResolutionInTicks / 10000.0} ms");
            sb.AppendLine($"Resolution (minimum): {SystemTimerResolution.MinimumResolutionInTicks / 10000.0} ms");
            sb.AppendLine($"Resolution (maximum): {SystemTimerResolution.MaximumResolutionInTicks / 10000.0} ms");
            MsgBox.ShowInformation(this, sb.ToString());
        }
Beispiel #7
0
        private void startButton_Click(object sender, EventArgs e)
        {
            dialogueListCheckedListBox.Enabled = false;

            TimerResolution.TimeBeginPeriod(1);  // Sets the timer resolution to 1 ms (default in Windows 7: 15.6 ms)
            startButton.Enabled           = false;
            exitToolStripMenuItem.Enabled = false;

            // Check which processes should be enabled:
            for (int ii = 0; ii < dialogueListCheckedListBox.Items.Count; ii++)
            {
                string context       = dialogueListCheckedListBox.Items[ii].ToString();
                int    dialogueIndex = agent.DialogueList.FindIndex(d => d.Context == context);
                if (dialogueIndex > 0) // Not allowed to remove dialogue 0 (startup dialogue)
                {
                    if (dialogueListCheckedListBox.GetItemChecked(ii) == false)
                    {
                        agent.DialogueList.RemoveAt(dialogueIndex);
                    }
                }
            }

            agent.AutoArrangeWindows = autoarrangeWindowsToolStripMenuItem.Checked;
            Boolean startSuccessful = agent.StartProcesses();

            if (startSuccessful)
            {
                agent.Start(agent.DialogueList[0].Context);  // Start from the first dialogue in the list
                workingMemoryViewer.SetWorkingMemory(agent.WorkingMemory);
                workingMemoryViewer.ShowMemory();
                stopButton.Enabled = true;
            }
            else
            {
                startButton.Enabled = true;
                stopButton.Enabled  = false;
            }


            //other initializatiosn
            ItemHandler.LoadShortcuts(agent);
        }
 public void RunLoop()
 {
     while (connected)
     {
         Read();
         if (unsafeCodeMutex != null)
         {
             unsafeCodeMutex.WaitOne();
         }
         GC.Collect();
         GC.WaitForPendingFinalizers();
         if (unsafeCodeMutex != null)
         {
             unsafeCodeMutex.ReleaseMutex();
         }
         Thread.Sleep(millisecondSleepInterval);
     }
     captureDevice.Dispose();
     TimerResolution.TimeEndPeriod(1);
     OnCameraStopped();
 }
Beispiel #9
0
        private void PrepareCaptureLoop(int interval)
        {
            using (var resolution = new TimerResolution(1))
            {
                if (!resolution.SuccessfullySetTargetResolution)
                {
                    LogWriter.Log($"Imprecise timer resolution... Target: {resolution.TargetResolution}, Current: {resolution.CurrentResolution}");
                    Dispatcher.Invoke(() => HasImpreciseCapture = true);
                }

                if (UserSettings.All.ShowCursor)
                {
                    CaptureWithCursor(interval);
                }
                else
                {
                    CaptureWithoutCursor(interval);
                }

                Dispatcher.Invoke(() => HasImpreciseCapture = false);
            }
        }
        static void Main()
        {
            AllocConsole();

            var hOut     = GetStdHandle(STD_OUTPUT_HANDLE);
            var hRealOut = CreateFile("CONOUT$", GENERIC_READ | GENERIC_WRITE, FileShare.Write, IntPtr.Zero, FileMode.OpenOrCreate, 0, IntPtr.Zero);

            if (hRealOut != hOut)
            {
                SetStdHandle(STD_OUTPUT_HANDLE, hRealOut);
                Console.SetOut(new StreamWriter(Console.OpenStandardOutput(), Console.OutputEncoding)
                {
                    AutoFlush = true
                });
            }

            TimerResolution.setTimerResolution(1.0);

            Application.EnableVisualStyles();
            Application.SetCompatibleTextRenderingDefault(false);
            Application.Run(new UserInterface());
        }
Beispiel #11
0
 private void OnTimer2ResolutionChanged(TimerResolution value)
 {
     if (this.Timer2ResolutionChanged == null)
         return;
     this.Timer2ResolutionChanged((object)this, new TimerResolutionEventArg(value));
 }
Beispiel #12
0
 private void cBoxSeqTimer2Resolution_SelectedIndexChanged(object sender, EventArgs e)
 {
     this.Timer2Resolution = (TimerResolution)this.cBoxSeqTimer2Resolution.SelectedIndex;
     this.OnTimer2ResolutionChanged(this.Timer2Resolution);
 }
Beispiel #13
0
 public TimerResolutionEventArg(TimerResolution value)
 {
     this.value = value;
 }
Beispiel #14
0
 public void SetTimer2Resolution(TimerResolution value)
 {
     try
     {
         lock (syncThread)
             registers["RegTimerResol"].Value = (uint)(byte)((uint)(byte)((uint)(byte)registers["RegTimerResol"].Value & 252U) | (uint)(byte)value);
     }
     catch (Exception ex)
     {
         OnError((byte)1, ex.Message);
     }
 }
Beispiel #15
0
 public void Basic()
 {
     using var mmTimer = new TimerResolution(4);
     Assert.True(mmTimer.Successful);
     Assert.Equal(4, mmTimer.DesiredResolutionInMilliseconds);
 }
 public TimerResolutionEventArg(TimerResolution value)
 {
     this.value = value;
 }