aboutsummaryrefslogtreecommitdiff
path: root/src/hardware_functions.cpp
diff options
context:
space:
mode:
authorTrickyLeifa <date.epoch@gmail.com>2024-05-15 00:00:17 +0200
committerTrickyLeifa <date.epoch@gmail.com>2024-05-15 00:04:16 +0200
commitc9f52b7223685d2e7fca925594171f94dd8c6e3b (patch)
tree740bb32a40da98a4d52836432f59a16b31333900 /src/hardware_functions.cpp
parent951766666621fa77e257e6b5616fe4ab1eb2a52f (diff)
Ported to CMake, ...
* Ported the project to CMake * Android and Mac support dropped for the time being. * Tests, BASS and Discord-RPC are now options * Restructured and reformated the project. * Merged `include` and `src` * Renamed `resource` to `data` * Renamed various files * External libraries headers are no longer included in `src` * Replaced header guards with #pragma once * Multiple refactors (keywords, headers) * Added Qt6 compatibility * Removed various unused functions and headers * Reworked AOPacket * When content is passed to AOPacket, it should be ensured that the content is already decoded. * Encoding/decoding are now static methods. * Fixed various memory leaks * Removed animation code for AOImage * AOImage is always using static images * Simplified ChatLogPiece
Diffstat (limited to 'src/hardware_functions.cpp')
-rw-r--r--src/hardware_functions.cpp81
1 files changed, 43 insertions, 38 deletions
diff --git a/src/hardware_functions.cpp b/src/hardware_functions.cpp
index 14296803..67b5cafa 100644
--- a/src/hardware_functions.cpp
+++ b/src/hardware_functions.cpp
@@ -3,50 +3,54 @@
#include <QDebug>
#include <QtGlobal>
+#include <stdio.h>
+
#if (defined(_WIN32) || defined(_WIN64))
+// clang-format off
#include <windows.h>
#include <sddl.h>
+// clang-format on
QString get_hdid()
{
- HANDLE hToken;
- HANDLE pHandle;
- PTOKEN_USER pToken;
- DWORD uSize = 0;
- LPWSTR HDIDParam;
-
- pHandle = GetCurrentProcess();
- OpenProcessToken(pHandle, TOKEN_QUERY, &hToken);
- if (!GetTokenInformation(hToken, (TOKEN_INFORMATION_CLASS)1, NULL, 0, &uSize))
+ HANDLE hToken;
+ HANDLE pHandle;
+ PTOKEN_USER pToken;
+ DWORD uSize = 0;
+ LPWSTR HDIDParam;
+
+ pHandle = GetCurrentProcess();
+ OpenProcessToken(pHandle, TOKEN_QUERY, &hToken);
+ if (!GetTokenInformation(hToken, (TOKEN_INFORMATION_CLASS)1, NULL, 0, &uSize))
+ {
+ if (GetLastError() != ERROR_INSUFFICIENT_BUFFER)
{
- if (GetLastError() != ERROR_INSUFFICIENT_BUFFER) {
- CloseHandle(hToken);
- return "gxsps32sa9fnwic92mfbs1";
- }
+ CloseHandle(hToken);
+ return "gxsps32sa9fnwic92mfbs1";
}
+ }
- pToken = (PTOKEN_USER)GlobalAlloc(GPTR, uSize);
-
- if (!GetTokenInformation(hToken, (TOKEN_INFORMATION_CLASS)1, pToken, uSize, &uSize))
- {
- CloseHandle(hToken);
- return "gxsps32sa9fnwic92mfbs2";
- }
+ pToken = (PTOKEN_USER)GlobalAlloc(GPTR, uSize);
- ConvertSidToStringSidW(pToken->User.Sid, &HDIDParam);
- QString returnHDID = QString::fromWCharArray(HDIDParam);
+ if (!GetTokenInformation(hToken, (TOKEN_INFORMATION_CLASS)1, pToken, uSize, &uSize))
+ {
CloseHandle(hToken);
- return returnHDID;
+ return "gxsps32sa9fnwic92mfbs2";
+ }
+
+ ConvertSidToStringSidW(pToken->User.Sid, &HDIDParam);
+ QString returnHDID = QString::fromWCharArray(HDIDParam);
+ CloseHandle(hToken);
+ return returnHDID;
}
#elif defined(ANDROID)
+#include <QtAndroidExtras/QtAndroid>
+
QString get_hdid()
{
- QAndroidJniObject appctx = QAndroidJniObject::callStaticObjectMethod("org/qtproject/qt5/android/QtNative", "activity", "()Landroid/app/Activity;").callObjectMethod("getApplicationContext","()Landroid/content/Context;");
- QAndroidJniObject androidId = QAndroidJniObject::callStaticObjectMethod("android/provider/Settings$Secure","getString",
- "(Landroid/content/ContentResolver;Ljava/lang/String;)Ljava/lang/String;",
- appctx.callObjectMethod("getContentResolver", "()Landroid/content/ContentResolver;").object<jobject>(),
- QAndroidJniObject::fromString("android_id").object<jstring>());
- return androidId.toString();
+ QAndroidJniObject appctx = QAndroidJniObject::callStaticObjectMethod("org/qtproject/qt5/android/QtNative", "activity", "()Landroid/app/Activity;").callObjectMethod("getApplicationContext", "()Landroid/content/Context;");
+ QAndroidJniObject androidId = QAndroidJniObject::callStaticObjectMethod("android/provider/Settings$Secure", "getString", "(Landroid/content/ContentResolver;Ljava/lang/String;)Ljava/lang/String;", appctx.callObjectMethod("getContentResolver", "()Landroid/content/ContentResolver;").object<jobject>(), QAndroidJniObject::fromString("android_id").object<jstring>());
+ return androidId.toString();
}
#elif QT_VERSION < QT_VERSION_CHECK(5, 11, 0)
#if (defined(LINUX) || defined(__linux__))
@@ -58,7 +62,8 @@ QString get_hdid()
{
machineId = QSysInfo::machineUniqueId();
- if (machineId.isEmpty()) {
+ if (machineId.isEmpty())
+ {
return "gxsps32sa9fnwic92mfbs2";
}
return QString(machineId);
@@ -74,16 +79,16 @@ QString get_hdid()
CFStringRef serial;
char buffer[64] = {0};
QString hdid;
- io_service_t platformExpert = IOServiceGetMatchingService(
- kIOMasterPortDefault, IOServiceMatching("IOPlatformExpertDevice"));
- if (platformExpert) {
- CFTypeRef serialNumberAsCFString = IORegistryEntryCreateCFProperty(
- platformExpert, CFSTR(kIOPlatformSerialNumberKey), kCFAllocatorDefault,
- 0);
- if (serialNumberAsCFString) {
+ io_service_t platformExpert = IOServiceGetMatchingService(kIOMasterPortDefault, IOServiceMatching("IOPlatformExpertDevice"));
+ if (platformExpert)
+ {
+ CFTypeRef serialNumberAsCFString = IORegistryEntryCreateCFProperty(platformExpert, CFSTR(kIOPlatformSerialNumberKey), kCFAllocatorDefault, 0);
+ if (serialNumberAsCFString)
+ {
serial = (CFStringRef)serialNumberAsCFString;
}
- if (CFStringGetCString(serial, buffer, 64, kCFStringEncodingUTF8)) {
+ if (CFStringGetCString(serial, buffer, 64, kCFStringEncodingUTF8))
+ {
hdid = buffer;
}