Fix stream_state update logic and add the event queue acquisition function

This commit is contained in:
m-RNA
2025-12-23 03:03:31 +08:00
parent d24889a141
commit cf3476abd7
2 changed files with 17 additions and 2 deletions
@@ -63,9 +63,9 @@ void StateManager::HandleUpdateState()
ledStreamState = LEDStates_e::LedStateStreaming; ledStreamState = LEDStates_e::LedStateStreaming;
xQueueSend(this->ledStateQueue, &ledStreamState, 10); xQueueSend(this->ledStateQueue, &ledStreamState, 10);
} }
if (this->stream_state == StreamState_e::Stream_ON) else if (this->stream_state == StreamState_e::Stream_OFF)
{ {
ledStreamState = LEDStates_e::LedStateStreaming; ledStreamState = LEDStates_e::LedStateStoppedStreaming;
xQueueSend(this->ledStateQueue, &ledStreamState, 10); xQueueSend(this->ledStateQueue, &ledStreamState, 10);
} }
break; break;
@@ -87,6 +87,11 @@ CameraState_e StateManager::GetCameraState()
return this->camera_state; return this->camera_state;
} }
QueueHandle_t StateManager::GetEventQueue() const
{
return this->eventQueue;
}
void HandleStateManagerTask(void *pvParameters) void HandleStateManagerTask(void *pvParameters)
{ {
auto *stateManager = static_cast<StateManager *>(pvParameters); auto *stateManager = static_cast<StateManager *>(pvParameters);
@@ -76,6 +76,7 @@ public:
void HandleUpdateState(); void HandleUpdateState();
WiFiState_e GetWifiState(); WiFiState_e GetWifiState();
CameraState_e GetCameraState(); CameraState_e GetCameraState();
QueueHandle_t GetEventQueue() const;
private: private:
QueueHandle_t eventQueue; QueueHandle_t eventQueue;
@@ -87,6 +88,15 @@ private:
StreamState_e stream_state; StreamState_e stream_state;
}; };
// Lightweight helper to publish stream state changes to the shared event queue.
static inline bool SendStreamEvent(QueueHandle_t queue, StreamState_e state)
{
if (!queue)
return false;
SystemEvent evt{EventSource::STREAM, state};
return xQueueSend(queue, &evt, 0) == pdTRUE;
}
void HandleStateManagerTask(void *pvParameters); void HandleStateManagerTask(void *pvParameters);
#endif // STATEMANAGER_HPP #endif // STATEMANAGER_HPP