Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
31 commits
Select commit Hold shift + click to select a range
dbaf071
Add Github sponsorship information
jefdriesen Nov 23, 2025
6ccb0d0
Update libusb and hidapi in the CI builds
jefdriesen Aug 28, 2025
c76f25e
Use the new libusb_init_context function
jefdriesen Nov 30, 2025
75ecac9
Add new Shearwater hardware models
jefdriesen Dec 24, 2025
4f5abbd
Add support for the Shearwater Swift GPS
jefdriesen Dec 25, 2025
b8b41ec
Ignore invalid GPS locations
jefdriesen Dec 28, 2025
ebe60af
Use the AI mode to detect the presence of GPS data
jefdriesen Dec 29, 2025
6d5644b
Add some new record types
jefdriesen Jul 24, 2025
f13cfc2
Fix a typo in the log message
jefdriesen Jan 3, 2026
1640402
Add support for the OSTC Nano
jefdriesen Nov 6, 2025
7785184
Report the TTS information
jefdriesen Dec 30, 2025
959dbb2
Use a macro to detect the hwOS variant
jefdriesen Jan 5, 2026
a7063ef
Add new Shearwater hardware models
jefdriesen Jan 8, 2026
3ca5e79
Fix the setpoint value
jefdriesen Jan 20, 2026
69f3746
Fix Halcyon Symbios dive mode parsing
weppos Jan 16, 2026
65d0813
Report the correct compass headings
jefdriesen Jan 21, 2026
ca16994
Remove the deprecated heading events
jefdriesen Jan 22, 2026
db0e04b
Add some extra debug logging
jefdriesen Jan 26, 2026
40fc085
Log the received hardware response
jefdriesen Feb 4, 2026
045598b
Remove the automatic fallback for the hardware command
jefdriesen Feb 6, 2026
40cf2fa
Replace the hardware descriptor with the model number
jefdriesen Dec 3, 2025
415778c
Add BLE support for the Seac Tablet
jefdriesen May 7, 2025
15d6f6c
Increase the Seac BLE timeout
weppos Feb 23, 2026
45d5faf
Support time sync for Icon HD family.
rfuchs Feb 20, 2026
710f921
Update the Github actions
jefdriesen Mar 2, 2026
8121b9c
Upload non-zipped artifacts
jefdriesen Mar 2, 2026
b74547a
Fix tank overflow guards in Symbios parser
weppos Mar 29, 2026
747ebd5
Fix wrong compass offset in Halcyon Symbios parser
weppos Mar 31, 2026
446f66b
Extract firmware version from Symbios device status
weppos Mar 31, 2026
9f114e9
Enable bluetooth for the OSTC 3 and cR
jcnventura Apr 18, 2026
49b6697
Merge remote-tracking branch 'libdivecomputer/master' into update_lib…
mikeller May 11, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions .github/FUNDING.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
github: jefdriesen
custom: 'https://paypal.me/libdivecomputer'
32 changes: 16 additions & 16 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ jobs:
CC: ${{ matrix.compiler }}

steps:
- uses: actions/checkout@v4
- uses: actions/checkout@v6
- name: Install dependencies
run: |
sudo apt-get update
Expand All @@ -32,10 +32,10 @@ jobs:
run: |
make install DESTDIR=$PWD/artifacts
tar -czf ${{ github.job }}-${{ matrix.compiler }}.tar.gz -C artifacts usr/local
- uses: actions/upload-artifact@v4
- uses: actions/upload-artifact@v7
with:
name: ${{ github.job }}-${{ matrix.compiler }}
path: ${{ github.job }}-${{ matrix.compiler }}.tar.gz
archive: false

mac:

Expand All @@ -52,7 +52,7 @@ jobs:
CC: ${{ matrix.compiler }}

steps:
- uses: actions/checkout@v4
- uses: actions/checkout@v6
- name: Install dependencies
run: brew install autoconf automake libtool hidapi libusb
- run: autoreconf --install --force
Expand All @@ -63,10 +63,10 @@ jobs:
run: |
make install DESTDIR=$PWD/artifacts
tar -czf ${{ github.job }}-${{ matrix.compiler }}.tar.gz -C artifacts usr/local
- uses: actions/upload-artifact@v4
- uses: actions/upload-artifact@v7
with:
name: ${{ github.job }}-${{ matrix.compiler }}
path: ${{ github.job }}-${{ matrix.compiler }}.tar.gz
archive: false

