⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 crenderer.cc.svn-base

📁 基于LINUX/UNIX的UPN库,是智能家具的用的底层库.
💻 SVN-BASE
📖 第 1 页 / 共 3 页
字号:
		fputs("#MPLAYER_BIN=/usr/bin/mplayer\n\n",file);		fclose(file);		myfile.open(home_conf,ifstream::in);		//exit(1);		}	string line;	string str_xmlIcon = "";	string str_friendlyName = "";	string varName,value;	while (! myfile.eof() )	{		// Zeile holen		getline (myfile,line);		// Kommentare entfernen		if (line.find_first_of('#') == 0)			line="";		if (strcmp(line.c_str(),"")) {			// Zeile trimmen			trim(line);			// Name und Wert holen			getVarName(varName, line);			getValue(value, line);				//Hostname einkleben			char hostname[50];			gethostname(hostname,50);			str_replace("%h",hostname,value);						// zuweisen			if (!strcmp(varName.c_str(),"FRIENDLYNAME")) {				sprintf(friendlyName,"%s",value.c_str());			} else if (!strcmp(varName.c_str(),"IP_ADDRESS")) {				sprintf(ip_addr,"%s",value.c_str());			} else if (!strcmp(varName.c_str(),"MPLAYER_BIN")) {				sprintf(mplayer_bin,"%s",value.c_str());			}		}	}	myfile.close();	this->udn = strdup(this->get_uuid());//	strcpy(udn,str_udn.c_str());	}IXML_Document* cRenderer::getDescriptionDoc(){	IXML_Document* descDoc;	IXML_Node* node;	IXML_Node* node2;	IXML_Node* node3;	IXML_Element* Ele;	IXML_Element* Ele2;	IXML_Element* Ele3;	IXML_Element* Ele4;	descDoc = ixmlParseBuffer("<root></root>");	node = ixmlNode_getFirstChild( (IXML_Node*) descDoc );		Ele = ixmlDocument_createElement( descDoc, "specVersion" );	Ele2 = ixmlDocument_createElement( descDoc, "major" );	node2 = ixmlDocument_createTextNode( descDoc, "1" );	ixmlNode_appendChild((IXML_Node*) Ele2, (IXML_Node*) node2);	ixmlNode_appendChild((IXML_Node*) Ele, (IXML_Node*) Ele2);	Ele2 = ixmlDocument_createElement( descDoc, "minor" );	node2 = ixmlDocument_createTextNode( descDoc, "0" );	ixmlNode_appendChild((IXML_Node*) Ele2, (IXML_Node*) node2);	ixmlNode_appendChild((IXML_Node*) Ele, (IXML_Node*) Ele2);	ixmlNode_appendChild(node, (IXML_Node*) Ele);	// Beginn <device>	Ele = ixmlDocument_createElement( descDoc, "device" );	Ele2 = ixmlDocument_createElement( descDoc, "deviceType" );	node2 = ixmlDocument_createTextNode(descDoc, "urn:schemas-upnp-org:device:MediaRenderer:1");	ixmlNode_appendChild((IXML_Node*) Ele2, node2);	ixmlNode_appendChild((IXML_Node*) Ele, (IXML_Node*) Ele2);		Ele2 = ixmlDocument_createElement( descDoc, "friendlyName" );	node2 = ixmlDocument_createTextNode(descDoc, this->friendlyName);	ixmlNode_appendChild((IXML_Node*) Ele2, node2);	ixmlNode_appendChild((IXML_Node*) Ele, (IXML_Node*) Ele2);		Ele2 = ixmlDocument_createElement( descDoc, "manufacturer" );	node2 = ixmlDocument_createTextNode(descDoc, "PG483");	ixmlNode_appendChild((IXML_Node*) Ele2, node2);	ixmlNode_appendChild((IXML_Node*) Ele, (IXML_Node*) Ele2);	Ele2 = ixmlDocument_createElement( descDoc, "manufacturerURL" );	node2 = ixmlDocument_createTextNode(descDoc, "http://www.ubiquitous-media.de");	ixmlNode_appendChild((IXML_Node*) Ele2, node2);	ixmlNode_appendChild((IXML_Node*) Ele, (IXML_Node*) Ele2);	Ele2 = ixmlDocument_createElement( descDoc, "modelDescription" );	node2 = ixmlDocument_createTextNode(descDoc, "Linux-Renderer(C++,PG483) 1.0");	ixmlNode_appendChild((IXML_Node*) Ele2, node2);	ixmlNode_appendChild((IXML_Node*) Ele, (IXML_Node*) Ele2);	Ele2 = ixmlDocument_createElement( descDoc, "modelName" );	node2 = ixmlDocument_createTextNode(descDoc, "AV Renderer");	ixmlNode_appendChild((IXML_Node*) Ele2, node2);	ixmlNode_appendChild((IXML_Node*) Ele, (IXML_Node*) Ele2);	Ele2 = ixmlDocument_createElement( descDoc, "modelNumber" );	node2 = ixmlDocument_createTextNode(descDoc, "1.0");	ixmlNode_appendChild((IXML_Node*) Ele2, node2);	ixmlNode_appendChild((IXML_Node*) Ele, (IXML_Node*) Ele2);	Ele2 = ixmlDocument_createElement( descDoc, "modelURL" );	node2 = ixmlDocument_createTextNode(descDoc, "http://www.ubiquitous-media.de");	ixmlNode_appendChild((IXML_Node*) Ele2, node2);	ixmlNode_appendChild((IXML_Node*) Ele, (IXML_Node*) Ele2);	Ele2 = ixmlDocument_createElement( descDoc, "serialNumber" );	node2 = ixmlDocument_createTextNode(descDoc, "000000000001");	ixmlNode_appendChild((IXML_Node*) Ele2, node2);	ixmlNode_appendChild((IXML_Node*) Ele, (IXML_Node*) Ele2);	Ele2 = ixmlDocument_createElement( descDoc, "UDN" );	node2 = ixmlDocument_createTextNode(descDoc, this->udn);	ixmlNode_appendChild((IXML_Node*) Ele2, node2);	ixmlNode_appendChild((IXML_Node*) Ele, (IXML_Node*) Ele2);	Ele2 = ixmlDocument_createElement( descDoc, "UPC" );	node2 = ixmlDocument_createTextNode(descDoc, "000000000001");	ixmlNode_appendChild((IXML_Node*) Ele2, node2);	ixmlNode_appendChild((IXML_Node*) Ele, (IXML_Node*) Ele2);	Ele2 = ixmlDocument_createElement( descDoc, "iconList" );	Ele3 = ixmlDocument_createElement(descDoc, "icon");	Ele4 = ixmlDocument_createElement(descDoc, "mimeType");	node3 = ixmlDocument_createTextNode(descDoc, "image/gif");	ixmlNode_appendChild((IXML_Node*) Ele4, node3);	ixmlNode_appendChild((IXML_Node*) Ele3, (IXML_Node*) Ele4);	Ele4 = ixmlDocument_createElement(descDoc, "width");	node3 = ixmlDocument_createTextNode(descDoc, "32");	ixmlNode_appendChild((IXML_Node*) Ele4, node3);	ixmlNode_appendChild((IXML_Node*) Ele3, (IXML_Node*) Ele4);	Ele4 = ixmlDocument_createElement(descDoc, "height");	node3 = ixmlDocument_createTextNode(descDoc, "32");	ixmlNode_appendChild((IXML_Node*) Ele4, node3);	ixmlNode_appendChild((IXML_Node*) Ele3, (IXML_Node*) Ele4);	Ele4 = ixmlDocument_createElement(descDoc, "depth");	node3 = ixmlDocument_createTextNode(descDoc, "8");	ixmlNode_appendChild((IXML_Node*) Ele4, node3);	ixmlNode_appendChild((IXML_Node*) Ele3, (IXML_Node*) Ele4);	Ele4 = ixmlDocument_createElement(descDoc, "url");	node3 = ixmlDocument_createTextNode(descDoc, "/upnpmplayer.gif");	ixmlNode_appendChild((IXML_Node*) Ele4, node3);	ixmlNode_appendChild((IXML_Node*) Ele3, (IXML_Node*) Ele4);	ixmlNode_appendChild((IXML_Node*) Ele2, (IXML_Node*) Ele3);	ixmlNode_appendChild((IXML_Node*) Ele, (IXML_Node*) Ele2);		Ele2 = ixmlDocument_createElement( descDoc, "serviceList" );		Ele3 = ixmlDocument_createElement(descDoc, "service");	Ele4 = ixmlDocument_createElement(descDoc, "serviceType");	node3 = ixmlDocument_createTextNode(descDoc, "urn:schemas-upnp-org:service:RenderingControl:1");	ixmlNode_appendChild((IXML_Node*) Ele4, node3);	ixmlNode_appendChild((IXML_Node*) Ele3, (IXML_Node*) Ele4);	Ele4 = ixmlDocument_createElement(descDoc, "serviceId");	node3 = ixmlDocument_createTextNode(descDoc, "urn:upnp-org:serviceId:RenderingControl1");	ixmlNode_appendChild((IXML_Node*) Ele4, node3);	ixmlNode_appendChild((IXML_Node*) Ele3, (IXML_Node*) Ele4);	Ele4 = ixmlDocument_createElement(descDoc, "controlURL");	node3 = ixmlDocument_createTextNode(descDoc, "/upnp/control/RenderingControl1");	ixmlNode_appendChild((IXML_Node*) Ele4, node3);	ixmlNode_appendChild((IXML_Node*) Ele3, (IXML_Node*) Ele4);	Ele4 = ixmlDocument_createElement(descDoc, "eventSubURL");	node3 = ixmlDocument_createTextNode(descDoc, "/upnp/event/RenderingControl1");	ixmlNode_appendChild((IXML_Node*) Ele4, node3);	ixmlNode_appendChild((IXML_Node*) Ele3, (IXML_Node*) Ele4);	Ele4 = ixmlDocument_createElement(descDoc, "SCPDURL");	node3 = ixmlDocument_createTextNode(descDoc, "RendererControl.xml");	ixmlNode_appendChild((IXML_Node*) Ele4, node3);	ixmlNode_appendChild((IXML_Node*) Ele3, (IXML_Node*) Ele4);	ixmlNode_appendChild((IXML_Node*) Ele2, (IXML_Node*) Ele3);	ixmlNode_appendChild((IXML_Node*) Ele, (IXML_Node*) Ele2);	Ele3 = ixmlDocument_createElement(descDoc, "service");	Ele4 = ixmlDocument_createElement(descDoc, "serviceType");	node3 = ixmlDocument_createTextNode(descDoc, "urn:schemas-upnp-org:service:ConnectionManager:1");	ixmlNode_appendChild((IXML_Node*) Ele4, node3);	ixmlNode_appendChild((IXML_Node*) Ele3, (IXML_Node*) Ele4);	Ele4 = ixmlDocument_createElement(descDoc, "serviceId");	node3 = ixmlDocument_createTextNode(descDoc, "urn:upnp-org:serviceId:ConnectionManager1");	ixmlNode_appendChild((IXML_Node*) Ele4, node3);	ixmlNode_appendChild((IXML_Node*) Ele3, (IXML_Node*) Ele4);	Ele4 = ixmlDocument_createElement(descDoc, "controlURL");	node3 = ixmlDocument_createTextNode(descDoc, "/upnp/control/ConnectionManager1");	ixmlNode_appendChild((IXML_Node*) Ele4, node3);	ixmlNode_appendChild((IXML_Node*) Ele3, (IXML_Node*) Ele4);	Ele4 = ixmlDocument_createElement(descDoc, "eventSubURL");	node3 = ixmlDocument_createTextNode(descDoc, "/upnp/event/ConnectionManager1");	ixmlNode_appendChild((IXML_Node*) Ele4, node3);	ixmlNode_appendChild((IXML_Node*) Ele3, (IXML_Node*) Ele4);	Ele4 = ixmlDocument_createElement(descDoc, "SCPDURL");	node3 = ixmlDocument_createTextNode(descDoc, "ConnectionManager.xml");	ixmlNode_appendChild((IXML_Node*) Ele4, node3);	ixmlNode_appendChild((IXML_Node*) Ele3, (IXML_Node*) Ele4);	ixmlNode_appendChild((IXML_Node*) Ele2, (IXML_Node*) Ele3);	ixmlNode_appendChild((IXML_Node*) Ele, (IXML_Node*) Ele2);	Ele3 = ixmlDocument_createElement(descDoc, "service");	Ele4 = ixmlDocument_createElement(descDoc, "serviceType");	node3 = ixmlDocument_createTextNode(descDoc, "urn:schemas-upnp-org:service:AVTransport:1");	ixmlNode_appendChild((IXML_Node*) Ele4, node3);	ixmlNode_appendChild((IXML_Node*) Ele3, (IXML_Node*) Ele4);	Ele4 = ixmlDocument_createElement(descDoc, "serviceId");	node3 = ixmlDocument_createTextNode(descDoc, "urn:upnp-org:serviceId:AVTransport1");	ixmlNode_appendChild((IXML_Node*) Ele4, node3);	ixmlNode_appendChild((IXML_Node*) Ele3, (IXML_Node*) Ele4);	Ele4 = ixmlDocument_createElement(descDoc, "controlURL");	node3 = ixmlDocument_createTextNode(descDoc, "/upnp/control/AVTransport1");	ixmlNode_appendChild((IXML_Node*) Ele4, node3);	ixmlNode_appendChild((IXML_Node*) Ele3, (IXML_Node*) Ele4);	Ele4 = ixmlDocument_createElement(descDoc, "eventSubURL");	node3 = ixmlDocument_createTextNode(descDoc, "/upnp/event/AVTransport1");	ixmlNode_appendChild((IXML_Node*) Ele4, node3);	ixmlNode_appendChild((IXML_Node*) Ele3, (IXML_Node*) Ele4);	Ele4 = ixmlDocument_createElement(descDoc, "SCPDURL");	node3 = ixmlDocument_createTextNode(descDoc, "AVTransport.xml");	ixmlNode_appendChild((IXML_Node*) Ele4, node3);	ixmlNode_appendChild((IXML_Node*) Ele3, (IXML_Node*) Ele4);	ixmlNode_appendChild((IXML_Node*) Ele2, (IXML_Node*) Ele3);	ixmlNode_appendChild((IXML_Node*) Ele, (IXML_Node*) Ele2);		ixmlNode_appendChild((IXML_Node*) Ele, (IXML_Node*) Ele2);	ixmlNode_appendChild(node, (IXML_Node*) Ele);	return descDoc;}char* cRenderer::get_uuid() {	char* home=getenv("HOME");	char pfad_to_uuid[100];	sprintf(pfad_to_uuid,"%s/.renderer/uuid",home);	// uuid holen, bzw generieren	char uuid[42];	ifstream uuid_in;	uuid_in.open(pfad_to_uuid,ifstream::in) ;	if (!uuid_in.is_open()) {		return generate_uuid();	}		uuid_in.read(uuid,45);	if(strlen(uuid)!=41) {		return generate_uuid();	}		uuid_in.close();	cout << "alt: " << uuid << endl;	return strdup(uuid);}char* cRenderer::generate_uuid() {	char* home=getenv("HOME");	char pfad_to_uuid[100];	sprintf(pfad_to_uuid,"%s/.renderer/uuid",home);	//uuid generieren	char uuid[42];	uuid_t uu; 	uuid_generate(uu);	sprintf(uuid,"uuid:%02x%02x%02x%02x-%02x%02x-%02x%02x-%02x%02x-%02x%02x%02x%02x%02x%02x",			uu[0],uu[1],uu[2],uu[3],uu[4],uu[5],uu[6],uu[7],uu[8],uu[9],uu[10],uu[11],uu[12],uu[13],uu[14],uu[15]);	ofstream uuid_out;	uuid_out.open(pfad_to_uuid,ofstream::out);	if (!uuid_out.is_open())		cout << "couldn't open uuidfile" << endl;	uuid_out.write(uuid,strlen(uuid));	uuid_out.close();	cout << "neu: " << uuid << endl;	return strdup(uuid);}void cRenderer::trim(string& str){	string::size_type start = str.find_first_not_of(' ');	string::size_type end = str.find_last_not_of(' ');	str = str.substr(	start == string::npos ? 0 : start, 						end == string::npos ? str.length()-1 : end-start+1);}void cRenderer::str_replace(string needle, string replacement, string& haystack){	string::size_type start = haystack.find(needle);	if (start!=string::npos && start>0)		haystack = haystack.replace( start, needle.length(), replacement);}void cRenderer::getVarName(string& varName, string& haystack){	int end = haystack.find_first_of("=");	if (end>0) {		varName = haystack.substr(0,end);	}}void cRenderer::getValue(string& value, string& haystack){	int begin = haystack.find_first_of("=");	if (begin>0) {		value = haystack.substr(begin+1,haystack.length());	}}void cRenderer::handleOptions(int argc,char* argv[]){	char* optionName;	char* optionValue;	if(argc!=0)	{		for(int i=0;i<argc;i++)		{			optionName=argv[i];			if(!strcmp(optionName,"-a"))			{				i++;				optionValue=argv[i];				this->ip_addr=strdup(optionValue);			}else if(!strcmp(optionName,"-f"))			{				this->fullscreen="-fs";			}		}	}}void cRenderer::initVar(){	ip_addr=NULL;	fullscreen=NULL;	mplayer_bin="/usr/bin/mplayer";	char hostname[50];	gethostname(hostname,50);	sprintf(friendlyName,"Linux-Renderer(%s)",hostname);}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -