1
0
Fork 0
mirror of https://github.com/DarkMatterCore/nxdumptool.git synced 2024-11-26 20:22:17 +00:00
nxdumptool/source/ui.h

207 lines
5.8 KiB
C
Raw Permalink Normal View History

#pragma once
#ifndef __UI_H__
#define __UI_H__
2019-10-17 21:15:35 +01:00
#define FB_WIDTH 1280
#define FB_HEIGHT 720
2019-04-21 17:27:33 +01:00
2019-10-17 21:15:35 +01:00
#define CHAR_PT_SIZE 12
#define SCREEN_DPI_CNT 96
2019-04-21 17:27:33 +01:00
2019-10-17 21:15:35 +01:00
#define LINE_HEIGHT (font_height + (font_height / 4))
#define LINE_STRING_OFFSET (font_height / 8)
2019-04-21 17:27:33 +01:00
2019-10-17 21:15:35 +01:00
#define STRING_DEFAULT_POS 8, 8
2019-04-21 17:27:33 +01:00
2019-10-17 21:15:35 +01:00
#define STRING_X_POS 8
2020-03-30 22:10:07 +01:00
#define STRING_Y_POS(x) (8 + ((x) * LINE_HEIGHT) + ((x) > 0 ? LINE_STRING_OFFSET : 0))
2019-04-21 17:27:33 +01:00
2019-10-17 21:15:35 +01:00
#define BG_COLOR_RGB 50, 50, 50
#define FONT_COLOR_RGB 255, 255, 255
2019-06-05 23:44:18 +01:00
2019-10-17 21:15:35 +01:00
#define HIGHLIGHT_BG_COLOR_RGB 33, 34, 39
#define HIGHLIGHT_FONT_COLOR_RGB 0, 255, 197
2019-04-21 17:27:33 +01:00
2019-10-17 21:15:35 +01:00
#define FONT_COLOR_SUCCESS_RGB 0, 255, 0
#define FONT_COLOR_ERROR_RGB 255, 0, 0
#define FONT_COLOR_TITLE_RGB 115, 115, 255
2019-10-17 21:15:35 +01:00
#define EMPTY_BAR_COLOR_RGB 0, 0, 0
#define COMMON_MAX_ELEMENTS 9
#define HFS0_MAX_ELEMENTS 14
#define ROMFS_MAX_ELEMENTS 12
#define SDCARD_MAX_ELEMENTS 3
#define ORPHAN_MAX_ELEMENTS 12
2019-12-11 08:56:58 +00:00
#define BATCH_MAX_ELEMENTS 14
2019-10-17 21:15:35 +01:00
#define OPTIONS_X_START_POS (35 * CHAR_PT_SIZE)
#define OPTIONS_X_END_POS (OPTIONS_X_START_POS + (6 * CHAR_PT_SIZE))
#define OPTIONS_X_END_POS_NSP (FB_WIDTH - (4 * CHAR_PT_SIZE))
#define TAB_WIDTH 4
#define BROWSER_ICON_DIMENSION 16
2019-06-05 23:44:18 +01:00
2019-09-15 03:45:27 +01:00
// UTF-8 sequences
2019-10-17 21:15:35 +01:00
#define UPWARDS_ARROW "\xE2\x86\x91"
#define DOWNWARDS_ARROW "\xE2\x86\x93"
#define NINTENDO_FONT_A "\xEE\x82\xA0"
#define NINTENDO_FONT_B "\xEE\x82\xA1"
#define NINTENDO_FONT_X "\xEE\x82\xA2"
#define NINTENDO_FONT_Y "\xEE\x82\xA3"
#define NINTENDO_FONT_L "\xEE\x82\xA4"
#define NINTENDO_FONT_R "\xEE\x82\xA5"
#define NINTENDO_FONT_ZL "\xEE\x82\xA6"
#define NINTENDO_FONT_ZR "\xEE\x82\xA7"
#define NINTENDO_FONT_DPAD "\xEE\x82\xAA"
#define NINTENDO_FONT_PLUS "\xEE\x82\xB5"
#define NINTENDO_FONT_HOME "\xEE\x82\xB9"
#define NINTENDO_FONT_LSTICK "\xEE\x83\x81"
#define NINTENDO_FONT_RSTICK "\xEE\x83\x82"
2019-06-05 23:44:18 +01:00
typedef enum {
2019-04-21 17:27:33 +01:00
resultNone,
resultShowMainMenu,
2019-06-09 02:36:21 +01:00
resultShowGameCardMenu,
2019-04-21 17:27:33 +01:00
resultShowXciDumpMenu,
resultDumpXci,
2019-05-01 21:24:13 +01:00
resultShowNspDumpMenu,
2019-06-05 23:44:18 +01:00
resultShowNspAppDumpMenu,
resultShowNspPatchDumpMenu,
resultShowNspAddOnDumpMenu,
2019-05-01 21:24:13 +01:00
resultDumpNsp,
2019-06-05 23:44:18 +01:00
resultShowHfs0Menu,
resultShowRawHfs0PartitionDumpMenu,
resultDumpRawHfs0Partition,
resultShowHfs0PartitionDataDumpMenu,
resultDumpHfs0PartitionData,
resultShowHfs0BrowserMenu,
resultHfs0BrowserGetList,
resultShowHfs0Browser,
resultHfs0BrowserCopyFile,
2019-06-09 02:36:21 +01:00
resultShowExeFsMenu,
resultShowExeFsSectionDataDumpMenu,
resultDumpExeFsSectionData,
resultShowExeFsSectionBrowserMenu,
resultExeFsSectionBrowserGetList,
resultShowExeFsSectionBrowser,
resultExeFsSectionBrowserCopyFile,
2019-06-05 23:44:18 +01:00
resultShowRomFsMenu,
resultShowRomFsSectionDataDumpMenu,
resultDumpRomFsSectionData,
resultShowRomFsSectionBrowserMenu,
resultRomFsSectionBrowserGetEntries,
resultShowRomFsSectionBrowser,
resultRomFsSectionBrowserChangeDir,
resultRomFsSectionBrowserCopyFile,
2019-06-28 21:13:54 +01:00
resultRomFsSectionBrowserCopyDir,
2019-04-21 17:27:33 +01:00
resultDumpGameCardCertificate,
2019-06-09 02:36:21 +01:00
resultShowSdCardEmmcMenu,
resultShowSdCardEmmcTitleMenu,
resultShowSdCardEmmcOrphanPatchAddOnMenu,
2019-06-28 21:13:54 +01:00
resultShowSdCardEmmcBatchModeMenu,
resultSdCardEmmcBatchDump,
2019-11-06 18:22:40 +00:00
resultShowTicketMenu,
resultDumpTicket,
2019-06-05 23:44:18 +01:00
resultShowUpdateMenu,
2019-04-21 17:27:33 +01:00
resultUpdateNSWDBXml,
resultUpdateApplication,
resultExit
} UIResult;
typedef enum {
2019-04-21 17:27:33 +01:00
stateMainMenu,
2019-06-09 02:36:21 +01:00
stateGameCardMenu,
2019-04-21 17:27:33 +01:00
stateXciDumpMenu,
stateDumpXci,
2019-05-01 21:24:13 +01:00
stateNspDumpMenu,
2019-06-05 23:44:18 +01:00
stateNspAppDumpMenu,
stateNspPatchDumpMenu,
stateNspAddOnDumpMenu,
2019-05-01 21:24:13 +01:00
stateDumpNsp,
2019-06-05 23:44:18 +01:00
stateHfs0Menu,
stateRawHfs0PartitionDumpMenu,
stateDumpRawHfs0Partition,
stateHfs0PartitionDataDumpMenu,
stateDumpHfs0PartitionData,
stateHfs0BrowserMenu,
stateHfs0BrowserGetList,
stateHfs0Browser,
stateHfs0BrowserCopyFile,
2019-06-09 02:36:21 +01:00
stateExeFsMenu,
stateExeFsSectionDataDumpMenu,
stateDumpExeFsSectionData,
stateExeFsSectionBrowserMenu,
stateExeFsSectionBrowserGetList,
stateExeFsSectionBrowser,
stateExeFsSectionBrowserCopyFile,
2019-06-05 23:44:18 +01:00
stateRomFsMenu,
stateRomFsSectionDataDumpMenu,
stateDumpRomFsSectionData,
stateRomFsSectionBrowserMenu,
stateRomFsSectionBrowserGetEntries,
stateRomFsSectionBrowser,
stateRomFsSectionBrowserChangeDir,
stateRomFsSectionBrowserCopyFile,
2019-06-28 21:13:54 +01:00
stateRomFsSectionBrowserCopyDir,
2019-04-21 17:27:33 +01:00
stateDumpGameCardCertificate,
2019-06-09 02:36:21 +01:00
stateSdCardEmmcMenu,
stateSdCardEmmcTitleMenu,
stateSdCardEmmcOrphanPatchAddOnMenu,
2019-06-28 21:13:54 +01:00
stateSdCardEmmcBatchModeMenu,
stateSdCardEmmcBatchDump,
2019-11-06 18:22:40 +00:00
stateTicketMenu,
stateDumpTicket,
2019-06-05 23:44:18 +01:00
stateUpdateMenu,
2019-04-21 17:27:33 +01:00
stateUpdateNSWDBXml,
stateUpdateApplication
} UIState;
2019-06-09 02:36:21 +01:00
typedef enum {
MENUTYPE_MAIN = 0,
MENUTYPE_GAMECARD,
MENUTYPE_SDCARD_EMMC
} curMenuType;
void uiFill(int x, int y, int width, int height, u8 r, u8 g, u8 b);
2019-06-05 23:44:18 +01:00
void uiDrawIcon(const u8 *icon, int width, int height, int x, int y);
bool uiLoadJpgFromMem(u8 *rawJpg, size_t rawJpgSize, int expectedWidth, int expectedHeight, int desiredWidth, int desiredHeight, u8 **outBuf);
bool uiLoadJpgFromFile(const char *filename, int expectedWidth, int expectedHeight, int desiredWidth, int desiredHeight, u8 **outBuf);
2019-10-17 21:15:35 +01:00
void uiDrawString(int x, int y, u8 r, u8 g, u8 b, const char *fmt, ...);
2019-04-21 17:27:33 +01:00
2019-10-17 21:15:35 +01:00
u32 uiGetStrWidth(const char *fmt, ...);
2019-06-09 02:36:21 +01:00
2019-04-21 17:27:33 +01:00
void uiRefreshDisplay();
void uiStatusMsg(const char *fmt, ...);
2018-06-22 01:46:17 +01:00
void uiUpdateStatusMsg();
2019-12-11 08:56:58 +00:00
void uiClearStatusMsg();
2018-06-22 01:46:17 +01:00
2019-12-11 08:56:58 +00:00
void uiPleaseWait(u8 wait);
2019-04-21 17:27:33 +01:00
void uiClearScreen();
void uiPrintHeadline();
2019-12-11 08:56:58 +00:00
bool uiInit();
2019-12-11 08:56:58 +00:00
void uiDeinit();
2019-06-05 23:44:18 +01:00
void uiSetState(UIState state);
2019-04-21 17:27:33 +01:00
UIState uiGetState();
2019-04-21 17:27:33 +01:00
UIResult uiProcess();
#endif