--- libgig/trunk/src/helper.h 2020/01/31 10:57:53 3729 +++ libgig/trunk/src/helper.h 2020/02/01 12:06:25 3730 @@ -2,7 +2,7 @@ * * * libgig - C++ cross-platform Gigasampler format file access library * * * - * Copyright (C) 2003-2019 by Christian Schoenebeck * + * Copyright (C) 2003-2020 by Christian Schoenebeck * * * * * * This library is free software; you can redistribute it and/or modify * @@ -150,6 +150,23 @@ } /** + * Stores a 64 bit integer in memory using little-endian format. + * + * @param pData - memory pointer + * @param data - integer to be stored + */ +inline void store64(uint8_t* pData, uint64_t data) { + pData[0] = data; + pData[1] = data >> 8; + pData[2] = data >> 16; + pData[3] = data >> 24; + pData[4] = data >> 32; + pData[5] = data >> 40; + pData[6] = data >> 48; + pData[7] = data >> 56; +} + +/** * Loads a 16 bit integer in memory using little-endian format. * * @param pData - memory pointer @@ -417,4 +434,15 @@ : path1 + path2; } +/** + * Returns a hex string representation of the binary data being passed. + */ +inline std::string binToHexStr(const void* pData, size_t sz) { + std::string s; + for (size_t i = 0; i < sz; ++i) { + s += strPrint("%02x", ((const char*)pData)[i]); + } + return s; +} + #endif // __LIBGIG_HELPER_H__