X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=profile.c;h=0e5361704fc88cca0214919732b63894b4bb7fa5;hb=5c8305588b9b47805226ee50ffcb069fd9a6b251;hp=1b7db1d904909bbb440dfe4e184e0579132fafa1;hpb=d94fb7ca6b4fc17dacd069522d7fad00aa69e088;p=ext%2Fsubsurface.git diff --git a/profile.c b/profile.c index 1b7db1d..0e53617 100644 --- a/profile.c +++ b/profile.c @@ -156,6 +156,33 @@ static void plot_text(struct graphics_context *gc, const text_render_options_t * cairo_show_text(cr, buffer); } +static void plot_one_event(struct graphics_context *gc, struct plot_info *pi, struct event *event, const text_render_options_t *tro) +{ + int i, depth = 0; + + for (i = 0; i < pi->nr; i++) { + struct plot_data *data = pi->entry + i; + if (event->time.seconds < data->sec) + break; + depth = data->val; + } + plot_text(gc, tro, event->time.seconds, depth, "%s", event->name); +} + +static void plot_events(struct graphics_context *gc, struct plot_info *pi, struct dive *dive) +{ + static const text_render_options_t tro = {14, 1.0, 0.2, 0.2, CENTER, TOP}; + struct event *event = dive->events; + + if (gc->printer) + return; + + while (event) { + plot_one_event(gc, pi, event, &tro); + event = event->next; + } +} + static void render_depth_sample(struct graphics_context *gc, struct plot_data *entry, const text_render_options_t *tro) { int sec = entry->sec, decimals; @@ -715,6 +742,7 @@ void plot(struct graphics_context *gc, int w, int h, struct dive *dive) /* Depth profile */ plot_depth_profile(gc, pi); + plot_events(gc, pi, dive); /* Text on top of all graphs.. */ plot_temperature_text(gc, pi);