From 5f95fe29afcb4828037345e9e981c886e0dec291 Mon Sep 17 00:00:00 2001 From: pbrena <55524715+pbrena@users.noreply.github.com> Date: Tue, 13 Dec 2022 19:09:04 +0000 Subject: [PATCH] Add vectorFromGVariantByteArray --- src/Utils.cpp | 10 ++++++++++ src/Utils.h | 3 +++ 2 files changed, 13 insertions(+) diff --git a/src/Utils.cpp b/src/Utils.cpp index 88b3dc8..704fc11 100644 --- a/src/Utils.cpp +++ b/src/Utils.cpp @@ -426,4 +426,14 @@ std::string Utils::stringFromGVariantByteArray(const GVariant *pVariant) return array.data(); } +// Extracts a VECTOR from an array of bytes ("ay") +std::vector Utils::vectorFromGVariantByteArray(const GVariant *pVariant) +{ + gsize size; + gconstpointer pPtr = g_variant_get_fixed_array(const_cast(pVariant), &size, 1); + std::vector array(size + 1, 0); + memcpy(array.data(), pPtr, size); + return array; +} + }; // namespace ggk diff --git a/src/Utils.h b/src/Utils.h index 246cdcc..e165239 100644 --- a/src/Utils.h +++ b/src/Utils.h @@ -170,6 +170,9 @@ struct Utils // Extracts a string from an array of bytes ("ay") static std::string stringFromGVariantByteArray(const GVariant *pVariant); + // Extracts a VECTOR from an array of bytes ("ay") + static std::vector vectorFromGVariantByteArray(const GVariant *pVariant); + // ----------------------------------------------------------------------------------------------------------------------------- // Endian conversion //