Refactor global state management for startup commands and USB handover (no Race-Condition); enhance SerialManager shutdown process and buffer handling in UVCStream.

This commit is contained in:
PhosphorosVR
2025-08-23 19:12:53 +02:00
parent e1838b4ca4
commit 3f96e468f0
7 changed files with 82 additions and 14 deletions

View File

@@ -4,15 +4,15 @@
// Forward declarations
extern void start_video_streaming(void *arg);
bool startupCommandReceived = false;
static bool s_startupCommandReceived = false;
bool getStartupCommandReceived()
{
return startupCommandReceived;
return s_startupCommandReceived;
}
void setStartupCommandReceived(bool startupCommandReceived)
{
startupCommandReceived = startupCommandReceived;
s_startupCommandReceived = startupCommandReceived;
}
static TaskHandle_t *g_serial_manager_handle = nullptr;
@@ -27,15 +27,15 @@ void setSerialManagerHandle(TaskHandle_t *serialManagerHandle)
}
// Global pause state
bool startupPaused = false;
static bool s_startupPaused = false;
bool getStartupPaused()
{
return startupPaused;
return s_startupPaused;
}
void setStartupPaused(bool startupPaused)
{
startupPaused = startupPaused;
s_startupPaused = startupPaused;
}
// Function to manually activate streaming
@@ -47,4 +47,9 @@ void activateStreaming(bool disableSetup)
void *serialTaskHandle = (serialHandle && *serialHandle) ? *serialHandle : nullptr;
start_video_streaming(serialTaskHandle);
}
}
// USB handover state
static bool s_usbHandoverDone = false;
bool getUsbHandoverDone() { return s_usbHandoverDone; }
void setUsbHandoverDone(bool done) { s_usbHandoverDone = done; }

View File

@@ -21,4 +21,8 @@ void setStartupCommandReceived(bool startupCommandReceived);
bool getStartupPaused();
void setStartupPaused(bool startupPaused);
// Tracks whether USB handover from usb_serial_jtag to TinyUSB was performed
bool getUsbHandoverDone();
void setUsbHandoverDone(bool done);
#endif