Files
opus-apps/glasses/glassesDriver.lua
2018-11-03 18:14:11 -04:00

32 lines
803 B
Lua

_G.requireInjector(_ENV)
local device = _G.device
local kernel = _G.kernel
local os = _G.os
local glasses = require('shatter')
glasses.name = 'glasses'
glasses.type = 'rayban'
glasses.size = 'face'
device.glasses = glasses
glasses.setTextScale(.5)
glasses.setSize(100, 40)
kernel.hook({ 'glasses_click', 'glasses_up', 'glasses_drag' }, function(event, eventData)
local sx, sy = 6, 9
local scale = glasses.getTextScale()
local ox, oy = math.ceil(scale*sx), math.ceil(scale*sy)
local lookup = {
glasses_click = 'monitor_touch',
glasses_up = 'monitor_up',
glasses_drag = 'monitor_drag',
}
local x, y = math.floor(eventData[2]/ox) + 1, math.floor(eventData[3]/oy) + 1
os.queueEvent(lookup[event], 'glasses', x, y)
glasses.setCursorPos(x, y)
glasses.write('X ' .. eventData[3])
end)