[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