# If a config setting is a float, int, or str, or list, it is considered fixed / not editable,
# while IOHUB_* means it is settable and defines any validation on it if needed.
eyetracker.EyeTrackerDevice:
    enable: IOHUB_BOOL
    name:
        IOHUB_STRING:
            min_length: 1
            max_length: 32
            first_char_alpha: True    
    save_events: IOHUB_BOOL
    stream_events: IOHUB_BOOL
    auto_report_events: IOHUB_BOOL    
    device_timer:
        interval:
            IOHUB_FLOAT:
                min: 0.001
                max: 0.020
    event_buffer_length:
        IOHUB_INT:
            min: 1
            max: 2048    
    # The ioHub Common Eye Tracker Interface supports the
    # following event types. If you would like to exclude certain events from being
    # saved or streamed during runtime, remove them from the list below.
    # If a device implementation of the interface does not support some of the event types,
    # remove them from the default_[deviceclass].yaml and the supported_config_settings.yaml file
    # copies in the device implementation folder with the ioHub Device class definition.
    monitor_event_types:
        IOHUB_LIST:
            valid_values: [EyeSampleEvent, MonocularEyeSampleEvent, BinocularEyeSampleEvent, FixationStartEvent, FixationEndEvent, SaccadeStartEvent, SaccadeEndEvent, BlinkStartEvent, BlinkEndEvent]
            min_length: 1
            max_length: 9
    model_name:
        IOHUB_STRING:
            min_length: 1
            max_length: 32
    # manufacturer_name: Used by Builder as the displayed name in the eye tracker selection dropdown.
    #
    manufacturer_name: Unknown
    serial_number:
        IOHUB_STRING:
            min_length: 1
            max_length: 32
    device_number: 0
