private void Reveil_StateChanged(object sender, ReveilState state) { switch (state) { case ReveilState.Timer: { sprintButton.Visibility = Visibility.Collapsed; shortBreakButton.Visibility = Visibility.Collapsed; longBreakButton.Visibility = Visibility.Collapsed; stopButton.Visibility = Visibility.Visible; break; } case ReveilState.Alarm: case ReveilState.Play: { // skip break; } default: { sprintButton.Visibility = Visibility.Visible; shortBreakButton.Visibility = Visibility.Visible; longBreakButton.Visibility = Visibility.Visible; stopButton.Visibility = Visibility.Collapsed; break; } } }
/// <summary> /// Sets the duration. /// </summary> /// <param name="duration"></param> private void SetDuration(DateTime?duration) { _timer.Stop(); alarmMediaElement.Stop(); _end = duration; State = (duration != null) ? ReveilState.Timer : ReveilState.Clock; _timer.Start(); }
/// <summary> /// Updates the duration. /// </summary> private void UpdateDuration() { DateTime now = DateTime.Now; if (_end.Value <= now) { State = ReveilState.Play; } var duration = _end.Value - DateTime.Now; secondTimeBar.Value = duration.Seconds; minuteTimeBar.Value = duration.Minutes; Time = duration.ToString(DurationFormat); }
/// <summary> /// Plays the sound of the alarm. /// </summary> private void Play() { State = ReveilState.Alarm; alarmMediaElement.Position = TimeSpan.MinValue; alarmMediaElement.Play(); }
private void OnStateChanged(ReveilState state) { StateChanged?.Invoke(this, state); }