void Seq::start() { if (playlistChanged) collectEvents(); if (cs->playMode() == PlayMode::AUDIO) { if (!oggInit) { vorbisData.pos = 0; vorbisData.data = cs->audio()->data(); int n = ov_open_callbacks(&vorbisData, &vf, 0, 0, ovCallbacks); if (n < 0) { qDebug("ogg open failed: %d", n); } oggInit = true; } } if ((mscore->loop())) { if(cs->selection().isRange()) setLoopSelection(); seek(cs->repeatList()->tick2utick(cs->loopInTick())); } else seek(cs->repeatList()->tick2utick(cs->playPos())); _driver->startTransport(); }
void Seq::start() { if (events.empty() || cs->playlistDirty() || playlistChanged) collectEvents(); if (cs->playMode() == PLAYMODE_AUDIO) { if (!oggInit) { vorbisData.pos = 0; vorbisData.data = cs->audio()->data(); int n = ov_open_callbacks(&vorbisData, &vf, 0, 0, ovCallbacks); if (n < 0) { printf("ogg open failed: %d\n", n); } oggInit = true; } } if ((mscore->loop())) { if(cs->selection().state() == SEL_RANGE) setLoopSelection(); seek(cs->repeatList()->tick2utick(cs->loopInTick())); } else seek(cs->playPos()); _driver->startTransport(); }