BGE joystick sensor py api function 'getConnected()', returns true if the joystick is connected and working.
SCA_Joystick.h seemed to have twice as many newlines as needed.
This commit is contained in:
@@ -367,6 +367,16 @@ void SCA_Joystick::DestroyJoystickDevice(void)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int SCA_Joystick::Connected(void)
|
||||||
|
{
|
||||||
|
if (m_isinit){
|
||||||
|
if(SDL_JoystickOpened(m_joyindex)){
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
void SCA_Joystick::pFillAxes()
|
void SCA_Joystick::pFillAxes()
|
||||||
{
|
{
|
||||||
|
@@ -1,72 +1,36 @@
|
|||||||
/**
|
/**
|
||||||
|
|
||||||
* ***** BEGIN GPL LICENSE BLOCK *****
|
* ***** BEGIN GPL LICENSE BLOCK *****
|
||||||
|
|
||||||
*
|
*
|
||||||
|
|
||||||
* This program is free software; you can redistribute it and/or
|
* This program is free software; you can redistribute it and/or
|
||||||
|
|
||||||
* modify it under the terms of the GNU General Public License
|
* modify it under the terms of the GNU General Public License
|
||||||
|
|
||||||
* as published by the Free Software Foundation; either version 2
|
* as published by the Free Software Foundation; either version 2
|
||||||
|
|
||||||
* of the License, or (at your option) any later version.
|
* of the License, or (at your option) any later version.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
*
|
*
|
||||||
|
|
||||||
* This program is distributed in the hope that it will be useful,
|
* This program is distributed in the hope that it will be useful,
|
||||||
|
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
|
||||||
* GNU General Public License for more details.
|
* GNU General Public License for more details.
|
||||||
|
|
||||||
*
|
*
|
||||||
|
|
||||||
* You should have received a copy of the GNU General Public License
|
* You should have received a copy of the GNU General Public License
|
||||||
|
|
||||||
* along with this program; if not, write to the Free Software Foundation,
|
* along with this program; if not, write to the Free Software Foundation,
|
||||||
|
|
||||||
* Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
* Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||||
|
|
||||||
*
|
*
|
||||||
|
|
||||||
* The Original Code is Copyright (C) 2001-2002 by NaN Holding BV.
|
* The Original Code is Copyright (C) 2001-2002 by NaN Holding BV.
|
||||||
|
|
||||||
* All rights reserved.
|
* All rights reserved.
|
||||||
|
|
||||||
*
|
*
|
||||||
|
|
||||||
* The Original Code is: all of this file.
|
* The Original Code is: all of this file.
|
||||||
|
|
||||||
*
|
*
|
||||||
|
|
||||||
* Contributor(s): snailrose.
|
* Contributor(s): snailrose.
|
||||||
|
|
||||||
*
|
*
|
||||||
|
|
||||||
* ***** END GPL LICENSE BLOCK *****
|
* ***** END GPL LICENSE BLOCK *****
|
||||||
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#ifndef _SCA_JOYSTICK_H_
|
#ifndef _SCA_JOYSTICK_H_
|
||||||
|
|
||||||
#define _SCA_JOYSTICK_H_
|
#define _SCA_JOYSTICK_H_
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
#include "SCA_JoystickDefines.h"
|
#include "SCA_JoystickDefines.h"
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
|
||||||
* Basic Joystick class
|
* Basic Joystick class
|
||||||
* I will make this class a singleton because there should be only one joystick
|
* I will make this class a singleton because there should be only one joystick
|
||||||
* even if there are more than one scene using it and count how many scene are using it.
|
* even if there are more than one scene using it and count how many scene are using it.
|
||||||
@@ -86,169 +50,105 @@ class SCA_Joystick
|
|||||||
int m_joyindex;
|
int m_joyindex;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
|
||||||
*support for 2 axes
|
*support for 2 axes
|
||||||
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
int m_axis10,m_axis11;
|
int m_axis10,m_axis11;
|
||||||
|
|
||||||
int m_axis20,m_axis21;
|
int m_axis20,m_axis21;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
|
||||||
* Precision or range of the axes
|
* Precision or range of the axes
|
||||||
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
int m_prec;
|
int m_prec;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
|
||||||
* multiple axis values stored here
|
* multiple axis values stored here
|
||||||
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
int m_axisnum;
|
int m_axisnum;
|
||||||
|
|
||||||
int m_axisvalue;
|
int m_axisvalue;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
|
||||||
* max # of axes avail
|
* max # of axes avail
|
||||||
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/*disabled
|
/*disabled
|
||||||
|
|
||||||
int m_axismax;
|
int m_axismax;
|
||||||
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
|
||||||
* button values stored here
|
* button values stored here
|
||||||
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
int m_buttonnum;
|
int m_buttonnum;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
|
||||||
* max # of buttons avail
|
* max # of buttons avail
|
||||||
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
int m_buttonmax;
|
int m_buttonmax;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
|
||||||
* hat values stored here
|
* hat values stored here
|
||||||
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
int m_hatnum;
|
int m_hatnum;
|
||||||
|
|
||||||
int m_hatdir;
|
int m_hatdir;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
|
||||||
* max # of hats avail
|
* max # of hats avail
|
||||||
|
|
||||||
disabled
|
disabled
|
||||||
|
|
||||||
int m_hatmax;
|
int m_hatmax;
|
||||||
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/* is the joystick initialized ?*/
|
/* is the joystick initialized ?*/
|
||||||
|
|
||||||
bool m_isinit;
|
bool m_isinit;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/* is triggered */
|
/* is triggered */
|
||||||
|
|
||||||
bool m_istrig;
|
bool m_istrig;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
|
||||||
* Open the joystick
|
* Open the joystick
|
||||||
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
bool CreateJoystickDevice(void);
|
bool CreateJoystickDevice(void);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
|
||||||
* Close the joystick
|
* Close the joystick
|
||||||
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
void DestroyJoystickDevice(void);
|
void DestroyJoystickDevice(void);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
|
||||||
* event callbacks
|
* event callbacks
|
||||||
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
void OnAxisMotion(void);
|
void OnAxisMotion(void);
|
||||||
|
|
||||||
void OnHatMotion(void);
|
void OnHatMotion(void);
|
||||||
|
|
||||||
void OnButtonUp(void);
|
void OnButtonUp(void);
|
||||||
|
|
||||||
void OnButtonDown(void);
|
void OnButtonDown(void);
|
||||||
|
|
||||||
void OnNothing(void);
|
void OnNothing(void);
|
||||||
|
|
||||||
void OnBallMotion(void){}
|
void OnBallMotion(void){}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
|
||||||
* fills the axis mnember values
|
* fills the axis mnember values
|
||||||
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
void pFillAxes(void);
|
void pFillAxes(void);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
void pFillButtons(void);
|
void pFillButtons(void);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
|
||||||
* returns m_axis10,m_axis11...
|
* returns m_axis10,m_axis11...
|
||||||
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
int pGetAxis(int axisnum, int udlr);
|
int pGetAxis(int axisnum, int udlr);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
|
||||||
* gets the current button
|
* gets the current button
|
||||||
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
int pGetButtonPress(int button);
|
int pGetButtonPress(int button);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
|
||||||
* returns if no button is pressed
|
* returns if no button is pressed
|
||||||
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
int pGetButtonRelease(int button);
|
int pGetButtonRelease(int button);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
|
||||||
* gets the current hat direction
|
* gets the current hat direction
|
||||||
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
int pGetHat(int direction);
|
int pGetHat(int direction);
|
||||||
|
|
||||||
SCA_Joystick(short int index);
|
SCA_Joystick(short int index);
|
||||||
@@ -258,40 +158,27 @@ class SCA_Joystick
|
|||||||
public:
|
public:
|
||||||
|
|
||||||
static SCA_Joystick *GetInstance( short int joyindex );
|
static SCA_Joystick *GetInstance( short int joyindex );
|
||||||
|
|
||||||
void ReleaseInstance();
|
void ReleaseInstance();
|
||||||
|
|
||||||
|
|
||||||
void HandleEvents();
|
void HandleEvents();
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
bool aUpAxisIsPositive(int axis);
|
bool aUpAxisIsPositive(int axis);
|
||||||
|
|
||||||
bool aDownAxisIsPositive(int axis);
|
bool aDownAxisIsPositive(int axis);
|
||||||
|
|
||||||
bool aLeftAxisIsPositive(int axis);
|
bool aLeftAxisIsPositive(int axis);
|
||||||
|
|
||||||
bool aRightAxisIsPositive(int axis);
|
bool aRightAxisIsPositive(int axis);
|
||||||
|
|
||||||
bool aButtonPressIsPositive(int button);
|
bool aButtonPressIsPositive(int button);
|
||||||
|
|
||||||
bool aButtonReleaseIsPositive(int button);
|
bool aButtonReleaseIsPositive(int button);
|
||||||
|
|
||||||
bool aHatIsPositive(int dir);
|
bool aHatIsPositive(int dir);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
|
||||||
* precision is default '3200' which is overridden by input
|
* precision is default '3200' which is overridden by input
|
||||||
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
void cSetPrecision(int val);
|
void cSetPrecision(int val);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
int GetAxis10(void){
|
int GetAxis10(void){
|
||||||
|
|
||||||
return m_axis10;
|
return m_axis10;
|
||||||
@@ -299,77 +186,55 @@ public:
|
|||||||
}
|
}
|
||||||
|
|
||||||
int GetAxis11(void){
|
int GetAxis11(void){
|
||||||
|
|
||||||
return m_axis11;
|
return m_axis11;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
int GetAxis20(void){
|
int GetAxis20(void){
|
||||||
|
|
||||||
return m_axis20;
|
return m_axis20;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
int GetAxis21(void){
|
int GetAxis21(void){
|
||||||
|
|
||||||
return m_axis21;
|
return m_axis21;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
int GetButton(void){
|
int GetButton(void){
|
||||||
|
|
||||||
return m_buttonnum;
|
return m_buttonnum;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
int GetHat(void){
|
int GetHat(void){
|
||||||
|
|
||||||
return m_hatdir;
|
return m_hatdir;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
int GetThreshold(void){
|
int GetThreshold(void){
|
||||||
|
|
||||||
return m_prec;
|
return m_prec;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
bool IsTrig(void){
|
bool IsTrig(void){
|
||||||
|
|
||||||
return m_istrig;
|
return m_istrig;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
|
||||||
* returns true if an event is being processed
|
* returns true if an event is being processed
|
||||||
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
bool GetJoyAxisMotion(void);
|
bool GetJoyAxisMotion(void);
|
||||||
|
|
||||||
bool GetJoyButtonPress(void);
|
bool GetJoyButtonPress(void);
|
||||||
|
|
||||||
bool GetJoyButtonRelease(void);
|
bool GetJoyButtonRelease(void);
|
||||||
|
|
||||||
bool GetJoyHatMotion(void);
|
bool GetJoyHatMotion(void);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
|
||||||
* returns the # of...
|
* returns the # of...
|
||||||
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
int GetNumberOfAxes(void);
|
int GetNumberOfAxes(void);
|
||||||
|
|
||||||
int GetNumberOfButtons(void);
|
int GetNumberOfButtons(void);
|
||||||
|
|
||||||
int GetNumberOfHats(void);
|
int GetNumberOfHats(void);
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Test if the joystick is connected
|
||||||
|
*/
|
||||||
|
int Connected(void);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
@@ -309,6 +309,7 @@ PyMethodDef SCA_JoystickSensor::Methods[] = {
|
|||||||
{"getNumAxes", (PyCFunction) SCA_JoystickSensor::sPyNumberOfAxes, METH_NOARGS, NumberOfAxes_doc},
|
{"getNumAxes", (PyCFunction) SCA_JoystickSensor::sPyNumberOfAxes, METH_NOARGS, NumberOfAxes_doc},
|
||||||
{"getNumButtons",(PyCFunction) SCA_JoystickSensor::sPyNumberOfButtons,METH_NOARGS, NumberOfButtons_doc},
|
{"getNumButtons",(PyCFunction) SCA_JoystickSensor::sPyNumberOfButtons,METH_NOARGS, NumberOfButtons_doc},
|
||||||
{"getNumHats", (PyCFunction) SCA_JoystickSensor::sPyNumberOfHats, METH_NOARGS, NumberOfHats_doc},
|
{"getNumHats", (PyCFunction) SCA_JoystickSensor::sPyNumberOfHats, METH_NOARGS, NumberOfHats_doc},
|
||||||
|
{"getConnected", (PyCFunction) SCA_JoystickSensor::sPyConnected, METH_NOARGS, Connected_doc},
|
||||||
{NULL,NULL} //Sentinel
|
{NULL,NULL} //Sentinel
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -333,7 +334,7 @@ char SCA_JoystickSensor::SetIndex_doc[] =
|
|||||||
"\tSets the joystick index to use.\n";
|
"\tSets the joystick index to use.\n";
|
||||||
PyObject* SCA_JoystickSensor::PySetIndex( PyObject* self, PyObject* value ) {
|
PyObject* SCA_JoystickSensor::PySetIndex( PyObject* self, PyObject* value ) {
|
||||||
int index = PyInt_AsLong( value ); /* -1 on error, will raise an error in this case */
|
int index = PyInt_AsLong( value ); /* -1 on error, will raise an error in this case */
|
||||||
if (index < 0 or index >= JOYINDEX_MAX) {
|
if (index < 0 || index >= JOYINDEX_MAX) {
|
||||||
PyErr_SetString(PyExc_ValueError, "joystick index out of range or not an int");
|
PyErr_SetString(PyExc_ValueError, "joystick index out of range or not an int");
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
@@ -474,3 +475,11 @@ PyObject* SCA_JoystickSensor::PyNumberOfHats( PyObject* self ) {
|
|||||||
SCA_Joystick *joy = m_pJoystickMgr->GetJoystickDevice(m_joyindex);
|
SCA_Joystick *joy = m_pJoystickMgr->GetJoystickDevice(m_joyindex);
|
||||||
return PyInt_FromLong( joy->GetNumberOfHats() );
|
return PyInt_FromLong( joy->GetNumberOfHats() );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
char SCA_JoystickSensor::Connected_doc[] =
|
||||||
|
"getConnected\n"
|
||||||
|
"\tReturns True if a joystick is connected at this joysticks index.\n";
|
||||||
|
PyObject* SCA_JoystickSensor::PyConnected( PyObject* self ) {
|
||||||
|
SCA_Joystick *joy = m_pJoystickMgr->GetJoystickDevice(m_joyindex);
|
||||||
|
return PyBool_FromLong( joy->Connected() );
|
||||||
|
}
|
||||||
|
@@ -131,6 +131,7 @@ public:
|
|||||||
KX_PYMETHOD_DOC_NOARGS(SCA_JoystickSensor,NumberOfAxes);
|
KX_PYMETHOD_DOC_NOARGS(SCA_JoystickSensor,NumberOfAxes);
|
||||||
KX_PYMETHOD_DOC_NOARGS(SCA_JoystickSensor,NumberOfButtons);
|
KX_PYMETHOD_DOC_NOARGS(SCA_JoystickSensor,NumberOfButtons);
|
||||||
KX_PYMETHOD_DOC_NOARGS(SCA_JoystickSensor,NumberOfHats);
|
KX_PYMETHOD_DOC_NOARGS(SCA_JoystickSensor,NumberOfHats);
|
||||||
|
KX_PYMETHOD_DOC_NOARGS(SCA_JoystickSensor,Connected);
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user