HamBook – Rev 54

Subversion Repositories:
Rev:
using System;

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

        public Phase(int phase) : this()
        {
            Mode = Parse(phase);
        }

        public Phase()
        {
        }

        public Phase(PhaseMode mode)
        {
            Mode = mode;
        }

        public PhaseMode Mode { get; set; }

        public static PhaseMode Parse(string mode)
        {
            switch (mode)
            {
                case "Simplex":
                    return PhaseMode.Simplex;
                case "Plus Shift":
                    return PhaseMode.PlusShift;
                case "Minus Shift":
                    return PhaseMode.MinusShift;
                default:
                    throw new ArgumentException();
            }
        }

        public static PhaseMode Parse(int phase)
        {
            switch (phase)
            {
                case 0:
                    return PhaseMode.Simplex;
                case 1:
                    return PhaseMode.PlusShift;
                case 2:
                    return PhaseMode.MinusShift;
                default:
                    throw new ArgumentException();
            }
        }

        public static implicit operator string(Phase phase)
        {
            switch (phase.Mode)
            {
                case PhaseMode.Simplex:
                    return "Simplex";
                case PhaseMode.PlusShift:
                    return "Plus Shift";
                case PhaseMode.MinusShift:
                    return "Minus Shift";
                default:
                    throw new ArgumentException();
            }
        }
    }
}

Generated by GNU Enscript 1.6.5.90.