1
0
mirror of https://github.com/hybridgroup/gobot.git synced 2025-04-27 13:48:56 +08:00
hybridgroup.gobot/platforms/joystick/joystick_adaptor.go

36 lines
628 B
Go
Raw Normal View History

2014-04-27 18:02:39 -07:00
package joystick
import (
"github.com/hybridgroup/go-sdl2/sdl"
"github.com/hybridgroup/gobot"
)
type JoystickAdaptor struct {
gobot.Adaptor
joystick *sdl.Joystick
2014-04-27 18:02:39 -07:00
connect func(*JoystickAdaptor)
}
2014-04-27 18:02:39 -07:00
func NewJoystickAdaptor() *JoystickAdaptor {
return &JoystickAdaptor{
connect: func(j *JoystickAdaptor) {
sdl.Init(sdl.INIT_JOYSTICK)
if sdl.NumJoysticks() > 0 {
j.joystick = sdl.JoystickOpen(0)
} else {
panic("No joystick available")
}
},
}
}
2014-04-27 18:02:39 -07:00
func (j *JoystickAdaptor) Connect() bool {
j.connect(j)
return true
}
2014-04-27 18:02:39 -07:00
func (j *JoystickAdaptor) Finalize() bool {
j.joystick.Close()
return true
}