X-Git-Url: https://git.cweiske.de/enigma2.git/blobdiff_plain/0d34f9703fc13e99c4d76a0ee539d58d39dded2d..31fb73a15d12559b15f5506622c3902476d3ea0f:/lib/dvb/db.cpp diff --git a/lib/dvb/db.cpp b/lib/dvb/db.cpp index 65b42def..57916146 100644 --- a/lib/dvb/db.cpp +++ b/lib/dvb/db.cpp @@ -107,6 +107,12 @@ err: return -1; } +RESULT eBouquet::setListName(const std::string &name) +{ + m_bouquet_name = name; + return 0; +} + eDVBService::eDVBService() { } @@ -220,13 +226,16 @@ int eDVBService::getCachePID(cacheID id) void eDVBService::setCachePID(cacheID id, int pid) { - m_cache[id] = pid; + if (pid == -1) + m_cache.erase(id); + else + m_cache[id] = pid; } DEFINE_REF(eDVBDB); /* THIS CODE IS BAD. it should be replaced by somethine better. */ -void eDVBDB::load() +void eDVBDB::reloadServicelist() { eDebug("---- opening lame channel db"); FILE *f=fopen(CONFIGDIR"/enigma2/lamedb", "rt"); @@ -236,7 +245,7 @@ void eDVBDB::load() if ( !stat("lamedb", &s) ) { rename("lamedb", CONFIGDIR"/enigma2/lamedb" ); - load(); + reloadServicelist(); } return; } @@ -357,7 +366,6 @@ void eDVBDB::load() fgets(line, 256, f); if (strlen(line)) line[strlen(line)-1]=0; - std::string str=line; if (str[1]!=':') // old ... (only service_provider) @@ -404,7 +412,7 @@ void eDVBDB::load() fclose(f); } -void eDVBDB::save() +void eDVBDB::saveServicelist() { eDebug("---- saving lame channel db"); FILE *f=fopen(CONFIGDIR"/enigma2/lamedb", "w"); @@ -581,8 +589,9 @@ void eDVBDB::loadBouquet(const char *path) eDebug("%d entries in Bouquet %s", entries, bouquet_name.c_str()); } -void eDVBDB::loadBouquets() +void eDVBDB::reloadBouquets() { + m_bouquets.clear(); loadBouquet("bouquets.tv"); loadBouquet("bouquets.radio"); // create default bouquets when missing @@ -612,7 +621,7 @@ void eDVBDB::loadBouquets() memset(ref.data, 0, sizeof(ref.data)); ref.type=1; ref.flags=7; - ref.data[0]=1; + ref.data[0]=2; ref.path="(type == 2) FROM BOUQUET \"userbouquet.favourites.radio\" ORDER BY bouquet"; eBouquet &parent = m_bouquets["bouquets.radio"]; parent.m_services.push_back(ref); @@ -620,15 +629,17 @@ void eDVBDB::loadBouquets() } } +eDVBDB *eDVBDB::instance; + eDVBDB::eDVBDB() { - load(); - loadBouquets(); + instance = this; + reloadServicelist(); } eDVBDB::~eDVBDB() { -// save(); + instance=NULL; } RESULT eDVBDB::addChannelToList(const eDVBChannelID &id, iDVBFrontendParameters *feparm) @@ -679,7 +690,7 @@ RESULT eDVBDB::getService(const eServiceReferenceDVB &reference, ePtr