protected virtual Task OnEnded() { if (this.Ended == null) { #if NET40 return(TaskEx.FromResult(false)); #else return(Task.CompletedTask); #endif } var e = new AsyncEventArgs(); this.Ended(this, e); return(e.Complete()); }
protected virtual async Task OnThemeChanged() { if (this.Theme != null) { this.Theme.Enable(); } if (this.ThemeChanged != null) { var e = new AsyncEventArgs(); this.ThemeChanged(this, e); await e.Complete().ConfigureAwait(false); } this.OnPropertyChanged("Theme"); }
protected virtual async Task OnCurrentStreamChanged() { if (this.CurrentStream != null) { this.CurrentStream.Ending += this.Ending; this.CurrentStream.Ended += this.Ended; } if (this.CurrentStreamChanged != null) { var e = new AsyncEventArgs(); this.CurrentStreamChanged(this, e); await e.Complete().ConfigureAwait(false); } this.OnPropertyChanged("CurrentStream"); }
protected virtual async void OnCurrentStreamChanged(object sender, AsyncEventArgs e) { Logger.Write(this, LogLevel.Debug, "Playback manager output stream changed, updating current playlist item."); if (this.PlaybackManager.CurrentStream == null) { using (e.Defer()) { await this.SetCurrentItem(null).ConfigureAwait(false); } Logger.Write(this, LogLevel.Debug, "Playback manager output stream is empty. Cleared current playlist item."); } else if (this.PlaybackManager.CurrentStream.PlaylistItem != this.CurrentItem) { using (e.Defer()) { await this.SetCurrentItem(this.PlaybackManager.CurrentStream.PlaylistItem).ConfigureAwait(false); } Logger.Write(this, LogLevel.Debug, "Updated current playlist item: {0} => {1}", this.CurrentItem.Id, this.CurrentItem.FileName); } }
protected virtual void OnThemeChanged(object sender, AsyncEventArgs e) { var task = this.Refresh(); }
protected virtual void OnCurrentStreamChanged(object sender, AsyncEventArgs e) { var task = this.Refresh(); }