From 4ffa6ed97085bc8d979899ede619a722837ca4d1 Mon Sep 17 00:00:00 2001 From: Nikolai Fedorov Date: Sat, 25 Apr 2026 16:02:39 +0300 Subject: [PATCH] flow improvements --- Iridium_Icon256.png | Bin 23661 -> 0 bytes Makefile | 7 ++++--- icon.jpg | Bin 5728 -> 0 bytes icon.png | Bin 0 -> 100495 bytes include/TitlesLayout.hpp | 3 +++ include/TransferOverlay.hpp | 14 ++++++++++++++ include/UsersLayout.hpp | 2 ++ include/account.hpp | 3 ++- include/client.hpp | 1 + include/logger.hpp | 7 ++++--- include/title.hpp | 1 + source/Main.cpp | 26 +++++++++++++------------- source/TitlesLayout.cpp | 30 +++++++++++++++++++++++------- source/UsersLayout.cpp | 31 +++++++++++++++++++++++++++---- source/account.cpp | 20 +++++++++++++++----- source/client.cpp | 1 + source/directory.cpp | 5 ++--- source/io.cpp | 6 ++++++ source/server.cpp | 11 +++++++++-- source/title.cpp | 24 +++++++++--------------- source/util.cpp | 17 ++++++++++++++--- 21 files changed, 150 insertions(+), 59 deletions(-) delete mode 100644 Iridium_Icon256.png delete mode 100644 icon.jpg create mode 100644 icon.png diff --git a/Iridium_Icon256.png b/Iridium_Icon256.png deleted file mode 100644 index 5ba7b0cef6cd5733ff8464d7feec3328a7c6b012..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 23661 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 SERjXH*i}2nOO-ahkNy|K;%xo^ diff --git a/Makefile b/Makefile index 41f8452..9ab25d4 100644 --- a/Makefile +++ b/Makefile @@ -38,8 +38,7 @@ EXEFS_SRC := exefs_src APP_TITLE := NXST APP_AUTHOR := DragonSpirit APP_VERSION := 04.24.2026 -ICON := icon.jpg - +ICON := icon.png #--------------------------------------------------------------------------------- # options for code generation @@ -51,7 +50,7 @@ CFLAGS += -g -O2 -ffunction-sections \ CFLAGS += $(INCLUDE) -D__SWITCH__ -D_GNU_SOURCE=1 -CXXFLAGS:= $(CFLAGS) -fno-rtti -fno-exceptions -std=gnu++17 +CXXFLAGS:= $(CFLAGS) -fno-rtti -fno-exceptions -std=gnu++17 -g ASFLAGS := -g $(ARCH) LDFLAGS = -specs=$(DEVKITPRO)/libnx/switch.specs -g $(ARCH) -Wl,-Map,$(notdir $*.map) @@ -155,6 +154,8 @@ clean: @echo clean ... @rm -fr $(BUILD) $(TARGET).pfs0 $(TARGET).nso $(TARGET).nro $(TARGET).nacp $(TARGET).elf $(TARGET).lst +cleanbuild: clean all + #--------------------------------------------------------------------------------- send: $(BUILD) @nxlink $(TARGET).nro diff --git a/icon.jpg b/icon.jpg deleted file mode 100644 index a060b1d670840494fcee93a37de6711f6a875132..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5728 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 CY}= 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 VOYX!rbkqO<002ovPDHLkV1i&VYH0uf literal 0 HcmV?d00001 diff --git a/include/TitlesLayout.hpp b/include/TitlesLayout.hpp index 7443a23..17dd0de 100644 --- a/include/TitlesLayout.hpp +++ b/include/TitlesLayout.hpp @@ -1,12 +1,15 @@ #include #include #include +#include +#include namespace ui { class TitlesLayout : public pu::ui::Layout { private: pu::ui::elm::Menu::Ref titlesMenu; + std::unordered_map menuCache; bool m_inputLocked = false; public: diff --git a/include/TransferOverlay.hpp b/include/TransferOverlay.hpp index ffa2c38..9530224 100644 --- a/include/TransferOverlay.hpp +++ b/include/TransferOverlay.hpp @@ -51,6 +51,20 @@ namespace ui { void SetProgress(double val) { progressBar->SetProgress(val); } + + void SetProgressVisible(bool visible) { + progressBar->SetVisible(visible); + if (visible) { + this->SetHeight(OvlH); + this->SetY(OvlY); + hintText->SetY(195); + } else { + static constexpr int SmallH = 160; + this->SetHeight(SmallH); + this->SetY((720 - SmallH) / 2); + hintText->SetY(120); + } + } }; } diff --git a/include/UsersLayout.hpp b/include/UsersLayout.hpp index f714f6a..25a9168 100644 --- a/include/UsersLayout.hpp +++ b/include/UsersLayout.hpp @@ -7,6 +7,8 @@ namespace ui { private: pu::ui::elm::Menu::Ref usersMenu; + pu::ui::elm::Rectangle::Ref loadingBg; + pu::ui::elm::TextBlock::Ref loadingText; public: diff --git a/include/account.hpp b/include/account.hpp index b22c07b..71f359c 100644 --- a/include/account.hpp +++ b/include/account.hpp @@ -54,7 +54,8 @@ inline bool operator==(const AccountUid& x, u64 y) inline bool operator<(const AccountUid& x, const AccountUid& y) { - return x.uid[0] < y.uid[0] && x.uid[1] == y.uid[1]; + if (x.uid[0] != y.uid[0]) return x.uid[0] < y.uid[0]; + return x.uid[1] < y.uid[1]; } struct User { diff --git a/include/client.hpp b/include/client.hpp index a5b8cef..c46446c 100644 --- a/include/client.hpp +++ b/include/client.hpp @@ -5,6 +5,7 @@ int transfer_files(size_t index, AccountUid uid); bool isClientTransferDone(); bool isClientTransferCancelled(); bool isClientConnectionFailed(); +bool isClientProgressKnown(); void cancelClientTransfer(); double getClientProgress(); std::string getClientStatusText(); diff --git a/include/logger.hpp b/include/logger.hpp index 529ac58..aee29c6 100644 --- a/include/logger.hpp +++ b/include/logger.hpp @@ -48,9 +48,10 @@ public: template void log(const std::string& level, const std::string& format = {}, Args... args) { - // xcbuffer += StringUtils::format(("[" + DateTime::logDateTime() + "] " + level + " " + format + "\n").c_str(), args...); - printf("%s\n", format.c_str()); - // printf("%s\n",StringUtils::format("[" + DateTime::logDateTime() + "] " + level + " " + format + "\n").c_str(), args...); + // buffer += StringUtils::format(("[" + DateTime::logDateTime() + "] " + level + " " + format + "\n").c_str(), args...); + // buffer += StringUtils::format("%s\n", format.c_str()); + // buffer += StringUtils::format("%s\n",StringUtils::format("[" + DateTime::logDateTime() + "] " + level + " " + format + "\n").c_str(), args...); + printf(StringUtils::format("[" + DateTime::logDateTime() + "] " + level + " " + format + "\n").c_str(), args...); } void flush(void) diff --git a/include/title.hpp b/include/title.hpp index bdada8f..31e88b2 100644 --- a/include/title.hpp +++ b/include/title.hpp @@ -82,6 +82,7 @@ private: void getTitle(Title& dst, AccountUid uid, size_t i); size_t getTitleCount(AccountUid uid); void loadTitles(void); +bool areTitlesLoaded(void); void sortTitles(void); void rotateSortMode(void); void refreshDirectories(u64 id); diff --git a/source/Main.cpp b/source/Main.cpp index 2904fcd..ce2b9f9 100644 --- a/source/Main.cpp +++ b/source/Main.cpp @@ -41,25 +41,25 @@ int main() { exit(res); } - loadTitles(); + printf("main"); - // First create our renderer, where one can customize SDL or other stuff's - // initialization. - auto renderer_opts = pu::ui::render::RendererInitOptions( - SDL_INIT_EVERYTHING, pu::ui::render::RendererHardwareFlags); - renderer_opts.UseImage(pu::ui::render::IMGAllFlags); - renderer_opts.UseAudio(pu::ui::render::MixerAllFlags); - renderer_opts.UseTTF(); + // First create our renderer, where one can customize SDL or other stuff's + // initialization. + auto renderer_opts = pu::ui::render::RendererInitOptions( + SDL_INIT_EVERYTHING, pu::ui::render::RendererHardwareFlags); + renderer_opts.UseImage(pu::ui::render::IMGAllFlags); + renderer_opts.UseAudio(pu::ui::render::MixerAllFlags); + renderer_opts.UseTTF(); auto renderer = pu::ui::render::Renderer::New(renderer_opts); - // Create our main application from the renderer - auto main = ui::MainApplication::New(renderer); + // Create our main application from the renderer + auto main = ui::MainApplication::New(renderer); - main->Prepare(); + main->Prepare(); - main->Show(); + main->Show(); - servicesExit(); + servicesExit(); return 0; } diff --git a/source/TitlesLayout.cpp b/source/TitlesLayout.cpp index 557f9a4..94f251d 100644 --- a/source/TitlesLayout.cpp +++ b/source/TitlesLayout.cpp @@ -11,15 +11,25 @@ static std::vector accSids, devSids, bcatSids, cacheSids; namespace ui { extern MainApplication *mainApp; void TitlesLayout::InitTitles() { - this->titlesMenu = pu::ui::elm::Menu::New(0, 0, 1280, COLOR("#67000000"), COLOR("#170909FF"), 94, 7); - for (size_t i = 0; i < getTitleCount(g_currentUId); i++) { - Title title; - getTitle(title, g_currentUId, i); - auto titleItem = pu::ui::elm::MenuItem::New(title.name().c_str()); - titleItem->SetColor(COLOR("#FFFFFFFF")); - this->titlesMenu->AddItem(titleItem); + Logger::getInstance().log(Logger::INFO, "InitTitles"); + + auto it = this->menuCache.find(g_currentUId); + if (it != this->menuCache.end()) { + this->titlesMenu = it->second; + } else { + auto menu = pu::ui::elm::Menu::New(0, 0, 1280, COLOR("#67000000"), COLOR("#170909FF"), 94, 7); + for (size_t i = 0; i < getTitleCount(g_currentUId); i++) { + Title title; + getTitle(title, g_currentUId, i); + auto titleItem = pu::ui::elm::MenuItem::New(title.name().c_str()); + titleItem->SetColor(COLOR("#FFFFFFFF")); + menu->AddItem(titleItem); + } + this->menuCache.emplace(g_currentUId, menu); + this->titlesMenu = menu; } + this->Clear(); this->Add(this->titlesMenu); this->SetBackgroundColor(BACKGROUND_COLOR); @@ -28,6 +38,11 @@ namespace ui { void TitlesLayout::onInput(u64 Down, u64 Up, u64 Held, pu::ui::TouchPoint Pos) { if (m_inputLocked) return; + if (Down & HidNpadButton_B) { + mainApp->LoadLayout(mainApp->usersLayout); + return; + } + if (Down & HidNpadButton_Plus) { cancelClientTransfer(); cancelServerTransfer(); @@ -60,6 +75,7 @@ namespace ui { } while (!isClientTransferDone()) { ovl->SetStatus(getClientStatusText()); + ovl->SetProgressVisible(isClientProgressKnown()); ovl->SetProgress(getClientProgress()); mainApp->CallForRender(); if (mainApp->GetButtonsDown() & HidNpadButton_B) { diff --git a/source/UsersLayout.cpp b/source/UsersLayout.cpp index f4cb43e..5ce5d61 100644 --- a/source/UsersLayout.cpp +++ b/source/UsersLayout.cpp @@ -10,12 +10,22 @@ namespace ui { this->usersMenu->SetScrollbarColor(COLOR("#170909FF")); for (AccountUid const& uid : Account::ids()) { - auto username = pu::ui::elm::MenuItem::New(Account::username(uid) + ": " + std::to_string(getTitleCount(uid))); - username->SetColor(COLOR("#FFFFFFFF")); - this->usersMenu->AddItem(username); + auto item = pu::ui::elm::MenuItem::New(Account::username(uid)); + item->SetColor(COLOR("#FFFFFFFF")); + this->usersMenu->AddItem(item); } + + this->loadingBg = pu::ui::elm::Rectangle::New(0, 0, 1280, 720, pu::ui::Color(30, 30, 30, 220)); + this->loadingBg->SetVisible(false); + + this->loadingText = pu::ui::elm::TextBlock::New(480, 340, "Reading game list..."); + this->loadingText->SetColor(pu::ui::Color(255, 255, 255, 255)); + this->loadingText->SetVisible(false); + this->SetBackgroundColor(BACKGROUND_COLOR); this->Add(this->usersMenu); + this->Add(this->loadingBg); + this->Add(this->loadingText); } int32_t UsersLayout::GetCurrentIndex() { @@ -29,8 +39,21 @@ namespace ui { } if (Down & HidNpadButton_A) { - printf("current index is %i\n", this->usersMenu->GetSelectedIndex()); g_currentUId = Account::ids().at(this->usersMenu->GetSelectedIndex()); + + if (!areTitlesLoaded()) { + this->usersMenu->SetVisible(false); + this->loadingBg->SetVisible(true); + this->loadingText->SetVisible(true); + mainApp->CallForRender(); + + loadTitles(); + + this->loadingBg->SetVisible(false); + this->loadingText->SetVisible(false); + this->usersMenu->SetVisible(true); + } + mainApp->titlesLayout->InitTitles(); mainApp->LoadLayout(mainApp->titlesLayout); } diff --git a/source/account.cpp b/source/account.cpp index 1bca46f..5bf72e7 100644 --- a/source/account.cpp +++ b/source/account.cpp @@ -31,7 +31,16 @@ static std::map mUsers; Result Account::init(void) { - return accountInitialize(AccountServiceType_Application); + Result res = accountInitialize(AccountServiceType_Application); + if (R_FAILED(res)) return res; + + AccountUid uids[8]; + s32 count = 0; + accountListAllUsers(uids, 8, &count); + for (s32 i = 0; i < count; i++) { + Account::username(uids[i]); // populates mUsers as side effect + } + return 0; } void Account::exit(void) @@ -55,11 +64,12 @@ static User getUser(AccountUid id) AccountProfileBase profilebase; memset(&profilebase, 0, sizeof(profilebase)); - if (R_SUCCEEDED(accountGetProfile(&profile, id)) && R_SUCCEEDED(accountProfileGet(&profile, NULL, &profilebase))) { - user.name = std::string(profilebase.nickname); + if (R_SUCCEEDED(accountGetProfile(&profile, id))) { + if (R_SUCCEEDED(accountProfileGet(&profile, NULL, &profilebase))) { + user.name = std::string(profilebase.nickname); + } + accountProfileClose(&profile); } - - accountProfileClose(&profile); return user; } diff --git a/source/client.cpp b/source/client.cpp index 4d52a27..710ca0e 100644 --- a/source/client.cpp +++ b/source/client.cpp @@ -30,6 +30,7 @@ static TransferState g_client_state; bool isClientTransferDone() { return g_client_state.done.load(); } bool isClientTransferCancelled() { return g_client_state.cancelled.load(); } bool isClientConnectionFailed() { return g_client_state.connection_failed.load(); } +bool isClientProgressKnown() { return g_client_state.bytes_total.load() > 0; } void cancelClientTransfer() { g_client_state.cancelled.store(true); } double getClientProgress() { return g_client_state.progress(); } std::string getClientStatusText() { return g_client_state.getStatus(); } diff --git a/source/directory.cpp b/source/directory.cpp index 6fbd197..b6acbe3 100644 --- a/source/directory.cpp +++ b/source/directory.cpp @@ -45,10 +45,9 @@ Directory::Directory(const std::string& root) struct DirectoryEntry de = {name, directory}; mList.push_back(de); } + closedir(dir); + mGood = true; } - - closedir(dir); - mGood = true; } Result Directory::error(void) diff --git a/source/io.cpp b/source/io.cpp index 9316f07..4364d8c 100644 --- a/source/io.cpp +++ b/source/io.cpp @@ -62,6 +62,10 @@ void io::copyFile(const std::string& srcPath, const std::string& dstPath) while (offset < sz) { u32 count = fread((char*)buf, 1, BUFFER_SIZE, src); + if (count == 0) { + Logger::getInstance().log(Logger::ERROR, "fread returned 0 for file {} at offset {}/{} with errno {}. Aborting copy.", srcPath, offset, sz, errno); + break; + } fwrite((char*)buf, 1, count, dst); offset += count; } @@ -161,6 +165,7 @@ std::tuple io::backup(size_t index, AccountUid uid) if (R_SUCCEEDED(res)) { int rc = FileSystem::mount(fileSystem); if (rc == -1) { + fsFsClose(&fileSystem); FileSystem::unmount(); Logger::getInstance().log(Logger::ERROR, "Failed to mount filesystem during backup. Title id: 0x%016lX; User id: 0x%lX%lX.", title.id(), title.userId().uid[1], title.userId().uid[0]); @@ -257,6 +262,7 @@ std::tuple io::restore(size_t index, AccountUid uid, if (R_SUCCEEDED(res)) { int rc = FileSystem::mount(fileSystem); if (rc == -1) { + fsFsClose(&fileSystem); FileSystem::unmount(); Logger::getInstance().log(Logger::ERROR, "Failed to mount filesystem during restore. Title id: 0x%016lX; User id: 0x%lX%lX.", title.id(), uid.uid[1], uid.uid[0]); diff --git a/source/server.cpp b/source/server.cpp index b282077..3e6de02 100644 --- a/source/server.cpp +++ b/source/server.cpp @@ -123,7 +123,7 @@ static void receive_file(int sock, const std::string& relative_path, uint64_t fi static void* handle_client(void* socket_desc) { int client_socket = *(int*)socket_desc; - free(socket_desc); + delete static_cast(socket_desc); while (true) { uint32_t filename_len = 0; @@ -186,7 +186,11 @@ static void* accept_and_handle(void* arg) { if (client_socket >= 0) { g_server_client_sock.store(client_socket); int* pclient = new (std::nothrow) int(client_socket); - if (pclient) handle_client(pclient); + if (pclient) { + handle_client(pclient); + } else { + close(client_socket); + } g_server_client_sock.store(-1); } @@ -203,6 +207,9 @@ static void* broadcast_listener(void* arg) { g_broadcast_sock.store(udp.fd); + struct timeval tv{0, 100000}; // 100ms poll so cancel is detected quickly + setsockopt(udp, SOL_SOCKET, SO_RCVTIMEO, &tv, sizeof(tv)); + sockaddr_in addr{}; addr.sin_family = AF_INET; addr.sin_addr.s_addr = htonl(INADDR_ANY); diff --git a/source/title.cpp b/source/title.cpp index dee7ebf..190cb1c 100644 --- a/source/title.cpp +++ b/source/title.cpp @@ -28,6 +28,12 @@ #include "main.hpp" static std::unordered_map> titles; +static bool s_titlesLoaded = false; + +bool areTitlesLoaded(void) +{ + return s_titlesLoaded; +} void Title::init(u8 saveDataType, u64 id, AccountUid userID, const std::string& name, const std::string& author) { @@ -176,25 +182,13 @@ void Title::refreshDirectories(void) else { Logger::getInstance().log(Logger::ERROR, "Couldn't retrieve the extdata directory list for the title " + name()); } - - // save backups from configuration - // std::vector additionalFolders = Configuration::getInstance().additionalSaveFolders(mId); - // for (std::vector::const_iterator it = additionalFolders.begin(); it != additionalFolders.end(); ++it) { - // we have other folders to parse - // Directory list(*it); - // if (list.good()) { - // for (size_t i = 0, sz = list.size(); i < sz; i++) { - // if (list.folder(i)) { - // mSaves.push_back(list.entry(i)); - // mFullSavePaths.push_back(*it + "/" + list.entry(i)); - // } - // } - // } - // } } void loadTitles(void) { + if (s_titlesLoaded) return; + s_titlesLoaded = true; + titles.clear(); FsSaveDataInfoReader reader; diff --git a/source/util.cpp b/source/util.cpp index f6a1198..d27abe2 100644 --- a/source/util.cpp +++ b/source/util.cpp @@ -43,10 +43,8 @@ Result servicesInit(void) io::createDirectory("sdmc:/switch/NXST"); io::createDirectory("sdmc:/switch/NXST/saves"); - Logger::getInstance().log(Logger::INFO, "Starting Checkpoint loading..."); - if (appletGetAppletType() != AppletType_Application) { - Logger::getInstance().log(Logger::WARN, "Please do not run Checkpoint in applet mode."); + Logger::getInstance().log(Logger::WARN, "Please do not run NXST in applet mode."); } // Result socinit = 0; @@ -76,6 +74,19 @@ Result servicesInit(void) return res; } + if (R_FAILED(res = nsInitialize())) { + Logger::getInstance().log(Logger::ERROR, "nsInitialize failed. Result code 0x{:08X}.", res); + return res; + } + + if (R_SUCCEEDED(res = hidsysInitialize())) { + g_notificationLedAvailable = true; + } + else { + Logger::getInstance().log(Logger::INFO, "Notification led not available. Result code 0x{:08X}.", res); + } + + Logger::getInstance().log(Logger::INFO, "NXST loading completed!"); return 0;