Fixed updating of old DTSH files not happening.

This commit is contained in:
Thulinma 2014-06-11 16:04:02 +02:00
parent b5745727a0
commit 5058addf70
2 changed files with 31 additions and 0 deletions

View file

@ -68,6 +68,35 @@ namespace Mist {
isBuffer = false;
}
void Input::checkHeaderTimes(std::string streamFile){
std::string headerFile = streamFile + ".dtsh";
FILE * tmp = fopen(headerFile.c_str(),"r");
if (tmp == NULL) {
INFO_MSG("can't open file: %s (no header times compared, nothing removed)", headerFile.c_str() );
return;
}
struct stat bufStream;
struct stat bufHeader;
//fstat(fileno(streamFile), &bufStream);
//fstat(fileno(tmp), &bufHeader);
if (stat(streamFile.c_str(), &bufStream) !=0 || stat(headerFile.c_str(), &bufHeader) !=0){
ERROR_MSG("could not get file info (no header times compared, nothing removed)");
fclose(tmp);
return;
}
int timeStream = bufStream.st_mtime;
int timeHeader = bufHeader.st_mtime;
fclose(tmp);
INFO_MSG("time header: %i time stream: %i ", timeHeader, timeStream);
if (timeHeader < timeStream) {
INFO_MSG("removing old header file: %s ",headerFile.c_str());
//delete filename
remove(headerFile.c_str());
}
}
int Input::run() {
if (config->getBool("json")) {
std::cerr << capa.toString() << std::endl;
@ -77,6 +106,7 @@ namespace Mist {
std::cerr << config->getString("cmd") << " setup failed." << std::endl;
return 0;
}
checkHeaderTimes(config->getString("input"));
if (!readHeader()) {
std::cerr << "Reading header for " << config->getString("input") << " failed." << std::endl;
return 0;

View file

@ -39,6 +39,7 @@ namespace Mist {
void play(int until = 0);
void playOnce();
void quitPlay();
void checkHeaderTimes(std::string streamFile);
virtual void removeUnused();
virtual void trackSelect(std::string trackSpec){};
virtual void userCallback(char * data, size_t len, unsigned int id);