Beispiel #1
0
void IoEvent_handleEvent(int fd, short eventType, void *context)
{
	IoEvent *self = (IoEvent *)context;

	struct event *ev = IoEvent_rawEvent(self);
	IoEventManager *em = IoState_protoWithInitFunction_(IOSTATE, IoEventManager_proto);
	//printf("IoEvent_handleEvent type:%i descriptor:%i\n", eventType, fd);

	List_remove_(DATA(em)->activeEvents, self);
	//printf("e: %i\n", List_size(DATA(em)->activeEvents));

	if (!ev)
	{
		printf("IoEventManager_addEvent: attempt to process an IoEvent with a 0x0 event struct - possible gc error");
		exit(1);
	}

	event_del(ev);

	/*
	if (eventType !=  && !RawDescriptor_isValid(fd))
	{
		printf("IoEvent_handleEvent: handleEvent type %i on bad file descriptor\n", eventType);
	}
	*/

	IoState_pushRetainPool(IOSTATE);
	{
	IoMessage *m = DATA(em)->handleEventMessage;

	IoMessage_setCachedArg_to_(m, 0, IOBOOL(self, eventType == EV_TIMEOUT));
	IoMessage_locals_performOn_(m, self, self);
	}
	IoState_popRetainPool(IOSTATE);
	//printf("IoEvent_handleEvent %p done\n", (void *) context);
}
Beispiel #2
0
void IoList_rawRemove_(IoList *self, IoObject *v)
{
	List_remove_(DATA(self), IOREF(v));
	IoObject_isDirty_(self, 1);
}
Beispiel #3
0
void IoAudioMixer_justRemoveSound_(IoAudioMixer *self, IoSound *ioSound)
{
	/*printf("remove sound %p\n", (void *)ioSound);*/
	List_remove_(DATA(self)->sounds, ioSound);
	Sound_setIsPlaying_(IoSound_rawSound(ioSound), 0);
}