Beispiel #1
0
Lav_PUBLIC_FUNCTION LavError Lav_nodeGetEventUserDataPointer(LavHandle nodeHandle, int event, void** destination) {
	PUB_BEGIN
	auto ptr = incomingObject<Node>(nodeHandle);
	LOCK(*ptr);
	*destination = ptr->getEvent(event).getUserData();
	PUB_END
}
Beispiel #2
0
//callback setup/configure/retrieval.
Lav_PUBLIC_FUNCTION LavError Lav_nodeGetEventHandler(LavHandle nodeHandle, int event, LavEventCallback *destination) {
	PUB_BEGIN
	auto ptr = incomingObject<Node>(nodeHandle);
	LOCK(*ptr);
	*destination = ptr->getEvent(event).getExternalHandler();
	PUB_END
}
Beispiel #3
0
Lav_PUBLIC_FUNCTION LavError Lav_nodeSetEvent(LavHandle nodeHandle, int event, LavEventCallback handler, void* userData) {
	PUB_BEGIN
	auto ptr = incomingObject<Node>(nodeHandle);
	LOCK(*ptr);
	auto &ev = ptr->getEvent(event);
	if(handler) {
		ev.setHandler([=](Node* o, void* d) { handler(o->externalObjectHandle, d);});
		ev.setExternalHandler(handler);
		ev.setUserData(userData);
	} else {
		ev.setHandler(std::function<void(Node*, void*)>());
		ev.setExternalHandler(nullptr);
	}
	PUB_END
}