コード例 #1
0
ファイル: seq.cpp プロジェクト: liline/MuseScore
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();
      }
コード例 #2
0
ファイル: seq.cpp プロジェクト: BlueMockingbird/MuseScore
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();
      }