first pass as floating point fixes
diff --git a/src/qcbor_decode.c b/src/qcbor_decode.c
index 25c62f7..6aee680 100644
--- a/src/qcbor_decode.c
+++ b/src/qcbor_decode.c
@@ -49,6 +49,7 @@
=====================================================================================*/
#include "qcbor.h"
+#include "ieee754.h"
@@ -300,6 +301,17 @@
case CBOR_SIMPLE_BREAK: // 31
nReturn = QCBOR_ERR_UNSUPPORTED;
break;
+
+ case SINGLE_PREC_FLOAT:
+ pDecodedItem->val.fnum = IEEE754_HalfToFloat((uint16_t)uNumber);
+ pDecodedItem->uDataType = QCBOR_TYPE_FLOAT;
+ break;
+ case HALF_PREC_FLOAT:
+ pDecodedItem->val.fnum = UsefulBufUtil_CopyUint32ToFloat((uint32_t)uNumber);
+ break;
+ case DOUBLE_PREC_FLOAT:
+ pDecodedItem->val.dfnum = UsefulBufUtil_CopyUint64ToDouble(uNumber);
+ break;
case CBOR_SIMPLEV_FALSE: // 20
case CBOR_SIMPLEV_TRUE: // 21