DirectOutputR1
DirectOutput framework R1 for virtual pinball cabinets.
Go to:
Overview 
 All Classes Namespaces Files Functions Variables Enumerations Enumerator Properties Events Macros Pages
AnalogAlphaToy.cs
Go to the documentation of this file.
1 using System;
2 using System.Collections.Generic;
3 using System.Linq;
4 using System.Text;
5 using DirectOutput.Cab.Out;
6 
7 namespace DirectOutput.Cab.Toys.Layer
8 {
13  {
14 
21  [System.Xml.Serialization.XmlIgnore]
22  public AnalogLayerDictionary Layers { get; private set; }
23 
24 
25 
26 
27  #region Outputs
28 
29  private IOutput Output;
30 
31 
38  public string OutputName { get; set; }
39 
40 
41  #endregion
42 
43  private Cabinet Cabinet;
44 
45 
50  public override void Init(Cabinet Cabinet)
51  {
52  this.Cabinet = Cabinet;
53  InitOutputs(Cabinet);
54  }
55 
56  private void InitOutputs(Cabinet Cabinet)
57  {
58  if (Cabinet.Outputs.Contains(OutputName))
59  {
60  Output = Cabinet.Outputs[OutputName];
61  }
62  else
63  {
64  Output = null;
65  }
66  }
67 
68 
69 
70 
74  public override void UpdateOutputs()
75  {
76  if (Output != null)
77  {
78  //Output.Value = (byte)FadeCurve[Layers.GetResultingValue()];
79  Output.Value = (byte)Layers.GetResultingValue();
80  }
81  }
82 
83 
87  public override void Finish()
88  {
89  Reset();
90  Output = null;
91  Cabinet = null;
92  base.Finish();
93  }
94 
100  public override void Reset()
101  {
102  Layers.Clear();
103  if (Output != null)
104  {
105  Output.Value = 0;
106  }
107  }
108 
112  public AnalogAlphaToy()
113  {
114  Layers = new AnalogLayerDictionary();
115  }
116  }
117 }