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