private void Notify(DenonListenerEventData eventData) { if (OnNewNotification == null) { return; } OnNewNotification(this, new DenonNotificationEventArgs(eventData)); }
private void Check() { if (OnNewNotification == null) { return; } var eventData = GetStatus(); if (_lastEventData == null || (eventData != null && _lastEventData.EventType != eventData.EventType)) { _lastEventData = eventData; LastState = eventData; Notify(eventData); } }
private DenonListenerEventData CreateEventDataFromItem(Item item) { var eventData = new DenonListenerEventData(); switch (item.InputFuncSelectMain.Value) { case "BD": eventData.EventType = EventType.SourceBD; break; case "SAT/CBL": eventData.EventType = EventType.SourceCableSat; break; case "GAME": eventData.EventType = EventType.SourceXbox; break; default: eventData.EventType = EventType.SourceOther; break; } return(eventData); }
public DenonListenerEventData GetStatus() { DenonListenerEventData eventData = null; try { eventData = CreateEventDataFromItem(_denonWebChecker.Check()); } catch (WebException ex) { if (ex.Status == WebExceptionStatus.ConnectFailure || ex.Status == WebExceptionStatus.Timeout) { eventData = new DenonListenerEventData { EventType = EventType.Off }; } else { eventData = new DenonListenerEventData { EventType = EventType.Error, ErrorMessage = ex.Message }; } } catch (Exception ex) { eventData = new DenonListenerEventData { EventType = EventType.Error, ErrorMessage = ex.Message }; } return(eventData); }
public void StopListener() { _lastEventData = null; _timer.Stop(); }