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
This commit is contained in:
focus
2011-08-01 15:26:20 +00:00
parent 09a496cdfa
commit 49f20f3915
2 changed files with 27 additions and 1 deletions

View File

@@ -720,6 +720,11 @@ bool CRecordManager::Record(const CTimerd::RecordingInfo * const eventinfo, cons
if(!CheckRecording(eventinfo)) if(!CheckRecording(eventinfo))
return false; return false;
#if 1 // FIXME test
StopSectionsd = false;
if(recmap.size())
StopSectionsd = true;
#endif
RunStartScript(); RunStartScript();
mutex.lock(); mutex.lock();
@@ -884,6 +889,24 @@ bool CRecordManager::TimeshiftOnly()
return (autoshift && (count == 1)); 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) bool CRecordManager::Stop(const t_channel_id channel_id)
{ {
printf("%s: %llx\n", __FUNCTION__, 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(ret) {
if(StopSectionsd) if(StopSectionsd) {
printf("%s: g_Sectionsd->setPauseScanning(true)\n", __FUNCTION__);
g_Sectionsd->setPauseScanning(true); g_Sectionsd->setPauseScanning(true);
}
/* after this zapit send EVT_RECORDMODE_ACTIVATED, so neutrino getting NeutrinoMessages::EVT_RECORDMODE */ /* after this zapit send EVT_RECORDMODE_ACTIVATED, so neutrino getting NeutrinoMessages::EVT_RECORDMODE */
g_Zapit->setRecordMode( true ); g_Zapit->setRecordMode( true );

View File

@@ -182,6 +182,7 @@ class CRecordManager : public CMenuTarget, public CChangeObserver
bool RecordingStatus(const t_channel_id channel_id = 0); bool RecordingStatus(const t_channel_id channel_id = 0);
bool TimeshiftOnly(); bool TimeshiftOnly();
bool Timeshift() { return (autoshift || shift_timer); }; 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); int handleMsg(const neutrino_msg_t _msg, neutrino_msg_data_t data);
// old code // old code
bool ChooseRecDir(std::string &dir); bool ChooseRecDir(std::string &dir);