diff --git a/src/driver/record.cpp b/src/driver/record.cpp index 8c64eeb8a..235786529 100644 --- a/src/driver/record.cpp +++ b/src/driver/record.cpp @@ -322,20 +322,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); //NI - 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 1cb37e401..9024f3c5b 100644 --- a/src/gui/movieplayer.cpp +++ b/src/gui/movieplayer.cpp @@ -595,6 +595,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 c59451c75..8c28241b2 100644 --- a/src/gui/movieplayer.h +++ b/src/gui/movieplayer.h @@ -173,6 +173,7 @@ class CMoviePlayerGui : public CMenuTarget std::string Path_local; int menu_ret; bool autoshot_done; + bool timeshift_deletion; //std::vector liveStreamList; /* playback from bookmark */ @@ -249,6 +250,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; }