menu "ESP-MQTT Configurations"

config MQTT_PROTOCOL_311
    bool "Enable MQTT protocol 3.1.1"
    default y
    help
        If not, this library will use MQTT protocol 3.1

config MQTT_TRANSPORT_SSL
    bool "Enable MQTT over SSL"
    default y
    help
        Enable MQTT transport over SSL with mbedtls

config MQTT_TRANSPORT_WEBSOCKET
    bool "Enable MQTT over Websocket"
    default y
    help
        Enable MQTT transport over Websocket.

config MQTT_TRANSPORT_WEBSOCKET_SECURE
    bool "Enable MQTT over Websocket Secure"
    default y
    depends on MQTT_TRANSPORT_WEBSOCKET
    depends on MQTT_TRANSPORT_SSL
    help
        Enable MQTT transport over Websocket Secure.

config MQTT_USE_CUSTOM_CONFIG
    bool "MQTT Using custom configurations"
    default n
    help
        Custom MQTT configurations.

config MQTT_TCP_DEFAULT_PORT
    int "Default MQTT over TCP port"
    default 1883
    depends on MQTT_USE_CUSTOM_CONFIG
    help
        Default MQTT over TCP port

config MQTT_SSL_DEFAULT_PORT
    int "Default MQTT over SSL port"
    default 8883
    depends on MQTT_USE_CUSTOM_CONFIG
    depends on MQTT_TRANSPORT_SSL
    help
        Default MQTT over SSL port
        
config MQTT_WS_DEFAULT_PORT
    int "Default MQTT over Websocket port"
    default 80
    depends on MQTT_USE_CUSTOM_CONFIG
    depends on MQTT_TRANSPORT_WEBSOCKET
    help
        Default MQTT over Websocket port

config MQTT_WSS_DEFAULT_PORT
    int "Default MQTT over Websocket Secure port"
    default 443
    depends on MQTT_USE_CUSTOM_CONFIG
    depends on MQTT_TRANSPORT_WEBSOCKET
    depends on MQTT_TRANSPORT_WEBSOCKET_SECURE
    help
        Default MQTT over Websocket Secure port

config MQTT_BUFFER_SIZE
    int "Default MQTT Buffer Size"
    default 1024
    depends on MQTT_USE_CUSTOM_CONFIG
    help
        This buffer size using for both transmit and receive

config MQTT_TASK_STACK_SIZE
    int "MQTT task stack size"
    default 6144
    depends on MQTT_USE_CUSTOM_CONFIG
    help
        MQTT task stack size

config MQTT_TASK_CORE_SELECTION_ENABLED
    bool "Enable MQTT task core selection"
    default false
    help
        This will enable core selection

choice MQTT_TASK_CORE_SELECTION
    depends on MQTT_TASK_CORE_SELECTION_ENABLED
    prompt "Core to use ?"
    config MQTT_USE_CORE_0
          bool "Core 0"
    config MQTT_USE_CORE_1
          bool "Core 1"
 endchoice

config MQTT_CUSTOM_OUTBOX
    bool "Enable custom outbox implementation"
    default n
    help
        Set to true if a specific implementation of message outbox is needed (e.g. persistant outbox in NVM or similar).

endmenu
