Skip to content

Commit 934fc88

Browse files
authored
Update binary_utils.h
1 parent 2c358a1 commit 934fc88

1 file changed

Lines changed: 22 additions & 0 deletions

File tree

src/binary_utils.h

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,17 +33,39 @@ static inline int64_t BinaryUtils_readInt64(const uint8_t* data) {
3333
}
3434

3535
static inline float BinaryUtils_readFloat32(const uint8_t* data) {
36+
#ifdef __WIIU__
37+
uint32_t bits = BinaryUtils_readUint32(data);
38+
float val;
39+
memcpy(&val, &bits, 4);
40+
return val;
41+
#else
3642
float val;
3743
memcpy(&val, data, 4);
3844
return val;
45+
#endif
3946
}
4047

4148
static inline double BinaryUtils_readFloat64(const uint8_t* data) {
49+
#ifdef __WIIU__
50+
uint64_t bits = (uint64_t) data[0] | ((uint64_t) data[1] << 8) | ((uint64_t) data[2] << 16) | ((uint64_t) data[3] << 24) |
51+
((uint64_t) data[4] << 32) | ((uint64_t) data[5] << 40) | ((uint64_t) data[6] << 48) | ((uint64_t) data[7] << 56);
52+
double val;
53+
memcpy(&val, &bits, 8);
54+
return val;
55+
#else
4256
double val;
4357
memcpy(&val, data, 8);
4458
return val;
59+
#endif
4560
}
4661

4762
static inline void BinaryUtils_writeUint32(uint8_t* data, uint32_t val) {
63+
#ifdef __WIIU__
64+
data[0] = (uint8_t) (val & 0xFF);
65+
data[1] = (uint8_t) ((val >> 8) & 0xFF);
66+
data[2] = (uint8_t) ((val >> 16) & 0xFF);
67+
data[3] = (uint8_t) ((val >> 24) & 0xFF);
68+
#else
4869
memcpy(data, &val, 4);
70+
#endif
4971
}

0 commit comments

Comments
 (0)