diff options
author | Tomaz Canabrava <tcanabrava@kde.org> | 2013-06-10 13:35:27 -0300 |
---|---|---|
committer | Tomaz Canabrava <tcanabrava@kde.org> | 2013-06-10 13:35:27 -0300 |
commit | 3eac2360e7173580c7325ccb9814be538d3ee078 (patch) | |
tree | 3a5989688dac4f548c9454da6f1c441eb1f02210 /device.c | |
parent | bd8470ebcfe07a347c3c47d2a72e0b8cdd316630 (diff) | |
download | subsurface-3eac2360e7173580c7325ccb9814be538d3ee078.tar.gz |
Moved the 'create fake dc' to it's own function in device.c
Signed-off-by: Tomaz Canabrava <tcanabrava@kde.org>
Diffstat (limited to 'device.c')
-rw-r--r-- | device.c | 28 |
1 files changed, 28 insertions, 0 deletions
@@ -109,3 +109,31 @@ struct device_info *remove_device_info(const char *model, uint32_t deviceid) } return entry; } + +struct divecomputer* fake_dc(struct divecomputer* dc) +{ + static struct sample fake[4]; + static struct divecomputer fakedc; + static bool initialized = 0; + if (!initialized){ + fakedc = (*dc); + fakedc.sample = fake; + fakedc.samples = 4; + + /* The dive has no samples, so create a few fake ones. This assumes an + ascent/descent rate of 9 m/min, which is just below the limit for FAST. */ + int duration = dc->duration.seconds; + int maxdepth = dc->maxdepth.mm; + int asc_desc_time = dc->maxdepth.mm*60/9000; + if (asc_desc_time * 2 >= duration) + asc_desc_time = duration / 2; + fake[1].time.seconds = asc_desc_time; + fake[1].depth.mm = maxdepth; + fake[2].time.seconds = duration - asc_desc_time; + fake[2].depth.mm = maxdepth; + fake[3].time.seconds = duration * 1.00; + fakedc.events = dc->events; + } + return &fakedc; +} + |