From e0a1e8d1532a567b19a7448d96f7839bfad50b26 Mon Sep 17 00:00:00 2001 From: Jurn Wubben Date: Sun, 28 Sep 2025 15:39:11 +0200 Subject: [PATCH] removed duplicate code --- src/main.c | 28 ++++++++++++++-------------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/src/main.c b/src/main.c index a03cea6..b23e827 100644 --- a/src/main.c +++ b/src/main.c @@ -249,9 +249,7 @@ static Result post_multipart(const char *url, const char *filepath) { return r; } -static void cam_thread(void *arg) { - acInit(); - camInit(); +static void setup_camera(u32 max) { u32 sel = camIndex ? SELECT_IN1 : SELECT_OUT1; CAMU_SetSize(sel, SIZE_CTR_TOP_LCD, CONTEXT_A); CAMU_SetOutputFormat(sel, OUTPUT_YUV_422, CONTEXT_A); @@ -259,29 +257,30 @@ static void cam_thread(void *arg) { CAMU_SetNoiseFilter(sel, true); CAMU_SetAutoExposure(sel, true); CAMU_SetAutoWhiteBalance(sel, true); - u32 max; - CAMU_GetMaxBytes(&max, W, H); CAMU_SetTransferBytes(PORT_BOTH, max, W, H); CAMU_Activate(sel); +} + +static void cam_thread(void *arg) { + acInit(); + camInit(); + u32 max; + CAMU_GetMaxBytes(&max, W, H); + + setup_camera(max); // Initial setup CAMU_ClearBuffer(PORT_BOTH); CAMU_SynchronizeVsyncTiming(SELECT_OUT1, SELECT_OUT2); CAMU_StartCapture(PORT_BOTH); + while (!quit) { if (reinitCam) { - sel = camIndex ? SELECT_IN1 : SELECT_OUT1; CAMU_StopCapture(PORT_BOTH); CAMU_ClearBuffer(PORT_BOTH); - CAMU_SetSize(sel, SIZE_CTR_TOP_LCD, CONTEXT_A); - CAMU_SetOutputFormat(sel, OUTPUT_YUV_422, CONTEXT_A); - CAMU_SetFrameRate(sel, FRAME_RATE_30); - CAMU_SetNoiseFilter(sel, true); - CAMU_SetAutoExposure(sel, true); - CAMU_SetAutoWhiteBalance(sel, true); - CAMU_SetTransferBytes(PORT_BOTH, max, W, H); - CAMU_Activate(sel); + setup_camera(max); // Reuse same setup logic CAMU_StartCapture(PORT_BOTH); reinitCam = false; } + Handle ev = 0; int recv = camIndex ? PORT_CAM2 : PORT_CAM1; CAMU_SetReceiving(&ev, camBuf[writeIdx], recv, W * H * 2, max); @@ -290,6 +289,7 @@ static void cam_thread(void *arg) { svcSignalEvent(readyEv[writeIdx]); writeIdx ^= 1; } + CAMU_StopCapture(PORT_BOTH); CAMU_Activate(SELECT_NONE); camExit();