Ejemplo n.º 1
0
        /// <summary>
        /// updates the signal quality/level and tuner locked statusses
        /// </summary>
        protected override void UpdateSignalQuality(bool force)
        {
            TimeSpan ts = DateTime.Now - _lastSignalUpdate;

            if (ts.TotalMilliseconds < 5000)
            {
                return;
            }
            if (GraphRunning() == false)
            {
                _tunerLocked   = false;
                _signalLevel   = 0;
                _signalPresent = false;
                _signalQuality = 0;
                return;
            }
            if (CurrentChannel == null)
            {
                _tunerLocked   = false;
                _signalLevel   = 0;
                _signalPresent = false;
                _signalQuality = 0;
                return;
            }
            if (_graphState == GraphState.Idle || _interfaceB2C2TunerCtrl == null)
            {
                _tunerLocked   = false;
                _signalQuality = 0;
                _signalLevel   = 0;
                return;
            }
            int level, quality;

            _tunerLocked = (_interfaceB2C2TunerCtrl.CheckLock() == 0);
            _interfaceB2C2TunerCtrl.GetSignalQuality(out quality);
            _interfaceB2C2TunerCtrl.GetSignalStrength(out level);
            if (level < 0)
            {
                level = 0;
            }
            if (level > 100)
            {
                level = 100;
            }
            if (quality < 0)
            {
                quality = 0;
            }
            if (quality > 100)
            {
                quality = 100;
            }
            _signalQuality    = quality;
            _signalLevel      = level;
            _lastSignalUpdate = DateTime.Now;
        }