DEFINE_REF(eDVBService);
-RESULT eBouquet::addService(const eServiceReference &ref)
+RESULT eBouquet::addService(const eServiceReference &ref, eServiceReference before)
{
list::iterator it =
std::find(m_services.begin(), m_services.end(), ref);
if ( it != m_services.end() )
return -1;
- m_services.push_back(ref);
+ if (before.valid())
+ {
+ it = std::find(m_services.begin(), m_services.end(), before);
+ m_services.insert(it, ref);
+ }
+ else
+ m_services.push_back(ref);
return 0;
}
{
int cid, val;
sscanf(v.c_str(), "%02d%04x", &cid, &val);
- s->setCacheEntry(cid,val);
+ s->setCacheEntry((eDVBService::cacheID)cid,val);
} else if (p == 'C')
{
int val;
// write cached pids
for (int x=0; x < eDVBService::cacheMax; ++x)
{
- int entry = i->second->getCacheEntry(x);
+ int entry = i->second->getCacheEntry((eDVBService::cacheID)x);
if (entry != -1)
fprintf(f, ",c:%02d%04x", x, entry);
}