1
0
Fork 0
mirror of https://github.com/DarkMatterCore/nxdumptool.git synced 2024-11-26 04:02:11 +00:00
Commit graph

17 commits

Author SHA1 Message Date
Pablo Curiel
5a0543ef68 RootView: implement wrappers for public task functions.
Other changes include:

* GameCardTab: moved const strings to gamecard.c for easier maintenance.
* Codebase: reworked tab classes to make them use the wrappers provided by RootView instead of passing task object pointers.
2021-08-11 03:17:57 -04:00
Pablo Curiel
28cd0ce10f OptionsTab: fully implement application update feature.
Other changes include:

* Codebase: move JSON parsing logic from config.c/h to nxdt_json.c/h.
* Codebase: replace all calls to localtime() with localtime_r() to guarantee thread-safety.
* Codebase: updated todo.txt.
* utils: implement utilsParseGitHubReleaseJsonData(), utilsFreeGitHubReleaseJsonData(), utilsGetApplicationUpdatedState() and utilsGetApplicationUpdatedState().
* utils: add extra logic to move the application's NRO to its proper path if the launch path isn't the right one (commented out at this moment).
* utils: add extra logic to replace the application's NRO at exit (commented out at this moment).
* defines: add DEVOPTAB_SDMC_DEVICE and tweak GitHub URL macros.
* DownloadTask: set percentage to 0 if the download size is unknown.
* DownloadTask: fix ETA string formatting.
* OptionsTab: repurpose OptionsTabUpdateFileDialogContent into OptionsTabUpdateProgress.
* OptionsTab: implement OptionsTabUpdateApplicationFrame.
* RootView: move date formatting into the static GetFormattedDateString() method.
* Makefile: use _GNU_SOURCE as part of CFLAGS to use strptime().
2021-08-07 04:42:03 -04:00
Pablo Curiel
962cf00ba9 Display a CrashFrame warning at startup if the application is running under applet mode.
Other changes include:

* defines: added NON_MOVEABLE macro.
* AsyncTask: set class as non-moveable, too.
* RootView: provide an override for getDefaultFocus().
* StatusInfoTask: replace GetStatusInfoData with IsInternetConnectionAvailable().
2021-07-30 17:07:26 -04:00
Pablo Curiel
bc842d8905 OptionsTab: check if an Internet connection is available before starting an update. 2021-07-29 15:55:31 -04:00
Pablo Curiel
f80573e5c4 Move DownloadTask classes to their own header file. 2021-07-27 19:47:12 -04:00
Pablo Curiel
eb97ae3de5 Implement DownloadTask, DownloadFileTask and DownloadDataTask classes.
Other changes include:

* AsyncTask: use a recursive mutex instead of atomics. Fixes build issues related to non-trivially-copyable elements.
* http: remove CURLOPT_ACCEPT_ENCODING option in httpPerformGetRequest().
2021-07-27 11:00:09 -04:00
Pablo Curiel
a2a401d36d More progress.
* Updated borealis fork (refer to https://github.com/DarkMatterCore/borealis/commits/nxdumptool-legacy).
* Updated NcaKeyGeneration enum.
* Commented out title task notification.
* Remove unnecessary instant view invalidations.
* NS application records are now retrieved using a loop.
* Fixed text alignment issues in RootView.
* Slightly improved gamecard notifications.
2021-07-19 17:09:58 -04:00
Pablo Curiel
b23af8c131 usb: modified usbIsReady() to return the speed selected by the host device. 2021-06-25 17:01:15 -04:00
Pablo Curiel
b5507b38a6 Fix building issues.
An unordered map is now being used to hold ListItem + TitleApplicationMetadata pairs.
2021-06-23 19:02:47 -04:00
Pablo Curiel
4d1b3660c3 Cherry-pick improvements from the rewrite-yoga branch. 2021-06-23 14:27:06 -04:00
Pablo Curiel
c70fd0c1c8 RootView: display status labels using StatusInfoTask data. 2021-06-18 14:10:19 -04:00
Pablo Curiel
063d8e9b3f Added StatusInfoTask. 2021-06-18 03:02:23 -04:00
Pablo Curiel
ac647310ad UI: added ErrorFrame and GameCardTab classes. 2021-06-13 02:18:14 -04:00
Pablo Curiel
4ffbb1f903 views: create RootView class. 2021-06-11 00:41:58 -04:00
Pablo Curiel
04540643be tasks: minor cleanup + declare global task pointers in header file. 2021-06-10 21:13:26 -04:00
Pablo Curiel
06676a0639 tasks: cache application metadata and UMS device info using vectors.
* Tasks are now immediately started by their constructor function.

* Events are now part of the class of each task type, in order to avoid instantiating each one of them and passing them as a constructor argument.

* GetTaskEvent() has been added to each task class, which returns a pointer to the private event. This will be used to subscribe Borealis views to a particular event.

* Title and UMS tasks now both cache application metadata and UMS device info using private vectors. Pointers to these private vectors can now be retrieved using public functions GetApplicationMetadata() and GetUmsDevices(), respectively.
2021-06-10 20:33:11 -04:00
Pablo Curiel
e48aa2e937 Implemented background tasks for Borealis.
* core: implemented SCOPED_TRY_LOCK macro. Specific functions are now using it instead of SCOPED_LOCK to avoid potentially locking the Borealis UI.

* UI: implemented background tasks for Borealis, which call functions that now use SCOPED_TRY_LOCK.
2021-06-09 00:48:17 -04:00