aboutsummaryrefslogtreecommitdiff
path: root/src/parsec/include/e_events.h
diff options
context:
space:
mode:
authorFelix Morgner <felix.morgner@gmail.com>2026-08-24 11:16:07 +0200
committerFelix Morgner <felix.morgner@gmail.com>2026-08-24 11:16:07 +0200
commitc068f22329d5cc722622a2183bbb22eef2093df7 (patch)
tree12d56c1aede67988a55e241364606bfbb4dba933 /src/parsec/include/e_events.h
downloadopenparsec-main.tar.xz
openparsec-main.zip
initial importHEADmain
Diffstat (limited to 'src/parsec/include/e_events.h')
-rw-r--r--src/parsec/include/e_events.h66
1 files changed, 66 insertions, 0 deletions
diff --git a/src/parsec/include/e_events.h b/src/parsec/include/e_events.h
new file mode 100644
index 0000000..08f2554
--- /dev/null
+++ b/src/parsec/include/e_events.h
@@ -0,0 +1,66 @@
+/*
+ * PARSEC HEADER: e_events.h
+ */
+
+#ifndef _E_EVENTS_H_
+#define _E_EVENTS_H_
+
+
+
+// event parameter flags ------------------------------------------------------
+//
+#define EVENT_PARAM_LOOP_MASK 0x000f // mask for loop parameter
+#define EVENT_PARAM_ONESHOT 0x0000 // execute event once
+#define EVENT_PARAM_LOOP_COUNT 0x0001 // execute event loopinfo times
+#define EVENT_PARAM_LOOP_INDEFINITE 0x0002 // execute event until removed
+
+#define EVENT_PARAM_ONE_PER_TYPE 0x0010 // remove any other event of same type
+#define EVENT_PARAM_DEPENDENT 0x0020 // trigger of event depends on other event's trigger
+#define EVENT_PARAM_AUTOFREE 0x0040 // event is automatically freed after it's last fired
+#define EVENT_PARAM_AUTOFREE_CALLBACK 0x0080 // callback data is automatically freed after it's last fired
+#define EVENT_PARAM_AUTOTRIGGER 0x0100 // event is automatically triggered when added to the list
+
+#define EVENT_UNTRIGGERED -1 // event is not triggered yet
+
+
+// generic event information --------------------------------------------------
+//
+struct event_s {
+
+ event_s* next;
+ event_s* prec;
+ dword type; // type information of event
+ int (*callback)(void *); // callback function to be called, when event is fired
+ void* callback_params; // parameters passed to the callback function
+ refframe_t refframe_delay; // delay in refframes for event from trigger to fire
+ dword flags; // flags describing the event
+ dword loopcount; // loop count for looping events
+ dword dependent_on; // id of event this event depends on
+ refframe_t refframe_trigger; // refframe when event is to trigger
+ int _mksiz64[6];
+};
+
+
+// for easy casting of event callback function pointers -----------------------
+//
+typedef int (*event_callback_t)(void*);
+
+
+// external functions ---------------------------------------------------------
+//
+int EVT_InitManager();
+int EVT_KillManager();
+size_t EVT_AddEvent( event_s *event );
+void EVT_RemoveEvent( size_t id );
+void EVT_RemoveEventType( dword type );
+void EVT_Maintain();
+
+
+// include event definitions --------------------------------------------------
+//
+#include "e_evtdef.h"
+
+
+#endif // _E_EVENTS_H_
+
+