aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGravatar Dirk Hohndel <dirk@hohndel.org>2020-02-20 13:20:03 -0800
committerGravatar Dirk Hohndel <dirk@hohndel.org>2020-03-10 09:25:57 -0700
commit0cd275af67192759414f8e1d0666977f10852d6f (patch)
tree3771bd36936c3dd0f93c3256200cd61f13ff4ca6
parent3464e776e23996b9e6085509919713da3c3e44f5 (diff)
downloadsubsurface-0cd275af67192759414f8e1d0666977f10852d6f.tar.gz
core/trip handling: add helper function to get trip from id
In the QML code we pass ids around. I had assumed that there already was a reverse lookup function, but I wasn't able to find it. So I added it. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
-rw-r--r--core/trip.c10
-rw-r--r--core/trip.h1
2 files changed, 11 insertions, 0 deletions
diff --git a/core/trip.c b/core/trip.c
index 9f05699dc..6e7c4653d 100644
--- a/core/trip.c
+++ b/core/trip.c
@@ -195,6 +195,16 @@ dive_trip_t *get_trip_for_new_dive(struct dive *new_dive, bool *allocated)
return trip;
}
+/* lookup of trip in main trip_table based on its id */
+dive_trip_t *get_trip_by_uniq_id(int tripId)
+{
+ for (int i = 0; i < trip_table.nr; i++) {
+ if (trip_table.trips[i]->id == tripId)
+ return trip_table.trips[i];
+ }
+ return NULL;
+}
+
/* Check if two trips overlap time-wise up to trip threshold. */
bool trips_overlap(const struct dive_trip *t1, const struct dive_trip *t2)
{
diff --git a/core/trip.h b/core/trip.h
index 3a8a2feb7..c9335fc0a 100644
--- a/core/trip.h
+++ b/core/trip.h
@@ -45,6 +45,7 @@ extern dive_trip_t *create_trip_from_dive(struct dive *dive);
extern dive_trip_t *create_and_hookup_trip_from_dive(struct dive *dive, struct trip_table *trip_table_arg);
extern dive_trip_t *get_dives_to_autogroup(struct dive_table *table, int start, int *from, int *to, bool *allocated);
extern dive_trip_t *get_trip_for_new_dive(struct dive *new_dive, bool *allocated);
+extern dive_trip_t *get_trip_by_uniq_id(int tripId);
extern bool trips_overlap(const struct dive_trip *t1, const struct dive_trip *t2);
extern void select_dives_in_trip(struct dive_trip *trip);