From 25286dd9d20818cb9d33ea1b1739739aa38fc3fe Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Florian=20L=C3=BCke?= Date: Sat, 21 Dec 2024 15:18:47 +0100 Subject: [PATCH] add an analysis plugin api sketch --- src/tools/mana_replay_api.h | 81 +++++++++++++++++++++++++++++++++++++ 1 file changed, 81 insertions(+) create mode 100644 src/tools/mana_replay_api.h diff --git a/src/tools/mana_replay_api.h b/src/tools/mana_replay_api.h new file mode 100644 index 0000000..72e4847 --- /dev/null +++ b/src/tools/mana_replay_api.h @@ -0,0 +1,81 @@ +#ifndef DA93DC95_9F70_4B58_9B6C_5E32D3811E48 +#define DA93DC95_9F70_4B58_9B6C_5E32D3811E48 + +#include +#include + +#ifdef __cplusplus +extern "C" +#endif +{ + +typedef struct +{ + const char *name; + size_t size; +} array_descriptor_t; + +typedef struct +{ + const char *module_name; + const char *module_type; + array_descriptor_t *data_sources; + size_t data_source_count; +} module_descriptor_t; + +typedef struct +{ + const char *event_name; + module_descriptor_t *modules; + size_t module_count; +} event_descriptor_t; + +typedef struct +{ + const char *listfile_name; + event_descriptor_t *events; + size_t event_count; +} run_descriptor_t; + +typedef struct +{ + const float *data; + size_t size; +} const_span_t; + +typedef struct +{ + const_span_t *data_arrays; + size_t data_array_count; +} module_data_t; + +typedef struct +{ + module_data_t *modules; + size_t module_count; +} event_data_t; + +#define MANA_DEFINE_PLUGIN_INIT(name) \ + void *name() + +#define MANA_DEFINE_PLUGIN_SHUTDOWN(name) \ + void name(void *context) + +#define MANA_DEFINE_PLUGIN_BEGIN_RUN(name) \ + void name(void *context, run_descriptor_t run_descriptor) + +#define MANA_DEFINE_PLUGIN_END_RUN(name) \ + void name(void *context, run_descriptor_t run_descriptor) + +#define MANA_DEFINE_PLUGIN_EVENT_DATA(name) \ + void name(void *context, int eventIndex, event_data_t event_data) + +typedef MANA_DEFINE_PLUGIN_BEGIN_RUN(mana_init_t); +typedef MANA_DEFINE_PLUGIN_SHUTDOWN(mana_shutdown_t); +typedef MANA_DEFINE_PLUGIN_BEGIN_RUN(mana_begin_run_t); +typedef MANA_DEFINE_PLUGIN_BEGIN_RUN(mana_end_run_t); +typedef MANA_DEFINE_PLUGIN_EVENT_DATA(mana_event_data_t); + +} + +#endif /* DA93DC95_9F70_4B58_9B6C_5E32D3811E48 */