mirror of
https://github.com/HamletDuFromage/aio-switch-updater.git
synced 2024-12-28 18:36:02 +00:00
refactored title id listing code
This commit is contained in:
parent
743109c7b3
commit
c755d19f58
3 changed files with 22 additions and 39 deletions
10
.github/workflows/main.yml
vendored
10
.github/workflows/main.yml
vendored
|
@ -7,22 +7,18 @@ on:
|
|||
jobs:
|
||||
AIO-switch-updater:
|
||||
runs-on: ubuntu-latest
|
||||
container: hamletdufromage/devkita64_devkitarm
|
||||
#container: hamletdufromage/devkita64_devkitarm
|
||||
container: devkitpro/devkita64_devkitarm
|
||||
steps:
|
||||
- uses: actions/checkout@v1
|
||||
|
||||
#- name: update libnx
|
||||
#run: |
|
||||
#dkp-pacman -Syu --noconfirm
|
||||
- name: update repo
|
||||
run: |
|
||||
git submodule update --init --recursive
|
||||
|
||||
- name: Building aio-switch-updater
|
||||
run: |
|
||||
cd aiosu-forwarder
|
||||
make
|
||||
cd ..
|
||||
make -C aiosu-forwarder -f Makefile
|
||||
make -j$(nproc)
|
||||
|
||||
- uses: actions/upload-artifact@master
|
||||
|
|
2
Makefile
2
Makefile
|
@ -22,7 +22,7 @@ DATA := data
|
|||
INCLUDES := include lib/zipper/include /lib/borealis/library/include/borealis/extern/nlohmann
|
||||
APP_TITLE := All-in-One Switch Updater
|
||||
APP_AUTHOR := HamletDuFromage
|
||||
APP_VERSION := 2.4.3
|
||||
APP_VERSION := 2.4.4
|
||||
TARGET := $(notdir $(CURDIR))
|
||||
|
||||
ROMFS := resources
|
||||
|
|
|
@ -111,45 +111,32 @@ void extract(const char * filename, const char* workingPath, const char* toExclu
|
|||
}
|
||||
|
||||
std::vector<std::string> getInstalledTitlesNs(){
|
||||
Result rc = 0;
|
||||
std::vector<std::string> titles;
|
||||
NsApplicationRecord *recs = new NsApplicationRecord[MaxTitleCount]();
|
||||
NsApplicationControlData *buf=NULL;
|
||||
u64 outsize = 0;
|
||||
NacpLanguageEntry *langentry = NULL;
|
||||
s32 total = 0;
|
||||
rc = nsListApplicationRecord(recs, MaxTitleCount, 0, &total);
|
||||
|
||||
if (R_SUCCEEDED(rc)){
|
||||
for (s32 i = 0; i < total; i++){
|
||||
outsize = 0;
|
||||
buf = (NsApplicationControlData*)malloc(sizeof(NsApplicationControlData));
|
||||
if (buf == NULL) {
|
||||
rc = MAKERESULT(Module_Libnx, LibnxError_OutOfMemory);
|
||||
} else {
|
||||
memset(buf, 0, sizeof(NsApplicationControlData));
|
||||
}
|
||||
|
||||
if (R_SUCCEEDED(rc)) {
|
||||
if (R_FAILED(rc))
|
||||
printf("nsInitialize() failed: 0x%x\n", rc);
|
||||
}
|
||||
NsApplicationRecord *records = new NsApplicationRecord[MaxTitleCount]();
|
||||
NsApplicationControlData *controlData = NULL;
|
||||
NacpLanguageEntry* langEntry = NULL;
|
||||
|
||||
rc = nsGetApplicationControlData(NsApplicationControlSource_Storage, recs[i].application_id, buf, sizeof(NsApplicationControlData), &outsize);
|
||||
s32 recordCount = 0;
|
||||
u64 controlSize = 0;
|
||||
|
||||
if (outsize < sizeof(buf->nacp))
|
||||
rc = -1;
|
||||
if (R_SUCCEEDED(nsListApplicationRecord(records, MaxTitleCount, 0, &recordCount))){
|
||||
for (s32 i = 0; i < recordCount; i++){
|
||||
controlSize = 0;
|
||||
controlData = (NsApplicationControlData*)malloc(sizeof(NsApplicationControlData));
|
||||
if(controlData != NULL)
|
||||
memset(controlData, 0, sizeof(NsApplicationControlData));
|
||||
|
||||
if (R_SUCCEEDED(rc))
|
||||
rc = nacpGetLanguageEntry(&buf->nacp, &langentry);
|
||||
if(R_FAILED(nsGetApplicationControlData(NsApplicationControlSource_Storage, records[i].application_id, controlData, sizeof(NsApplicationControlData), &controlSize))) continue;
|
||||
|
||||
if (R_SUCCEEDED(rc)) {
|
||||
titles.push_back(util::formatApplicationId(recs[i].application_id));
|
||||
}
|
||||
if(controlSize < sizeof(controlData->nacp)) continue;
|
||||
|
||||
if(R_FAILED(nacpGetLanguageEntry(&controlData->nacp, &langEntry))) continue;
|
||||
|
||||
titles.push_back(util::formatApplicationId(records[i].application_id));
|
||||
}
|
||||
}
|
||||
free(buf);
|
||||
delete[] recs;
|
||||
delete[] records;
|
||||
std::sort(titles.begin(), titles.end());
|
||||
return titles;
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue