protected static void OnEventSetAVTransportURI(OnEventSetAVTransportURIEventArgs e)
 {
     if (SetAVTransportURI != null)
     {
         SetAVTransportURI(e);
     }
 }
        private static UPnPError OnSetAVTransportURI(DvAction action, IList <object> inParams, out IList <object> outParams, CallContext context)
        {
            TraceLogger.DebugLogParams(inParams);

            ChangeStateVariables(new List <string>
            {
                "AVTransportURI",
                "AVTransportURIMetaData",
                "PlaybackStorageMedium"
            }, new List <object>
            {
                inParams[1],
                inParams[2],
                "NETWORK" // we always play from a network resource
            }, action);

            // From the Documentation:
            // If the current transport state is “NO MEDIA PRESENT” the transport state changes to “STOPPED”.
            // In all other cases, this action does not change the transport state of the specified instance.
            if (action.ParentService.StateVariables["TransportState"].Value.ToString() == "NO_MEDIA_PRESENT")
            {
                TraceLogger.WriteLine("Change State to STOPPED");
                ChangeStateVariables(new List <string>
                {
                    "TransportState"
                }, new List <object>
                {
                    "STOPPED"
                }, action);
            }

            outParams = action.OutArguments.Select(outArgument => outArgument.RelatedStateVar.Value).ToList();

            OnEventSetAVTransportURIEventArgs eventArgs = new OnEventSetAVTransportURIEventArgs
            {
                CurrentURI         = inParams[1] as string,
                CurrentURIMetaData = inParams[2] as string
            };

            OnEventSetAVTransportURI(eventArgs);

            TraceLogger.WriteLine("OnSetAVTransportURI RETURN");
            return(null);
        }
Exemple #3
0
        private void OnSetAvTransportUri(OnEventSetAVTransportURIEventArgs e)
        {
            Logger.Debug("Set Uri Event fired");
            Logger.Debug("CurrentURI " + e.CurrentURI);
            Logger.Debug("CurrentURIMetaData " + e.CurrentURIMetaData);

            //Logger.Debug("MimeType: {0}", Utils.GetMimeFromUrl(e.CurrentURI, e.CurrentURIMetaData));
            _playerType = Utils.GetContentTypeFromUrl(e.CurrentURI, e.CurrentURIMetaData);

            switch (_playerType)
            {
            case ContentType.Audio:
                break;

            case ContentType.Image:
                var imageItem = UPnPMediaItemFactory.CreateImageItem(e.CurrentURI);
                imageItem.AddMetaDataToMediaItem(e.CurrentURIMetaData);

                var ic = GetPlayerContext <UPnPRendererImagePlayer>();
                if (ic != null)
                {
                    ic.DoPlay(imageItem);
                }
                else
                {
                    PlayItemsModel.CheckQueryPlayAction(imageItem);
                }
                break;

            case ContentType.Video:
                break;

            case ContentType.Unknown:
                break;
            }
        }
    private static UPnPError OnSetAVTransportURI(DvAction action, IList<object> inParams, out IList<object> outParams, CallContext context)
    {
      TraceLogger.DebugLogParams(inParams);

      ChangeStateVariables(new List<string>
      {
        "AVTransportURI",
        "AVTransportURIMetaData",
        "PlaybackStorageMedium"
      }, new List<object>
      {
        inParams[1],
        inParams[2],
        "NETWORK"   // we always play from a network resource
      }, action);

      // From the Documentation:
      // If the current transport state is “NO MEDIA PRESENT” the transport state changes to “STOPPED”.
      // In all other cases, this action does not change the transport state of the specified instance.
      if (action.ParentService.StateVariables["TransportState"].Value.ToString() == "NO_MEDIA_PRESENT")
      {
        TraceLogger.WriteLine("Change State to STOPPED");
        ChangeStateVariables(new List<string>
        {
          "TransportState"
        }, new List<object>
        {
          "STOPPED"
        }, action);
      }

      outParams = action.OutArguments.Select(outArgument => outArgument.RelatedStateVar.Value).ToList();

      OnEventSetAVTransportURIEventArgs eventArgs = new OnEventSetAVTransportURIEventArgs
      {
        CurrentURI = inParams[1] as string,
        CurrentURIMetaData = inParams[2] as string
      };

      OnEventSetAVTransportURI(eventArgs);

      TraceLogger.WriteLine("OnSetAVTransportURI RETURN");
      return null;
    }
 protected static void OnEventSetAVTransportURI(OnEventSetAVTransportURIEventArgs e)
 {
   if (SetAVTransportURI != null)
     SetAVTransportURI(e);
 }