diff options
-rw-r--r-- | dive.c | 7 | ||||
-rw-r--r-- | qt-ui/profile/diveeventitem.cpp | 2 |
2 files changed, 7 insertions, 2 deletions
@@ -57,6 +57,7 @@ int event_gasmix_redundant(struct event *ev) struct event *add_event(struct divecomputer *dc, int time, int type, int flags, int value, const char *name) { + int gas_index = -1; struct event *ev, **p; unsigned int size, len = strlen(name); @@ -79,11 +80,15 @@ struct event *add_event(struct divecomputer *dc, int time, int type, int flags, case SAMPLE_EVENT_GASCHANGE2: /* High 16 bits are He percentage */ ev->gas.mix.he.permille = (value >> 16) * 10; + + /* Extension to the GASCHANGE2 format: cylinder index in 'flags' */ + if (flags > 0 && flags <= MAX_CYLINDERS) + gas_index = flags-1; /* Fallthrough */ case SAMPLE_EVENT_GASCHANGE: /* Low 16 bits are O2 percentage */ ev->gas.mix.o2.permille = (value & 0xffff) * 10; - ev->gas.index = -1; + ev->gas.index = gas_index; break; } diff --git a/qt-ui/profile/diveeventitem.cpp b/qt-ui/profile/diveeventitem.cpp index 4294dfb29..1a5e29dda 100644 --- a/qt-ui/profile/diveeventitem.cpp +++ b/qt-ui/profile/diveeventitem.cpp @@ -106,7 +106,7 @@ void DiveEventItem::setupToolTipString() /* Do we have an explicit cylinder index? Show it. */ if (internalEvent->gas.index >= 0) - name += QString(" (cyl %1)").arg(internalEvent->gas.index); + name += QString(" (cyl %1)").arg(internalEvent->gas.index+1); } else if (type == SAMPLE_EVENT_PO2 && name == "SP change") { name += QString(":%1").arg((double)value / 1000); } else { |