
g_offset = nil
g_duration = nil

-- this function is called when the box is initialized
function initialize(box)

	dofile(box:get_config("${Path_Data}") .. "/plugins/stimulation/lua-stimulator-stim-codes.lua")

	g_offset = box:get_setting(2)
	g_duration = box:get_setting(3)
end

-- this function is called when the box is uninitialized
function uninitialize(box)
       
end

function wait_until(box, time)
  while box:get_current_time() < time do
    box:sleep()
  end
end


function wait_for(box, duration)
  wait_until(box, box:get_current_time() + duration)
end



function process(box)
	-- loops on every received stimulation for a given input
	while box:keep_processing() do
		for stimulation = 1, box:get_stimulation_count(1) do

				-- gets the received stimulation
				identifier, date, duration = box:get_stimulation(1, 1)
				-- discards it
				box:remove_stimulation(1, 1)
				
				-- delay the OVTK_GDF_Left and Right
				if identifier == OVTK_GDF_Left or identifier == OVTK_GDF_Right then
					box:send_stimulation(1, OVTK_GDF_Correct, date+g_offset, 0)
					box:send_stimulation(1, OVTK_GDF_Incorrect, date+g_offset+g_duration, 0)
				end
		end
		box:sleep()
	end
end
