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) {
GoString goConfName = { configName, strlen(configName) };
const char *config = getConfig(goConfName);
if (config == NULL) {
struct getConfigLines_return configLinesReturn = getConfigLines(goConfName);
int length = configLinesReturn.r1;
char** configLines = configLinesReturn.r0;
if (configLines == NULL || length == -1) {
DebugLine(10, 0, "Config not found\n");
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();
Paint_SelectImage(blackImage);
Paint_Clear(WHITE);
DebugLine(14, 10, "MADE IT TO HERE --------------------------------------");
char* str = "key: JBSWY3DPEHPK3PXP NO n digits: 4";
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);
for (int i = 0; i < length; i++) {
Paint_DrawString(5, 5 + (i * 16), configLines[i], &Font12, WHITE, BLACK);
}
EPD_2in13_V4_Display(blackImage);
int ch = getch();

View File

@ -156,8 +156,8 @@ func getConfigNames() (**C.char, C.int) {
return (**C.char)(cArray), C.int(configsLen)
}
//export getConfig
func getConfig(configName string) *C.char {
//export getConfigLines
func getConfigLines(configName string) (**C.char, C.int) {
files, err := os.ReadDir(homeDir + "/.totp")
if err != nil {
log.Fatal(err)
@ -170,18 +170,21 @@ func getConfig(configName string) *C.char {
log.Fatal(err)
}
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)
if err != nil {
log.Fatal(err)
ar := unsafe.Slice((**C.char)(cArray), lines)
i := 0
for _, confLine := range confLines {
ar[i] = C.CString(confLine)
i++
}
cStr := C.CString(fileStr)
runtime.KeepAlive(fileStr)
return cStr
return (**C.char)(cArray), C.int(lines)
}
}
return nil
return nil, -1
}
//export getCode