예제 #1
0
        public virtual bool SetOption(TunerOption Option, ref byte Value)
        {
            bool notexact = false;

            CheckOption(Option, ref Value, ref notexact);
            AcceptOption(Option, Value);
            return(!notexact);
        }
예제 #2
0
 protected void AcceptOption(TunerOption Option, byte Value)
 {
     if (_options[(int)Option] != Value)
     {
         _options[(int)Option] = Value;
         if (OptionChanged != null)
         {
             OptionChanged(this, new TunerOptionChangedEventArgs(Option));
         }
     }
 }
예제 #3
0
        protected bool CheckOption(TunerOption Option, ref byte Value, ref bool notexact)
        {
            switch (Option)
            {
            case TunerOption.Filter:
            case TunerOption.Frequency:
            case TunerOption.Mode:
            case TunerOption.Signal:
                Value    = 0;
                notexact = true;
                return(false);

            case TunerOption.AGC:
            case TunerOption.Attenuator:
            case TunerOption.NoiseBlanker:
            case TunerOption.StereoMono:
            case TunerOption.VSC:
                if (Value > 1)
                {
                    Value = 1;
                }
                return(Value != _options[(int)Option]);

            case TunerOption.IfShift:
            case TunerOption.Squelch:
            case TunerOption.Volume:
                return(Value != _options[(int)Option]);

            case TunerOption.RadioText:
                Value = 1;
                return(true);

            default:
                return(true);
            }
        }
예제 #4
0
 public TunerOptionChangedEventArgs(TunerOption option)
 {
     Option = option;
 }
예제 #5
0
 public virtual byte GetOption(TunerOption Option)
 {
     return(_options[(int)Option]);
 }
예제 #6
0
 public virtual bool SetOption(TunerOption Option, byte Value)
 {
     return(SetOption(Option, ref Value));
 }