05-31-2024, 04:29 PM
(05-31-2024, 03:50 PM)dano Wrote:(05-29-2024, 01:47 AM)SMcNeill Wrote: Example of using devices for this:
Code: (Select All)d% = _Devices 'always read number of devices to enable device input
Do
_Limit 30 'main loop
Do While _DeviceInput(1) 'loop only runs during a device 1 keyboard
For i = 1 To _LastButton(1)
If _Button(i) <> 0 And i <> 30 Then
If _Button(30) Then
Print "Left CTRL + Keycode #"; i; "down"
Else
Print "KeyCode #"; i; "down"
End If
End If
Next
Loop
Loop Until InKey$ = Chr$(27)
End
Note that the keycodes here are different than whay you get for INKEY$ or _KEYHIT. These are mapped to the same as INP keycodes, if I remember correctly. See the wiki for full details and mapping listing.
Took me a couple of minutes to understand the logic where you exclude 30 (If _Button(i) <> 0 And i <> 30 Then)...and then test for 30. I like what you did there! I was able to integrate _Devices with my Inkey$ routine and was able to get this working.
As always Steve you are a wealth of knowledge and a great asset to this community, so a big Thank You for your help. BTW, are there plans to fix this "glut issue" ?
Always been plans to fix the glut issue.
The problem is glut is one of the underlying libraries which does just about everything for us. it helps with making screens and graphics and windows and handles input and honestly, I have no idea how deeply entrenched it is into all our core processes anymore!
The goal, eventually, is to move away from glut as it's buggy on oh-so-many levels... We've been swapping in and out various libraries over time, heading ever closer to the point where we don't rely on glut so much, but I wouldn't hold my breath in anticipation for a replacement anytime soon. For the last two years, we've talked about replacing glut with a different library...
...and it still hasn't happened yet.
Someday though... Someday!
Quote: Took me a couple of minutes to understand the logic where you exclude 30 (If _Button(i) <> 0 And i <> 30 Then)...and then test for 30. I like what you did there!The exclude was basically just to stop us from printing something odd like "CTRL + 30 down" -- which would be "CTRL + CTRL down".