BMidiEndpoint* BMidiRoster::NextEndpoint(int32* id) { BMidiEndpoint* endp = NULL; if (id != NULL) { BMidiRosterLooper* looper = MidiRoster()->fLooper; if (looper->Lock()) { endp = looper->NextEndpoint(id); if (endp != NULL) { endp->Acquire(); } looper->Unlock(); } } return endp; }
BMidiEndpoint* BMidiRoster::FindEndpoint(int32 id, bool localOnly) { BMidiEndpoint* endp = NULL; BMidiRosterLooper* looper = MidiRoster()->fLooper; if (looper->Lock()) { endp = looper->FindEndpoint(id); if ((endp != NULL) && endp->IsRemote()) { if (localOnly || !endp->IsRegistered()) { endp = NULL; } } if (endp != NULL) { endp->Acquire(); } looper->Unlock(); } return endp; }