HamBook – Blame information for rev

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