mirror of
https://github.com/MrUnknownDE/OpenIris-ESPIDF.git
synced 2026-04-13 19:53:44 +02:00
Merge pull request #27 from m-RNA/update-stream_state-events
Unify stream state events across HTTP and UVC for LED feedback
This commit is contained in:
@@ -25,6 +25,11 @@ esp_err_t StreamHelpers::stream(httpd_req_t *req)
|
||||
if (!last_frame)
|
||||
last_frame = esp_timer_get_time();
|
||||
|
||||
// Pull event queue from user_ctx to send STREAM on/off notifications
|
||||
auto *stateManager = static_cast<StateManager *>(req->user_ctx);
|
||||
QueueHandle_t eventQueue = stateManager ? stateManager->GetEventQueue() : nullptr;
|
||||
bool stream_on_sent = false;
|
||||
|
||||
response = httpd_resp_set_type(req, STREAM_CONTENT_TYPE);
|
||||
if (response != ESP_OK)
|
||||
return response;
|
||||
@@ -32,6 +37,9 @@ esp_err_t StreamHelpers::stream(httpd_req_t *req)
|
||||
httpd_resp_set_hdr(req, "Access-Control-Allow-Origin", "*");
|
||||
httpd_resp_set_hdr(req, "X-Framerate", "60");
|
||||
|
||||
if (SendStreamEvent(eventQueue, StreamState_e::Stream_ON))
|
||||
stream_on_sent = true;
|
||||
|
||||
while (true)
|
||||
{
|
||||
fb = esp_camera_fb_get();
|
||||
@@ -100,6 +108,10 @@ esp_err_t StreamHelpers::stream(httpd_req_t *req)
|
||||
}
|
||||
}
|
||||
last_frame = 0;
|
||||
|
||||
if (stream_on_sent)
|
||||
SendStreamEvent(eventQueue, StreamState_e::Stream_OFF);
|
||||
|
||||
return response;
|
||||
}
|
||||
|
||||
@@ -124,7 +136,7 @@ esp_err_t StreamServer::startStreamServer()
|
||||
.uri = "/",
|
||||
.method = HTTP_GET,
|
||||
.handler = &StreamHelpers::stream,
|
||||
.user_ctx = nullptr,
|
||||
.user_ctx = this->stateManager,
|
||||
};
|
||||
|
||||
httpd_uri_t logs_ws = {
|
||||
@@ -152,6 +164,10 @@ esp_err_t StreamServer::startStreamServer()
|
||||
|
||||
httpd_register_uri_handler(camera_stream, &stream_page);
|
||||
|
||||
// Initial state is OFF
|
||||
if (this->stateManager)
|
||||
SendStreamEvent(this->stateManager->GetEventQueue(), StreamState_e::Stream_OFF);
|
||||
|
||||
ESP_LOGI(STREAM_SERVER_TAG, "Stream server started on port %d", STREAM_SERVER_PORT);
|
||||
|
||||
return ESP_OK;
|
||||
|
||||
Reference in New Issue
Block a user