From 49f20f3915f15d4e5e2dd787cf4e8b50df6a15c1 Mon Sep 17 00:00:00 2001 From: focus Date: Mon, 1 Aug 2011 15:26:20 +0000 Subject: [PATCH] Force stop sectionsd on second recording; New function to check if we can zap git-svn-id: file:///home/bas/coolstream_public_svn/THIRDPARTY/applications/neutrino-beta@1609 e54a6e83-5905-42d5-8d5c-058d10e6a962 --- src/driver/record.cpp | 27 ++++++++++++++++++++++++++- src/driver/record.h | 1 + 2 files changed, 27 insertions(+), 1 deletion(-) diff --git a/src/driver/record.cpp b/src/driver/record.cpp index 40d03bc5e..9b135bdfe 100644 --- a/src/driver/record.cpp +++ b/src/driver/record.cpp @@ -720,6 +720,11 @@ bool CRecordManager::Record(const CTimerd::RecordingInfo * const eventinfo, cons if(!CheckRecording(eventinfo)) return false; +#if 1 // FIXME test + StopSectionsd = false; + if(recmap.size()) + StopSectionsd = true; +#endif RunStartScript(); mutex.lock(); @@ -884,6 +889,24 @@ bool CRecordManager::TimeshiftOnly() return (autoshift && (count == 1)); } +bool CRecordManager::SameTransponder(const t_channel_id channel_id) +{ + bool same = true; + mutex.lock(); + int count = recmap.size(); + if(count) { + if(autoshift && count == 1) + same = true; + else { + recmap_iterator_t fit = recmap.begin(); + t_channel_id id = fit->first; + same = (SAME_TRANSPONDER(channel_id, id)); + } + } + mutex.unlock(); + return same; +} + bool CRecordManager::Stop(const t_channel_id channel_id) { printf("%s: %llx\n", __FUNCTION__, channel_id); @@ -1151,8 +1174,10 @@ bool CRecordManager::CutBackNeutrino(const t_channel_id channel_id, const int mo } if(ret) { - if(StopSectionsd) + if(StopSectionsd) { + printf("%s: g_Sectionsd->setPauseScanning(true)\n", __FUNCTION__); g_Sectionsd->setPauseScanning(true); + } /* after this zapit send EVT_RECORDMODE_ACTIVATED, so neutrino getting NeutrinoMessages::EVT_RECORDMODE */ g_Zapit->setRecordMode( true ); diff --git a/src/driver/record.h b/src/driver/record.h index 3f2362698..2394075a2 100644 --- a/src/driver/record.h +++ b/src/driver/record.h @@ -182,6 +182,7 @@ class CRecordManager : public CMenuTarget, public CChangeObserver bool RecordingStatus(const t_channel_id channel_id = 0); bool TimeshiftOnly(); bool Timeshift() { return (autoshift || shift_timer); }; + bool SameTransponder(const t_channel_id channel_id); int handleMsg(const neutrino_msg_t _msg, neutrino_msg_data_t data); // old code bool ChooseRecDir(std::string &dir);