191
193
PyMethodDef KX_CDActuator::Methods[] = {
192
{"startCD",(PyCFunction) KX_CDActuator::sPyStartCD,METH_VARARGS,NULL},
193
{"pauseCD",(PyCFunction) KX_CDActuator::sPyPauseCD,METH_VARARGS,NULL},
194
{"stopCD",(PyCFunction) KX_CDActuator::sPyStopCD,METH_VARARGS,NULL},
195
195
{"setGain",(PyCFunction) KX_CDActuator::sPySetGain,METH_VARARGS,NULL},
196
196
{"getGain",(PyCFunction) KX_CDActuator::sPyGetGain,METH_VARARGS,NULL},
198
KX_PYMETHODTABLE_NOARGS(KX_CDActuator, startCD),
199
KX_PYMETHODTABLE_NOARGS(KX_CDActuator, pauseCD),
200
KX_PYMETHODTABLE_NOARGS(KX_CDActuator, resumeCD),
201
KX_PYMETHODTABLE_NOARGS(KX_CDActuator, stopCD),
202
KX_PYMETHODTABLE_NOARGS(KX_CDActuator, playAll),
203
KX_PYMETHODTABLE_O(KX_CDActuator, playTrack),
197
204
{NULL,NULL,NULL,NULL} //Sentinel
202
PyObject* KX_CDActuator::_getattr(const STR_String& attr)
204
_getattr_up(SCA_IActuator);
210
PyObject* KX_CDActuator::PyStartCD(PyObject* self, PyObject* args, PyObject* kwds)
207
PyAttributeDef KX_CDActuator::Attributes[] = {
208
KX_PYATTRIBUTE_FLOAT_RW_CHECK("volume", 0.0, 1.0, KX_CDActuator, m_gain,pyattr_setGain),
209
KX_PYATTRIBUTE_INT_RW("track", 1, 99, false, KX_CDActuator, m_track),
213
int KX_CDActuator::pyattr_setGain(void *self, const struct KX_PYATTRIBUTE_DEF *attrdef)
215
KX_CDActuator* act = static_cast<KX_CDActuator*>(self);
216
SND_CDObject::Instance()->SetGain(act->m_gain);
217
return PY_SET_ATTR_SUCCESS;
220
PyObject* KX_CDActuator::py_getattro(PyObject *attr)
222
py_getattro_up(SCA_IActuator);
225
PyObject* KX_CDActuator::py_getattro_dict() {
226
py_getattro_dict_up(SCA_IActuator);
229
int KX_CDActuator::py_setattro(PyObject *attr, PyObject *value)
231
py_setattro_up(SCA_IActuator);
236
KX_PYMETHODDEF_DOC_NOARGS(KX_CDActuator, startCD,
238
"\tStarts the CD playing.\n")
212
240
SND_CDObject::Instance()->SetPlaystate(SND_MUST_PLAY);
218
PyObject* KX_CDActuator::PyPauseCD(PyObject* self, PyObject* args, PyObject* kwds)
245
KX_PYMETHODDEF_DOC_NOARGS(KX_CDActuator, pauseCD,
247
"\tPauses the CD playing.\n")
220
249
SND_CDObject::Instance()->SetPlaystate(SND_MUST_PAUSE);
226
PyObject* KX_CDActuator::PyStopCD(PyObject* self, PyObject* args, PyObject* kwds)
254
KX_PYMETHODDEF_DOC_NOARGS(KX_CDActuator, resumeCD,
256
"\tResumes the CD playing.\n")
258
SND_CDObject::Instance()->SetPlaystate(SND_MUST_RESUME);
263
KX_PYMETHODDEF_DOC_NOARGS(KX_CDActuator, stopCD,
265
"\tStops the CD playing.\n")
228
267
SND_CDObject::Instance()->SetPlaystate(SND_MUST_STOP);
234
PyObject* KX_CDActuator::PySetGain(PyObject* self, PyObject* args, PyObject* kwds)
272
KX_PYMETHODDEF_DOC_O(KX_CDActuator, playTrack,
273
"playTrack(trackNumber)\n"
274
"\tPlays the track selected.\n")
276
if (PyInt_Check(value)) {
277
int track = PyInt_AsLong(value);
278
SND_CDObject::Instance()->SetPlaymode(SND_CD_TRACK);
279
SND_CDObject::Instance()->SetTrack(track);
280
SND_CDObject::Instance()->SetPlaystate(SND_MUST_PLAY);
287
KX_PYMETHODDEF_DOC_NOARGS(KX_CDActuator, playAll,
289
"\tPlays the CD from the beginning.\n")
291
SND_CDObject::Instance()->SetPlaymode(SND_CD_ALL);
292
SND_CDObject::Instance()->SetTrack(1);
293
SND_CDObject::Instance()->SetPlaystate(SND_MUST_PLAY);
298
PyObject* KX_CDActuator::PySetGain(PyObject* args)
236
300
float gain = 1.0;
237
if (!PyArg_ParseTuple(args, "f", &gain))
301
ShowDeprecationWarning("setGain()", "the volume property");
302
if (!PyArg_ParseTuple(args, "f:setGain", &gain))
240
305
SND_CDObject::Instance()->SetGain(gain);
247
PyObject* KX_CDActuator::PyGetGain(PyObject* self, PyObject* args, PyObject* kwds)
312
PyObject* KX_CDActuator::PyGetGain(PyObject* args)
249
314
float gain = SND_CDObject::Instance()->GetGain();
315
ShowDeprecationWarning("getGain()", "the volume property");
250
316
PyObject* result = PyFloat_FromDouble(gain);