HamBook – Blame information for rev 54

Subversion Repositories:
Rev:
Rev Author Line No. Line
37 office 1 using System;
2  
3 namespace HamBook.Radios.Generic
4 {
5 public class SplitState
6 {
7 public SplitState(string state) : this()
8 {
9 State = Parse(state);
10 }
11  
12 public SplitState(int state) : this()
13 {
14 State = Parse(state);
15 }
16  
17 public SplitState()
18 {
19 }
20  
54 office 21 public int State { get; set; }
22  
37 office 23 public static bool TryParse(string state, out SplitState splitState)
24 {
25 switch (state)
26 {
27 case "On":
28 case "Off":
29 case "+5kHz":
30 splitState = new SplitState(state);
31 return true;
32 default:
33 splitState = null;
34 return false;
35 }
36 }
37  
38 public static bool TryParse(int state, out SplitState splitState)
39 {
40 switch (state)
41 {
42 case 0:
43 case 1:
44 case 2:
45 splitState = new SplitState(state);
46 return true;
47 default:
48 splitState = null;
49 return false;
50 }
51 }
52  
53 private int Parse(string state)
54 {
55 switch (state)
56 {
57 case "Off":
58 return 0;
59 case "On":
60 return 1;
61 case "+5kHz":
62 return 2;
63 default:
64 throw new ArgumentException();
65 }
66 }
67  
68 private int Parse(int state)
69 {
70 switch (state)
71 {
72 case 0:
73 case 1:
74 case 2:
75 return state;
76 default:
77 throw new ArgumentException();
78 }
79 }
80  
81 public static implicit operator SplitState(string state)
82 {
83 return new SplitState(state);
84 }
85  
86 public static implicit operator string(SplitState state)
87 {
88 switch (state.State)
89 {
90 case 0:
91 return "Off";
92 case 1:
93 return "On";
94 case 2:
95 return "+5kHz";
96 default:
97 throw new ArgumentException();
98 }
99 }
100  
101 public static implicit operator SplitState(int state)
102 {
103 return new SplitState(state);
104 }
105  
106 public static implicit operator int(SplitState state)
107 {
108 return state.State;
109 }
110 }
54 office 111 }