HamBook – Rev 54

Subversion Repositories:
Rev:
using System;

namespace HamBook.Radios.Generic
{
    public class Ctcss
    {
        public Ctcss(string mode) : this()
        {
            Mode = Parse(mode);
        }

        public Ctcss(int mode) : this()
        {
            Mode = Parse(mode);
        }

        public Ctcss()
        {
        }

        public Ctcss(CtcssMode mode)
        {
            Mode = mode;
        }

        public CtcssMode Mode { get; set; }

        public static CtcssMode Parse(string mode)
        {
            switch (mode)
            {
                case "Off":
                    return CtcssMode.Off;
                case "Enc/Dec":
                    return CtcssMode.EncDec;
                case "Enc":
                    return CtcssMode.Enc;
                default:
                    throw new ArgumentException();
            }
        }

        public static CtcssMode Parse(int mode)
        {
            switch (mode)
            {
                case 0:
                    return CtcssMode.Off;
                case 1:
                    return CtcssMode.EncDec;
                case 2:
                    return CtcssMode.Enc;
                default:
                    throw new ArgumentException();
            }
        }

        public static implicit operator string(Ctcss ctcss)
        {
            switch (ctcss.Mode)
            {
                case CtcssMode.Off:
                    return "Off";
                case CtcssMode.EncDec:
                    return "Enc/Dec";
                case CtcssMode.Enc:
                    return "Enc";
                default:
                    throw new ArgumentException();
            }
        }
    }
}

Generated by GNU Enscript 1.6.5.90.