MCPcopy Create free account
hub / github.com/audacity/audacity / render

Method render

lib-src/libsbsms/src/sms.cpp:593–640  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

591}
592
593void SMS :: render(int c, list<SBSMSRenderer*> &renderers)
594{
595#ifdef MULTITHREADED
596 pthread_mutex_lock(&renderMutex[c]);
597#endif
598 int n = nRender[c].front(); nRender[c].pop();
599#ifdef MULTITHREADED
600 pthread_mutex_unlock(&renderMutex[c]);
601#endif
602 TimeType time = synthtime[c];
603 for(list<SBSMSRenderer*>::iterator i = renderers.begin(); i != renderers.end(); ++i) {
604 SBSMSRenderer *renderer = *i;
605 renderer->startTime(c,time,n);
606 }
607#ifdef MULTITHREADED
608 pthread_mutex_lock(&trackMutex[c]);
609#endif
610 for(list<Track*>::iterator tt = renderTracks[c].begin();
611 tt != renderTracks[c].end();) {
612 Track *t = (*tt);
613 if(t->bEnded && time > t->last) {
614 list<Track*>::iterator eraseMe = tt;
615 ++tt;
616 renderTracks[c].erase(eraseMe);
617 delete t;
618 } else if(time >= t->start) {
619 if(time <= t->last) {
620 t->updateM(time,synthModeOutput);
621 for(list<SBSMSRenderer*>::iterator i = renderers.begin(); i != renderers.end(); ++i) {
622 SBSMSRenderer *renderer = *i;
623 renderer->render(c,t);
624 }
625 t->step(time);
626 }
627 ++tt;
628 } else {
629 break;
630 }
631 }
632#ifdef MULTITHREADED
633 pthread_mutex_unlock(&trackMutex[c]);
634#endif
635 for(list<SBSMSRenderer*>::iterator i = renderers.begin(); i != renderers.end(); ++i) {
636 SBSMSRenderer *renderer = *i;
637 renderer->endTime(c);
638 }
639 synthtime[c]++;
640}
641
642TrackPoint *SMS :: nearestForward(TrackPoint **begin, TrackPoint *tp0, float *minCost2, float maxCost2, float maxDF, float dMCoeff2, float dNCoeff2)
643{

Callers

nothing calls this directly

Calls 7

renderMethod · 0.80
popMethod · 0.45
beginMethod · 0.45
endMethod · 0.45
startTimeMethod · 0.45
stepMethod · 0.45
endTimeMethod · 0.45

Tested by

no test coverage detected