bool CMovieInfo::loadMovieInfo(MI_MOVIE_INFO * movie_info, CFile * file)
{
	//TRACE("[mi]->loadMovieInfo \r\n");
	bool result = true;
	CFile file_xml;

	if (file == NULL) {
		// if there is no give file, we use the file name from movie info but we have to convert the ts name to xml name first
		file_xml.Name = movie_info->file.Name;
		result = convertTs2XmlName(file_xml.Name);
	} else {
		file_xml.Name = file->Name;
	}

	if (result == true) {
		// load xml file in buffer
		std::string text;
		result = loadFile(file_xml, text);
		if (result == true) {
#ifdef XMLTREE_LIB
			result = parseXmlTree(text, movie_info);
#else /* XMLTREE_LIB */
			result = parseXmlQuickFix(text, movie_info);
#endif /* XMLTREE_LIB */
		}
	}
	if (movie_info->productionDate > 50 && movie_info->productionDate < 200)	// backwardcompaibility
		movie_info->productionDate += 1900;

	return (result);
}
bool CMovieInfo::saveMovieInfo(MI_MOVIE_INFO & movie_info, CFile * file)
{
	//TRACE("[mi]->saveXml \r\n");
	bool result = true;
	std::string text;
	CFile file_xml;

	if (file == NULL) {
		file_xml.Name = movie_info.file.Name;
		result = convertTs2XmlName(file_xml.Name);
	} else {
		file_xml.Name = file->Name;
	}
	TRACE("[mi] saveXml: %s\r\n", file_xml.Name.c_str());

	if (result == true) {
		result = encodeMovieInfoXml(&text, &movie_info);
		if (result == true) {
			result = saveFile(file_xml, text);	// save
			if (result == false) {
				TRACE("[mi] saveXml: save error\r\n");
			}
		} else {
			TRACE("[mi] saveXml: encoding error\r\n");
		}
	} else {
		TRACE("[mi] saveXml: error\r\n");
	}
	return (result);
}
Exemple #3
0
bool CMovieInfo::loadMovieInfo( MI_MOVIE_INFO* movie_info, CFile* file )
{
	//TRACE("[mi]->loadMovieInfo \r\n");
	bool result = true;
	CFile file_xml;
	bool is_vdr = false;

	if(file == NULL)
	{
		// if there is no give file, we use the file name from movie info but we have to convert the ts name to xml name first
		file_xml.Name = movie_info->file.Name;
		int pos = file_xml.Name.rfind(".vdr");
		if (pos == (int)file_xml.Name.length() - 4)
		{
			is_vdr = true;
			file_xml.Name = movie_info->file.getPath() + "/info.vdr";
			result = !access(file_xml.Name.c_str(), R_OK);
		}
		else
		{
			result = convertTs2XmlName(&file_xml.Name);
		}
	}
	else
	{
		file_xml.Name = file->Name;
	}
	
	if(result == true)
	{
		// load xml file in buffer
		char text[6000];
		result = loadFile(file_xml,text, 6000);
		if(result == true)  
		{
			if (is_vdr)
			{
				result = parseInfoVDR(text, movie_info);
			}
			else
			{
#ifdef XMLTREE_LIB
				a result = parseXmlTree(text, movie_info);
#else /* XMLTREE_LIB */
				result = parseXmlQuickFix(text, movie_info);
#endif /* XMLTREE_LIB */
			}
		}
	}
    if(movie_info->productionDate >50 && movie_info->productionDate <200)// backwardcompaibility
        movie_info->productionDate += 1900;

	return (result);
}	
Exemple #4
0
bool CMovieInfo::convertTs2XmlName(char *char_filename, int size)
{
	bool result = false;
	std::string filename = char_filename;
	if (convertTs2XmlName(&filename) == true) {
		strncpy(char_filename, filename.c_str(), size-1);
		char_filename[size - 1] = 0;
		result = true;
	}
	return (result);
}
Exemple #5
0
bool CMovieInfo::saveMovieInfo(MI_MOVIE_INFO& movie_info, CFile* file)
{
	//TRACE("[mi]->saveXml \r\n");
	bool result = true;
	std::string text;
	CFile file_xml;
	
	if(file == NULL)
	{
		file_xml.Name = movie_info.file.Name;
		result = convertTs2XmlName(&file_xml.Name);
		// result is always false for .vdr files...
	}
	else
	{
		file_xml.Name = file->Name;
	}
	TRACE("[mi] saveXml: %s\r\n",file_xml.Name.c_str());
	
	if( result == true )
	{
		// ...so we don't need to worry about what happens here in the vdr case
		result = encodeMovieInfoXml(&text,movie_info);
		if(result == true)
		{
			result = saveFile(file_xml,text.c_str(), text.size());// save
			if(result == false)
			{
				TRACE("[mi] saveXml: save error\r\n");
			}
		}
		else
		{
			TRACE("[mi] saveXml: encoding error\r\n");
		}
	}
	else
	{
		TRACE("[mi] saveXml: error\r\n");
	}
	return(result);
}