bool CPVRTimers::DeleteTimer(const CFileItem &item, bool bForce /* = false */, bool bDeleteSchedule /* = false */) { /* Check if a CPVRTimerInfoTag is inside file item */ if (!item.IsPVRTimer()) { CLog::Log(LOGERROR, "PVRTimers - %s - no TimerInfoTag given", __FUNCTION__); return false; } CPVRTimerInfoTagPtr tag = item.GetPVRTimerInfoTag(); if (!tag) return false; if (bDeleteSchedule) { /* delete the repeating timer that scheduled this timer. */ tag = g_PVRTimers->GetByClient(tag->m_iClientId, tag->GetTimerScheduleId()); if (!tag) { CLog::Log(LOGERROR, "PVRTimers - %s - unable to obtain parent timer for given timer", __FUNCTION__); return false; } } return tag->DeleteFromClient(bForce); }
bool CPVRTimers::DeleteTimersOnChannel(const CPVRChannel &channel, bool bDeleteRepeating /* = true */, bool bCurrentlyActiveOnly /* = false */) { bool bReturn = false; CSingleLock lock(m_critSection); for (map<CDateTime, vector<CPVRTimerInfoTagPtr>* >::reverse_iterator it = m_tags.rbegin(); it != m_tags.rend(); it++) { for (vector<CPVRTimerInfoTagPtr>::iterator timerIt = it->second->begin(); timerIt != it->second->end(); timerIt++) { CPVRTimerInfoTagPtr timer = (*timerIt); if (bCurrentlyActiveOnly && (CDateTime::GetCurrentDateTime() < timer->StartAsLocalTime() || CDateTime::GetCurrentDateTime() > timer->EndAsLocalTime())) continue; if (!bDeleteRepeating && timer->m_bIsRepeating) continue; if (timer->ChannelNumber() == channel.ChannelNumber() && timer->m_bIsRadio == channel.IsRadio()) { bReturn = timer->DeleteFromClient(true) || bReturn; it->second->erase(timerIt); } } } return bReturn; }
bool CPVRTimers::DeleteTimer(const CPVRTimerInfoTagPtr &tag, bool bForce /* = false */, bool bDeleteRule /* = false */) { if (!tag) return false; if (bDeleteRule) { /* delete the timer rule that scheduled this timer. */ CPVRTimerInfoTagPtr ruleTag = g_PVRTimers->GetByClient(tag->m_iClientId, tag->GetTimerRuleId()); if (!ruleTag) { CLog::Log(LOGERROR, "PVRTimers - %s - unable to obtain timer rule for given timer", __FUNCTION__); return false; } return ruleTag->DeleteFromClient(bForce); } return tag->DeleteFromClient(bForce); }
TimerOperationResult CPVRTimers::DeleteTimer(const CPVRTimerInfoTagPtr &tag, bool bForce /* = false */, bool bDeleteRule /* = false */) { if (!tag) return TimerOperationResult::FAILED; if (bDeleteRule) { /* delete the timer rule that scheduled this timer. */ CPVRTimerInfoTagPtr ruleTag = CServiceBroker::GetPVRManager().Timers()->GetByClient(tag->m_iClientId, tag->GetTimerRuleId()); if (!ruleTag) { CLog::LogF(LOGERROR, "Unable to obtain timer rule for given timer"); return TimerOperationResult::FAILED; } return ruleTag->DeleteFromClient(bForce); } return tag->DeleteFromClient(bForce); }
bool CPVRTimers::DeleteTimer(const CFileItem &item, bool bForce /* = false */, bool bDeleteSchedule /* = false */) { /* Check if a CPVRTimerInfoTag is inside file item */ if (!item.IsPVRTimer()) { CLog::Log(LOGERROR, "PVRTimers - %s - no TimerInfoTag given", __FUNCTION__); return false; } const CPVRTimerInfoTagPtr tag = item.GetPVRTimerInfoTag(); if (!tag) return false; return tag->DeleteFromClient(bForce, bDeleteSchedule); }