void PdBase::unsubscribeAll(){ map<string,void*>& sources = PdContext::instance().sources; map<string,void*>::iterator iter; for(iter = sources.begin(); iter != sources.end(); ++iter) libpd_unbind(iter->second); sources.clear(); }
JNIEXPORT void JNICALL Java_org_puredata_core_PdBase_unbindSymbol (JNIEnv *env, jclass cls, jlong ptr) { pthread_mutex_lock(&mutex); libpd_unbind((void *)ptr); pthread_mutex_unlock(&mutex); // even naughtier, using a pointer from Java // using long integer in case we're on a 64bit CPU }
void PdBase::unsubscribe(const std::string& source) { map<string,void*>& sources = PdContext::instance().sources; map<string,void*>::iterator iter; iter = sources.find(source); if(iter == sources.end()) { cerr << "Pd: unsubscribe: ignoring unknown source" << endl; return; } libpd_unbind(iter->second); sources.erase(iter); }