windows:

Expand All @@ -80,7 +80,7 @@ jobs:
arch: [i686, x86_64]

steps:
- uses: actions/checkout@v4
- uses: actions/checkout@v6
- name: Install dependencies
run: |
sudo apt-get update
Expand Down Expand Up @@ -122,10 +122,10 @@ jobs:
run: |
make install DESTDIR=$PWD/artifacts
tar -czf ${{ github.job }}-${{ matrix.arch }}.tar.gz -C artifacts usr/local
- uses: actions/upload-artifact@v4
- uses: actions/upload-artifact@v7
with:
name: ${{ github.job }}-${{ matrix.arch }}
path: ${{ github.job }}-${{ matrix.arch }}.tar.gz
archive: false

msvc:

Expand All @@ -142,7 +142,7 @@ jobs:
CONFIGURATION: Release

steps:
- uses: actions/checkout@v4
- uses: actions/checkout@v6
- uses: msys2/setup-msys2@v2
with:
install: autoconf automake libtool pkg-config make gcc
Expand All @@ -151,11 +151,11 @@ jobs:
./configure
make -C src revision.h
shell: msys2 {0}
- uses: microsoft/setup-msbuild@v2
- uses: microsoft/setup-msbuild@v3
- run: msbuild -m -p:Platform=${{ matrix.platform }} -p:Configuration=${{ env.CONFIGURATION }} contrib/msvc/libdivecomputer.vcxproj
- uses: actions/upload-artifact@v4
- uses: actions/upload-artifact@v7
with:
name: ${{ github.job }}-${{ matrix.platform }}
name: ${{ github.job }}-${{ matrix.platform }}.zip
path: contrib/msvc/${{ matrix.platform }}/${{ env.CONFIGURATION }}/bin

android:
Expand All @@ -165,13 +165,13 @@ jobs:
runs-on: ubuntu-latest

steps:
- uses: actions/checkout@v4
- uses: actions/checkout@v6
- run: |
autoreconf --install --force
./configure
make -C src revision.h
- run: $ANDROID_NDK/ndk-build -C contrib/android NDK_PROJECT_PATH=. APP_BUILD_SCRIPT=Android.mk
- uses: actions/upload-artifact@v4
- uses: actions/upload-artifact@v7
with:
name: ${{ github.job }}
name: ${{ github.job }}.zip
path: contrib/android/libs
2 changes: 1 addition & 1 deletion .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ jobs:
name: Release
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/checkout@v6

