void CPlayer::seek(unsigned long ms) { float pos = 0.0f; rewind(); while(pos < ms && update()) // seek to new position pos += 1000/getrefresh(); }
static PyObject *_wrap_getrefresh(PyObject *self, PyObject *args) { PyObject *resultobj; double result; if(!PyArg_ParseTuple(args,(char *)":getrefresh")) goto fail; result = (double)getrefresh(); { resultobj = SWIG_From_double((double)(result)); } return resultobj; fail: return NULL; }
unsigned long CPlayer::songlength(int subsong) { CSilentopl tempopl; Copl *saveopl = opl; float slength = 0.0f; // save original OPL from being overwritten opl = &tempopl; // get song length rewind(subsong); while(update() && slength < 600000) // song length limit: 10 minutes slength += 1000.0f / getrefresh(); rewind(subsong); // restore original OPL and return opl = saveopl; return (unsigned long)slength; }