Fix stupid packing error on Windows

I guess no one has ever tried to import Uemis dive data under Windows.

The glib-2 libraries for Windows (at least the ones that are part of the
mingw package, but my guess is this is true for all of them), force the
whole program to be compiled with Windows packing rules for structures.
That broke the structure we use for decoding Uemis binary data.

This commit changes the data structure to no longer use unaligned 16bit
values but instead two 8bit values and assemble them in the actual code.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
This commit is contained in:
Dirk Hohndel 2012-09-25 23:19:57 -07:00
parent 43f122f9ff
commit cb48db275e
2 changed files with 10 additions and 3 deletions

View file

@ -229,7 +229,8 @@ void uemis_parse_divelog_binary(char *base64, void *datap) {
sample->depth.mm = pressure_to_depth(u_sample->water_pressure);
sample->temperature.mkelvin = (u_sample->dive_temperature * 100) + 273150;
sample->cylinderindex = u_sample->active_tank;
sample->cylinderpressure.mbar= u_sample->tank_pressure * 10;
sample->cylinderpressure.mbar =
(u_sample->tank_pressure_high * 256 + u_sample->tank_pressure_low) * 10;
uemis_event(dive, sample, u_sample);
finish_sample(dive);
i += 0x25;