private void OnPlayerEvent(PlayerEventArgs args) { if (args.Event == PlayerEvent.StartOfStream) { LoadCurrentTrack(); } else if (args.Event == PlayerEvent.TrackInfoUpdated) { LoadCurrentTrack(true); } else if (args.Event == PlayerEvent.StateChange && (incoming_track != null || incoming_image != null)) { PlayerEventStateChangeArgs state = (PlayerEventStateChangeArgs)args; if (state.Current == PlayerState.Idle) { if (idle_timeout_id > 0) { GLib.Source.Remove(idle_timeout_id); } else { GLib.Timeout.Add(100, IdleTimeout); } } } }
private void OnPlayerEvent(PlayerEventArgs args) { if (ContactContainerSource.ShareCurrentlyPlayingSchema.Get()) { switch (args.Event) { case PlayerEvent.StartOfStream: AnnounceTrack(ServiceManager.PlayerEngine.CurrentTrack); break; case PlayerEvent.StateChange: PlayerEventStateChangeArgs state = args as PlayerEventStateChangeArgs; if (state != null) { switch (state.Current) { case PlayerState.Paused: announcer.Announce(String.Empty); break; case PlayerState.Playing: AnnounceTrack(ServiceManager.PlayerEngine.CurrentTrack); break; } } break; } } }
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; }
private void StateChange(PlayerEventStateChangeArgs args, TrackInfo track, uint pos, uint len) { replaces["%S"] = args.Current.ToString(); switch (args.Current) { case PlayerState.Playing: case PlayerState.Paused: UpdateTrack(track, pos, len); break; case PlayerState.NotReady: Reset(); break; } }