aboutsummaryrefslogtreecommitdiffstats
path: root/include
diff options
context:
space:
mode:
authorsaturneric <[email protected]>2024-07-12 18:39:17 +0000
committersaturneric <[email protected]>2024-07-12 18:39:17 +0000
commit96e4c85edc09e106631860f823a42440d013e455 (patch)
treefd69604b607da4f7d9a9d51503ef5fc64ed75f89 /include
parentfeat: initialize and move in two modules (diff)
downloadModules-96e4c85edc09e106631860f823a42440d013e455.tar.gz
Modules-96e4c85edc09e106631860f823a42440d013e455.zip
feat: try using ui and i18n apis from sdk
Diffstat (limited to 'include')
-rw-r--r--include/GFModuleCommonUtils.hpp112
-rw-r--r--include/GFModuleExport.h42
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 */