Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'source/gameengine/Ketsji/KX_CDActuator.cpp')
-rw-r--r--source/gameengine/Ketsji/KX_CDActuator.cpp113
1 files changed, 86 insertions, 27 deletions
diff --git a/source/gameengine/Ketsji/KX_CDActuator.cpp b/source/gameengine/Ketsji/KX_CDActuator.cpp
index ef7883910fd..121d4512265 100644
--- a/source/gameengine/Ketsji/KX_CDActuator.cpp
+++ b/source/gameengine/Ketsji/KX_CDActuator.cpp
@@ -98,7 +98,7 @@ bool KX_CDActuator::Update()
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 @@ bool KX_CDActuator::Update()
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 @@ bool KX_CDActuator::Update()
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 @@ bool KX_CDActuator::Update()
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:
@@ -158,22 +158,22 @@ bool KX_CDActuator::Update()
/* Integration hooks ------------------------------------------------------- */
PyTypeObject KX_CDActuator::Type = {
- PyObject_HEAD_INIT(&PyType_Type)
+ PyObject_HEAD_INIT(NULL)
0,
"KX_SoundActuator",
- sizeof(KX_CDActuator),
+ sizeof(PyObjectPlus_Proxy),
0,
- PyDestructor,
+ py_base_dealloc,
0,
- __getattr,
- __setattr,
- 0, //&MyPyCompare,
- __repr,
- 0, //&cvalue_as_number,
0,
0,
0,
- 0
+ py_base_repr,
+ 0,0,0,0,0,0,
+ py_base_getattro,
+ py_base_setattro,
+ 0,0,0,0,0,0,0,0,0,
+ Methods
};
@@ -189,54 +189,111 @@ PyParentObject KX_CDActuator::Parents[] = {
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
};
-PyObject* KX_CDActuator::_getattr(const char *attr)
+int KX_CDActuator::pyattr_setGain(void *self, const struct KX_PYATTRIBUTE_DEF *attrdef)
{
- _getattr_up(SCA_IActuator);
+ KX_CDActuator* act = static_cast<KX_CDActuator*>(self);
+ SND_CDObject::Instance()->SetGain(act->m_gain);
+ return 0;
}
+PyObject* KX_CDActuator::py_getattro(PyObject *attr)
+{
+ py_getattro_up(SCA_IActuator);
+}
+
+int KX_CDActuator::py_setattro(PyObject *attr, PyObject *value)
+{
+ py_setattro_up(SCA_IActuator);
+}
-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;
+}
-PyObject* KX_CDActuator::PySetGain(PyObject* self, PyObject* args, PyObject* kwds)
+// Deprecated ----->
+PyObject* KX_CDActuator::PySetGain(PyObject* args)
{
float gain = 1.0;
- if (!PyArg_ParseTuple(args, "f", &gain))
+ ShowDeprecationWarning("setGain()", "the volume property");
+ if (!PyArg_ParseTuple(args, "f:setGain", &gain))
return NULL;
SND_CDObject::Instance()->SetGain(gain);
@@ -246,10 +303,12 @@ PyObject* KX_CDActuator::PySetGain(PyObject* self, PyObject* args, PyObject* kwd
-PyObject* KX_CDActuator::PyGetGain(PyObject* self, PyObject* args, PyObject* kwds)
+PyObject* KX_CDActuator::PyGetGain(PyObject* args)
{
float gain = SND_CDObject::Instance()->GetGain();
+ ShowDeprecationWarning("getGain()", "the volume property");
PyObject* result = PyFloat_FromDouble(gain);
return result;
}
+// <-----