# This file includes all valid Display Device
# settings that can be specified in an iohub_config.yaml
# or in Python dictionary form and passed to the quickStartHubServer
# method. Any device parameters not specified when the device class is
# created by the ioHub Process will be assigned the default value
# indicated here.
#
Display:
    
    # The unique name to assign to the evice instance created.
    # The device is accessed from within the PsychoPy script 
    # using the name's value; therefore it must be a valid Python
    # variable name as well.
    #
    name: display
    
    # The coordinate , or unit, type that the Display's surface area should
    # be represented in. Valid values are pix, deg, norm, or cm.
    #
    reporting_unit_type: pix
    
    # The Display index to assign to the device. On a single Display
    # computer this must always be 0. On a computer with multiple displays, 
    # the value can be between 0 and display_count - 1.     
    #
    device_number: 0
    
    # This section of parameters defines the actual size of the Display's 
    # 2D stimulus surface. Both width and height values are the total length of each dimension.
    # The unit_type field must currently be in mm, and therefore so must 
    # the specified width and height.
    #
    physical_dimensions:
        width: 500
        height: 281
        unit_type: mm
        
    # Enter the expected, average, distance that the participants eye(s) will
    # be from the display's stimulus surface. Currently the only supported 
    # distance reference type is surface_center, and the distance must be specified in 
    # the unit_type of mm.
    #   
    default_eye_distance:
        surface_center: 550
        unit_type: mm
    
    # If the Display device should open a PsychoPy Monitor Configuration
    # file, provide the name of it here.
    #
    psychopy_monitor_name: default
    
    # If a valid PsychoPy Monitor Configuration file 
    # has been provided, specify if the physical parameters
    # stored in it should override any duplicate parameter types
    # defined in this Display device configuartion.
    # True == Use the PsychoPy settings and update the Display config with them.
    # False == Use the measurements provided in this file and update the
    # the PsychoPy Monitor Configuration with the values specified
    # in the ioHub Device configuration.
    #
    override_using_psycho_settings: False

    # event_buffer_length: Specify the maximum number of events (for each
    #   event type the device produces) that can be stored by the ioHub Server
    #   before each new event results in the oldest event of the same type being
    #   discarded from the ioHub device event buffer.
    #
    event_buffer_length: 0

    # monitor_event_types: *If* the ioHubDataStore is enabled for the experiment, then
    #   indicate if events for this device should be saved to the
    #   monitor_event_types: Specified which Mouse Event types should be monitored
    #   for and therefore saved to the DataStore or sent to the Experiment Process.
    #
    monitor_event_types:

    #   save_events: Save Mouse events to the data_collection/Mouse event 
    #   group in the hdf5 event file.
    #   True = Save events for this device to the ioDataStore.
    #   False = Do not save events for this device in the ioDataStore.
    #
    save_events: False

    # stream_events: Indicate if events from this device should be made available
    #   during experiment runtime to the Experiment / PsychoPy Process.
    #   True = Send events for this device to  the Experiment Process in real-time.
    #   False = Do *not* send events for this device to the Experiment Process in real-time.
    #
    stream_events: False

    # auto_report_events: Indicate if events from this device should start being
    #   processed by the ioHub as soon as the device is loaded at the start of an experiment,
    #   or if events should only start to be monitored on the device when a call to the
    #   device's enableEventReporting method is made with a parameter value of True.
    #   True = Automatically start reporting events for this device when the experiment starts.
    #   False = Do not start reporting events for this device until enableEventReporting(True)
    #       is set for the device during experiment runtime.
    #
    auto_report_events: False

    # The Display device model name can be specified here.
    # It is not used by the ioHub, so is FYI only.
    #
    model_name: N/A
    
    # The Display device model number can be specified here.
    # It is not used by the ioHub, so is FYI only.
    #
    model_number: N/A
    
    # The Display device manufacturer's name can be specified here.
    # It is not used by the ioHub, so is FYI only.
    #
    manufacturer_name: N/A
    
    # The Display device serial number can be specified here.
    # It is not used by the ioHub, so is FYI only.
    #
    serial_number: N/A
    
    # The date of manufactiurer for the Display device 
    # can be specified here. It is not used by the ioHub,
    # so is FYI only.
    #   
    manufacture_date: DD-MM-YYYY

    # The Display device's hardware version can be specified here.
    # It is not used by the ioHub, so is FYI only.
    #
    hardware_version: N/A
    
    # If the Display devicehas firmware, its revision number
    # can be indicated here.
    # It is not used by the ioHub, so is FYI only.
    #
    firmware_version: N/A

    # software_version: The device driver and / or SDK software version number.
    #   This field is not used by ioHub, so is FYI only. 
    #
    software_version: N/A