this is my external touchpad xypad script just to show the type of stuff you can do - you can put in some pretty decent logic if you want/need it:
Code:
if (var.XYpadInit == 0) then
midi.DeviceOut = 8 // device number to use
debug = midi.OutDevName // show device name in use
midi.GeneralMidi = False
midi.DefaultChannel = 1
var.XYpadXres = 500
var.XYpadYres = 320
var.XYpadXborder = 10
var.XYpadYborder = 10
var.XYpadXmax = var.XYpadXres + var.XYpadXborder * 2
var.XYpadYmax = var.XYpadYres + var.XYpadYborder * 2
var.XYpadXmidiMin = 0
var.XYpadXmidiMax = 100
var.XYpadYmidiMin = 0
var.XYpadYmidiMax = 1
var.XYpadMode1Time = 1.5
var.XYpadInit = 1
endif
mouse.Swallow = true
fakemouse.DirectInputX = mouse1.DirectInputX
fakemouse.DirectInputY = mouse1.DirectInputY
mouse.LeftButton = mouse1.LeftButton
mouse.RightButton = mouse1.RightButton
mouse.MiddleButton = mouse1.MiddleButton
mouse.XButton1 = mouse1.XButton1
mouse.XButton2 = mouse1.XButton2
if mouse2.present then
if (mouse2.LeftButton) then
var.XYpadMode = 0
endif
if (mouse2.RightButton) then
var.XYpadMode = 1
endif
var.XYpadXdelta = Delta(mouse2.DirectInputX)
var.XYpadYdelta = Delta(mouse2.DirectInputY)
if (var.XYpadXdelta != 0 || var.XYpadYdelta != 0) then
if (var.XYpadMode == 1) then
var.XYpadTime = TimeStamp()
var.XYpadReset = 0
endif
if (var.XYpadXdelta != 0) then
var.XYpadX = var.XYpadX + var.XYpadXdelta
if (var.XYpadX < 0) then
var.XYpadX = 0
elseif (var.XYpadX > var.XYpadXmax) then
var.XYpadX = var.XYpadXmax
elseif (var.XYpadX < var.XYpadXborder) then
var.XYpadXmidiCC = var.XYpadXmidiMin
elseif (var.XYpadX > var.XYpadXres + var.XYpadXborder) then
var.XYpadXmidiCC = var.XYpadXmidiMax
else
var.XYpadXmidiCC = floor(MapRange(var.XYpadX, 0, var.XYpadXmax, var.XYpadXmidiMin, var.XYpadXmidiMax))
endif
midi.Control0Coarse = var.XYpadXmidiCC%
endif
if (var.XYpadYdelta != 0) then
var.XYpadY = var.XYpadY - var.XYpadYdelta
if (var.XYpadY < 0) then
var.XYpadY = 0
elseif (var.XYpadY > var.XYpadYmax) then
var.XYpadY = var.XYpadYmax
elseif (var.XYpadY < var.XYpadYborder) then
var.XYpadYmidiCC = var.XYpadYmidiMin
elseif (var.XYpadY > var.XYpadYres + var.XYpadYborder) then
var.XYpadYmidiCC = var.XYpadYmidiMax
else
var.XYpadYmidiCC = MapRange(var.XYpadY, 0, var.XYpadYmax, var.XYpadYmidiMin, var.XYpadYmidiMax)
endif
midi.Control1Coarse = var.XYpadYmidiCC%
endif
else
if (var.XYpadMode == 1 && var.XYpadReset == 0) then
if (var.XYpadTime < TimeStamp() - var.XYpadMode1Time) then
var.XYpadX = floor(var.XYpadXres / 2)
var.XYpadY = floor(var.XYpadYres / 2)
var.XYpadReset = 1
endif
endif
endif
endif
Bookmarks