bool CPVRChannelGroups::Load(void) { CSingleLock lock(m_critSection); // remove previous contents Clear(); CLog::Log(LOGDEBUG, "PVR - %s - loading all %s channel groups", __FUNCTION__, m_bRadio ? "radio" : "TV"); // create and load the internal channel group CPVRChannelGroupPtr internalChannels = CPVRChannelGroupPtr(new CPVRChannelGroupInternal(m_bRadio)); m_groups.push_back(internalChannels); internalChannels->Load(); // load the other groups from the database LoadUserDefinedChannelGroups(); // set the internal group as selected at startup SetSelectedGroup(internalChannels); CLog::Log(LOGDEBUG, "PVR - %s - %d %s channel groups loaded", __FUNCTION__, (int) m_groups.size(), m_bRadio ? "radio" : "TV"); // need at least 1 group return m_groups.size() > 0; }
bool CPVRChannelGroups::Load(void) { const CPVRDatabasePtr database(CServiceBroker::GetPVRManager().GetTVDatabase()); if (!database) return false; CSingleLock lock(m_critSection); // remove previous contents Clear(); CLog::LogFC(LOGDEBUG, LOGPVR, "Loading all %s channel groups", m_bRadio ? "radio" : "TV"); // create the internal channel group CPVRChannelGroupPtr internalGroup = CPVRChannelGroupPtr(new CPVRChannelGroupInternal(m_bRadio)); m_groups.push_back(internalGroup); // load groups from the database database->Get(*this); CLog::LogFC(LOGDEBUG, LOGPVR, "%d %s groups fetched from the database", m_groups.size(), m_bRadio ? "radio" : "TV"); // load channels of internal group std::vector<std::shared_ptr<CPVRChannel>> channelsToRemove; if (!internalGroup->Load(channelsToRemove)) { CLog::LogF(LOGERROR, "Failed to load 'all channels' group"); return false; } RemoveFromAllGroups(channelsToRemove); // load the other groups from the database if (!LoadUserDefinedChannelGroups()) { CLog::LogF(LOGERROR, "Failed to load user defined channel groups"); return false; } // set the last played group as selected group at startup CPVRChannelGroupPtr lastPlayedGroup = GetLastPlayedGroup(); SetSelectedGroup(lastPlayedGroup ? lastPlayedGroup : internalGroup); CLog::LogFC(LOGDEBUG, LOGPVR, "%d %s channel groups loaded", m_groups.size(), m_bRadio ? "radio" : "TV"); // need at least 1 group return m_groups.size() > 0; }
bool CPVRChannelGroups::Load(void) { CPVRDatabase *database = GetPVRDatabase(); if (!database) return false; CSingleLock lock(m_critSection); // remove previous contents Clear(); CLog::Log(LOGDEBUG, "CPVRChannelGroups - %s - loading all %s channel groups", __FUNCTION__, m_bRadio ? "radio" : "TV"); // create the internal channel group CPVRChannelGroupPtr internalGroup = CPVRChannelGroupPtr(new CPVRChannelGroupInternal(m_bRadio)); m_groups.push_back(internalGroup); // load groups from the database database->Get(*this); CLog::Log(LOGDEBUG, "CPVRChannelGroups - %s - %" PRIuS" %s groups fetched from the database", __FUNCTION__, m_groups.size(), m_bRadio ? "radio" : "TV"); // load channels of internal group if (!internalGroup->Load()) { CLog::Log(LOGERROR, "CPVRChannelGroups - %s - failed to load channels", __FUNCTION__); return false; } // load the other groups from the database if (!LoadUserDefinedChannelGroups()) { CLog::Log(LOGERROR, "CPVRChannelGroups - %s - failed to load channel groups", __FUNCTION__); return false; } // set the last played group as selected group at startup CPVRChannelGroupPtr lastPlayedGroup = GetLastPlayedGroup(); SetSelectedGroup(lastPlayedGroup ? lastPlayedGroup : internalGroup); CLog::Log(LOGDEBUG, "CPVRChannelGroups - %s - %" PRIuS" %s channel groups loaded", __FUNCTION__, m_groups.size(), m_bRadio ? "radio" : "TV"); // need at least 1 group return m_groups.size() > 0; }