コード例 #1
0
ファイル: XmlTest1.cpp プロジェクト: Castlecard/plex
/*----------------------------------------------------------------------
|       TestWhitespace
+---------------------------------------------------------------------*/
static void
TestWhitespace()
{
    const char* xml = 
"<doc>\r\n"
"   <clean>   </clean>\r\n"
"   <dirty>   A   B   </dirty>\r\n"
"   <mixed>\r\n"
"      A\r\n"
"      <clean>   </clean>\r\n"
"      B\r\n"
"      <dirty>   A   B   </dirty>\r\n"
"      C\r\n"
"   </mixed>\r\n"
"</doc>\r\n";

    const char* expect1 = 
"<doc><clean/><dirty>   A   B   </dirty><mixed>\n"
"      A\n"
"      <clean/>\n"
"      B\n"
"      <dirty>   A   B   </dirty>\n"
"      C\n"
"   </mixed></doc>";

    const char* expect2 = 
"<doc>\n"
"   <clean>   </clean>\n"
"   <dirty>   A   B   </dirty>\n"
"   <mixed>\n"
"      A\n"
"      <clean>   </clean>\n"
"      B\n"
"      <dirty>   A   B   </dirty>\n"
"      C\n"
"   </mixed>\n"
"</doc>";

    NPT_XmlParser parser1(false); // ignore whitespace
    NPT_XmlNode* root;
    CHECK(NPT_SUCCEEDED(parser1.Parse(xml, root)));
    CHECK(root);

    NPT_XmlWriter writer;
    NPT_MemoryStream buffer;
    writer.Serialize(*root, buffer);
    CHECK(buffer.GetBuffer() == NPT_DataBuffer(expect1, NPT_StringLength(expect1)));

    delete root;

    NPT_XmlParser parser2(true); // keep whitespace
    CHECK(NPT_SUCCEEDED(parser2.Parse(xml, root)));
    CHECK(root);

    buffer.SetSize(0);
    writer.Serialize(*root, buffer);
    CHECK(buffer.GetBuffer() == NPT_DataBuffer(expect2, NPT_StringLength(expect2)));

    delete root;
}
コード例 #2
0
ファイル: XmlTest1.cpp プロジェクト: Castlecard/plex
/*----------------------------------------------------------------------
|       TestMakeStandalone
+---------------------------------------------------------------------*/
static void
TestMakeStandalone()
{
    const char* xml = 
        "<parent xmlns:foo='foo-ns' xmlns:bar='bar-ns' xmlns='default-ns'><inter xmlns:bli='bli-ns' xmlns:bou='bou-ns'><child><foo:a>a-text</foo:a><bar:b xml:fifi='0'>b-text</bar:b><c>c-text</c><d bou:att='b-att'/></child></inter></parent>";
    const char* expected = 
        "<child xmlns=\"default-ns\" xmlns:foo=\"foo-ns\" xmlns:bar=\"bar-ns\" xmlns:bou=\"bou-ns\"><foo:a>a-text</foo:a><bar:b xml:fifi=\"0\">b-text</bar:b><c>c-text</c><d bou:att=\"b-att\"/></child>";
    NPT_XmlParser parser;
    NPT_XmlNode* root = NULL;
    NPT_Result result = parser.Parse(xml, root);
    CHECK(NPT_SUCCEEDED(result));
    CHECK(root != NULL);
    CHECK(root->AsElementNode() != NULL);
    NPT_XmlElementNode* inter = root->AsElementNode()->GetChild("inter", NPT_XML_ANY_NAMESPACE);
    CHECK(inter != NULL);
    NPT_XmlElementNode* child = inter->GetChild("child", NPT_XML_ANY_NAMESPACE);
    CHECK(child != NULL);
    child->MakeStandalone();
    NPT_XmlWriter writer;
    NPT_MemoryStream buffer;
    writer.Serialize(*child, buffer);
    CHECK(buffer.GetBuffer() == NPT_DataBuffer(expected, NPT_StringLength(expected)));
    

    delete root;
}
コード例 #3
0
ファイル: avcore1.cpp プロジェクト: bubbletreefrog/DLNA
SimpleDMS::SimpleDMS(const UUID& uuid)
{
	m_uuid = uuid;
	m_deviceType = "urn:schemas-upnp-org:device:MediaServer:1";
	m_friendlyName = "SimpleDMS[WTF]";
	m_manufacturer = "NETGEAR Inc.";
	m_manufacturerURL = "http://www.netgear.com";
	m_modelDescription = "GENIE SimpleDMS";
	m_modelName = "SimpleDMS";
	m_modelNumber = "DJ-DMS";
	m_modelURL = "http://www.netgear.com";
	m_serialNumber = "260471";
	m_upc = "400240112013";
	m_presentationURL = "http://www.netgear.com";

/*	m_modelName = "Windows Media Player Sharing";
	m_modelNumber = "12.0";
	m_friendlyName = "SimpleDMS[WTF] : 2";*/
/*	m_modelURL = "http://go.microsoft.com/fwlink/?LinkId=105926";
	m_manufacturer = "Microsoft Corporation";
	m_manufacturerURL = "http://www.microsoft.com";*/

//	NPT_String friendlyName = "SimpleDMS248";

//	m_friendlyName = NPT_String::Format("%s: 1", friendlyName.GetChars());
//	m_modelName = NPT_String::Format("Windows Media Connect compatible (%s)", m_friendlyName.GetChars());
//	m_modelNumber = "1";
	//m_modelURL = "http://www.netgear.com/";
	//m_manufacturer = "NETGEAR32";
	//m_manufacturerURL = "http://www.siteview.com/";
	//m_serialNumber = "12345678";
	//m_modelDescription = friendlyName;

	registerServices(g_DMSServiceTable, g_DMSServiceTableSize);
	registerStaticContent("icon1", "image/png", NPT_DataBuffer(g_icon120_png, g_icon120_png_size, false), false);
	registerStaticContent("icon2", "image/png", NPT_DataBuffer(g_icon48_png, g_icon48_png_size, false), false);
	registerStaticContent("icon3", "image/png", NPT_DataBuffer(g_icon32_png, g_icon32_png_size, false), false);
	registerStaticContent("icon4", "image/jpeg", NPT_DataBuffer(g_icon120_jpg, g_icon120_jpg_size, false), false);
	registerStaticContent("icon5", "image/jpeg", NPT_DataBuffer(g_icon48_jpg, g_icon48_jpg_size, false), false);
	registerStaticContent("icon6", "image/jpeg", NPT_DataBuffer(g_icon32_jpg, g_icon32_jpg_size, false), false);

	const char *cds = "urn:upnp-org:serviceId:ContentDirectory";
	setStateValue(cds, "SearchCapabilities", "*");
	setStateValue(cds, "SortCapabilities", "*");
	setStateValue(cds, "SystemUpdateID", "0");
	setStateValue(cds, "ContainerUpdateIDs", "");

	const char *cms = "urn:upnp-org:serviceId:ConnectionManager";
	setStateValue(cms, "SourceProtocolInfo", "");
	setStateValue(cms, "SinkProtocolInfo", "");
	setStateValue(cms, "CurrentConnectionIDs", "0");

	m_store = new MediaStore(this);
}
コード例 #4
0
ファイル: XmlTest1.cpp プロジェクト: Castlecard/plex
/*----------------------------------------------------------------------
|       TestCdata
+---------------------------------------------------------------------*/
static void
TestCdata()
{
    const char* xml = 
        "<doc> blabla <![CDATA[  < [[  Smith ]] >   ]]> blibli</doc>";
    const char* expect = "<doc> blabla   &lt; [[  Smith ]] &gt;    blibli</doc>";

    NPT_XmlParser parser;
    NPT_XmlNode* root;
    CHECK(NPT_SUCCEEDED(parser.Parse(xml, root)));
    CHECK(root);

    NPT_XmlWriter writer;
    NPT_MemoryStream buffer;
    writer.Serialize(*root, buffer);
    CHECK(buffer.GetBuffer() == NPT_DataBuffer(expect, NPT_StringLength(expect)));

    delete root;
}
コード例 #5
0
ファイル: XmlTest1.cpp プロジェクト: Castlecard/plex
/*----------------------------------------------------------------------
|       TestComments
+---------------------------------------------------------------------*/
static void
TestComments()
{
    const char* xml = 
        "<!-- comment outside the element -->\n"
        "<doc> blabla <!-- --> foo <!-- you <g> &foo -> &bar --> blibli</doc>";
    const char* expect = "<doc> blabla  foo  blibli</doc>";

    NPT_XmlParser parser;
    NPT_XmlNode* root;
    CHECK(NPT_SUCCEEDED(parser.Parse(xml, root)));
    CHECK(root);

    NPT_XmlWriter writer;
    NPT_MemoryStream buffer;
    writer.Serialize(*root, buffer);
    CHECK(buffer.GetBuffer() == NPT_DataBuffer(expect, NPT_StringLength(expect)));

    delete root;
}
コード例 #6
0
ファイル: avcore2.cpp プロジェクト: bubbletreefrog/DLNA
SimpleDMR::SimpleDMR(Callback *callback, const UUID& uuid)
	: m_callback(callback)
{
	m_uuid = uuid;
	m_deviceType = "urn:schemas-upnp-org:device:MediaRenderer:1";
	m_friendlyName = "SimpleDMR[WTF]";
	m_manufacturer = "NETGEAR Inc.";
	m_manufacturerURL = "http://www.netgear.com";
	m_modelDescription = "GENIE SimpleDMR";
	m_modelName = "SimpleDMR";
	m_modelNumber = "DJ-DMR";
	m_modelURL = "http://www.netgear.com";
	m_serialNumber = "262471";
	m_upc = "400240112011";
	m_presentationURL = "http://www.netgear.com";

	registerServices(g_DMRServiceTable, g_DMRServiceTableSize);
	registerStaticContent("icon1", "image/png", NPT_DataBuffer(g_icon120_png, g_icon120_png_size, false), false);
	registerStaticContent("icon2", "image/png", NPT_DataBuffer(g_icon48_png, g_icon48_png_size, false), false);
	registerStaticContent("icon3", "image/png", NPT_DataBuffer(g_icon32_png, g_icon32_png_size, false), false);
	registerStaticContent("icon4", "image/jpeg", NPT_DataBuffer(g_icon120_jpg, g_icon120_jpg_size, false), false);
	registerStaticContent("icon5", "image/jpeg", NPT_DataBuffer(g_icon48_jpg, g_icon48_jpg_size, false), false);
	registerStaticContent("icon6", "image/jpeg", NPT_DataBuffer(g_icon32_jpg, g_icon32_jpg_size, false), false);
/*
	const char *sinkProtocolInfo =
		"http-get:*:image/png:*,"
		"http-get:*:image/jpeg:*,"
		"http-get:*:image/bmp:*,"
		"http-get:*:image/gif:*,"
		"http-get:*:audio/mpeg:*,"
		"http-get:*:audio/3gpp:*,"
		"http-get:*:audio/mp4:*,"
		"http-get:*:audio/x-ms-wma:*,"
		"http-get:*:audio/wav:*,"
		"http-get:*:video/mp4:*,"
		"http-get:*:video/mpeg:*,"
		"http-get:*:video/x-ms-wmv:*,"
		"http-get:*:video/x-ms-asf:*,"
		"http-get:*:video/3gpp:*,"
		"http-get:*:video/avi:*,"
		"http-get:*:video/quicktime:*"
		;
*/
	const char *cms = "urn:upnp-org:serviceId:ConnectionManager";
	setStateValue(cms, "SourceProtocolInfo", "");
//	setStateValue(cms, "SinkProtocolInfo", sinkProtocolInfo);
	setStateValue(cms, "CurrentConnectionIDs", "0");
/*
	const char *avt = "urn:upnp-org:serviceId:AVTransport";
	setStateValue(avt, "TransportState", "NO_MEDIA_PRESENT");
	setStateValue(avt, "TransportStatus", "OK");
	setStateValue(avt, "PlaybackStorageMedium", "NONE");
	setStateValue(avt, "RecordStorageMedium", "NOT_IMPLEMENTED");
	setStateValue(avt, "PossiblePlaybackStorageMedia", "NONE,NETWORK,UNKNOWN,HDD");
	setStateValue(avt, "PossibleRecordStorageMedia", "NOT_IMPLEMENTED");
	setStateValue(avt, "CurrentPlayMode", "NORMAL");
	setStateValue(avt, "TransportPlaySpeed", "1");
	setStateValue(avt, "RecordMediumWriteStatus", "NOT_IMPLEMENTED");
	setStateValue(avt, "CurrentRecordQualityMode", "NOT_IMPLEMENTED");
	setStateValue(avt, "PossibleRecordQualityModes", "NOT_IMPLEMENTED");
	setStateValue(avt, "NumberOfTracks", "0");
	setStateValue(avt, "CurrentTrack", "0");
	setStateValue(avt, "CurrentTrackDuration", "00:00:00");
	setStateValue(avt, "CurrentMediaDuration", "00:00:00");
	setStateValue(avt, "CurrentTrackMetaData", "");
	setStateValue(avt, "CurrentTrackURI", "");
	setStateValue(avt, "AVTransportURI", "");
	setStateValue(avt, "AVTransportURIMetaData", "");
	setStateValue(avt, "NextAVTransportURI", "NOT_IMPLEMENTED");
	setStateValue(avt, "NextAVTransportURIMetaData", "NOT_IMPLEMENTED");
	setStateValue(avt, "RelativeTimePosition", "00:00:00");
	setStateValue(avt, "AbsoluteTimePosition", "NOT_IMPLEMENTED");
	setStateValue(avt, "RelativeCounterPosition", "-1");
	setStateValue(avt, "AbsoluteCounterPosition", "-1");
	setStateValue(avt, "CurrentTransportActions", "");

	const char *rcs = "urn:upnp-org:serviceId:RenderingControl";
	setStateValue(rcs, "PresetNameList", "FactoryDefaults");
	setStateValue(rcs, "Mute", "0");
	setStateValue(rcs, "Volume", "100");
*/
	setVar(DMRVAR_TransportState, "NO_MEDIA_PRESENT");
	setVar(DMRVAR_TransportStatus, "OK");
	setVar(DMRVAR_PlaybackStorageMedium, "NONE");
	setVar(DMRVAR_RecordStorageMedium, "NOT_IMPLEMENTED");
	setVar(DMRVAR_PossiblePlaybackStorageMedia, "NONE,NETWORK,UNKNOWN,HDD");
	setVar(DMRVAR_PossibleRecordStorageMedia, "NOT_IMPLEMENTED");
	setVar(DMRVAR_CurrentPlayMode, "NORMAL");
	setVar(DMRVAR_TransportPlaySpeed, "1");
	setVar(DMRVAR_RecordMediumWriteStatus, "NOT_IMPLEMENTED");
	setVar(DMRVAR_CurrentRecordQualityMode, "NOT_IMPLEMENTED");
	setVar(DMRVAR_PossibleRecordQualityModes, "NOT_IMPLEMENTED");
	setVar(DMRVAR_NumberOfTracks, "0");
	setVar(DMRVAR_CurrentTrack, "0");
	setVar(DMRVAR_CurrentTrackDuration, "00:00:00");
	setVar(DMRVAR_CurrentMediaDuration, "00:00:00");
	setVar(DMRVAR_CurrentTrackMetaData, "");
	setVar(DMRVAR_CurrentTrackURI, "");
	setVar(DMRVAR_AVTransportURI, "");
	setVar(DMRVAR_AVTransportURIMetaData, "");
	setVar(DMRVAR_NextAVTransportURI, "NOT_IMPLEMENTED");
	setVar(DMRVAR_NextAVTransportURIMetaData, "NOT_IMPLEMENTED");
	setVar(DMRVAR_RelativeTimePosition, "00:00:00");
	setVar(DMRVAR_AbsoluteTimePosition, "NOT_IMPLEMENTED");
	setVar(DMRVAR_RelativeCounterPosition, "-1");
	setVar(DMRVAR_AbsoluteCounterPosition, "-1");
	setVar(DMRVAR_CurrentTransportActions, "");

	setVar(DMRVAR_PresetNameList, "FactoryDefaults");
	setVar(DMRVAR_Mute, "0");
	setVar(DMRVAR_Volume, "100");
}