Add view config page

This commit is contained in:
2024-11-22 11:42:00 -05:00
parent 6eccf2f2ea
commit c1af7cbed3
4 changed files with 67 additions and 144 deletions

View File

@@ -40,7 +40,6 @@ int computeWidth(char* text, sFONT *font) {
//TODO Put display to sleep after
void code(UWORD *blackImage, char* confName) {
int ch;
codeLoop:
while(1) {
ch = getch();
if (ch != ERR) {
@@ -105,7 +104,42 @@ void code(UWORD *blackImage, char* confName) {
}
}
void home(UWORD *blackImage) {
void config(UWORD *blackImage, char* configName) {
GoString goConfName = { configName, strlen(configName) };
struct getConfig_return getConfigReturn = getConfig(goConfName);
if (getConfigReturn.r1 == -1) {
DebugLine(10, 0, "Config not found\n");
return;
}
Paint_NewImage(blackImage, EPD_2in13_V4_WIDTH, EPD_2in13_V4_HEIGHT, 0, WHITE);
EPD_2in13_V4_Init();
Paint_SelectImage(blackImage);
Paint_Clear(WHITE);
Paint_DrawString(5, 5, getConfigReturn.r0, &Font12, WHITE, BLACK);
EPD_2in13_V4_Display(blackImage);
int ch = getch();
if (ch == 'q') return;
}
void drawTotpHome(UWORD *blackImage, char** configNames) {
Paint_NewImage(blackImage, EPD_2in13_V4_WIDTH, EPD_2in13_V4_HEIGHT, 0, WHITE);
Paint_SelectImage(blackImage);
Paint_Clear(WHITE);
for (int j = 0; j < length; j++) {
if (configNames[j] == NULL) {
DebugLine(13, 0, "Null Config: %d\n", j);
}
Paint_DrawString(5, 5 + j * 20, configNames[j], &Font12, WHITE, BLACK);
}
EPD_2in13_V4_Display_Base(blackImage);
Paint_NewImage(blackImage, EPD_2in13_V4_WIDTH, EPD_2in13_V4_HEIGHT, 0, WHITE);
Paint_SelectImage(blackImage);
}
void totpHome(UWORD *blackImage) {
struct getConfigNames_return configNamesReturn = getConfigNames();
int length = configNamesReturn.r1;
char** configNames = configNamesReturn.r0;
@@ -117,21 +151,7 @@ void home(UWORD *blackImage) {
return;
}
Paint_NewImage(blackImage, EPD_2in13_V4_WIDTH, EPD_2in13_V4_HEIGHT, 0, WHITE);
EPD_2in13_V4_Init();
Paint_SelectImage(blackImage);
Paint_Clear(WHITE);
for (int i = 0; i < length; i++) {
if (configNames[i] == NULL) {
DebugLine(13, 0, "Null Config: %d\n", i);
}
Paint_DrawString(5, 5 + (i * 20), configNames[i], &Font12, WHITE, BLACK);
}
EPD_2in13_V4_Display_Base(blackImage);
Paint_NewImage(blackImage, EPD_2in13_V4_WIDTH, EPD_2in13_V4_HEIGHT, 0, WHITE);
Paint_SelectImage(blackImage);
drawTotpHome(blackImage, configNames);
int i = 0;
Paint_DrawString(115, 5 + (i * 20), "<", &Font12, WHITE, BLACK);
@@ -154,20 +174,11 @@ void home(UWORD *blackImage) {
case '\n':
timeout(0);
code(blackImage, configNames[i]);
Paint_NewImage(blackImage, EPD_2in13_V4_WIDTH, EPD_2in13_V4_HEIGHT, 0, WHITE);
Paint_SelectImage(blackImage);
Paint_Clear(WHITE);
for (int j = 0; j < length; j++) {
if (configNames[j] == NULL) {
DebugLine(13, 0, "Null Config: %d\n", j);
}
Paint_DrawString(5, 5 + j * 20, configNames[j], &Font12, WHITE, BLACK);
}
EPD_2in13_V4_Display_Base(blackImage);
Paint_NewImage(blackImage, EPD_2in13_V4_WIDTH, EPD_2in13_V4_HEIGHT, 0, WHITE);
Paint_SelectImage(blackImage);
drawTotpHome(blackImage, configNames);
break;
case 'c':
config(blackImage, configNames[i]);
drawTotpHome(blackImage, configNames);
break;
case 'q':
return;
@@ -198,13 +209,14 @@ int drawLoop() {
return -1;
}
home(blackImage);
totpHome(blackImage);
return 0;
}
int main() {
signal(SIGINT, Handler);
signal(SIGTERM, Handler)
initscr();
cbreak();