private void CheckItunes(object sender, ElapsedEventArgs eventArgs) { try { var track = _itunesControls.CurrentTrack; if (track == null) { return; } NotifyPlayerState(); if (IsNewTrack(track)) { NotifyTrackChange(track); } TrackProgressChanged?.Invoke(this, _itunesControls.Progress); } catch (Exception e) { Logger.Debug(e); } finally { _checkiTunesTimer.Enabled = true; } }
/// <summary> /// Initializes the wrapper. /// </summary> /// <param name="audioSourceDirectory">The directory of the audio source.</param> /// <returns>True if successful.</returns> public bool Initialize(string audioSourceDirectory) { try { _logger = AudioBandLogManager.GetLogger($"AudioSourceWrapper({new DirectoryInfo(audioSourceDirectory).Name})"); _logger.Debug("Initializing wrapper"); AppDomain.CurrentDomain.UnhandledException += (o, e) => _logger.Error(e.ExceptionObject as Exception, "Unhandled exception in wrapper"); _audioSource = AudioSourceLoader.LoadFromDirectory(audioSourceDirectory); _audioSource.Logger = new AudioSourceLogger(_audioSource.Name); _audioSource.SettingChanged += (o, e) => SettingChanged?.Invoke(this, e); _audioSource.TrackInfoChanged += (o, e) => TrackInfoChanged?.Invoke(this, e); _audioSource.IsPlayingChanged += (o, e) => IsPlayingChanged?.Invoke(this, e); _audioSource.TrackProgressChanged += (o, e) => TrackProgressChanged?.Invoke(this, e); _audioSource.VolumeChanged += (o, e) => VolumeChanged?.Invoke(this, e); _audioSource.ShuffleChanged += (o, e) => ShuffleChanged?.Invoke(this, e); _audioSource.RepeatModeChanged += (o, e) => RepeatModeChanged?.Invoke(this, e); _audioSourceSettingsList = _audioSource.GetSettings(); foreach (AudioSourceSetting setting in _audioSourceSettingsList) { _audioSourceSettings.Add(setting.Attribute.Name, setting); } _logger.Debug("Wrapper initialization complete"); return(true); } catch (Exception e) { _logger.Error(e); return(false); } }
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 CheckMusicBee(object sender, ElapsedEventArgs eventArgs) { try { if (Process.GetProcessesByName("MusicBee").Length == 0) { return; } // The ipc plugin does not load right away if (string.IsNullOrEmpty(_ipc.GetPluginVersionStr())) { return; } NotifyState(); NotifyTrackChange(); var time = TimeSpan.FromMilliseconds(_ipc.GetPosition()); TrackProgressChanged?.Invoke(this, time); } catch (Exception e) { Logger.Debug(e); } finally { _checkMusicBeeTimer.Enabled = true; } }
private void ResetState() { TrackInfoChanged?.Invoke(this, new TrackInfoChangedEventArgs { TrackName = "", AlbumArt = null }); TrackPaused?.Invoke(this, EventArgs.Empty); TrackProgressChanged?.Invoke(this, 0); }
private void SetBlankState() { TrackInfoChanged?.Invoke(this, new TrackInfoChangedEventArgs()); TrackPaused?.Invoke(this, EventArgs.Empty); TrackProgressChanged?.Invoke(this, 0); _currentIsPlaying = false; _currentArtist = null; _currentSong = null; }
private void SpotifyClientOnOnTrackTimeChange(object sender, TrackTimeChangeEventArgs trackTimeChangeEventArgs) { TrackProgressChanged?.Invoke(this, CalculateTrackPercentange(trackTimeChangeEventArgs.TrackTime)); }