Thanks for the pointers. I spent some time last night finding the gamepad code in the Chromium sources, although I haven't had a chance to really read it properly.
It makes sense that you'd read against some kind of OS-specific abstraction, but I was curious what it was because I don't see any gamepad config or listing in the Mac OS Settings panels. Sounds like I'm going to be reading some source code… :-) Thanks again, Zellyn On Tuesday, March 27, 2018 at 8:31:23 AM UTC-4, Egon wrote: > > Ah, just noticed the Mac part... > > https://github.com/glfw/glfw/blob/master/src/cocoa_joystick.m > > Also Chromium source for the Gamepad implementation: > > > https://cs.chromium.org/chromium/src/device/gamepad/?q=gamepad&sq=package:chromium&dr > > Unfortunately I didn't notice a Go gamepad implementation for Mac... > however there might be one. > > On Tuesday, 27 March 2018 15:02:10 UTC+3, Egon wrote: >> >> Usually controllers don't speak directly to your application nor browser. >> >> Usually there is a driver that the controller has, this talks with the >> appropriate protocol to the device. The driver itself provides some common >> HID api that the OS has specified. >> >> The reading and writing the input is effectively about communicating with >> the OS. >> >> https://github.com/glfw/glfw/blob/master/src/linux_joystick.c >> https://github.com/glfw/glfw/blob/master/src/win32_joystick.c >> >> You can do those calls using syscall package, e.g. one for Windows >> >> >> https://github.com/egonelbre/exp/blob/master/game/gamepad/xinput_windows.go >> >> and a quick search on godoc.org revealed this: >> https://godoc.org/?q=joystick >> https://github.com/simulatedsimian/joystick >> >> Of course since it's OS specific, you need to implement for all of them. >> Where each might their own quirks. >> >> SDL and GLFW are both thoroughly tested. I'm not sure about the existing >> package, but it shouldn't be difficult to switch when you do encounter >> problems with the pure Go libs. >> >> + Egon >> >> On Tuesday, 27 March 2018 05:19:24 UTC+3, Zellyn wrote: >>> >>> Inspired by a Wired article >>> <https://www.wired.com/story/xbox-one-x-and-xbox-one-deals/> mentioning >>> XBox One gamepads for $34, I finally got a game controller. >>> >>> Naturally, now I'm wondering how to read it from Go :-) >>> >>> It connects to Mac OS over Bluetooth. Various games seem to vary in >>> whether they recognize or even notice it, but it works flawlessly in Chrome >>> using http://html5gamepad.com/ >>> <http://www.google.com/url?q=http%3A%2F%2Fhtml5gamepad.com%2F&sa=D&sntz=1&usg=AFQjCNHgk2HZ9Nwso2KFkEVEFST54APnmQ> >>> >>> So, if there's anyone here who even begins to know how gamepads work… am >>> I about to wade into an ocean of pain? I'd *like* to avoid linking to >>> sdl as gobot seems to do for joysticks: it would be lovely to have >>> something in pure Go. Is that unlikely? >>> >>> How are games (and Chrome) even finding the controller? Do they have to >>> interrogate the Bluetooth stack, and then speak both Bluetooth and the XBox >>> controller protocol? >>> >>> Any help appreciated. >>> >>> Zellyn >>> >>> -- You received this message because you are subscribed to the Google Groups "golang-nuts" group. To unsubscribe from this group and stop receiving emails from it, send an email to golang-nuts+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.