예제 #1
0
        /// <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);
        }
예제 #2
0
        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);
        }