Moved the 'create fake dc' to it's own function in device.c

Signed-off-by: Tomaz Canabrava <tcanabrava@kde.org>
This commit is contained in:
Tomaz Canabrava 2013-06-10 13:35:27 -03:00
parent bd8470ebcf
commit 3eac2360e7
3 changed files with 32 additions and 20 deletions

View file

@ -17,6 +17,7 @@
#include "../display.h"
#include "../dive.h"
#include "../profile.h"
#include "../device.h"
#include <libdivecomputer/parser.h>
#include <libdivecomputer/version.h>
@ -265,26 +266,7 @@ void ProfileGraphicsView::plot(struct dive *d, bool forceRedraw)
// plot_set_scale(scale_mode_t);
if (!dc->samples) {
static struct sample fake[4];
static struct divecomputer fakedc;
fakedc = dive->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 = dive->dc.duration.seconds;
int maxdepth = dive->dc.maxdepth.mm;
int asc_desc_time = dive->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;
dc = &fakedc;
dc = fake_dc(dc);
}
/*