HamBook – Diff between revs 3 and 15
?pathlinks?
Rev 3 | Rev 15 | |||
---|---|---|---|---|
Line 1... | Line 1... | |||
1 | using System; |
1 | using System; |
|
2 | using System.Collections.Generic; |
2 | using System.Collections.Generic; |
|
- | 3 | using System.ComponentModel; |
||
3 | using System.Linq; |
4 | using System.Linq; |
|
4 | using System.Text; |
5 | using System.Text; |
|
5 | using System.Threading.Tasks; |
6 | using System.Threading.Tasks; |
|
Line 6... | Line 7... | |||
6 | |
7 | |
|
7 | namespace HamBook.Radios.Generic |
8 | namespace HamBook.Radios.Generic |
|
8 | { |
9 | { |
|
9 | public enum CtcssMode : int |
10 | public class CtcssMode |
|
- | 11 | { |
||
- | 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) |
||
10 | { |
90 | { |
|
- | 91 | case 0: |
||
- | 92 | return "Off"; |
||
- | 93 | case 1: |
||
11 | CTCSS_OFF = 0, |
94 | return "Enc/Dec"; |
|
- | 95 | case 2: |
||
- | 96 | return "Enc"; |
||
- | 97 | default: |
||
12 | CTCSS_ENC_DEC, |
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; |
||
13 | CTCSS_ENC |
110 | } |
|
14 | } |
111 | } |