mirror of
https://github.com/subsurface/subsurface.git
synced 2024-11-28 05:00:20 +00:00
Cleanup: unify get_gas_at_time() and get_gasmix()
There were two functions for getting gas-mixes at a certain timestamp: - get_gasmix() for repeated queries. - get_gas_at_time() for a single query. Since the latter is a special case of the former, simply call the former in the latter. Moreover, rename to get_gasmix_at_time() for consistency. Replace on get_gasmix() call, which was outside of a loop by the corresponding get_gasmix_at_time() call. Signed-off-by: Berthold Stoeger <bstoeger@mail.tuwien.ac.at>
This commit is contained in:
parent
f5b11daffd
commit
5c4569247a
6 changed files with 15 additions and 23 deletions
|
@ -4308,3 +4308,11 @@ struct gasmix get_gasmix(struct dive *dive, struct divecomputer *dc, int time, s
|
|||
*evp = ev;
|
||||
return res;
|
||||
}
|
||||
|
||||
/* get the gas at a certain time during the dive */
|
||||
struct gasmix get_gasmix_at_time(struct dive *d, struct divecomputer *dc, duration_t time)
|
||||
{
|
||||
struct event *ev = NULL;
|
||||
struct gasmix gasmix = { 0 };
|
||||
return get_gasmix(d, dc, time.seconds, &ev, &gasmix);
|
||||
}
|
||||
|
|
|
@ -718,12 +718,15 @@ extern void printdecotable(struct decostop *table);
|
|||
|
||||
extern struct event *get_next_event(struct event *event, const char *name);
|
||||
|
||||
/* Get gasmix at increasing timestamps.
|
||||
/* Get gasmixes at increasing timestamps.
|
||||
* In "evp", pass a pointer to a "struct event *" which is NULL-initialized on first invocation.
|
||||
* On subsequent calls, pass the same "evp" and the "gasmix" from previous calls.
|
||||
*/
|
||||
extern struct gasmix get_gasmix(struct dive *dive, struct divecomputer *dc, int time, struct event **evp, struct gasmix *gasmix);
|
||||
|
||||
/* Get gasmix at a given time */
|
||||
extern struct gasmix get_gasmix_at_time(struct dive *dive, struct divecomputer *dc, duration_t time);
|
||||
|
||||
/* these structs holds the information that
|
||||
* describes the cylinders / weight systems.
|
||||
* they are global variables initialized in equipment.c
|
||||
|
|
|
@ -134,8 +134,7 @@ int total_weight(struct dive *dive)
|
|||
|
||||
static int active_o2(struct dive *dive, struct divecomputer *dc, duration_t time)
|
||||
{
|
||||
struct gasmix gas;
|
||||
get_gas_at_time(dive, dc, time, &gas);
|
||||
struct gasmix gas = get_gasmix_at_time(dive, dc, time);
|
||||
return get_o2(&gas);
|
||||
}
|
||||
|
||||
|
|
|
@ -81,22 +81,6 @@ bool diveplan_empty(struct diveplan *diveplan)
|
|||
return true;
|
||||
}
|
||||
|
||||
/* get the gas at a certain time during the dive */
|
||||
void get_gas_at_time(struct dive *dive, struct divecomputer *dc, duration_t time, struct gasmix *gas)
|
||||
{
|
||||
// we always start with the first gas, so that's our gas
|
||||
// unless an event tells us otherwise
|
||||
struct event *event = dc->events;
|
||||
*gas = dive->cylinder[0].gasmix;
|
||||
while (event && event->time.seconds <= time.seconds) {
|
||||
if (!strcmp(event->name, "gaschange")) {
|
||||
int cylinder_idx = get_cylinder_index(dive, event);
|
||||
*gas = dive->cylinder[cylinder_idx].gasmix;
|
||||
}
|
||||
event = event->next;
|
||||
}
|
||||
}
|
||||
|
||||
/* get the cylinder index at a certain time during the dive */
|
||||
int get_cylinderid_at_time(struct dive *dive, struct divecomputer *dc, duration_t time)
|
||||
{
|
||||
|
@ -164,7 +148,7 @@ int tissue_at_end(struct deco_state *ds, struct dive *dive, struct deco_state **
|
|||
setpoint = sample[0].setpoint;
|
||||
|
||||
t1 = sample->time;
|
||||
get_gas_at_time(dive, dc, t0, &gas);
|
||||
gas = get_gasmix_at_time(dive, dc, t0);
|
||||
if (i > 0)
|
||||
lastdepth = psample->depth;
|
||||
|
||||
|
|
|
@ -17,7 +17,6 @@ extern void set_verbatim(bool verbatim);
|
|||
extern void set_display_runtime(bool display);
|
||||
extern void set_display_duration(bool display);
|
||||
extern void set_display_transitions(bool display);
|
||||
extern void get_gas_at_time(struct dive *dive, struct divecomputer *dc, duration_t time, struct gasmix *gas);
|
||||
extern int get_cylinderid_at_time(struct dive *dive, struct divecomputer *dc, duration_t time);
|
||||
extern int get_gasidx(struct dive *dive, struct gasmix *mix);
|
||||
extern bool diveplan_empty(struct diveplan *diveplan);
|
||||
|
|
|
@ -758,8 +758,7 @@ void ProfileWidget2::plotDive(struct dive *d, bool force, bool doClearPictures)
|
|||
qDeleteAll(eventItems);
|
||||
eventItems.clear();
|
||||
struct event *event = currentdc->events;
|
||||
struct event *ev;
|
||||
struct gasmix lastgasmix = get_gasmix(&displayed_dive, current_dc, 1, &ev, NULL);
|
||||
struct gasmix lastgasmix = get_gasmix_at_time(&displayed_dive, current_dc, duration_t{1});
|
||||
|
||||
while (event) {
|
||||
#ifndef SUBSURFACE_MOBILE
|
||||
|
|
Loading…
Reference in a new issue