private bool UpdateSongInfo() { var status = _spotifyClient.GetStatus(); var track = status?.Track; if (track == null) { return(false); } _trackLength = track.Length; TrackProgressChanged?.Invoke(this, CalculateTrackPercentange(status.PlayingPosition)); TrackInfoChanged?.Invoke(this, new TrackInfoChangedEventArgs { TrackName = track.TrackResource.Name, Artist = track.ArtistResource.Name, AlbumArt = track.GetAlbumArt(AlbumArtSize.Size640) }); if (status.Playing) { TrackPlaying?.Invoke(this, EventArgs.Empty); } else { TrackPaused?.Invoke(this, EventArgs.Empty); } return(true); }
private void ExtractTitle(string title) { // Spotify title is in the form of <artist> - <title> var parts = title.Split(new string[] { " - " }, 2, StringSplitOptions.None); if (parts.Length != 2) { _logger.Warn($"Spotify title invalid: {title}"); return; } var artist = parts[0]; var song = parts[1]; if (artist != _currentArtist || song != _currentSong) { TrackInfoChanged?.Invoke(this, new TrackInfoChangedEventArgs { TrackName = song, Artist = artist }); } _currentArtist = artist; _currentSong = song; // Already playing if (_currentIsPlaying) { return; } TrackPlaying?.Invoke(this, EventArgs.Empty); _currentIsPlaying = true; }
private void SpotifyClientOnOnPlayStateChange(object sender, PlayStateEventArgs playStateEventArgs) { if (playStateEventArgs.Playing) { TrackPlaying?.Invoke(this, EventArgs.Empty); } else { TrackPaused?.Invoke(this, EventArgs.Empty); } }
private void NotifyPlayerState() { var playing = _itunesControls.IsPlaying; if (_isPlaying == playing) { return; } if (playing) { TrackPlaying?.Invoke(this, EventArgs.Empty); } else { TrackPaused.Invoke(this, EventArgs.Empty); } _isPlaying = playing; }
private void NotifyState() { var isPlaying = _ipc.GetPlayState().HasFlag(MusicBeeIPC.PlayState.Playing); if (isPlaying == _isPlaying) { return; } if (isPlaying) { TrackPlaying?.Invoke(this, EventArgs.Empty); } else { TrackPaused?.Invoke(this, EventArgs.Empty); } _isPlaying = isPlaying; }