Config page should work

This commit is contained in:
Steven Tracey 2024-11-22 13:56:43 -05:00
parent 93cee5a60a
commit 3988615687
2 changed files with 21 additions and 17 deletions

View File

@ -101,22 +101,23 @@ void code(UWORD *blackImage, char* confName) {
void config(UWORD *blackImage, char* configName) { void config(UWORD *blackImage, char* configName) {
GoString goConfName = { configName, strlen(configName) }; GoString goConfName = { configName, strlen(configName) };
const char *config = getConfig(goConfName); struct getConfigLines_return configLinesReturn = getConfigLines(goConfName);
if (config == NULL) { int length = configLinesReturn.r1;
char** configLines = configLinesReturn.r0;
if (configLines == NULL || length == -1) {
DebugLine(10, 0, "Config not found\n"); DebugLine(10, 0, "Config not found\n");
return; return;
} }
Paint_NewImage(blackImage, EPD_2in13_V4_WIDTH, EPD_2in13_V4_HEIGHT, 0, WHITE); Paint_NewImage(blackImage, EPD_2in13_V4_WIDTH, EPD_2in13_V4_HEIGHT, 90, WHITE);
EPD_2in13_V4_Init(); EPD_2in13_V4_Init();
Paint_SelectImage(blackImage); Paint_SelectImage(blackImage);
Paint_Clear(WHITE); Paint_Clear(WHITE);
DebugLine(14, 10, "MADE IT TO HERE --------------------------------------"); for (int i = 0; i < length; i++) {
char* str = "key: JBSWY3DPEHPK3PXP NO n digits: 4"; Paint_DrawString(5, 5 + (i * 16), configLines[i], &Font12, WHITE, BLACK);
DebugLine(13, 0, "String width: %d\n", computeWidth(str, &Font12)); }
Paint_DrawString(5, 5, str, &Font12, WHITE, BLACK);
//Paint_DrawString(5, 5, getConfigReturn.r0, &Font12, WHITE, BLACK);
EPD_2in13_V4_Display(blackImage); EPD_2in13_V4_Display(blackImage);
int ch = getch(); int ch = getch();

View File

@ -156,8 +156,8 @@ func getConfigNames() (**C.char, C.int) {
return (**C.char)(cArray), C.int(configsLen) return (**C.char)(cArray), C.int(configsLen)
} }
//export getConfig //export getConfigLines
func getConfig(configName string) *C.char { func getConfigLines(configName string) (**C.char, C.int) {
files, err := os.ReadDir(homeDir + "/.totp") files, err := os.ReadDir(homeDir + "/.totp")
if err != nil { if err != nil {
log.Fatal(err) log.Fatal(err)
@ -170,18 +170,21 @@ func getConfig(configName string) *C.char {
log.Fatal(err) log.Fatal(err)
} }
fileStr := string(fileBytes) fileStr := string(fileBytes)
confLines := strings.Split(fileStr, "\n")
lines := len(confLines)
cArray := C.malloc(C.size_t(lines) * C.size_t(unsafe.Sizeof(uintptr(0))))
err = os.WriteFile("output.txt", []byte(fileStr), 777) ar := unsafe.Slice((**C.char)(cArray), lines)
if err != nil { i := 0
log.Fatal(err) for _, confLine := range confLines {
ar[i] = C.CString(confLine)
i++
} }
cStr := C.CString(fileStr) return (**C.char)(cArray), C.int(lines)
runtime.KeepAlive(fileStr)
return cStr
} }
} }
return nil return nil, -1
} }
//export getCode //export getCode