eitd: change SIevents type to vector - no need to sort this temp list

This commit is contained in:
[CST] Focus
2012-06-05 20:18:48 +04:00
parent 0fbad6b69a
commit a4a3d20667
3 changed files with 7 additions and 4 deletions

View File

@@ -431,7 +431,8 @@ class SIevent
void dumpSmall(void) const; // dumps the event to stdout (not all information) void dumpSmall(void) const; // dumps the event to stdout (not all information)
}; };
typedef std::set <SIevent, std::less<SIevent> > SIevents; //typedef std::set <SIevent, std::less<SIevent> > SIevents;
typedef std::vector <SIevent> SIevents;
// Fuer for_each // Fuer for_each
struct printSIevent : public std::unary_function<SIevent, void> struct printSIevent : public std::unary_function<SIevent, void>

View File

@@ -68,7 +68,8 @@ void SIsectionEIT::parse(void)
e.version = version; e.version = version;
e.parse(event); e.parse(event);
evts.insert(e); //evts.insert(e);
evts.push_back(e);
} }
parsed = 1; parsed = 1;
} }
@@ -106,7 +107,8 @@ void SIsectionEIT::parse(void)
e.version = version_number; e.version = version_number;
descriptors_loop_length = sizeof(struct eit_event) + ((evt->descriptors_loop_length_hi << 8) | evt->descriptors_loop_length_lo); descriptors_loop_length = sizeof(struct eit_event) + ((evt->descriptors_loop_length_hi << 8) | evt->descriptors_loop_length_lo);
e.parseDescriptors(actPos, min((unsigned)(bufEnd - actPos), descriptors_loop_length)); e.parseDescriptors(actPos, min((unsigned)(bufEnd - actPos), descriptors_loop_length));
evts.insert(e); //evts.insert(e);
evts.push_back(e);
actPos += descriptors_loop_length; actPos += descriptors_loop_length;
} }
parsed = 1; parsed = 1;

View File

@@ -1548,7 +1548,7 @@ bool CEventsThread::addEvents()
dprintf("[%s] adding %d events (begin)\n", name.c_str(), eit.events().size()); dprintf("[%s] adding %d events (begin)\n", name.c_str(), eit.events().size());
time_t zeit = time(NULL); time_t zeit = time(NULL);
for (SIevents::iterator e = eit.events().begin(); e != eit.events().end(); ++e) { for (SIevents::const_iterator e = eit.events().begin(); e != eit.events().end(); ++e) {
if (!(e->times.empty())) { if (!(e->times.empty())) {
if ( ( e->times.begin()->startzeit < zeit + secondsToCache ) && if ( ( e->times.begin()->startzeit < zeit + secondsToCache ) &&
( ( e->times.begin()->startzeit + (long)e->times.begin()->dauer ) > zeit - oldEventsAre ) ) ( ( e->times.begin()->startzeit + (long)e->times.begin()->dauer ) > zeit - oldEventsAre ) )