Browse Source

added example ahk script

tags/0.2
Ludwig Frühschütz 3 years ago
parent
commit
782cb439e5
1 changed files with 47 additions and 0 deletions
  1. +47
    -0
      examples/simple_example.ahk

+ 47
- 0
examples/simple_example.ahk View File

@ -0,0 +1,47 @@
#NoEnv
; #Warn
SendMode Input
SetWorkingDir %A_ScriptDir% ; Until here, this is the default script template
; Get handle to this running script instance
Gui +LastFound
hWnd := WinExist()
; just for convenience, you also could use the "magic numbers" directly
global oscTypeNone := 1
global oscTypeInt := 2
global oscTypeFloat := 4
global oscTypeString := 8
global oscTypeAll := 0xffffffff
; Load DLL and open network port for OSC (7001)
DllCall("LoadLibrary", "Str", "OSC2AHK.dll", "Ptr")
DllCall("OSC2AHK.dll\open", UInt, hWnd, UInt, 7001)
; Tell the DLL to post a system message with ID 0x1001 when a OSC message with address "/test1" and type Integer or Float is received.
DllCall("OSC2AHK.dll\addListener", AStr, "/test1", UInt, 0x1001, UInt, oscTypeInt+oscTypeFloat)
; Tell AHK to invoke the function msghandlerTest1 when a windows message with ID 0x1001 is received
OnMessage(0x1001, "msghandlerTest1")
; This function effectively is called for each OSC message as specified above
msghandlerTest1(oscType, data, msgID, hwnd)
{
; Check which datatype we received (above we accepted Float and Int)
if (oscType = oscTypeInt)
{
; Integers can be used "as is"
msgbox,Got Integer: %data%
}
if (oscType = oscTypeFloat)
{
; Floats have to be "reinterpreted"
VarSetCapacity(buf, 4, 0)
NumPut(data, buf)
theFloat := NumGet(buf, "Float")
msgbox,Got Float: %theFloat%
}
}
; Shutdown the script with Shift+ESC
+Esc::
ExitApp

Loading…
Cancel
Save