diff --git a/engine.build.lua b/engine.build.lua index ea06e71..35a8e2a 100644 --- a/engine.build.lua +++ b/engine.build.lua @@ -27,6 +27,7 @@ settings.cc.includes:Add("vendor/stb/include") ----------------------------------------------------------- local system_module = Module("source/System", { + "ByteOrder.cpp", "File.cpp", "Path.cpp", "MessageHandler.cpp", diff --git a/include/Spectre/System/ByteOrder.h b/include/Spectre/System/ByteOrder.h new file mode 100644 index 0000000..ff89d6f --- /dev/null +++ b/include/Spectre/System/ByteOrder.h @@ -0,0 +1,15 @@ + +#ifndef SPECTRE_SYSTEM_BYTEORDER_H +#define SPECTRE_SYSTEM_BYTEORDER_H + +#include + +namespace sp { namespace system +{ + uint16_t ltoh16(const uint8_t* bytes); + + uint32_t ltoh32(const uint8_t* bytes); + +} } // namespace sp::system + +#endif /* SPECTRE_SYSTEM_BYTEORDER_H */ diff --git a/source/System/ByteOrder.cpp b/source/System/ByteOrder.cpp new file mode 100644 index 0000000..71886b9 --- /dev/null +++ b/source/System/ByteOrder.cpp @@ -0,0 +1,20 @@ + +#include + +namespace sp { namespace system +{ + +uint16_t ltoh16(const uint8_t* bytes) +{ + return bytes[0] | (bytes[1] << 8); +} + +uint32_t ltoh32(const uint8_t* bytes) +{ + return bytes[0] + | (bytes[1] << 8) + | (bytes[2] << 16) + | (bytes[3] << 24); +} + +} } // namespace sp::system