DirectOutputR1
DirectOutput framework R1 for virtual pinball cabinets.
Go to:
Overview 
 All Classes Namespaces Files Functions Variables Enumerations Enumerator Properties Events Macros Pages
InputQueue.cs
Go to the documentation of this file.
1 using System;
2 using System.Collections.Generic;
3 using DirectOutput.Table;
4 
5 namespace DirectOutput.PinballSupport
6 {
7 
12  public class InputQueue : Queue<TableElementData>
13  {
14  private object QueueLocker = new object();
15 
16 
23  public void Enqueue(Char TableElementTypeChar, int Number, int Value)
24  {
25  Enqueue(new TableElementData(TableElementTypeChar, Number, Value));
26  }
27 
28 
33  public new void Enqueue(TableElementData TableElementData)
34  {
35  lock (QueueLocker)
36  {
37  base.Enqueue(TableElementData);
38  }
39  }
40 
45  public new TableElementData Dequeue()
46  {
47  lock (QueueLocker)
48  {
49  return base.Dequeue();
50  }
51  }
52 
57  public new TableElementData Peek()
58  {
59  lock (QueueLocker)
60  {
61  return base.Peek();
62  }
63  }
64 
65 
72  public new int Count
73  {
74  get
75  {
76 
77  lock (QueueLocker)
78  {
79  return base.Count;
80  }
81  }
82  }
83 
84 
88  public new void Clear()
89  {
90  lock (QueueLocker)
91  {
92  base.Clear();
93  }
94  }
95 
96  }
97 }