DEVICE = "mouse" -- "kb" for keyboard, "lhc" for left handed controller, such as
the G13
-----------------------------------------------------------------------------------
-------------------------
POLL_DELAY = 1
POLL_FAMILY = "kb" -- The device polling will take place on. Prefered to not be on
macroed device.
-----------------------------------------------------------------------------------
-------------------------
inc = 1
lcd = OutputLCDMessage
--
--
ctDiscoColors = CoThread:new(discoColors)
ctDiscoColors:start()
Toggle = true
end
--
--
if Toggle then
else
end
end
speed = speed-POLL_DELAY
if speed < POLL_DELAY then -- if speed is 0 or less, the program will not reliquish
control
speed = POLL_DELAY
end
end
speed = speed+POLL_DELAY
end
inc = inc + 1
end
inc = inc - 1
end
end
if Toggle then
ctDiscoColors:run()
end
end
function discoColors(ct)
while true do
for i=0,25,inc do
SetBacklightColor(0,0,255,DEVICE)
ct:sleep(25-i)
SetBacklightColor(255,0,255,DEVICE)
ct:sleep(i)
end
ct:sleep(6)
for i=0,25,inc do
SetBacklightColor(255,0,255,DEVICE)
ct:sleep(25-i)
SetBacklightColor(255,0,0,DEVICE)
ct:sleep(i)
end
ct:sleep(6)
for i=0,25,inc do
SetBacklightColor(255,0,0,DEVICE)
ct:sleep(25-i)
SetBacklightColor(255,255,0,DEVICE)
ct:sleep(i)
end
ct:sleep(6)
for i=0,25,inc do
SetBacklightColor(255,255,0,DEVICE)
ct:sleep(25-i)
SetBacklightColor(0,255,0,DEVICE)
ct:sleep(i)
end
ct:sleep(6)
for i=0,25,inc do
SetBacklightColor(0,255,0,DEVICE)
ct:sleep(25-i)
SetBacklightColor(0,255,255,DEVICE)
ct:sleep(i)
end
ct:sleep(6)
for i=0,25,inc do
SetBacklightColor(0,255,255,DEVICE)
ct:sleep(25-i)
SetBacklightColor(0,0,255,DEVICE)
ct:sleep(i)
end
ct:sleep(6)
end
end
-----------------------------------------------------------------------------------
---------------------
-----------------------------------------------------------------------------------
---------------------
--
-- NOTHING BELOW HERE NEEDS TO BE ALTERED
--
-----------------------------------------------------------------------------------
---------------------
_GetRunningTime = GetRunningTime()
ClearLog()
POLL:start()
if KB_EVENTS then
kb = EventHandler:new("kb")
end
if LHC_EVENTS then
lhc = EventHandler:new("lhc")
end
else
POLL:run(event,arg,family)
_GetRunningTime = GetRunningTime()
end
end
log = OutputLogMessage
function Type(v)
return v.Type
return v.type
end
end
return type(v)
end
Poll = {}
Poll.__index = Poll
if k == key then
rawset(table,key,value) return
end
end
end
local self = {}
self.delay = delay or 50
end
self.pFamily = family
self.presses = 0
self.running = false
self.runMKeyModifier = false
self.modFamily = ""
self.Type = "Poll"
setmetatable(self, Poll)
return self
end
self.runMKeyModifier = true
self.MKeyModifier[1] = m1
self.MKeyModifier[2] = m2
self.MKeyModifier[3] = m3
self.modFamily = family
end
function Poll:start()
self.running = true
self:setMKeyState()
end
function Poll:stop()
self.running = false
end
function Poll:_press()
if self.running then
self.presses = self.presses + 1
end
end
function Poll:release()
if self.running then
self.presses = self.presses - 1
end
end
function Poll:setMKeyState()
if self.runMKeyModifier then
local i = 1
for i = 1, 3, 1 do
default = i
if IsMouseButtonPressed(iMB) then
modMKeyState = i
end
modMKeyState = i
end
end
modMKeyState = default
end
SetMKeyState(modMKeyState, self.pFamily)
return
SetMKeyState(modMKeyState, self.modFamily)
end
end
end
end
self:_press()
Sleep(self.delay)
elseif event == "M_RELEASED" then
if self.presses == 1 then
self:setMKeyState()
Sleep(self.delay)
end
self:release()
end
end
end
CoThread = {}
CoThread.__index = CoThread
local self = {}
end
self.func = f
self.co = nil
self.sleepUntilTimeStamp = nil
self.Type = "CoThread"
setmetatable(self, CoThread)
return self
end
function CoThread:recreate()
self:kill()
self.co = coroutine.create(self.func)
end
function CoThread:create()
self.co = coroutine.create(self.func)
end
function CoThread:isDead()
return true
self.co = nil
return true
else
return false
end
end
function CoThread:run(...)
if self:isDead() then
return
end
return
else
self.sleepUntilTimeStamp = nil
end
end
coroutine.resume(self.co, self, ...)
end
function CoThread:kill()
self.co = nil
self.sleepUntilTimeStamp = nil
end
function CoThread:yield()
coroutine.yield()
end
function CoThread:sleep(Milliseconds)
coroutine.yield()
end
function CoThread:start()
self:recreate()
end
function CoThread:stop()
self:kill()
end
function CoThread:isFinished()
return self:isDead()
end