sectionsd.cpp:sort unique search-eventlist

This commit is contained in:
satbaby
2012-05-11 12:00:52 +02:00
parent ef9b598dc4
commit a227ef5f6d

View File

@@ -2176,6 +2176,17 @@ printf("SIevent size: %d\n", sizeof(SIevent));
}
/* was: commandAllEventsChannelID sendAllEvents */
inline static bool sortbyEventid (const CChannelEvent& a, const CChannelEvent& b)
{
return (a.channelID == b.channelID && a.eventID == b.eventID);
}
inline static bool sortByDateTime (const CChannelEvent& a, const CChannelEvent& b)
{
return a.startTime < b.startTime;
}
void sectionsd_getEventsServiceKey(t_channel_id serviceUniqueKey, CChannelEventList &eList, char search = 0, std::string search_text = "")
{
dprintf("sendAllEvents for " PRINTF_CHANNEL_ID_TYPE "\n", serviceUniqueKey);
@@ -2233,7 +2244,11 @@ void sectionsd_getEventsServiceKey(t_channel_id serviceUniqueKey, CChannelEventL
else if ( serviceIDfound )
break; // sind nach serviceID und startzeit sortiert -> nicht weiter suchen
}
if(!eList.empty()){
sort(eList.begin(),eList.end(),sortByDateTime);
unique(eList.begin(),eList.end(),sortbyEventid);
eList.erase(unique(eList.begin(),eList.end(),sortbyEventid),eList.end());
}
unlockEvents();
}
}