int CPVRChannels::LoadFromClients(bool bAddToDb /* = true */) { CPVRDatabase *database = NULL; int iCurSize = size(); if (bAddToDb) { database = g_PVRManager.GetTVDatabase(); if (!database || !database->Open()) return -1; } if (GetFromClients() == -1) return -1; SortByClientChannelNumber(); ReNumberAndCheck(); SearchAndSetChannelIcons(); if (bAddToDb) { /* add all channels to the database */ for (unsigned int ptr = 0; ptr < size(); ptr++) database->UpdateChannel(*at(ptr)); database->Close(); clear(); return LoadFromDb(true); } return size() - iCurSize; }