Exemple #1
0
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;
} 
Exemple #2
0
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;
}