HamBook – Blame information for rev 46

Subversion Repositories:
Rev:
Rev Author Line No. Line
46 office 1 using Configuration.Annotations;
2 using System;
3 office 3 using System.Collections.Generic;
15 office 4 using System.ComponentModel;
3 office 5 using System.Linq;
6 using System.Text;
7 using System.Threading.Tasks;
8  
9 namespace HamBook.Radios.Generic
10 {
46 office 11 public class Ctcss
3 office 12 {
46 office 13 public CtcssMode Mode { get; set; }
15 office 14  
46 office 15 public Ctcss(string mode) : this()
15 office 16 {
17 Mode = Parse(mode);
18 }
19  
46 office 20 public Ctcss(int mode) : this()
15 office 21 {
22 Mode = Parse(mode);
23 }
24  
46 office 25 public Ctcss()
16 office 26 {
27  
28 }
29  
46 office 30 public Ctcss(CtcssMode mode)
15 office 31 {
46 office 32 Mode = mode;
15 office 33 }
34  
46 office 35 public static CtcssMode Parse(string mode)
15 office 36 {
37 switch (mode)
38 {
39 case "Off":
46 office 40 return CtcssMode.Off;
15 office 41 case "Enc/Dec":
46 office 42 return CtcssMode.EncDec;
15 office 43 case "Enc":
46 office 44 return CtcssMode.Enc;
15 office 45 default:
46 throw new ArgumentException();
47 }
48 }
49  
46 office 50 public static CtcssMode Parse(int mode)
15 office 51 {
52 switch (mode)
53 {
54 case 0:
46 office 55 return CtcssMode.Off;
15 office 56 case 1:
46 office 57 return CtcssMode.EncDec;
15 office 58 case 2:
46 office 59 return CtcssMode.Enc;
15 office 60 default:
61 throw new ArgumentException();
62 }
63 }
64  
46 office 65 public static implicit operator string(Ctcss ctcss)
15 office 66 {
46 office 67 switch (ctcss.Mode)
15 office 68 {
46 office 69 case CtcssMode.Off:
15 office 70 return "Off";
46 office 71 case CtcssMode.EncDec:
15 office 72 return "Enc/Dec";
46 office 73 case CtcssMode.Enc:
15 office 74 return "Enc";
75 default:
76 throw new ArgumentException();
77 }
78 }
3 office 79 }
80 }