2014-04-27 18:02:39 -07:00
|
|
|
package joystick
|
2014-04-26 03:11:51 -07:00
|
|
|
|
|
|
|
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-26 03:11:51 -07:00
|
|
|
}
|
|
|
|
|
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-26 03:11:51 -07:00
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2014-04-27 18:02:39 -07:00
|
|
|
func (j *JoystickAdaptor) Connect() bool {
|
|
|
|
j.connect(j)
|
2014-04-26 03:11:51 -07:00
|
|
|
return true
|
|
|
|
}
|
|
|
|
|
2014-04-27 18:02:39 -07:00
|
|
|
func (j *JoystickAdaptor) Finalize() bool {
|
|
|
|
j.joystick.Close()
|
2014-04-26 03:11:51 -07:00
|
|
|
return true
|
|
|
|
}
|