DirectOutputR1
DirectOutput framework R1 for virtual pinball cabinets.
Go to:
Overview 
 All Classes Namespaces Files Functions Variables Enumerations Enumerator Properties Events Macros Pages
AnalogToy.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 using System.Xml.Serialization;
7 
8 namespace DirectOutput.Cab.Toys.Basic
9 {
16  public class AnalogToy : ToyBase, IToy, IAnalogToy
17  {
18 
23  public override void Init(Cabinet Cabinet)
24  {
25  InitOutput(Cabinet);
26  }
27 
28  private void InitOutput(Cabinet Cabinet)
29  {
30  if (Cabinet.Outputs.Contains(OutputName))
31  {
32  _Output = Cabinet.Outputs[OutputName];
33  }
34  else
35  {
36  _Output = null;
37  }
38  }
39 
40  private IOutput _Output;
44  public string OutputName { get; set; }
45 
46 
47 
48 
49  private int _Value;
53  [XmlIgnoreAttribute]
54  public int Value
55  {
56  get { return _Value; }
57  protected set
58  {
59  _Value = value.Limit(0, 255);
60  if (_Output != null)
61  {
62  _Output.Value = (byte)_Value;
63  }
64  }
65  }
66 
70  public override void Reset()
71  {
72  this.Value = 0;
73  }
74 
75 
80  public void SetValue(int Value)
81  {
82  this.Value = Value;
83  }
84  }
85 }