diff --git a/src/driver/record.cpp b/src/driver/record.cpp index 05dd1b03d..d3ea89031 100644 --- a/src/driver/record.cpp +++ b/src/driver/record.cpp @@ -318,20 +318,16 @@ bool CRecordInstance::Stop(bool remove_event) if(!autoshift) CFEManager::getInstance()->unlockFrontend(frontend, true);//FIXME testing - CCamManager::getInstance()->Stop(channel_id, CCamManager::RECORD); + CCamManager::getInstance()->Stop(channel_id, CCamManager::RECORD); + + if (autoshift && g_settings.auto_delete) + CMoviePlayerGui::getInstance().deleteTimeshift(); - if((autoshift && g_settings.auto_delete) /* || autoshift_delete*/) { - snprintf(buf,sizeof(buf), "nice -n 20 rm -f \"%s.ts\" &", filename); - my_system(3, "/bin/sh", "-c", buf); - snprintf(buf,sizeof(buf), "%s.xml", filename); - //autoshift_delete = false; - unlink(buf); - } if(recording_id && remove_event) { g_Timerd->stopTimerEvent(recording_id); recording_id = 0; } - //CVFD::getInstance()->ShowIcon(VFD_ICON_CAM1, false); + //CVFD::getInstance()->ShowIcon(VFD_ICON_CAM1, false); WaitRecMsg(end_time, 2); hintBox.hide(); return true; diff --git a/src/gui/movieplayer.cpp b/src/gui/movieplayer.cpp index e399e2a0d..bbfa6c038 100644 --- a/src/gui/movieplayer.cpp +++ b/src/gui/movieplayer.cpp @@ -596,6 +596,7 @@ void CMoviePlayerGui::Cleanup() is_file_player = false; p_movie_info = NULL; autoshot_done = false; + timeshift_deletion = false; currentaudioname = "Unk"; } @@ -2033,6 +2034,21 @@ void CMoviePlayerGui::PlayFileEnd(bool restore) stopped = true; printf("%s: stopped\n", __func__); + + if (timeshift_deletion && (file_name.find("_temp.ts") == file_name.size() - 8)) + { + std::string file = file_name; + printf("%s: delete %s\n", __func__, file.c_str()); + unlink(file.c_str()); + CMovieInfo mi; + if (mi.convertTs2XmlName(file)) + { + printf("%s: delete %s\n", __func__, file.c_str()); + unlink(file.c_str()); + } + timeshift_deletion = false; + } + if (!filelist.empty() && filelist_it != filelist.end()) { pretty_name.clear(); prepareFile(&(*filelist_it)); diff --git a/src/gui/movieplayer.h b/src/gui/movieplayer.h index 3f4e2ae44..2f38179ca 100644 --- a/src/gui/movieplayer.h +++ b/src/gui/movieplayer.h @@ -174,6 +174,7 @@ class CMoviePlayerGui : public CMenuTarget std::string Path_local; int menu_ret; bool autoshot_done; + bool timeshift_deletion; //std::vector liveStreamList; /* playback from bookmark */ @@ -248,6 +249,7 @@ class CMoviePlayerGui : public CMenuTarget int getState() { return playstate; } void UpdatePosition(); int timeshift; + void deleteTimeshift() { timeshift_deletion = true; } int file_prozent; cPlayback *getPlayback() { return playback; } void SetFile(std::string &name, std::string &file, std::string info1="", std::string info2="") { pretty_name = name; file_name = file; info_1 = info1; info_2 = info2; }