mirror of
https://github.com/subsurface/subsurface.git
synced 2024-11-30 22:20:21 +00:00
Add more infrastructure for a separate dive table
This will allow us to download the dives from the dive computer into a separate table just for that purpose and not into the main dive_table. I really dislike the code that's in place that dates back to the very earliest code written for Subsurface. Dumping the dives straight into the main dive_table seems really stupid to me. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
This commit is contained in:
parent
a92484e4ed
commit
6f25713408
3 changed files with 21 additions and 10 deletions
10
dive.h
10
dive.h
|
@ -506,6 +506,13 @@ static inline struct dive *get_dive(int nr)
|
|||
return dive_table.dives[nr];
|
||||
}
|
||||
|
||||
static inline struct dive *get_dive_from_table(int nr, struct dive_table *dt)
|
||||
{
|
||||
if (nr >= dt->nr || nr < 0)
|
||||
return NULL;
|
||||
return dt->dives[nr];
|
||||
}
|
||||
|
||||
static inline unsigned int number_of_computers(struct dive *dive)
|
||||
{
|
||||
unsigned int total_number = 0;
|
||||
|
@ -677,12 +684,15 @@ extern timestamp_t utc_mktime(struct tm *tm);
|
|||
extern void utc_mkdate(timestamp_t, struct tm *tm);
|
||||
|
||||
extern struct dive *alloc_dive(void);
|
||||
extern void record_dive_to_table(struct dive *dive, struct dive_table *table);
|
||||
extern void record_dive(struct dive *dive);
|
||||
extern void clear_dive(struct dive *dive);
|
||||
extern void copy_dive(struct dive *s, struct dive *d);
|
||||
extern void selective_copy_dive(struct dive *s, struct dive *d, struct dive_components what, bool clear);
|
||||
extern struct dive *clone_dive(struct dive *s);
|
||||
|
||||
extern void clear_table(struct dive_table *table);
|
||||
|
||||
extern struct sample *prepare_sample(struct divecomputer *dc);
|
||||
extern void finish_sample(struct divecomputer *dc);
|
||||
|
||||
|
|
12
parse-xml.c
12
parse-xml.c
|
@ -48,10 +48,20 @@ int trimspace(char *buffer) {
|
|||
return size; // return string length
|
||||
}
|
||||
|
||||
/*
|
||||
* Clear a dive_table
|
||||
*/
|
||||
void clear_table(struct dive_table *table)
|
||||
{
|
||||
for (int i = 0; i < table->nr; i++)
|
||||
free(table->dives[i]);
|
||||
table->nr = 0;
|
||||
}
|
||||
|
||||
/*
|
||||
* Add a dive into the dive_table array
|
||||
*/
|
||||
static void record_dive_to_table(struct dive *dive, struct dive_table *table)
|
||||
void record_dive_to_table(struct dive *dive, struct dive_table *table)
|
||||
{
|
||||
assert(table != NULL);
|
||||
int nr = table->nr, allocated = table->allocated;
|
||||
|
|
|
@ -99,15 +99,6 @@ static bool merge_locations_into_dives(void)
|
|||
return changed > 0;
|
||||
}
|
||||
|
||||
//TODO: C-code.
|
||||
static void clear_table(struct dive_table *table)
|
||||
{
|
||||
int i;
|
||||
for (i = 0; i < table->nr; i++)
|
||||
free(table->dives[i]);
|
||||
table->nr = 0;
|
||||
}
|
||||
|
||||
// TODO: This looks like should be ported to C code. or a big part of it.
|
||||
bool DivelogsDeWebServices::prepare_dives_for_divelogs(const QString &tempfile, const bool selected)
|
||||
{
|
||||
|
|
Loading…
Reference in a new issue