[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [19447] trunk/blender/source/gameengine: BGE API cleanup: CDActuator, ParentActuator, VisibilityActuator done.
Benoit Bolsee
benoit.bolsee at online.be
Sun Mar 29 17:17:55 CEST 2009
Revision: 19447
http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=19447
Author: ben2610
Date: 2009-03-29 17:17:55 +0200 (Sun, 29 Mar 2009)
Log Message:
-----------
BGE API cleanup: CDActuator, ParentActuator, VisibilityActuator done. Thanks to Andre.
Modified Paths:
--------------
trunk/blender/source/gameengine/Ketsji/KX_CDActuator.cpp
trunk/blender/source/gameengine/Ketsji/KX_CDActuator.h
trunk/blender/source/gameengine/Ketsji/KX_ParentActuator.cpp
trunk/blender/source/gameengine/Ketsji/KX_ParentActuator.h
trunk/blender/source/gameengine/Ketsji/KX_VisibilityActuator.cpp
trunk/blender/source/gameengine/Ketsji/KX_VisibilityActuator.h
trunk/blender/source/gameengine/PyDoc/KX_CDActuator.py
trunk/blender/source/gameengine/PyDoc/KX_ParentActuator.py
trunk/blender/source/gameengine/PyDoc/KX_VisibilityActuator.py
Modified: trunk/blender/source/gameengine/Ketsji/KX_CDActuator.cpp
===================================================================
--- trunk/blender/source/gameengine/Ketsji/KX_CDActuator.cpp 2009-03-29 08:40:43 UTC (rev 19446)
+++ trunk/blender/source/gameengine/Ketsji/KX_CDActuator.cpp 2009-03-29 15:17:55 UTC (rev 19447)
@@ -98,7 +98,7 @@
SND_CDObject::Instance()->SetPlaymode(SND_CD_ALL);
SND_CDObject::Instance()->SetTrack(1);
SND_CDObject::Instance()->SetPlaystate(SND_MUST_PLAY);
- result = true;
+ //result = true;
break;
}
case KX_CDACT_PLAY_TRACK:
@@ -106,7 +106,7 @@
SND_CDObject::Instance()->SetPlaymode(SND_CD_TRACK);
SND_CDObject::Instance()->SetTrack(m_track);
SND_CDObject::Instance()->SetPlaystate(SND_MUST_PLAY);
- result = true;
+ //result = true;
break;
}
case KX_CDACT_LOOP_TRACK:
@@ -114,7 +114,7 @@
SND_CDObject::Instance()->SetPlaymode(SND_CD_ALL);
SND_CDObject::Instance()->SetTrack(m_track);
SND_CDObject::Instance()->SetPlaystate(SND_MUST_PLAY);
- result = true;
+ //result = true;
break;
}
case KX_CDACT_STOP:
@@ -125,19 +125,19 @@
case KX_CDACT_PAUSE:
{
SND_CDObject::Instance()->SetPlaystate(SND_MUST_PAUSE);
- result = true;
+ //result = true;
break;
}
case KX_CDACT_RESUME:
{
SND_CDObject::Instance()->SetPlaystate(SND_MUST_RESUME);
- result = true;
+ //result = true;
break;
}
case KX_CDACT_VOLUME:
{
SND_CDObject::Instance()->SetGain(m_gain);
- result = true;
+ //result = true;
break;
}
default:
@@ -189,53 +189,116 @@
PyMethodDef KX_CDActuator::Methods[] = {
- {"startCD",(PyCFunction) KX_CDActuator::sPyStartCD,METH_VARARGS,NULL},
- {"pauseCD",(PyCFunction) KX_CDActuator::sPyPauseCD,METH_VARARGS,NULL},
- {"stopCD",(PyCFunction) KX_CDActuator::sPyStopCD,METH_VARARGS,NULL},
+ // Deprecated ----->
{"setGain",(PyCFunction) KX_CDActuator::sPySetGain,METH_VARARGS,NULL},
{"getGain",(PyCFunction) KX_CDActuator::sPyGetGain,METH_VARARGS,NULL},
+ // <-----
+ KX_PYMETHODTABLE_NOARGS(KX_CDActuator, startCD),
+ KX_PYMETHODTABLE_NOARGS(KX_CDActuator, pauseCD),
+ KX_PYMETHODTABLE_NOARGS(KX_CDActuator, resumeCD),
+ KX_PYMETHODTABLE_NOARGS(KX_CDActuator, stopCD),
+ KX_PYMETHODTABLE_NOARGS(KX_CDActuator, playAll),
+ KX_PYMETHODTABLE_O(KX_CDActuator, playTrack),
{NULL,NULL,NULL,NULL} //Sentinel
};
PyAttributeDef KX_CDActuator::Attributes[] = {
+ KX_PYATTRIBUTE_FLOAT_RW_CHECK("volume", 0.0, 1.0, KX_CDActuator, m_gain,pyattr_setGain),
+ KX_PYATTRIBUTE_INT_RW("track", 1, 99, false, KX_CDActuator, m_track),
{ NULL } //Sentinel
};
+int KX_CDActuator::pyattr_setGain(void *self, const struct KX_PYATTRIBUTE_DEF *attrdef)
+{
+ KX_CDActuator* act = static_cast<KX_CDActuator*>(self);
+ SND_CDObject::Instance()->SetGain(act->m_gain);
+ return 0;
+}
+
PyObject* KX_CDActuator::_getattr(const char *attr)
{
+ PyObject* object = _getattr_self(Attributes, this, attr);
+ if (object != NULL)
+ return object;
_getattr_up(SCA_IActuator);
}
+int KX_CDActuator::_setattr(const char *attr, PyObject *value)
+{
+ int ret = _setattr_self(Attributes, this, attr, value);
+ if (ret >= 0)
+ return ret;
+ return SCA_IActuator::_setattr(attr, value);
+}
-PyObject* KX_CDActuator::PyStartCD(PyObject* self, PyObject* args, PyObject* kwds)
+KX_PYMETHODDEF_DOC_NOARGS(KX_CDActuator, startCD,
+"startCD()\n"
+"\tStarts the CD playing.\n")
{
SND_CDObject::Instance()->SetPlaystate(SND_MUST_PLAY);
Py_RETURN_NONE;
}
-
-PyObject* KX_CDActuator::PyPauseCD(PyObject* self, PyObject* args, PyObject* kwds)
+KX_PYMETHODDEF_DOC_NOARGS(KX_CDActuator, pauseCD,
+"pauseCD()\n"
+"\tPauses the CD playing.\n")
{
SND_CDObject::Instance()->SetPlaystate(SND_MUST_PAUSE);
Py_RETURN_NONE;
}
+KX_PYMETHODDEF_DOC_NOARGS(KX_CDActuator, resumeCD,
+"resumeCD()\n"
+"\tResumes the CD playing.\n")
+{
+ SND_CDObject::Instance()->SetPlaystate(SND_MUST_RESUME);
+ Py_RETURN_NONE;
+}
-PyObject* KX_CDActuator::PyStopCD(PyObject* self, PyObject* args, PyObject* kwds)
+
+KX_PYMETHODDEF_DOC_NOARGS(KX_CDActuator, stopCD,
+"stopCD()\n"
+"\tStops the CD playing.\n")
{
SND_CDObject::Instance()->SetPlaystate(SND_MUST_STOP);
Py_RETURN_NONE;
}
+KX_PYMETHODDEF_DOC_O(KX_CDActuator, playTrack,
+"playTrack(trackNumber)\n"
+"\tPlays the track selected.\n")
+{
+ if (PyInt_Check(value)) {
+ int track = PyInt_AsLong(value);
+ SND_CDObject::Instance()->SetPlaymode(SND_CD_TRACK);
+ SND_CDObject::Instance()->SetTrack(track);
+ SND_CDObject::Instance()->SetPlaystate(SND_MUST_PLAY);
+ }
+ Py_RETURN_NONE;
+}
+
+
+KX_PYMETHODDEF_DOC_NOARGS(KX_CDActuator, playAll,
+"playAll()\n"
+"\tPlays the CD from the beginning.\n")
+{
+ SND_CDObject::Instance()->SetPlaymode(SND_CD_ALL);
+ SND_CDObject::Instance()->SetTrack(1);
+ SND_CDObject::Instance()->SetPlaystate(SND_MUST_PLAY);
+ Py_RETURN_NONE;
+}
+
+// Deprecated ----->
PyObject* KX_CDActuator::PySetGain(PyObject* self, PyObject* args, PyObject* kwds)
{
float gain = 1.0;
+ ShowDeprecationWarning("setGain()", "the volume property");
if (!PyArg_ParseTuple(args, "f", &gain))
return NULL;
@@ -249,7 +312,9 @@
PyObject* KX_CDActuator::PyGetGain(PyObject* self, PyObject* args, PyObject* kwds)
{
float gain = SND_CDObject::Instance()->GetGain();
+ ShowDeprecationWarning("getGain()", "the volume property");
PyObject* result = PyFloat_FromDouble(gain);
return result;
}
+// <-----
Modified: trunk/blender/source/gameengine/Ketsji/KX_CDActuator.h
===================================================================
--- trunk/blender/source/gameengine/Ketsji/KX_CDActuator.h 2009-03-29 08:40:43 UTC (rev 19446)
+++ trunk/blender/source/gameengine/Ketsji/KX_CDActuator.h 2009-03-29 15:17:55 UTC (rev 19447)
@@ -82,12 +82,23 @@
/* -------------------------------------------------------------------- */
virtual PyObject* _getattr(const char *attr);
+ virtual int _setattr(const char *attr, PyObject *value);
- KX_PYMETHOD(KX_CDActuator,StartCD);
- KX_PYMETHOD(KX_CDActuator,PauseCD);
- KX_PYMETHOD(KX_CDActuator,StopCD);
+ // Deprecated ----->
KX_PYMETHOD(KX_CDActuator,SetGain);
KX_PYMETHOD(KX_CDActuator,GetGain);
+ // <-----
+
+ KX_PYMETHOD_DOC_NOARGS(KX_CDActuator, startCD);
+ KX_PYMETHOD_DOC_NOARGS(KX_CDActuator, pauseCD);
+ KX_PYMETHOD_DOC_NOARGS(KX_CDActuator, resumeCD);
+ KX_PYMETHOD_DOC_NOARGS(KX_CDActuator, stopCD);
+ KX_PYMETHOD_DOC_NOARGS(KX_CDActuator, playAll);
+ KX_PYMETHOD_DOC_O(KX_CDActuator, playTrack);
+
+ static int pyattr_setGain(void *self, const struct KX_PYATTRIBUTE_DEF *attrdef);
+
+
};
#endif //__KX_CDACTUATOR
Modified: trunk/blender/source/gameengine/Ketsji/KX_ParentActuator.cpp
===================================================================
--- trunk/blender/source/gameengine/Ketsji/KX_ParentActuator.cpp 2009-03-29 08:40:43 UTC (rev 19446)
+++ trunk/blender/source/gameengine/Ketsji/KX_ParentActuator.cpp 2009-03-29 15:17:55 UTC (rev 19447)
@@ -166,48 +166,64 @@
};
PyMethodDef KX_ParentActuator::Methods[] = {
- // ---> deprecated (all)
- {"setObject", (PyCFunction) KX_ParentActuator::sPySetObject, METH_O, (PY_METHODCHAR)SetObject_doc},
- {"getObject", (PyCFunction) KX_ParentActuator::sPyGetObject, METH_VARARGS, (PY_METHODCHAR)GetObject_doc},
+ // Deprecated ----->
+ {"setObject", (PyCFunction) KX_ParentActuator::sPySetObject, METH_O, (PY_METHODCHAR)SetObject_doc},
+ {"getObject", (PyCFunction) KX_ParentActuator::sPyGetObject, METH_VARARGS, (PY_METHODCHAR)GetObject_doc},
+ // <-----
{NULL,NULL} //Sentinel
};
PyAttributeDef KX_ParentActuator::Attributes[] = {
+ KX_PYATTRIBUTE_RW_FUNCTION("object", KX_ParentActuator, pyattr_get_object, pyattr_set_object),
{ NULL } //Sentinel
};
-PyObject* KX_ParentActuator::_getattr(const char *attr) {
-
- if (!strcmp(attr, "object")) {
- if (!m_ob) Py_RETURN_NONE;
- else return m_ob->AddRef();
- }
-
- _getattr_up(SCA_IActuator);
+PyObject* KX_ParentActuator::pyattr_get_object(void *self, const struct KX_PYATTRIBUTE_DEF *attrdef)
+{
+ KX_ParentActuator* actuator = static_cast<KX_ParentActuator*>(self);
+ if (!actuator->m_ob)
+ Py_RETURN_NONE;
+ else
+ return actuator->m_ob->AddRef();
}
-int KX_ParentActuator::_setattr(const char *attr, PyObject* value) {
-
- if (!strcmp(attr, "object")) {
- KX_GameObject *gameobj;
+int KX_ParentActuator::pyattr_set_object(void *self, const struct KX_PYATTRIBUTE_DEF *attrdef, PyObject *value)
+{
+ KX_ParentActuator* actuator = static_cast<KX_ParentActuator*>(self);
+ KX_GameObject *gameobj;
- if (!ConvertPythonToGameObject(value, &gameobj, true))
- return 1; // ConvertPythonToGameObject sets the error
+ if (!ConvertPythonToGameObject(value, &gameobj, true))
+ return 1; // ConvertPythonToGameObject sets the error
- if (m_ob != NULL)
- m_ob->UnregisterActuator(this);
+ if (actuator->m_ob != NULL)
+ actuator->m_ob->UnregisterActuator(actuator);
- m_ob = (SCA_IObject*)gameobj;
+ actuator->m_ob = (SCA_IObject*) gameobj;
- if (m_ob)
- m_ob->RegisterActuator(this);
+ if (actuator->m_ob)
+ actuator->m_ob->RegisterActuator(actuator);
- return 0;
- }
+ return 0;
+}
+
+
+PyObject* KX_ParentActuator::_getattr(const char *attr) {
+ PyObject* object = _getattr_self(Attributes, this, attr);
+ if (object != NULL)
+ return object;
+ _getattr_up(SCA_IActuator);
+}
+
+int KX_ParentActuator::_setattr(const char *attr, PyObject* value) {
+
+ int ret = _setattr_self(Attributes, this, attr, value);
+ if (ret >= 0)
+ return ret;
return SCA_IActuator::_setattr(attr, value);
}
+/* Deprecated -----> */
/* 1. setObject */
const char KX_ParentActuator::SetObject_doc[] =
"setObject(object)\n"
@@ -255,5 +271,6 @@
else
return m_ob->AddRef();
}
+/* <----- */
/* eof */
Modified: trunk/blender/source/gameengine/Ketsji/KX_ParentActuator.h
===================================================================
--- trunk/blender/source/gameengine/Ketsji/KX_ParentActuator.h 2009-03-29 08:40:43 UTC (rev 19446)
+++ trunk/blender/source/gameengine/Ketsji/KX_ParentActuator.h 2009-03-29 15:17:55 UTC (rev 19447)
@@ -79,10 +79,14 @@
virtual PyObject* _getattr(const char *attr);
virtual int _setattr(const char *attr, PyObject* value);
- /* 1. setObject */
+ /* These are used to get and set m_ob */
+ static PyObject* pyattr_get_object(void *self, const struct KX_PYATTRIBUTE_DEF *attrdef);
@@ Diff output truncated at 10240 characters. @@
More information about the Bf-blender-cvs
mailing list