示例#1
0
        private void StopTheAlarm(ref VolumeCheckArgs vca, bool disableSound, bool disableOverlay)
        {
            if (vca.resetOverlay && vca.resetSound)
            {
                vca.meterColor = VOLUME_OK;
            }

            if (disableSound)
            {
                _soundOut.Pause();

                if (_timerAlarmDelay.IsEnabled)
                {
                    _timerAlarmDelay.Stop();
                }
            }

            if (disableOverlay)
            {
                if (_timerOverlayShow.IsEnabled)
                {
                    _timerOverlayShow.Stop();
                }
                if (_overlayWorking)
                {
                    _overlayWorking = false;
                }
            }
        }
示例#2
0
        private void VolumeCheck(float volume)
        {
            VolumeCheckArgs vca;

            vca = new VolumeCheckArgs(VOLUME_OK);
            if (volume >= alarmThreshold)
            {
                KeepSystemVolume();
                vca.meterColor = VOLUME_HIGH;
                if (_isSoundAlarmEnabled)
                {
                    if (!_timerAlarmDelay.IsEnabled && _soundOut.PlaybackState != PlaybackState.Playing)
                    {
                        vca.resetSound       = true;
                        vca.resetLabelColor  = true;
                        _timerAlarmDelayArgs = new TimerDelayArgs(DateTime.Now);
                        _timerAlarmDelay.Start();
                    }
                }
                else
                {
                    vca.resetSound        = true;
                    vca.resetLabelContent = true;
                    StopTheAlarm(ref vca, true, false);
                }
                if (_isMessageAlarmEnabled)
                {
                    if (!_timerOverlayShow.IsEnabled && !_timerOverlayUpdate.IsEnabled)
                    {
                        vca.resetOverlay       = true;
                        vca.resetLabelColor    = true;
                        _timerOverlayDelayArgs = new TimerDelayArgs(DateTime.Now);
                        _timerOverlayShow.Start();
                    }
                }
                else
                {
                    vca.resetOverlay      = true;
                    vca.resetLabelContent = true;
                    StopTheAlarm(ref vca, false, true);
                }
            }
            else
            {
                vca.resetSound        = true;
                vca.resetOverlay      = true;
                vca.resetLabelContent = true;
                StopTheAlarm(ref vca, true, true);
            }
            OnVolumeCheck(this, vca);
        }
示例#3
0
        private void VolumeCheck(float volume)
        {
            if (_defaultDeviceChanged)
            {
                return;
            }
            try
            {
                VolumeCheckArgs vca;
                vca = new VolumeCheckArgs(VOLUME_OK);
                if (volume >= _alarmThreshold)
                {
                    KeepSystemVolume();
                    vca.meterColor = VOLUME_HIGH;
                    if (_isSoundAlertEnabled)
                    {
                        if (_delayBeforeAlarm > 0)
                        {
                            if (!_timerAlarmDelay.Enabled && !_isSoundAlertPlaying)
                            {
                                vca.resetSoundLabelColor = true;
                                _timerAlarmDelayArgs     = new TimerDelayArgs(DateTime.Now);
                                _timerAlarmDelay.Start();
                            }
                            //  else return;
                        }
                        else
                        {
                            PlayAlarm(!_isControllerMode);
                        }
                    }
                    else
                    {
                        if (_isSoundAlertPlaying)
                        {
                            _soundOut.Stop();
                            _isSoundAlertPlaying       = false;
                            vca.resetSoundLabelColor   = true;
                            vca.resetSoundLabelContent = true;
                        }
                    }
                    if (_isOverlayAlertEnabled)
                    {
                        if (!_timerOverlayShow.Enabled && !_timerOverlayUpdate.Enabled && !_isOverlayAlertPlaying)
                        {
                            vca.resetOverlayLabelColor = true;
                            _timerOverlayDelayArgs     = new TimerDelayArgs(DateTime.Now);
                            _timerOverlayShow.Start();
                        }
                    }
                    else
                    {
                        if (_timerOverlayShow.Enabled)
                        {
                            _timerOverlayShow.Stop();
                            vca.resetOverlayLabelColor = true;
                            _isOverlayAlertPlaying     = false;
                        }
                        if (_overlayWorking)
                        {
                            vca.resetOverlayLabelContent = true;
                            _overlayWorking        = false;
                            _isOverlayAlertPlaying = false;
                        }
                    }
                }
                else
                {
                    //if (_soundOut.PlaybackState == PlaybackState.Playing)
                    //{
                    vca.meterColor               = VOLUME_OK;
                    vca.resetSoundLabelContent   = true;
                    vca.resetOverlayLabelContent = true;
                    if (_soundOut.PlaybackState == PlaybackState.Playing)
                    {
                        _soundOut.Pause();
                    }
                    _isSoundAlertPlaying = false;

                    _isOverlayAlertPlaying = false;

                    if (_timerAlarmDelay != null)
                    {
                        if (_timerAlarmDelay.Enabled)
                        {
                            _timerAlarmDelay.Stop();
                        }
                    }
                    if (_timerOverlayShow.Enabled)
                    {
                        _timerOverlayShow.Stop();
                    }
                    if (_overlayWorking)
                    {
                        _overlayWorking = false;
                    }
                    //}
                }

                OnVolumeCheck(this, vca);
            }
            catch (Exception e)
            {
                Trace.TraceError("Volume check error: " + e);
            }
        }