diff options
author | saturneric <[email protected]> | 2024-07-12 18:39:17 +0000 |
---|---|---|
committer | saturneric <[email protected]> | 2024-07-12 18:39:17 +0000 |
commit | 96e4c85edc09e106631860f823a42440d013e455 (patch) | |
tree | fd69604b607da4f7d9a9d51503ef5fc64ed75f89 /include | |
parent | feat: initialize and move in two modules (diff) | |
download | Modules-96e4c85edc09e106631860f823a42440d013e455.tar.gz Modules-96e4c85edc09e106631860f823a42440d013e455.zip |
feat: try using ui and i18n apis from sdk
Diffstat (limited to 'include')
-rw-r--r-- | include/GFModuleCommonUtils.hpp | 112 | ||||
-rw-r--r-- | include/GFModuleExport.h | 42 |
2 files changed, 154 insertions, 0 deletions
diff --git a/include/GFModuleCommonUtils.hpp b/include/GFModuleCommonUtils.hpp new file mode 100644 index 0000000..c318a1c --- /dev/null +++ b/include/GFModuleCommonUtils.hpp @@ -0,0 +1,112 @@ +/** + * Copyright (C) 2021 Saturneric <[email protected]> + * + * This file is part of GpgFrontend. + * + * GpgFrontend is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * GpgFrontend is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with GpgFrontend. If not, see <https://www.gnu.org/licenses/>. + * + * The initial version of the source code is inherited from + * the gpg4usb project, which is under GPL-3.0-or-later. + * + * All the source code of GpgFrontend was modified and released by + * Saturneric <[email protected]> starting on May 12, 2021. + * + * SPDX-License-Identifier: GPL-3.0-or-later + * + */ + +#pragma once + +#include <GFSDKUI.h> + +#include <QMap> +#include <QString> +#include <cstring> + +#include "GFSDKBasic.h" +#include "GFSDKLog.h" +#include "GFSDKModule.h" + +#define DUP(v) GFModuleStrDup(v) + +inline void MLogDebug(const QString& s) { GFModuleLogDebug(s.toUtf8()); } +inline void MLogInfo(const QString& s) { GFModuleLogInfo(s.toUtf8()); } +inline void MLogWarn(const QString& s) { GFModuleLogWarn(s.toUtf8()); } +inline void MLogError(const QString& s) { GFModuleLogError(s.toUtf8()); } + +#define MLogDebugS(format, ...) \ + MLogDebug(QString::asprintf(format, __VA_ARGS__)) +#define MLogInfoS(format, ...) MLogInfo(QString::asprintf(format, __VA_ARGS__)) +#define MLogWarnS(format, ...) MLogWarn(QString::asprintf(format, __VA_ARGS__)) +#define MLogErrorS(format, ...) \ + MLogError(QString::asprintf(format, __VA_ARGS__)) + +auto QMapToMetaDataArray(const QMap<QString, QString>& map) -> MetaData** { + auto** meta_data_array = + static_cast<MetaData**>(GFAllocateMemory(sizeof(MetaData*) * map.size())); + + int index = 0; + for (auto it = map.begin(); it != map.end(); ++it) { + meta_data_array[index] = + static_cast<MetaData*>(GFAllocateMemory(sizeof(MetaData))); + + QByteArray const key = it.key().toUtf8(); + QByteArray const value = it.value().toUtf8(); + + meta_data_array[index]->key = GFModuleStrDup(key); + + meta_data_array[index]->value = GFModuleStrDup(value); + + ++index; + } + + return meta_data_array; +} + +auto QMapToGFModuleMetaDataList(const QMap<QString, QString>& map) + -> GFModuleMetaData* { + GFModuleMetaData* head = nullptr; + GFModuleMetaData* tail = nullptr; + + for (auto it = map.begin(); it != map.end(); ++it) { + auto* new_node = static_cast<GFModuleMetaData*>( + GFAllocateMemory(sizeof(GFModuleMetaData))); + + QByteArray const key = it.key().toUtf8(); + QByteArray const value = it.value().toUtf8(); + + new_node->key = new char[key.size() + 1]; + std::strcpy(const_cast<char*>(new_node->key), key.constData()); + + new_node->value = new char[value.size() + 1]; + std::strcpy(const_cast<char*>(new_node->value), value.constData()); + + new_node->next = nullptr; + + if (tail != nullptr) { + tail->next = new_node; + } else { + head = new_node; + } + tail = new_node; + } + + return head; +} + +auto AllocBufferAndCopy(const QByteArray& b) -> char* { + auto* p = static_cast<char*>(GFAllocateMemory(sizeof(char) * b.size())); + memcpy(p, b.constData(), b.size()); + return p; +} diff --git a/include/GFModuleExport.h b/include/GFModuleExport.h new file mode 100644 index 0000000..2a669cc --- /dev/null +++ b/include/GFModuleExport.h @@ -0,0 +1,42 @@ + +#ifndef GF_MODULE_EXPORT_H +#define GF_MODULE_EXPORT_H + +#ifdef GF_MODULE_STATIC_DEFINE +# define GF_MODULE_EXPORT +# define GF_MODULE_NO_EXPORT +#else +# ifndef GF_MODULE_EXPORT +# ifdef GF_MODULE_EXPORTS + /* We are building this library */ +# define GF_MODULE_EXPORT __attribute__((visibility("default"))) +# else + /* We are using this library */ +# define GF_MODULE_EXPORT __attribute__((visibility("default"))) +# endif +# endif + +# ifndef GF_MODULE_NO_EXPORT +# define GF_MODULE_NO_EXPORT __attribute__((visibility("hidden"))) +# endif +#endif + +#ifndef GF_MODULE_DEPRECATED +# define GF_MODULE_DEPRECATED __attribute__ ((__deprecated__)) +#endif + +#ifndef GF_MODULE_DEPRECATED_EXPORT +# define GF_MODULE_DEPRECATED_EXPORT GF_MODULE_EXPORT GF_MODULE_DEPRECATED +#endif + +#ifndef GF_MODULE_DEPRECATED_NO_EXPORT +# define GF_MODULE_DEPRECATED_NO_EXPORT GF_MODULE_NO_EXPORT GF_MODULE_DEPRECATED +#endif + +#if 0 /* DEFINE_NO_DEPRECATED */ +# ifndef GF_MODULE_NO_DEPRECATED +# define GF_MODULE_NO_DEPRECATED +# endif +#endif + +#endif /* GF_MODULE_EXPORT_H */ |