import pylink
from expyriment import design, control, stimuli, io, misc
from glob import glob
from eyelink_fnctns import init_eyelink, end_eyelink, end_recording, do_drift, getEYELINK, start_recording, GazeDetector

control.set_develop_mode(False)
########### EXPERIMENTAL DESIGN ####################
exp = design.Experiment(name="test_eyelink")

######### INITIALIZE ##############
control.initialize(exp)

fixcross = stimuli.FixCross()
fixcross.preload()

images = glob("/Users/test_exp_image/cond/*.bmp")
block = design.Block(name="block1")

for cond in images:
    trial = design.Trial()
    trial.set_factor("Condition", cond)
    background_white = stimuli.BlankScreen(colour=misc.constants.C_WHITE)
    stimulus = stimuli.Picture(cond)
    stimulus.plot(background_white)
    background_white.preload()
    stimulus.preload()
    trial.add_stimulus(background_white)
    block.add_trial(trial)
block.shuffle_trials(block)
exp.add_block(block)

exp.data_variable_names = ["block", "trial", "Condition"]

######### START ##############
control.start()
tracker = init_eyelink(exp) #initialize eyetracker
edfFileName = init_eyelink(exp)#initialize EDF file

pylink.doTrackerSetup()#do calibration and validation

start_recording() # start recording
for block in exp.blocks:
    for trial in block.trials:
        fixcross.present()
        exp.clock.wait(1500)
        trial.stimuli[0].present()
        exp.clock.wait(2000)

exp.data.add([block.name, trial.id, trial.get_factor("Condition")])

end_recording() #ending recording
end_eyelink() #ending eyelink

####### END EXPERIMENT ########
control.end(goodbye_text='END. Thank you for participating.')

