Skip to content

Commit 63437e0

Browse files
committed
optimized audio data connections init
1 parent 0aaa16b commit 63437e0

File tree

1 file changed

+12
-5
lines changed

1 file changed

+12
-5
lines changed

src/PatchObject.cpp

Lines changed: 12 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -158,13 +158,18 @@ void PatchObject::update(map<int,shared_ptr<PatchObject>> &patchObjects, pdsp::E
158158
}
159159
// send data through links
160160
if(!outPut[i]->isDeactivated){
161-
patchObjects[outPut[i]->toObjectID]->inletsConnected[outPut[i]->toInletID] = true;
162-
if(outPut[i]->type == VP_LINK_AUDIO && patchObjects[outPut[i]->toObjectID]->getIsPDSPPatchableObject()){
163-
if(this->getIsPDSPPatchableObject() || this->getName() == "audio device"){
164-
this->pdspOut[outPut[i]->fromOutletID] >> patchObjects[outPut[i]->toObjectID]->pdspIn[outPut[i]->toInletID];
161+
if(!patchObjects[outPut[i]->toObjectID]->inletsConnected[outPut[i]->toInletID]){
162+
patchObjects[outPut[i]->toObjectID]->inletsConnected[outPut[i]->toInletID] = true;
163+
if(outPut[i]->type == VP_LINK_AUDIO && patchObjects[outPut[i]->toObjectID]->getIsPDSPPatchableObject()){
164+
if(this->getIsPDSPPatchableObject() || this->getName() == "audio device"){
165+
this->pdspOut[outPut[i]->fromOutletID] >> patchObjects[outPut[i]->toObjectID]->pdspIn[outPut[i]->toInletID];
166+
}
165167
}
168+
patchObjects[outPut[i]->toObjectID]->_inletParams[outPut[i]->toInletID] = _outletParams[out];
169+
}else{
170+
patchObjects[outPut[i]->toObjectID]->_inletParams[outPut[i]->toInletID] = _outletParams[out];
166171
}
167-
patchObjects[outPut[i]->toObjectID]->_inletParams[outPut[i]->toInletID] = _outletParams[out];
172+
168173
}else{
169174
patchObjects[outPut[i]->toObjectID]->inletsConnected[outPut[i]->toInletID] = false;
170175
if(outPut[i]->type == VP_LINK_AUDIO){
@@ -189,6 +194,8 @@ void PatchObject::update(map<int,shared_ptr<PatchObject>> &patchObjects, pdsp::E
189194
//--------------------------------------------------------------
190195
void PatchObject::updateWirelessLinks(map<int,shared_ptr<PatchObject>> &patchObjects){
191196

197+
if(willErase) return;
198+
192199
// Continuosly update float type ONLY wireless links
193200
for(map<int,shared_ptr<PatchObject>>::iterator it = patchObjects.begin(); it != patchObjects.end(); it++ ){
194201
for(int in=0;in<it->second->getNumInlets();in++){

0 commit comments

Comments
 (0)