Add() public method

public Add ( string>.KeyValuePair item ) : void
item string>.KeyValuePair
return void
コード例 #1
0
ファイル: ItemResponse.cs プロジェクト: renanxr3/simpleDLNA
        public ItemResponse(IRequest request, IMediaResource aItem, string transferMode = "Streaming")
        {
            item = aItem;
              headers = new ResponseHeaders(noCache: !(item is IMediaCoverResource));
              var meta = item as IMetaInfo;
              if (meta != null) {
            headers.Add("Content-Length", meta.InfoSize.ToString());
            headers.Add("Last-Modified", meta.InfoDate.ToString("R"));
              }
              headers.Add("Accept-Ranges", "bytes");
              headers.Add("Content-Type", DlnaMaps.Mime[item.Type]);
              if (request.Headers.ContainsKey("getcontentFeatures.dlna.org")) {
            if (item.MediaType == DlnaMediaTypes.Image) {
              headers.Add("contentFeatures.dlna.org", String.Format("{0};DLNA.ORG_OP=00;DLNA.ORG_CI=0;DLNA.ORG_FLAGS={1}", item.PN, DlnaMaps.DefaultInteractive));
            }
            else {
              headers.Add("contentFeatures.dlna.org", String.Format("{0};DLNA.ORG_OP=01;DLNA.ORG_CI=0;DLNA.ORG_FLAGS={1}", item.PN, DlnaMaps.DefaultStreaming));
            }
              }
              Headers.Add("transferMode.dlna.org", transferMode);

              Debug(headers);
        }
コード例 #2
0
    public ItemResponse(string prefix, IRequest request, IMediaResource item,
                        string transferMode = "Streaming")
    {
      this.item = item;
      headers = new ResponseHeaders(noCache: !(item is IMediaCoverResource));
      var meta = item as IMetaInfo;
      if (meta != null) {
        headers.Add("Content-Length", meta.InfoSize.ToString());
        headers.Add("Last-Modified", meta.InfoDate.ToString("R"));
      }
      headers.Add("Accept-Ranges", "bytes");
      headers.Add("Content-Type", DlnaMaps.Mime[item.Type]);
      if (request.Headers.ContainsKey("getcontentFeatures.dlna.org")) {
        try {
          if (item.MediaType == DlnaMediaTypes.Image) {
            headers.Add(
              "contentFeatures.dlna.org",
              String.Format(
                "DLNA.ORG_PN={0};DLNA.ORG_OP=00;DLNA.ORG_CI=0;DLNA.ORG_FLAGS={1}",
                item.PN,
                DlnaMaps.DefaultInteractive
                )
              );
          }
          else {
            headers.Add(
              "contentFeatures.dlna.org",
              String.Format(
                "DLNA.ORG_PN={0};DLNA.ORG_OP=01;DLNA.ORG_CI=0;DLNA.ORG_FLAGS={1}",
                item.PN,
                DlnaMaps.DefaultStreaming
                )
              );
          }
        }
        catch (NotSupportedException) {
        }
        catch (NotImplementedException) {
        }
      }
      if (request.Headers.ContainsKey("getCaptionInfo.sec")) {
        var mvi = item as IMetaVideoItem;
        if (mvi != null && mvi.Subtitle.HasSubtitle) {
          var surl = String.Format(
          "http://{0}:{1}{2}subtitle/{3}/st.srt",
          request.LocalEndPoint.Address,
          request.LocalEndPoint.Port,
          prefix,
          item.Id
          );
          DebugFormat("Sending subtitles {0}", surl);
          headers.Add("CaptionInfo.sec", surl);
        }
      }
      if (request.Headers.ContainsKey("getMediaInfo.sec")) {
        var md = item as IMetaDuration;
        if (md != null && md.MetaDuration.HasValue) {
          headers.Add(
            "MediaInfo.sec",
            string.Format(
              "SEC_Duration={0};",
              md.MetaDuration.Value.TotalMilliseconds
              )
            );
        }
      }
      headers.Add("transferMode.dlna.org", transferMode);

      Debug(headers);
    }
コード例 #3
0
ファイル: Redirect.cs プロジェクト: zhengfish/simpleDLNA
 internal Redirect(HttpCode code, string uri)
     : base(code, "text/plain", "Redirecting...")
 {
     Headers.Add("Location", uri);
 }
コード例 #4
0
ファイル: ItemResponse.cs プロジェクト: everyonce/simpleDLNA
        public ItemResponse(string prefix, IRequest request, IMediaResource item,
                            string transferMode = "Streaming")
        {
            this.item = item;
            headers   = new ResponseHeaders(noCache: !(item is IMediaCoverResource));
            var meta = item as IMetaInfo;

            if (meta != null)
            {
                headers.Add("Content-Length", meta.InfoSize.ToString());
                headers.Add("Last-Modified", meta.InfoDate.ToString("R"));
            }
            headers.Add("Accept-Ranges", "bytes");
            headers.Add("Content-Type", DlnaMaps.Mime[item.Type]);
            if (request.Headers.ContainsKey("getcontentFeatures.dlna.org"))
            {
                try {
                    if (item.MediaType == DlnaMediaTypes.Image)
                    {
                        headers.Add(
                            "contentFeatures.dlna.org",
                            String.Format(
                                "DLNA.ORG_PN={0};DLNA.ORG_OP=00;DLNA.ORG_CI=0;DLNA.ORG_FLAGS={1}",
                                item.PN,
                                DlnaMaps.DefaultInteractive
                                )
                            );
                    }
                    else
                    {
                        headers.Add(
                            "contentFeatures.dlna.org",
                            String.Format(
                                "DLNA.ORG_PN={0};DLNA.ORG_OP=01;DLNA.ORG_CI=0;DLNA.ORG_FLAGS={1}",
                                item.PN,
                                DlnaMaps.DefaultStreaming
                                )
                            );
                    }
                }
                catch (NotSupportedException) {
                }
                catch (NotImplementedException) {
                }
            }
            if (request.Headers.ContainsKey("getCaptionInfo.sec"))
            {
                var mvi = item as IMetaVideoItem;
                if (mvi != null && mvi.Subtitle.HasSubtitle)
                {
                    var surl = String.Format(
                        "http://{0}:{1}{2}subtitle/{3}/st.srt",
                        request.LocalEndPoint.Address,
                        request.LocalEndPoint.Port,
                        prefix,
                        item.Id
                        );
                    DebugFormat("Sending subtitles {0}", surl);
                    headers.Add("CaptionInfo.sec", surl);
                }
            }
            if (request.Headers.ContainsKey("getMediaInfo.sec"))
            {
                var md = item as IMetaDuration;
                if (md != null && md.MetaDuration.HasValue)
                {
                    headers.Add(
                        "MediaInfo.sec",
                        string.Format(
                            "SEC_Duration={0};",
                            md.MetaDuration.Value.TotalMilliseconds
                            )
                        );
                }
            }
            headers.Add("transferMode.dlna.org", transferMode);

            Debug(headers);
        }