mirror of
https://github.com/wiiu-env/ScreenshotWUPS.git
synced 2024-11-22 06:29:15 +01:00
Move getting the name of the current application into utils
This commit is contained in:
parent
04258a2317
commit
37cce38582
38
src/main.cpp
38
src/main.cpp
@ -3,10 +3,8 @@
|
||||
#include "thread.h"
|
||||
#include "utils/WUPSConfigItemButtonCombo.h"
|
||||
#include "utils/logger.h"
|
||||
#include "utils/utils.h"
|
||||
#include <coreinit/cache.h>
|
||||
#include <coreinit/title.h>
|
||||
#include <malloc.h>
|
||||
#include <nn/acp.h>
|
||||
#include <notifications/notifications.h>
|
||||
#include <string>
|
||||
#include <wups.h>
|
||||
@ -271,38 +269,8 @@ WUPS_CONFIG_CLOSED() {
|
||||
// Called whenever an application was started.
|
||||
ON_APPLICATION_START() {
|
||||
initLogging();
|
||||
ACPInitialize();
|
||||
auto *metaXml = (ACPMetaXml *) memalign(0x40, sizeof(ACPMetaXml));
|
||||
if (ACPGetTitleMetaXml(OSGetTitleID(), metaXml) == ACP_RESULT_SUCCESS) {
|
||||
gShortNameEn = metaXml->shortname_en;
|
||||
std::string illegalChars = "\\/:?\"<>|@=;`_^][";
|
||||
for (auto it = gShortNameEn.begin(); it < gShortNameEn.end(); ++it) {
|
||||
if (*it < '0' || *it > 'z') {
|
||||
*it = ' ';
|
||||
}
|
||||
}
|
||||
for (auto it = gShortNameEn.begin(); it < gShortNameEn.end(); ++it) {
|
||||
bool found = illegalChars.find(*it) != std::string::npos;
|
||||
if (found) {
|
||||
*it = ' ';
|
||||
}
|
||||
}
|
||||
uint32_t length = gShortNameEn.length();
|
||||
for (uint32_t i = 1; i < length; ++i) {
|
||||
if (gShortNameEn[i - 1] == ' ' && gShortNameEn[i] == ' ') {
|
||||
gShortNameEn.erase(i, 1);
|
||||
i--;
|
||||
length--;
|
||||
}
|
||||
}
|
||||
if (gShortNameEn.size() == 1 && gShortNameEn[0] == ' ') {
|
||||
gShortNameEn.clear();
|
||||
} else {
|
||||
DEBUG_FUNCTION_LINE("Detected name as \"%s\"", gShortNameEn.c_str());
|
||||
}
|
||||
} else {
|
||||
gShortNameEn.clear();
|
||||
}
|
||||
|
||||
gShortNameEn = GetSanitizedNameOfCurrentApplication();
|
||||
startFSIOThreads();
|
||||
VPADSetTVMenuInvalid(VPAD_CHAN_0, true);
|
||||
}
|
||||
|
@ -1,4 +1,10 @@
|
||||
#include <cstdint>
|
||||
#include "StringTools.h"
|
||||
#include "logger.h"
|
||||
#include <coreinit/title.h>
|
||||
#include <malloc.h>
|
||||
#include <nn/acp/client.h>
|
||||
#include <nn/acp/title.h>
|
||||
#include <wups/storage.h>
|
||||
|
||||
uint8_t RGBComponentToSRGBTable[] = {0x00, 0x0C, 0x15, 0x1C, 0x21, 0x26, 0x2A, 0x2E, 0x31, 0x34, 0x37, 0x3A, 0x3D, 0x3F, 0x42, 0x44,
|
||||
0x46, 0x49, 0x4B, 0x4D, 0x4F, 0x51, 0x52, 0x54, 0x56, 0x58, 0x59, 0x5B, 0x5D, 0x5E, 0x60, 0x61,
|
||||
@ -33,3 +39,40 @@ uint8_t SRGBComponentToRGBTable[] = {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0
|
||||
0xA0, 0xA2, 0xA4, 0xA6, 0xA7, 0xA9, 0xAB, 0xAD, 0xAF, 0xB0, 0xB2, 0xB4, 0xB6, 0xB8, 0xBA, 0xBC,
|
||||
0xBE, 0xC0, 0xC1, 0xC3, 0xC5, 0xC7, 0xC9, 0xCB, 0xCD, 0xCF, 0xD1, 0xD3, 0xD5, 0xD7, 0xDA, 0xDC,
|
||||
0xDE, 0xE0, 0xE2, 0xE4, 0xE6, 0xE8, 0xEB, 0xED, 0xEF, 0xF1, 0xF3, 0xF5, 0xF8, 0xFA, 0xFC, 0xFF};
|
||||
|
||||
std::string GetSanitizedNameOfCurrentApplication() {
|
||||
std::string result;
|
||||
ACPInitialize();
|
||||
auto *metaXml = (ACPMetaXml *) memalign(0x40, sizeof(ACPMetaXml));
|
||||
if (ACPGetTitleMetaXml(OSGetTitleID(), metaXml) == ACP_RESULT_SUCCESS) {
|
||||
result = metaXml->shortname_en;
|
||||
std::string illegalChars = "\\/:?\"<>|@=;`_^][";
|
||||
for (auto it = result.begin(); it < result.end(); ++it) {
|
||||
if (*it < '0' || *it > 'z') {
|
||||
*it = ' ';
|
||||
}
|
||||
}
|
||||
for (auto it = result.begin(); it < result.end(); ++it) {
|
||||
bool found = illegalChars.find(*it) != std::string::npos;
|
||||
if (found) {
|
||||
*it = ' ';
|
||||
}
|
||||
}
|
||||
uint32_t length = result.length();
|
||||
for (uint32_t i = 1; i < length; ++i) {
|
||||
if (result[i - 1] == ' ' && result[i] == ' ') {
|
||||
result.erase(i, 1);
|
||||
i--;
|
||||
length--;
|
||||
}
|
||||
}
|
||||
if (result.size() == 1 && result[0] == ' ') {
|
||||
result.clear();
|
||||
} else {
|
||||
DEBUG_FUNCTION_LINE("Detected name as \"%s\"", result.c_str());
|
||||
}
|
||||
} else {
|
||||
result.clear();
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
@ -1,6 +1,7 @@
|
||||
#pragma once
|
||||
#include <cstdint>
|
||||
#include <memory>
|
||||
#include <string>
|
||||
|
||||
extern uint8_t SRGBComponentToRGBTable[];
|
||||
extern uint8_t RGBComponentToSRGBTable[];
|
||||
@ -11,4 +12,6 @@ inline uint8_t SRGBComponentToRGB(uint8_t ci) {
|
||||
|
||||
inline uint8_t RGBComponentToSRGB(uint8_t ci) {
|
||||
return RGBComponentToSRGBTable[ci];
|
||||
}
|
||||
}
|
||||
|
||||
std::string GetSanitizedNameOfCurrentApplication();
|
||||
|
Loading…
Reference in New Issue
Block a user