added example ahk script
This commit is contained in:
		
							parent
							
								
									b3ba1a0f84
								
							
						
					
					
						commit
						782cb439e5
					
				
							
								
								
									
										47
									
								
								examples/simple_example.ahk
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										47
									
								
								examples/simple_example.ahk
									
									
									
									
									
										Normal 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…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user