Extract set_variable() from cmd_handler()
parent
b34eb8f7d4
commit
d021b14e42
|
@ -294,6 +294,108 @@ void enable_led(bool en)
|
|||
}
|
||||
#endif
|
||||
|
||||
static esp_err_t set_variable(const char *variable, int val, sensor_t *s, bool ignore_unknown)
|
||||
{
|
||||
int res = 0;
|
||||
|
||||
ESP_LOGI(TAG, "%s = %d", variable, val);
|
||||
|
||||
if (!strcmp(variable, "framesize")) {
|
||||
if (s->pixformat == PIXFORMAT_JPEG) {
|
||||
res = s->set_framesize(s, (framesize_t)val);
|
||||
if (res == 0) {
|
||||
app_mdns_update_framesize(val);
|
||||
}
|
||||
}
|
||||
}
|
||||
else if (!strcmp(variable, "fps_max")) {
|
||||
fps_max = val;
|
||||
fps_period_us = FPS_TO_PERIOD(fps_max);
|
||||
}
|
||||
else if (!strcmp(variable, "quality"))
|
||||
res = s->set_quality(s, val);
|
||||
else if (!strcmp(variable, "contrast"))
|
||||
res = s->set_contrast(s, val);
|
||||
else if (!strcmp(variable, "brightness"))
|
||||
res = s->set_brightness(s, val);
|
||||
else if (!strcmp(variable, "saturation"))
|
||||
res = s->set_saturation(s, val);
|
||||
else if (!strcmp(variable, "gainceiling"))
|
||||
res = s->set_gainceiling(s, (gainceiling_t)val);
|
||||
else if (!strcmp(variable, "colorbar"))
|
||||
res = s->set_colorbar(s, val);
|
||||
else if (!strcmp(variable, "awb"))
|
||||
res = s->set_whitebal(s, val);
|
||||
else if (!strcmp(variable, "agc"))
|
||||
res = s->set_gain_ctrl(s, val);
|
||||
else if (!strcmp(variable, "aec"))
|
||||
res = s->set_exposure_ctrl(s, val);
|
||||
else if (!strcmp(variable, "hmirror"))
|
||||
res = s->set_hmirror(s, val);
|
||||
else if (!strcmp(variable, "vflip"))
|
||||
res = s->set_vflip(s, val);
|
||||
else if (!strcmp(variable, "awb_gain"))
|
||||
res = s->set_awb_gain(s, val);
|
||||
else if (!strcmp(variable, "agc_gain"))
|
||||
res = s->set_agc_gain(s, val);
|
||||
else if (!strcmp(variable, "aec_value"))
|
||||
res = s->set_aec_value(s, val);
|
||||
else if (!strcmp(variable, "aec2"))
|
||||
res = s->set_aec2(s, val);
|
||||
else if (!strcmp(variable, "dcw"))
|
||||
res = s->set_dcw(s, val);
|
||||
else if (!strcmp(variable, "bpc"))
|
||||
res = s->set_bpc(s, val);
|
||||
else if (!strcmp(variable, "wpc"))
|
||||
res = s->set_wpc(s, val);
|
||||
else if (!strcmp(variable, "raw_gma"))
|
||||
res = s->set_raw_gma(s, val);
|
||||
else if (!strcmp(variable, "lenc"))
|
||||
res = s->set_lenc(s, val);
|
||||
else if (!strcmp(variable, "special_effect"))
|
||||
res = s->set_special_effect(s, val);
|
||||
else if (!strcmp(variable, "wb_mode"))
|
||||
res = s->set_wb_mode(s, val);
|
||||
else if (!strcmp(variable, "ae_level"))
|
||||
res = s->set_ae_level(s, val);
|
||||
#ifdef CONFIG_LED_ILLUMINATOR_ENABLED
|
||||
else if (!strcmp(variable, "led_intensity")) {
|
||||
led_duty = val;
|
||||
if (isStreaming)
|
||||
enable_led(true);
|
||||
}
|
||||
#endif
|
||||
|
||||
#if CONFIG_ESP_FACE_DETECT_ENABLED
|
||||
else if (!strcmp(variable, "face_detect")) {
|
||||
detection_enabled = val;
|
||||
#if CONFIG_ESP_FACE_RECOGNITION_ENABLED
|
||||
if (!detection_enabled) {
|
||||
recognition_enabled = 0;
|
||||
}
|
||||
#endif
|
||||
}
|
||||
#if CONFIG_ESP_FACE_RECOGNITION_ENABLED
|
||||
else if (!strcmp(variable, "face_enroll"))
|
||||
is_enrolling = val;
|
||||
else if (!strcmp(variable, "face_recognize")) {
|
||||
recognition_enabled = val;
|
||||
if (recognition_enabled) {
|
||||
detection_enabled = val;
|
||||
}
|
||||
}
|
||||
#endif
|
||||
#endif
|
||||
else {
|
||||
ESP_LOGI(TAG, "Unknown variable: %s = %d", variable, val);
|
||||
if (!ignore_unknown) {
|
||||
res = -1;
|
||||
}
|
||||
}
|
||||
|
||||
return res;
|
||||
}
|
||||
|
||||
static esp_err_t bmp_handler(httpd_req_t *req)
|
||||
{
|
||||
camera_fb_t *fb = NULL;
|
||||
|
@ -714,6 +816,7 @@ static esp_err_t cmd_handler(httpd_req_t *req)
|
|||
char *buf = NULL;
|
||||
char variable[32];
|
||||
char value[32];
|
||||
esp_err_t res;
|
||||
|
||||
if (parse_get(req, &buf) != ESP_OK) {
|
||||
return ESP_FAIL;
|
||||
|
@ -727,100 +830,9 @@ static esp_err_t cmd_handler(httpd_req_t *req)
|
|||
free(buf);
|
||||
|
||||
int val = atoi(value);
|
||||
ESP_LOGI(TAG, "%s = %d", variable, val);
|
||||
sensor_t *s = esp_camera_sensor_get();
|
||||
int res = 0;
|
||||
|
||||
if (!strcmp(variable, "framesize")) {
|
||||
if (s->pixformat == PIXFORMAT_JPEG) {
|
||||
res = s->set_framesize(s, (framesize_t)val);
|
||||
if (res == 0) {
|
||||
app_mdns_update_framesize(val);
|
||||
}
|
||||
}
|
||||
}
|
||||
else if (!strcmp(variable, "fps_max")) {
|
||||
fps_max = val;
|
||||
fps_period_us = FPS_TO_PERIOD(fps_max);
|
||||
}
|
||||
else if (!strcmp(variable, "quality"))
|
||||
res = s->set_quality(s, val);
|
||||
else if (!strcmp(variable, "contrast"))
|
||||
res = s->set_contrast(s, val);
|
||||
else if (!strcmp(variable, "brightness"))
|
||||
res = s->set_brightness(s, val);
|
||||
else if (!strcmp(variable, "saturation"))
|
||||
res = s->set_saturation(s, val);
|
||||
else if (!strcmp(variable, "gainceiling"))
|
||||
res = s->set_gainceiling(s, (gainceiling_t)val);
|
||||
else if (!strcmp(variable, "colorbar"))
|
||||
res = s->set_colorbar(s, val);
|
||||
else if (!strcmp(variable, "awb"))
|
||||
res = s->set_whitebal(s, val);
|
||||
else if (!strcmp(variable, "agc"))
|
||||
res = s->set_gain_ctrl(s, val);
|
||||
else if (!strcmp(variable, "aec"))
|
||||
res = s->set_exposure_ctrl(s, val);
|
||||
else if (!strcmp(variable, "hmirror"))
|
||||
res = s->set_hmirror(s, val);
|
||||
else if (!strcmp(variable, "vflip"))
|
||||
res = s->set_vflip(s, val);
|
||||
else if (!strcmp(variable, "awb_gain"))
|
||||
res = s->set_awb_gain(s, val);
|
||||
else if (!strcmp(variable, "agc_gain"))
|
||||
res = s->set_agc_gain(s, val);
|
||||
else if (!strcmp(variable, "aec_value"))
|
||||
res = s->set_aec_value(s, val);
|
||||
else if (!strcmp(variable, "aec2"))
|
||||
res = s->set_aec2(s, val);
|
||||
else if (!strcmp(variable, "dcw"))
|
||||
res = s->set_dcw(s, val);
|
||||
else if (!strcmp(variable, "bpc"))
|
||||
res = s->set_bpc(s, val);
|
||||
else if (!strcmp(variable, "wpc"))
|
||||
res = s->set_wpc(s, val);
|
||||
else if (!strcmp(variable, "raw_gma"))
|
||||
res = s->set_raw_gma(s, val);
|
||||
else if (!strcmp(variable, "lenc"))
|
||||
res = s->set_lenc(s, val);
|
||||
else if (!strcmp(variable, "special_effect"))
|
||||
res = s->set_special_effect(s, val);
|
||||
else if (!strcmp(variable, "wb_mode"))
|
||||
res = s->set_wb_mode(s, val);
|
||||
else if (!strcmp(variable, "ae_level"))
|
||||
res = s->set_ae_level(s, val);
|
||||
#ifdef CONFIG_LED_ILLUMINATOR_ENABLED
|
||||
else if (!strcmp(variable, "led_intensity")) {
|
||||
led_duty = val;
|
||||
if (isStreaming)
|
||||
enable_led(true);
|
||||
}
|
||||
#endif
|
||||
|
||||
#if CONFIG_ESP_FACE_DETECT_ENABLED
|
||||
else if (!strcmp(variable, "face_detect")) {
|
||||
detection_enabled = val;
|
||||
#if CONFIG_ESP_FACE_RECOGNITION_ENABLED
|
||||
if (!detection_enabled) {
|
||||
recognition_enabled = 0;
|
||||
}
|
||||
#endif
|
||||
}
|
||||
#if CONFIG_ESP_FACE_RECOGNITION_ENABLED
|
||||
else if (!strcmp(variable, "face_enroll"))
|
||||
is_enrolling = val;
|
||||
else if (!strcmp(variable, "face_recognize")) {
|
||||
recognition_enabled = val;
|
||||
if (recognition_enabled) {
|
||||
detection_enabled = val;
|
||||
}
|
||||
}
|
||||
#endif
|
||||
#endif
|
||||
else {
|
||||
ESP_LOGI(TAG, "Unknown command: %s", variable);
|
||||
res = -1;
|
||||
}
|
||||
res = set_variable(variable, val, s, false);
|
||||
|
||||
if (res < 0) {
|
||||
return httpd_resp_send_500(req);
|
||||
|
|
Loading…
Reference in New Issue