48 lines
1.3 KiB
C#
48 lines
1.3 KiB
C#
|
using System;
|
|||
|
using System.Collections.Generic;
|
|||
|
using System.Text;
|
|||
|
|
|||
|
namespace MediaBrowser.Dlna.Ssdp
|
|||
|
{
|
|||
|
public class SsdpMessageBuilder
|
|||
|
{
|
|||
|
public string BuildMessage(string header, Dictionary<string, string> values)
|
|||
|
{
|
|||
|
var builder = new StringBuilder();
|
|||
|
|
|||
|
const string argFormat = "{0}: {1}\r\n";
|
|||
|
|
|||
|
builder.AppendFormat("{0}\r\n", header);
|
|||
|
|
|||
|
foreach (var pair in values)
|
|||
|
{
|
|||
|
builder.AppendFormat(argFormat, pair.Key, pair.Value);
|
|||
|
}
|
|||
|
|
|||
|
builder.Append("\r\n");
|
|||
|
|
|||
|
return builder.ToString();
|
|||
|
}
|
|||
|
|
|||
|
public string BuildDiscoveryMessage(string deviceSearchType, string mx)
|
|||
|
{
|
|||
|
const string header = "M-SEARCH * HTTP/1.1";
|
|||
|
|
|||
|
var values = new Dictionary<string, string>(StringComparer.OrdinalIgnoreCase);
|
|||
|
|
|||
|
values["HOST"] = "239.255.255.250:1900";
|
|||
|
values["USER-AGENT"] = "UPnP/1.0 DLNADOC/1.50 Platinum/0.6.9.1";
|
|||
|
values["ST"] = deviceSearchType;
|
|||
|
values["MAN"] = "\"ssdp:discover\"";
|
|||
|
values["MX"] = mx;
|
|||
|
|
|||
|
return BuildMessage(header, values);
|
|||
|
}
|
|||
|
|
|||
|
public string BuildRendererDiscoveryMessage()
|
|||
|
{
|
|||
|
return BuildDiscoveryMessage("urn:schemas-upnp-org:device:MediaRenderer:1", "3");
|
|||
|
}
|
|||
|
}
|
|||
|
}
|