mirror of
https://github.com/tuxbox-neutrino/neutrino.git
synced 2025-08-26 15:02:56 +02:00
Merge remote-tracking branch 'check/cst-next'
Conflicts: src/gui/epgview.cpp
This commit is contained in:
@@ -247,10 +247,53 @@ int CTimerdClient::addTimerEvent( CTimerEventTypes evType, void* data , int min,
|
||||
addTimerEvent(evType,true,data,0,mktime(actTime),0);
|
||||
}
|
||||
*/
|
||||
bool CTimerdClient::checkDouble(CTimerd::CTimerEventTypes evType, void* data, time_t announcetime, time_t alarmtime,time_t stoptime,
|
||||
CTimerd::CTimerEventRepeat evrepeat, uint32_t repeatcount)
|
||||
{
|
||||
if (evType != CTimerd::TIMER_RECORD && evType != CTimerd::TIMER_ZAPTO)
|
||||
return false;//skip check not zap and record timer
|
||||
|
||||
CTimerd::TimerList timerlist;
|
||||
getTimerList(timerlist);
|
||||
for (CTimerd::TimerList::iterator it = timerlist.begin(); it != timerlist.end();++it)
|
||||
{
|
||||
if ( (it->eventType == CTimerd::TIMER_RECORD || it->eventType == CTimerd::TIMER_ZAPTO ) &&
|
||||
(it->alarmTime == alarmtime && it->announceTime == announcetime && it->stopTime == stoptime && it->eventRepeat == evrepeat && it->repeatCount == repeatcount ) )
|
||||
{
|
||||
if( it->eventType == CTimerd::TIMER_ZAPTO )
|
||||
{
|
||||
CTimerd::EventInfo *ei=static_cast<CTimerd::EventInfo*>(data);
|
||||
if( ei->channel_id == it->channel_id )
|
||||
{
|
||||
if(( ei->epgID != 0 && ei->epgID != it->epgID ) || ( ei->epg_starttime != 0 && it->epg_starttime != ei->epg_starttime) )
|
||||
{
|
||||
return false;//not double
|
||||
}
|
||||
return true;
|
||||
}
|
||||
}
|
||||
else if(it->eventType == CTimerd::TIMER_RECORD)
|
||||
{
|
||||
CTimerd::RecordingInfo *ri=static_cast<CTimerd::RecordingInfo*>(data);
|
||||
if(ri->channel_id == it->channel_id && ri->apids == it->apids && !strncmp(ri->recordingDir, it->recordingDir, RECORD_DIR_MAXLEN-1) )
|
||||
{
|
||||
if( ( ri->epgID != 0 && ri->epgID != it->epgID ) || ( ri->epg_starttime != 0 && it->epg_starttime != ri->epg_starttime) )
|
||||
{
|
||||
return false;//not double
|
||||
}
|
||||
return true;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
return false;//not double
|
||||
}
|
||||
//-------------------------------------------------------------------------
|
||||
int CTimerdClient::addTimerEvent( CTimerd::CTimerEventTypes evType, void* data, time_t announcetime, time_t alarmtime,time_t stoptime,
|
||||
CTimerd::CTimerEventRepeat evrepeat, uint32_t repeatcount,bool forceadd)
|
||||
{
|
||||
if(checkDouble(evType, data, announcetime, alarmtime, stoptime, evrepeat, repeatcount))//check if timer is add double
|
||||
return -1;
|
||||
|
||||
if (!forceadd)
|
||||
{
|
||||
|
@@ -66,6 +66,7 @@ class CTimerdClient:private CBasicClient
|
||||
bool isTimerdAvailable(); // check if timerd is running
|
||||
|
||||
CTimerd::TimerList getOverlappingTimers(time_t& announcetime, time_t& stoptime);
|
||||
bool checkDouble(CTimerd::CTimerEventTypes evType, void* data, time_t announcetime, time_t alarmtime,time_t stoptime, CTimerd::CTimerEventRepeat /*evrepeat*/, uint32_t repeatcount);
|
||||
|
||||
int addTimerEvent( CTimerd::CTimerEventTypes evType, void* data, time_t alarmtime,time_t announcetime = 0, time_t stoptime = 0,
|
||||
CTimerd::CTimerEventRepeat evrepeat = CTimerd::TIMERREPEAT_ONCE, uint32_t repeatcount = 0, bool forceadd=true);
|
||||
|
Reference in New Issue
Block a user