if ( !getProgramInfo(prog) )
{
- int cnt=prog.caids.size();
- if (cnt)
+ if (pair)
{
- ret=PyList_New(cnt);
- std::set<program::capid_pair>::iterator it(prog.caids.begin());
- if (pair)
+ int cnt=prog.caids.size();
+ if (cnt)
{
+ ret=PyList_New(cnt);
+ std::list<program::capid_pair>::iterator it(prog.caids.begin());
while(cnt--)
{
ePyObject tuple = PyTuple_New(2);
PyList_SET_ITEM(ret, cnt, tuple);
}
}
- else
- {
- while(cnt--)
- PyList_SET_ITEM(ret, cnt, PyInt_FromLong((it++)->caid));
- }
+ }
+ else
+ {
+ std::set<program::capid_pair> set(prog.caids.begin(), prog.caids.end());
+ std::set<program::capid_pair>::iterator it(set.begin());
+ int cnt=set.size();
+ ret=PyList_New(cnt);
+ while(cnt--)
+ PyList_SET_ITEM(ret, cnt, PyInt_FromLong((it++)->caid));
}
}
program::capid_pair pair;
pair.caid = descr->getCaSystemId();
pair.capid = descr->getCaPid();
- program.caids.insert(pair);
+ program.caids.push_back(pair);
break;
}
default:
program::capid_pair pair;
pair.caid = descr->getCaSystemId();
pair.capid = descr->getCaPid();
- program.caids.insert(pair);
+ program.caids.push_back(pair);
}
}
}
program::capid_pair pair;
pair.caid = *it;
pair.capid = -1; // not known yet
- program.caids.insert(pair);
+ program.caids.push_back(pair);
}
if ( cnt )
ret = 0;
if (!pmthandler->getProgramInfo(p))
{
int cnt=0;
- for (std::set<eDVBServicePMTHandler::program::capid_pair>::reverse_iterator x(p.caids.rbegin()); x != p.caids.rend(); ++x, ++cnt)
+ std::set<eDVBServicePMTHandler::program::capid_pair> set(p.caids.begin(), p.caids.end());
+ for (std::set<eDVBServicePMTHandler::program::capid_pair>::reverse_iterator x(set.rbegin()); x != set.rend(); ++x, ++cnt)
caids.push_front(x->caid);
if (service && cnt)
service->m_ca = caids;