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); }
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); }
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); }
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); }