- name: Version number
id: version
Expand Down
1 change: 0 additions & 1 deletion doc/man/dc_parser_samples_foreach.3
Original file line number Diff line number Diff line change
Expand Up @@ -117,7 +117,6 @@ structure set to
.Dv SAMPLE_EVENT_PO2 ,
.Dv SAMPLE_EVENT_AIRTIME ,
.Dv SAMPLE_EVENT_RGBM ,
.Dv SAMPLE_EVENT_HEADING ,
or
.Dv SAMPLE_EVENT_TISSUELEVEL .
.It Dv DC_SAMPLE_RBT
Expand Down
2 changes: 1 addition & 1 deletion examples/common.c
Original file line number Diff line number Diff line change
Expand Up @@ -79,7 +79,7 @@ static const backend_table_t g_backends[] = {
{"iconhd", DC_FAMILY_MARES_ICONHD, 0x14},
{"ostc", DC_FAMILY_HW_OSTC, 0},
{"frog", DC_FAMILY_HW_FROG, 0},
{"ostc3", DC_FAMILY_HW_OSTC3, 0x11},
{"ostc3", DC_FAMILY_HW_OSTC3, 0},
{"edy", DC_FAMILY_CRESSI_EDY, 0x08},
{"leonardo", DC_FAMILY_CRESSI_LEONARDO, 1},
{"goa", DC_FAMILY_CRESSI_GOA, 2},
Expand Down
2 changes: 1 addition & 1 deletion include/libdivecomputer/parser.h
Original file line number Diff line number Diff line change
Expand Up @@ -99,7 +99,7 @@ typedef enum parser_sample_event_t {
SAMPLE_EVENT_PO2,
SAMPLE_EVENT_AIRTIME,
SAMPLE_EVENT_RGBM,
SAMPLE_EVENT_HEADING,
SAMPLE_EVENT_HEADING, /* Deprecated: replaced by DC_SAMPLE_BEARING. */
SAMPLE_EVENT_TISSUELEVEL,
SAMPLE_EVENT_GASCHANGE2, /* Deprecated: replaced by DC_SAMPLE_GASMIX. */
SAMPLE_EVENT_STRING,
Expand Down
3 changes: 3 additions & 0 deletions src/deepsix_excursion_parser.c
Original file line number Diff line number Diff line change
Expand Up @@ -743,14 +743,17 @@ deepsix_excursion_parser_samples_foreach_v1 (dc_parser_t *abstract, dc_sample_ca
sample.deco.type = DC_DECO_DECOSTOP;
sample.deco.depth = pressure_to_depth(deco_depth, atmospheric, density);
sample.deco.time = deco_time;
sample.deco.tts = deco_ndl_tts;
} else if (deco_flags & SAFETYSTOP) {
sample.deco.type = DC_DECO_SAFETYSTOP;
sample.deco.depth = pressure_to_depth(deco_depth, atmospheric, density);
sample.deco.time = deco_time;
sample.deco.tts = 0;
} else {
sample.deco.type = DC_DECO_NDL;
sample.deco.depth = 0;
sample.deco.time = deco_ndl_tts;
sample.deco.tts = 0;
}
sample.deco.tts = 0;
if (callback) callback (DC_SAMPLE_DECO, &sample, userdata);
Expand Down
23 changes: 19 additions & 4 deletions src/descriptor.c
Original file line number Diff line number Diff line change
Expand Up @@ -63,6 +63,7 @@ static int dc_filter_oceans (const dc_descriptor_t *descriptor, dc_transport_t t
static int dc_filter_divesoft (const dc_descriptor_t *descriptor, dc_transport_t transport, const void *userdata);
static int dc_filter_cressi (const dc_descriptor_t *descriptor, dc_transport_t transport, const void *userdata);
static int dc_filter_halcyon (const dc_descriptor_t *descriptor, dc_transport_t transport, const void *userdata);
static int dc_filter_seac (const dc_descriptor_t *descriptor, dc_transport_t transport, const void *userdata);

// Not merged upstream yet
static int dc_filter_garmin (dc_descriptor_t *descriptor, dc_transport_t transport, const void *userdata);
Expand Down Expand Up @@ -339,12 +340,12 @@ static const dc_descriptor_t g_descriptors[] = {
{"Heinrichs Weikamp", "OSTC 2", DC_FAMILY_HW_OSTC3, 0x1B, DC_TRANSPORT_SERIAL | DC_TRANSPORT_BLUETOOTH | DC_TRANSPORT_BLE, dc_filter_hw},
/* Historic models */
{"Heinrichs Weikamp", "OSTC 4", DC_FAMILY_HW_OSTC3, 0x3B43, DC_TRANSPORT_SERIAL | DC_TRANSPORT_BLUETOOTH | DC_TRANSPORT_BLE, dc_filter_hw},
{"Heinrichs Weikamp", "OSTC cR", DC_FAMILY_HW_OSTC3, 0x05, DC_TRANSPORT_SERIAL, NULL},
{"Heinrichs Weikamp", "OSTC cR", DC_FAMILY_HW_OSTC3, 0x07, DC_TRANSPORT_SERIAL, NULL},
{"Heinrichs Weikamp", "OSTC cR", DC_FAMILY_HW_OSTC3, 0x05, DC_TRANSPORT_SERIAL | DC_TRANSPORT_BLUETOOTH | DC_TRANSPORT_BLE, dc_filter_hw},
{"Heinrichs Weikamp", "OSTC cR", DC_FAMILY_HW_OSTC3, 0x07, DC_TRANSPORT_SERIAL | DC_TRANSPORT_BLUETOOTH | DC_TRANSPORT_BLE, dc_filter_hw},
{"Heinrichs Weikamp", "OSTC Sport", DC_FAMILY_HW_OSTC3, 0x12, DC_TRANSPORT_SERIAL | DC_TRANSPORT_BLUETOOTH | DC_TRANSPORT_BLE, dc_filter_hw},
{"Heinrichs Weikamp", "OSTC Sport", DC_FAMILY_HW_OSTC3, 0x13, DC_TRANSPORT_SERIAL | DC_TRANSPORT_BLUETOOTH | DC_TRANSPORT_BLE, dc_filter_hw},
{"Heinrichs Weikamp", "OSTC 2 TR", DC_FAMILY_HW_OSTC3, 0x33, DC_TRANSPORT_SERIAL | DC_TRANSPORT_BLUETOOTH | DC_TRANSPORT_BLE, dc_filter_hw},
{"Heinrichs Weikamp", "OSTC 3", DC_FAMILY_HW_OSTC3, 0x0A, DC_TRANSPORT_SERIAL, NULL},
{"Heinrichs Weikamp", "OSTC 3", DC_FAMILY_HW_OSTC3, 0x0A, DC_TRANSPORT_SERIAL | DC_TRANSPORT_BLUETOOTH | DC_TRANSPORT_BLE, dc_filter_hw},
{"Heinrichs Weikamp", "OSTC 2N", DC_FAMILY_HW_OSTC, 2, DC_TRANSPORT_SERIAL, NULL},
{"Heinrichs Weikamp", "OSTC 2C", DC_FAMILY_HW_OSTC, 3, DC_TRANSPORT_SERIAL, NULL},
{"Heinrichs Weikamp", "OSTC Mk2", DC_FAMILY_HW_OSTC, 1, DC_TRANSPORT_SERIAL, NULL},
Expand Down Expand Up @@ -491,7 +492,7 @@ static const dc_descriptor_t g_descriptors[] = {
/* Seac Screen */
{"Seac", "Action", DC_FAMILY_SEAC_SCREEN, 0x01, DC_TRANSPORT_SERIAL, NULL},
{"Seac", "Screen", DC_FAMILY_SEAC_SCREEN, 0x02, DC_TRANSPORT_SERIAL, NULL},
{"Seac", "Tablet", DC_FAMILY_SEAC_SCREEN, 0x10, DC_TRANSPORT_SERIAL, NULL},
{"Seac", "Tablet", DC_FAMILY_SEAC_SCREEN, 0x10, DC_TRANSPORT_SERIAL | DC_TRANSPORT_BLE, dc_filter_seac},
/* Deepblu Cosmiq */
{"Deepblu", "Cosmiq+", DC_FAMILY_DEEPBLU_COSMIQ, 0, DC_TRANSPORT_BLE, dc_filter_deepblu},
/* Oceans S1 */
Expand Down Expand Up @@ -982,6 +983,20 @@ dc_filter_halcyon (const dc_descriptor_t *descriptor, dc_transport_t transport,
return 1;
}

static int
dc_filter_seac (const dc_descriptor_t *descriptor, dc_transport_t transport, const void *userdata)
{
static const char * const bluetooth[] = {
"Tablet",
};

if (transport == DC_TRANSPORT_BLE) {
return DC_FILTER_INTERNAL (userdata, bluetooth, 0, dc_match_prefix_with_number);
}

return 1;
}

dc_status_t
dc_descriptor_iterator_new (dc_iterator_t **out, dc_context_t *context)
{
Expand Down
15 changes: 8 additions & 7 deletions src/divesoft_freedom_parser.c
Original file line number Diff line number Diff line change
Expand Up @@ -949,12 +949,7 @@ divesoft_freedom_parser_samples_foreach (dc_parser_t *abstract, dc_sample_callba
if (callback) callback(DC_SAMPLE_PPO2, &sample, userdata);
}

if (id == POINT_2) {
unsigned int orientation = array_uint32_le (data + offset + 8);
unsigned int heading = orientation & 0x1FF;
sample.bearing = heading;
if (callback) callback (DC_SAMPLE_BEARING, &sample, userdata);
} else if (id == POINT_1 || id == POINT_1_OLD) {
if (id == POINT_1 || id == POINT_1_OLD) {
unsigned int misc = array_uint32_le (data + offset + 8);
unsigned int ceiling = array_uint16_le (data + offset + 12);
unsigned int setpoint = data[offset + 15];
Expand Down Expand Up @@ -1019,8 +1014,14 @@ divesoft_freedom_parser_samples_foreach (dc_parser_t *abstract, dc_sample_callba
sample.cns = array_uint16_le (data + offset + 6) / 100.0;
if (callback) callback(DC_SAMPLE_CNS, &sample, userdata);
} else if (event == EVENT_SETPOINT_MANUAL || event == EVENT_SETPOINT_AUTO) {
sample.setpoint = data[6] / 100.0;
sample.setpoint = data[offset + 6] / 100.0;
if (callback) callback(DC_SAMPLE_SETPOINT, &sample, userdata);
} else if (event == EVENT_WAYPOINT) {
unsigned int heading = array_uint16_le (data + offset + 8);
if ((heading & 0x8000) == 0) {
sample.bearing = heading;
if (callback) callback (DC_SAMPLE_BEARING, &sample, userdata);
}
}
} else if (type == LREC_MEASURE) {
// Measurement record.
Expand Down
8 changes: 5 additions & 3 deletions src/halcyon_symbios.c
Original file line number Diff line number Diff line change
Expand Up @@ -469,13 +469,15 @@ halcyon_symbios_device_foreach (dc_device_t *abstract, dc_dive_callback_t callba
// Emit a device info event.
dc_event_devinfo_t devinfo;
devinfo.model = info[5];
devinfo.firmware = 0;
devinfo.firmware = array_uint24_be (info + 16);
devinfo.serial = array_uint32_le (info);
device_event_emit (abstract, DC_EVENT_DEVINFO, &devinfo);

DEBUG (abstract->context, "Device: serial=%u, hw=%u, model=%u, bt=%u.%u, battery=%u, pressure=%u, errorbits=%u",
DEBUG (abstract->context, "Device: model=%u, serial=%u, firmware=%u.%u.%u, hw=%u, bt=%u.%u, battery=%u, pressure=%u, errorbits=%u",
info[5],
array_uint32_le (info),
info[4], info[5], info[6], info[7],
info[16], info[17], info[18],
info[4], info[6], info[7],
array_uint16_le (info + 8),
array_uint16_le (info + 10),
array_uint32_le (info + 12));
Expand Down
47 changes: 34 additions & 13 deletions src/halcyon_symbios_parser.c
Original file line number Diff line number Diff line change
Expand Up @@ -49,6 +49,8 @@
#define ID_GAS_CONFIG 0x11
#define ID_TANK_TRANSMITTER 0x12
#define ID_GF_INFO 0x13
#define ID_SGC 0x14
#define ID_GF_DATA 0x15

#define ISCONFIG(type) ( \
(type) == ID_LOG_VERSION || \
Expand All @@ -64,9 +66,10 @@
#define EPOCH 1609459200 /* 2021-01-01 00:00:00 */

#define OC 0
#define CC 1
#define GAUGE 2
#define CCR 1
#define CCR_FSP 2
#define SIDEMOUNT 3
#define GAUGE 4

#define NGASMIXES 10
#define NTANKS 10
Expand Down Expand Up @@ -248,7 +251,8 @@ halcyon_symbios_parser_get_field (dc_parser_t *abstract, dc_field_type_t type, u
case SIDEMOUNT:
*((dc_divemode_t *) value) = DC_DIVEMODE_OC;
break;
case CC:
case CCR:
case CCR_FSP:
*((dc_divemode_t *) value) = DC_DIVEMODE_CCR;
break;
case GAUGE:
Expand Down Expand Up @@ -332,6 +336,8 @@ halcyon_symbios_parser_samples_foreach (dc_parser_t *abstract, dc_sample_callbac
8, /* ID_GAS_CONFIG */
8, /* ID_TANK_TRANSMITTER */
6, /* ID_GF_INFO */
4, /* ID_SGC */
8, /* ID_GF_DATA */
};

unsigned int logversion = 0;
Expand Down Expand Up @@ -372,6 +378,15 @@ halcyon_symbios_parser_samples_foreach (dc_parser_t *abstract, dc_sample_callbac
return DC_STATUS_DATAFORMAT;
}

// Since log version 1.9, the ID_GF_INFO record has been deprecated and
// replaced with the larger ID_GF_DATA record. Unfortunately some
// earlier firmware versions produced records with the new type, but
// with the old size. This has been fixed in log version 1.12.
// Correct the record type to workaround this bug.
if (type == ID_GF_DATA && length == lengths[ID_GF_INFO]) {
type = ID_GF_INFO;
}

if (type < C_ARRAY_SIZE(lengths)) {
if (length != lengths[type]) {
ERROR (abstract->context, "Unexpected record size (%u %u).", length, lengths[type]);
Expand Down Expand Up @@ -416,12 +431,12 @@ halcyon_symbios_parser_samples_foreach (dc_parser_t *abstract, dc_sample_callbac
unsigned int DC_ATTR_UNUSED battery = array_uint16_le(data + offset + 20);
time_start = array_uint32_le(data + offset + 24);
unsigned int serial = array_uint32_le(data + offset + 28);
DEBUG (abstract->context, "Device: model=%u, hw=%u.%u, fw=%u.%u.%u, deco=%u.%u, serial=%u",
DEBUG (abstract->context, "Device: model=%u, serial=%u, firmware=%u.%u.%u, hw=%u.%u, deco=%u.%u",
model,
hw_major, hw_minor,
serial,
fw_major, fw_minor, fw_bugfix,
deco_major, deco_minor,
serial);
hw_major, hw_minor,
deco_major, deco_minor);
} else if (type == ID_GAS_SWITCH) {
unsigned int id = UNDEFINED;
unsigned int o2 = data[offset + 2];
Expand Down Expand Up @@ -497,7 +512,7 @@ halcyon_symbios_parser_samples_foreach (dc_parser_t *abstract, dc_sample_callbac

// Add a new tank if necessary.
if (idx >= ntanks) {
if (ngasmixes >= NTANKS) {
if (ntanks >= NTANKS) {
ERROR (abstract->context, "Maximum number of tanks reached.");
return DC_STATUS_NOMEMORY;
}
Expand Down Expand Up @@ -601,7 +616,7 @@ halcyon_symbios_parser_samples_foreach (dc_parser_t *abstract, dc_sample_callbac

// Add a new tank if necessary.
if (idx >= ntanks) {
if (ngasmixes >= NTANKS) {
if (ntanks >= NTANKS) {
ERROR (abstract->context, "Maximum number of tanks reached.");
return DC_STATUS_NOMEMORY;
}
Expand All @@ -623,7 +638,7 @@ halcyon_symbios_parser_samples_foreach (dc_parser_t *abstract, dc_sample_callbac
sample.pressure.value = pressure / 10.0;
if (callback) callback(DC_SAMPLE_PRESSURE, &sample, userdata);
} else if (type == ID_COMPASS) {
unsigned int heading = array_uint16_le (data + offset + 4);
unsigned int heading = array_uint16_le (data + offset + 2);
sample.bearing = heading;
if (callback) callback(DC_SAMPLE_BEARING, &sample, userdata);
} else if (type == ID_TRIM) {
Expand Down Expand Up @@ -682,7 +697,7 @@ halcyon_symbios_parser_samples_foreach (dc_parser_t *abstract, dc_sample_callbac

// Add a new tank if necessary.
if (idx >= ntanks) {
if (ngasmixes >= NTANKS) {
if (ntanks >= NTANKS) {
ERROR (abstract->context, "Maximum number of tanks reached.");
return DC_STATUS_NOMEMORY;
}
Expand All @@ -703,11 +718,17 @@ halcyon_symbios_parser_samples_foreach (dc_parser_t *abstract, dc_sample_callbac
sample.pressure.tank = tank_idx;
sample.pressure.value = pressure / 10.0;
if (callback) callback(DC_SAMPLE_PRESSURE, &sample, userdata);
} else if (type == ID_GF_INFO) {
} else if (type == ID_GF_INFO || type == ID_GF_DATA) {
unsigned int DC_ATTR_UNUSED gf_now = array_uint16_le (data + offset + 2);
unsigned int DC_ATTR_UNUSED gf_surface = array_uint16_le (data + offset + 4);
if (type == ID_GF_DATA) {
unsigned int DC_ATTR_UNUSED leading_tissue_gf_now = data[offset + 6];
unsigned int DC_ATTR_UNUSED leading_tissue_gf_surface = data[offset + 7];
}
} else if (type == ID_SGC) {
unsigned int DC_ATTR_UNUSED sgc = array_uint16_le (data + offset + 2);
} else {
WARNING (abstract->context, "Unknown record (type=%u, size=%u", type, length);
WARNING (abstract->context, "Unknown record (type=%u, size=%u)", type, length);
}

offset += length;
Expand Down
Loading
Loading