menu "Camera Web Server"

menu "WiFi Settings"
config ESP_WIFI_SSID
    string "WiFi STA SSID"
    default ""
    help
    WiFi SSID (network name) to connect to or empty for Off.

config ESP_WIFI_PASSWORD
    string "WiFi STA Password"
    default ""
    help
    WiFi Password if WEP/WPA/WPA2 or empty if Open.
    
config ESP_WIFI_AP_SSID
    string "WiFi AP SSID"
    default "ESP32-Camera"
    help
	AP SSID (network name) to create or empty for Off.

config ESP_WIFI_AP_PASSWORD
    string "WiFi AP Password"
    default ""
    help
	AP password for WPA2 or empty for Open.

config SERVER_IP
    string "WiFi AP IP Address"
    default "192.168.4.1"
    help
        IP address that the ESP will assign to it's AP interface. You can use this IP to connect to the camera after flashing.

config ESP_MAXIMUM_RETRY
    int "Maximum retry"
    default 5
    help
    Set the Maximum retry to avoid station reconnecting to the AP unlimited when the AP is really inexistent.
endmenu

menu "LED Illuminator"
config LED_ILLUMINATOR_ENABLED
    bool "LED Illuminator Enabled"
    default n
    help
    Enable an LED Flash or IR Illuminator

config LED_LEDC_PIN
    depends on LED_ILLUMINATOR_ENABLED
    int "LED Illuminator GPIO Pin"
    range 0 33
    default 4
    help
    Set a pin to illuminate an onboard LED or IR Illuminator when streaming or taking snapshots.

config LED_MAX_INTENSITY
    depends on LED_ILLUMINATOR_ENABLED
    int "LED Maximum Intensity (0-255)"
    range 0 255
    default 255
    help
    Limit the maximum intensity of the LED while streaming to prevent overheating (0-255).

choice LED_LEDC_SPEED_MODE
    depends on LED_ILLUMINATOR_ENABLED
    bool "Select LEDC Timer Speed Mode"
    default LED_LEDC_LOW_SPEED_MODE
    help
    Select a speed mode for the LEDC channel 

config LED_LEDC_LOW_SPEED_MODE  
    bool "LOW_SPEED_MODE"
config LED_LEDC_HIGH_SPEED_MODE
    bool "HIGH_SPEED_MODE"
endchoice

config LED_LEDC_TIMER
    depends on LED_ILLUMINATOR_ENABLED
    int "LEDC Timer"
    range 0 3
    default 1
    help
    Select the LEDC Timer (0-3)

config LED_LEDC_CHANNEL
    depends on LED_ILLUMINATOR_ENABLED
    int "LEDC Channel"
    range 0 7
    default 1
    help
    Select the LEDC Channel (0-7)
endmenu

menu "Camera Pins"
choice CAMERA_MODEL
    bool "Select Camera Pinout"
    default CAMERA_MODEL_WROVER_KIT
    help
        Select Camera Pinout.

config CAMERA_MODEL_WROVER_KIT
    bool "WROVER-KIT With OV2640 Module"
config CAMERA_MODEL_ESP32_CAM_BOARD
    bool "ESP32 Camera Development Board"
config CAMERA_MODEL_ESP_EYE
    bool "ESP_EYE DevKit"
config CAMERA_MODEL_M5STACK_PSRAM
    bool "M5Stack Camera With PSRAM"
config CAMERA_MODEL_M5STACK_WIDE
    bool "M5Stack Camera F (Wide)"
config CAMERA_MODEL_AI_THINKER
    bool "ESP32-CAM by AI-Thinker"
config CAMERA_MODEL_CUSTOM
    bool "Custom Camera Pinout"
endchoice

config CAMERA_PIN_PWDN
    depends on CAMERA_MODEL_CUSTOM
    int "Power Down pin"
    range -1 33
    default -1
    help
        Select Power Down pin or -1 for unmanaged.

config CAMERA_PIN_RESET
    depends on CAMERA_MODEL_CUSTOM
    int "Reset pin"
    range -1 33
    default -1
    help
        Select Camera Reset pin or -1 for software reset.

config CAMERA_PIN_XCLK
    depends on CAMERA_MODEL_CUSTOM
    int "XCLK pin"
    range 0 33
    default 21
    help
        Select Camera XCLK pin.

config CAMERA_PIN_SIOD
    depends on CAMERA_MODEL_CUSTOM
    int "SIOD pin"
    range 0 33
    default 26
    help
        Select Camera SIOD pin.

config CAMERA_PIN_SIOC
    depends on CAMERA_MODEL_CUSTOM
    int "SIOC pin"
    range 0 33
    default 27
    help
        Select Camera SIOC pin.

config CAMERA_PIN_VSYNC
    depends on CAMERA_MODEL_CUSTOM
    int "VSYNC pin"
    range 0 39
    default 25
    help
        Select Camera VSYNC pin.

config CAMERA_PIN_HREF
    depends on CAMERA_MODEL_CUSTOM
    int "HREF pin"
    range 0 39
    default 23
    help
        Select Camera HREF pin.

config CAMERA_PIN_PCLK
    depends on CAMERA_MODEL_CUSTOM
    int "PCLK pin"
    range 0 39
    default 25
    help
        Select Camera PCLK pin.

config CAMERA_PIN_Y2
    depends on CAMERA_MODEL_CUSTOM
    int "Y2 pin"
    range 0 39
    default 4
    help
        Select Camera Y2 pin.

config CAMERA_PIN_Y3
    depends on CAMERA_MODEL_CUSTOM
    int "Y3 pin"
    range 0 39
    default 5
    help
        Select Camera Y3 pin.

config CAMERA_PIN_Y4
    depends on CAMERA_MODEL_CUSTOM
    int "Y4 pin"
    range 0 39
    default 18
    help
        Select Camera Y4 pin.

config CAMERA_PIN_Y5
    depends on CAMERA_MODEL_CUSTOM
    int "Y5 pin"
    range 0 39
    default 19
    help
        Select Camera Y5 pin.

config CAMERA_PIN_Y6
    depends on CAMERA_MODEL_CUSTOM
    int "Y6 pin"
    range 0 39
    default 36
    help
        Select Camera Y6 pin.

config CAMERA_PIN_Y7
    depends on CAMERA_MODEL_CUSTOM
    int "Y7 pin"
    range 0 39
    default 39
    help
        Select Camera Y7 pin.

config CAMERA_PIN_Y8
    depends on CAMERA_MODEL_CUSTOM
    int "Y8 pin"
    range 0 39
    default 34
    help
        Select Camera Y8 pin.

config CAMERA_PIN_Y9
    depends on CAMERA_MODEL_CUSTOM
    int "Y9 pin"
    range 0 39
    default 35
    help
        Select Camera Y9 pin.

endmenu

config ESP_FACE_DETECT_ENABLED
    bool "ESP-WHO Face Detection"
    default y
    help
        Enables ESP-WHO Face Detection through the web interface.

choice ESP_FACE_DETECT_MODEL
    bool "Detection Model"
    depends on ESP_FACE_DETECT_ENABLED
    default ESP_FACE_DETECT_MTMN

    config ESP_FACE_DETECT_MTMN
        bool "MTMN"
        
    config ESP_FACE_DETECT_LSSH
        bool "LSSH"
endchoice

config ESP_FACE_RECOGNITION_ENABLED
    bool "ESP-WHO Face Recognition"
    depends on ESP_FACE_DETECT_MTMN
    default y
    help
        Enables ESP-WHO Face Recognition through the web interface.

endmenu