[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [16327] trunk/blender/source/gameengine/ GameLogic: BGE joystick sensor py api function 'getConnected()', returns true if the joystick is connected and working.
Campbell Barton
ideasman42 at gmail.com
Mon Sep 1 08:25:13 CEST 2008
Revision: 16327
http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=16327
Author: campbellbarton
Date: 2008-09-01 08:25:13 +0200 (Mon, 01 Sep 2008)
Log Message:
-----------
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.
Modified Paths:
--------------
trunk/blender/source/gameengine/GameLogic/Joystick/SCA_Joystick.cpp
trunk/blender/source/gameengine/GameLogic/Joystick/SCA_Joystick.h
trunk/blender/source/gameengine/GameLogic/SCA_JoystickSensor.cpp
trunk/blender/source/gameengine/GameLogic/SCA_JoystickSensor.h
Modified: trunk/blender/source/gameengine/GameLogic/Joystick/SCA_Joystick.cpp
===================================================================
--- trunk/blender/source/gameengine/GameLogic/Joystick/SCA_Joystick.cpp 2008-09-01 04:09:07 UTC (rev 16326)
+++ trunk/blender/source/gameengine/GameLogic/Joystick/SCA_Joystick.cpp 2008-09-01 06:25:13 UTC (rev 16327)
@@ -367,6 +367,16 @@
}
}
+int SCA_Joystick::Connected(void)
+{
+ if (m_isinit){
+ if(SDL_JoystickOpened(m_joyindex)){
+ return 1;
+ }
+ }
+
+ return 0;
+}
void SCA_Joystick::pFillAxes()
{
Modified: trunk/blender/source/gameengine/GameLogic/Joystick/SCA_Joystick.h
===================================================================
--- trunk/blender/source/gameengine/GameLogic/Joystick/SCA_Joystick.h 2008-09-01 04:09:07 UTC (rev 16326)
+++ trunk/blender/source/gameengine/GameLogic/Joystick/SCA_Joystick.h 2008-09-01 06:25:13 UTC (rev 16327)
@@ -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 @@
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 @@
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 @@
}
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);
};
Modified: trunk/blender/source/gameengine/GameLogic/SCA_JoystickSensor.cpp
===================================================================
--- trunk/blender/source/gameengine/GameLogic/SCA_JoystickSensor.cpp 2008-09-01 04:09:07 UTC (rev 16326)
+++ trunk/blender/source/gameengine/GameLogic/SCA_JoystickSensor.cpp 2008-09-01 06:25:13 UTC (rev 16327)
@@ -296,7 +296,7 @@
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 @@
{"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
};
@@ -474,3 +475,11 @@
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() );
+}
Modified: trunk/blender/source/gameengine/GameLogic/SCA_JoystickSensor.h
===================================================================
--- trunk/blender/source/gameengine/GameLogic/SCA_JoystickSensor.h 2008-09-01 04:09:07 UTC (rev 16326)
+++ trunk/blender/source/gameengine/GameLogic/SCA_JoystickSensor.h 2008-09-01 06:25:13 UTC (rev 16327)
@@ -131,6 +131,7 @@
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);
};
More information about the Bf-blender-cvs
mailing list