DirectOutputR1
DirectOutput framework R1 for virtual pinball cabinets.
Go to:
Overview 
 All Classes Namespaces Files Functions Variables Enumerations Enumerator Properties Events Macros Pages
TableConfigColumn.cs
Go to the documentation of this file.
1 using System;
2 using System.Collections.Generic;
3 
4 namespace DirectOutput.LedControl.Loader
5 {
6 
11  public class TableConfigColumn:List<TableConfigSetting>
12  {
19  public int Number { get; set; }
20 
21 
22  private int _FirstOutputNumber;
23 
30  public int FirstOutputNumber
31  {
32  get { return _FirstOutputNumber; }
33  set { _FirstOutputNumber = value; }
34  }
35 
36 
43  public bool AnalogOutputRequired
44  {
45  get
46  {
47  foreach (TableConfigSetting TCS in this)
48  {
49  if (TCS.Intensity != 0 && TCS.Intensity != 48 && TCS.OutputType != OutputTypeEnum.RGBOutput)
50  {
51  return true;
52 
53  }
54 
55  };
56  return false;
57  }
58  }
59 
60 
61 
68  public int RequiredOutputCount
69  {
70  get {
71  int RequiredOutputCount = 1;
72  foreach (TableConfigSetting S in this)
73  {
74  if (S.OutputType == OutputTypeEnum.RGBOutput)
75  {
76  RequiredOutputCount = 3;
77  }
78  }
79 
80  return RequiredOutputCount; }
81 
82  }
83 
84 
85 
86 
87  #region Parser
88 
96  public bool ParseColumnData(string ColumnData, bool ThrowExceptions = false)
97  {
98  bool ExceptionOccured = false;
99  List<string> ColumnConfigs = new List<string>(ColumnData.Split(new char[] { '/' }, StringSplitOptions.None));
100 
101  foreach (string CC in ColumnConfigs)
102  {
103  if (!CC.IsNullOrWhiteSpace())
104  {
105  try
106  {
108  if (TCS.OutputControl != OutputControlEnum.FixedOff)
109  {
110  Add(TCS);
111  }
112  }
113  catch (Exception E)
114  {
115  ExceptionOccured = true;
116  Log.Exception("Could not parse setting {0} in column data {1}.".Build(CC, ColumnData), E);
117  if (ThrowExceptions)
118  {
119  throw new Exception("Could not parse setting {0} in column data {1}.".Build(CC, ColumnData), E);
120  }
121  }
122  }
123  }
124  return !ExceptionOccured;
125  }
126  #endregion
127 
128 
129  #region Constructor
130 
131 
132 
133 
134 
135 
136  public TableConfigColumn(int ColumnNumber, string ColumnData, bool ThrowExceptions = false)
137  {
138  this.Number = ColumnNumber;
139  ParseColumnData(ColumnData, ThrowExceptions);
140 
141  }
142 
146  public TableConfigColumn() { }
147  #endregion
148 
149 
150  }
151 }