X-Git-Url: https://git.cweiske.de/enigma2.git/blobdiff_plain/9f2f71f1f7d1bd21413860ab60296f1c8203e90b..7e3fc622d3a9dfcec4009d3fff223c6303e497ab:/lib/dvb/db.cpp diff --git a/lib/dvb/db.cpp b/lib/dvb/db.cpp index cf655690..f3d44821 100644 --- a/lib/dvb/db.cpp +++ b/lib/dvb/db.cpp @@ -668,11 +668,8 @@ void eDVBDB::loadBouquet(const char *path) e->name = line+offs; read_descr=false; } - else if (!strncmp(line, "#NAME ", 6) || !strncmp(line, "#NAME: ", 7)) - { - int offs = line[5] == ':' ? 7 : 6; - bouquet.m_bouquet_name=line+offs; - } + else if (!strncmp(line, "#NAME ", 6)) + bouquet.m_bouquet_name=line+6; continue; } } @@ -774,6 +771,8 @@ RESULT eDVBDB::removeServices(eDVBChannelID chid, unsigned int orbpos) if ((unsigned int)sat.orbital_position != orbpos) remove=false; } + else if (orbpos != 0xFFFFFFFF) // do not remove -C or -T transponders when a orbital position is given.. + remove=false; if ( remove && chid.dvbnamespace != eNs && chid.dvbnamespace != ch.dvbnamespace ) remove=false; if ( remove && chid.original_network_id != eOnid && chid.original_network_id != ch.original_network_id ) @@ -1378,9 +1377,18 @@ RESULT parseExpression(ePtr &res, std::list::cons } res->m_string = val; - res->m_int = atoi(val.c_str()); -// res->m_channelid = eDVBChannelID(val); - + + if (res->m_type == eDVBChannelQuery::tChannelID) + { + int ns, tsid, onid; + if (sscanf(val.c_str(), "%08x%04x%04x", &ns, &tsid, &onid) == 3) + res->m_channelid = eDVBChannelID(eDVBNamespace(ns), eTransportStreamID(tsid), eOriginalNetworkID(onid)); + else + eDebug("couldn't parse channelid !! format should be hex NNNNNNNNTTTTOOOO (namespace, tsid, onid)"); + } + else + res->m_int = atoi(val.c_str()); + return 0; }