/// <summary> /// Executes the specified param. /// </summary> /// <param name="param">The param.</param> /// <param name="result">The result.</param> /// <returns></returns> public OpResult Execute(string param) { OpResult opResult = new OpResult(); try { if (AddInHost.Current.MediaCenterEnvironment.MediaExperience == null) { if (m_set) { opResult.StatusCode = OpStatusCode.Ok; opResult.AppendFormat("No media playing"); } else { opResult.StatusCode = OpStatusCode.BadRequest; opResult.AppendFormat("No media playing"); } } else if (m_set) { PlayRateEnum playRate = (PlayRateEnum)Enum.Parse(typeof(PlayRateEnum), param, true); if (playRate == PlayRateEnum.SkipForward) { AddInHost.Current.MediaCenterEnvironment.MediaExperience.Transport.SkipForward(); } else if (playRate == PlayRateEnum.SkipBack) { AddInHost.Current.MediaCenterEnvironment.MediaExperience.Transport.SkipBack(); } else { AddInHost.Current.MediaCenterEnvironment.MediaExperience.Transport.PlayRate = (Single)playRate; } } else if (!m_state) { int rate = (int)AddInHost.Current.MediaCenterEnvironment.MediaExperience.Transport.PlayRate; opResult.AppendFormat("PlayRate={0}", Enum.GetNames(typeof(PlayRateEnum))[rate]); } else { PlayState state = AddInHost.Current.MediaCenterEnvironment.MediaExperience.Transport.PlayState; opResult.AppendFormat("PlayState={0}", Enum.GetName(typeof(PlayState), state)); } opResult.StatusCode = OpStatusCode.Success; } catch (Exception ex) { opResult.StatusCode = OpStatusCode.Exception; opResult.AppendFormat(ex.Message); } return(opResult); }
public OpResult Execute(RemotedWindowsMediaPlayer remotePlayer, string param) { OpResult opResult = new OpResult(); try { if (MediaExperienceWrapper.Instance == null || remotePlayer.getPlayState() == WMPPlayState.wmppsUndefined) { opResult.StatusCode = OpStatusCode.BadRequest; opResult.StatusText = "No media playing"; } else if (m_set) { if (param.Equals("")) { throw new Exception("Not a supported playrate!"); } PlayRateEnum playRate = (PlayRateEnum)Enum.Parse(typeof(PlayRateEnum), param, true); switch (playRate) { case PlayRateEnum.Pause: remotePlayer.getPlayerControls().pause(); break; case PlayRateEnum.Play: remotePlayer.getPlayerControls().play(); break; case PlayRateEnum.Stop: remotePlayer.getPlayerControls().stop(); break; case PlayRateEnum.FR: if (remotePlayer.getPlayerControls().get_isAvailable("FastReverse")) { remotePlayer.getPlayerControls().fastReverse(); } else { throw new Exception("Not supported"); } break; case PlayRateEnum.FF: if (remotePlayer.getPlayerControls().get_isAvailable("FastForward")) { remotePlayer.getPlayerControls().fastForward(); } else { throw new Exception("Not supported"); } break; case PlayRateEnum.SkipBack: remotePlayer.getPlayerControls().previous(); break; case PlayRateEnum.SkipForward: remotePlayer.getPlayerControls().next(); break; default: throw new Exception("Not a supported playrate!"); } opResult.StatusCode = OpStatusCode.Success; } else { WMPPlayState state = remotePlayer.getPlayState(); //string value = Enum.GetName(typeof(WMPPlayState), state).Remove(0, 5); PlayStateObject pObject = new PlayStateObject(); pObject.play_state = CurrentState.getTruncatedPlayState(remotePlayer.getPlayState()); opResult.StatusCode = OpStatusCode.Success; opResult.ContentObject = pObject; } } catch (Exception ex) { opResult.StatusCode = OpStatusCode.Exception; opResult.StatusText = ex.Message; } return(opResult); }