private void Result_Error(object sender, Exception e) { Task.Run(() => BoundTerminal.Send("mediaplayer", new MediaPlayerMessage() { Action = "error" })); }
private void Result_Playing(object sender, EventArgs e) { Task.Run(() => BoundTerminal.Send("mediaplayer", new MediaPlayerMessage() { Action = "playing" })); }
private void Result_NowPlaying(object sender, string e) { Task.Run(() => BoundTerminal.Send("mediaplayer", new MediaPlayerMessage() { Action = "now-playing", Mrl = e })); }
private void Result_PositionChanged(object sender, float e) { Task.Run(() => BoundTerminal.Send("mediaplayer", new MediaPlayerMessage() { Action = "position", Position = e })); }
private void Result_IsSeekableChanged(object sender, bool e) { Task.Run(() => BoundTerminal.Send("mediaplayer", new MediaPlayerMessage() { Action = "seekable-changed" })); }
private void Result_HasSubtitlesChanged(object sender, bool e) { Task.Run(() => BoundTerminal.Send("mediaplayer", new MediaPlayerMessage() { Action = "has-subtitles-changed" })); }
private void Result_DurationChanged(object sender, TimeSpan e) { Task.Run(() => BoundTerminal.Send("mediaplayer", new MediaPlayerMessage() { Action = "duration-changed" })); }
/* Messages from master to slave to ask for action or information */ private void OnMessageFromMaster(MediaPlayerMessage msg) { IMediaPlayerContainer container; IUiManager uiManager; IAudioManager _audio; switch (msg.Action) { case "subtitles-on": try { result?.SetSubtitles(true); } catch { if (_core.TryGetUiManager(out uiManager)) { uiManager.Toast(new Translator("ScreenCast").Translate("Subtitles not found for this media")); } } break; case "subtitles-off": try { result?.SetSubtitles(false); } catch { if (_core.TryGetUiManager(out uiManager)) { uiManager.Toast(translator.Translate("Subtitles not found for this media")); } } break; case "play": if (_core.TryGetMediaPlayerContainer(out container)) { if (!string.IsNullOrEmpty(msg.Mrl)) { result = container.Play(new MediaRequest(new IptvMedia() { URL = msg.Mrl + " " + msg.Extras }) { FullscreenMode = FullscreenMode.FullscreenOnly }); AttachToMediaResponse(result); } else { result.Play(); } } break; case "pause": if (_core.TryGetMediaPlayerContainer(out container)) { result.Pause(); } break; case "stop": if (_core.TryGetMediaPlayerContainer(out container)) { result.Stop(); } break; case "previous": if (_core.TryGetMediaPlayerContainer(out container)) { result.Previous(); } break; case "next": if (_core.TryGetMediaPlayerContainer(out container)) { result.Next(); } break; case "volume": if (_core.TryGetMediaPlayerContainer(out container)) { if (_core.TryGetAudioManager(out _audio)) { _audio.SpeakersVolume = (int)Math.Round(msg.Volume * 100f); } } break; case "getvolume": if (_core.TryGetMediaPlayerContainer(out container)) { if (_core.TryGetAudioManager(out _audio)) { Task.Run(() => BoundTerminal.Send("mediaplayer", new MediaPlayerMessage { Action = "getvolume", Volume = _audio.SpeakersVolume / 100f })); } } break; default: break; } }