CFileItemPtr CPVROperations::GetBroadcastFromBroadcastid(unsigned int broadcastid) { EpgSearchFilter filter; filter.Reset(); filter.m_iUniqueBroadcastId = broadcastid; CFileItemList broadcasts; int resultSize = g_EpgContainer.GetEPGSearch(broadcasts, filter); if (resultSize != 1) return CFileItemPtr(); return broadcasts.Get(0); }
JSONRPC_STATUS CPVROperations::GetBroadcastDetails(const std::string &method, ITransportLayer *transport, IClient *client, const CVariant ¶meterObject, CVariant &result) { if (!g_PVRManager.IsStarted()) return FailedToExecute; EpgSearchFilter filter; filter.Reset(); filter.m_iUniqueBroadcastId = (int)parameterObject["broadcastid"].asInteger(); CFileItemList broadcasts; int resultSize = g_EpgContainer.GetEPGSearch(broadcasts, filter); if (resultSize <= 0) return InvalidParams; else if (resultSize > 1) return InternalError; CFileItemPtr broadcast = broadcasts.Get(0); HandleFileItem("broadcastid", false, "broadcastdetails", broadcast, parameterObject, parameterObject["properties"], result, false); return OK; }
int CEpg::Get(CFileItemList &results, const EpgSearchFilter &filter) const { int iInitialSize = results.Size(); if (!HasValidEntries()) return -1; CSingleLock lock(m_critSection); for (std::map<CDateTime, CEpgInfoTagPtr>::const_iterator it = m_tags.begin(); it != m_tags.end(); ++it) { if (filter.FilterEntry(*it->second)) results.Add(CFileItemPtr(new CFileItem(it->second))); } return results.Size() - iInitialSize; }
int CEpg::Get(CFileItemList *results, const EpgSearchFilter &filter) const { int iInitialSize = results->Size(); if (!HasValidEntries()) return -1; CSingleLock lock(m_critSection); for (unsigned int iTagPtr = 0; iTagPtr < size(); iTagPtr++) { if (filter.FilterEntry(*at(iTagPtr))) { CFileItemPtr entry(new CFileItem(*at(iTagPtr))); entry->SetLabel2(at(iTagPtr)->Start().GetAsLocalizedDateTime(false, false)); results->Add(entry); } } return size() - iInitialSize; }
int CEpg::Get(CFileItemList &results, const EpgSearchFilter &filter) const { int iInitialSize = results.Size(); if (!HasValidEntries()) return -1; CSingleLock lock(m_critSection); for (map<CDateTime, CEpgInfoTag *>::const_iterator it = m_tags.begin(); it != m_tags.end(); it++) { if (filter.FilterEntry(*it->second)) { CDateTime localStartTime; localStartTime.SetFromUTCDateTime(it->first); CFileItemPtr entry(new CFileItem(*it->second)); entry->SetLabel2(localStartTime.GetAsLocalizedDateTime(false, false)); results.Add(entry); } } return results.Size() - iInitialSize; }