Banshee.Gui.PlaybackActions.OnPlayerStateChange C# (CSharp) Method

OnPlayerStateChange() private method

private OnPlayerStateChange ( Banshee.MediaEngine.PlayerEventStateChangeArgs args ) : void
args Banshee.MediaEngine.PlayerEventStateChangeArgs
return void
        private void OnPlayerStateChange (PlayerEventStateChangeArgs args)
        {
            if (play_pause_action == null) {
                play_pause_action = Actions["Playback.PlayPauseAction"];
            }

            switch (args.Current) {
                case PlayerState.Loaded:
                    ShowStopAction ();
                    subtitle_actions.Sensitive = ServiceManager.PlayerEngine.CurrentTrack.HasAttribute (TrackMediaAttributes.VideoStream);
                    subtitle_actions.ReloadEmbeddedSubtitle ();
                    break;
                case PlayerState.Contacting:
                case PlayerState.Loading:
                case PlayerState.Playing:
                    ShowStopAction ();
                    break;
                case PlayerState.Paused:
                    ShowPlay ();
                    break;
                case PlayerState.Idle:
                    subtitle_actions.Sensitive = false;
                    ShowPlay ();
                    break;
                default:
                    break;
            }

            TrackInfo track = ServiceManager.PlayerEngine.CurrentTrack;
            if (track != null) {
                this["SeekToAction"].Sensitive = !track.IsLive;
                this["RestartSongAction"].Sensitive = !track.IsLive;

                this["RestartSongAction"].Label = track.RestartLabel;
                this["JumpToPlayingTrackAction"].Label = track.JumpToLabel;
                this["JumpToPlayingTrackAction"].Sensitive = true;
            } else {
                this["JumpToPlayingTrackAction"].Sensitive = false;
                this["RestartSongAction"].Sensitive = false;
                this["SeekToAction"].Sensitive = false;
            }

            // Disable all actions while NotReady
            Sensitive = args.Current != PlayerState.NotReady;
        }