]> git.sesse.net Git - pkanalytics/blobdiff - events.cpp
Make the events view scroll the current event into view when playing.
[pkanalytics] / events.cpp
index 8ad0009d1560f0b78f8097cfd94013ee9cd8d178..24fd649e7f3adfeaea19f41a27e393858ba1df99 100644 (file)
@@ -225,6 +225,19 @@ void EventsModel::set_event_type(unsigned pos, const string &type)
        }
 }
 
+unsigned EventsModel::get_last_event_pos(uint64_t t) const
+{
+       // upper_bound() gives first where e.t > t,
+       // and the one before that is the one we want.
+       auto it = upper_bound(events.begin(), events.end(), t,
+               [](uint64_t t, const Event &e) { return t < e.t; });
+       if (it == events.begin()) {
+               return 0;
+       } else {
+               return distance(events.begin(), it - 1);
+       }
+}
+
 EventsModel::Status EventsModel::get_status_at(uint64_t t)
 {
        Status s;