46 lines
957 B
C
46 lines
957 B
C
#ifndef PUMPKIN_API_H
|
|
#define PUMPKIN_API_H
|
|
|
|
#include "plugin.h"
|
|
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif
|
|
|
|
typedef struct {
|
|
const char *name;
|
|
const char *version;
|
|
|
|
const char **authors;
|
|
size_t authors_count;
|
|
|
|
const char *description;
|
|
|
|
const char **dependencies;
|
|
size_t dependencies_count;
|
|
|
|
const char **permissions;
|
|
size_t permissions_count;
|
|
} pumpkin_metadata_t;
|
|
|
|
typedef void (*pumpkin_on_load_t)(plugin_own_context_t ctx);
|
|
typedef void (*pumpkin_on_unload_t)(plugin_own_context_t ctx);
|
|
typedef pumpkin_metadata_t (*pumpkin_get_metadata_t)(void);
|
|
|
|
typedef struct {
|
|
pumpkin_get_metadata_t get_metadata;
|
|
pumpkin_on_load_t on_load;
|
|
pumpkin_on_unload_t on_unload;
|
|
} pumpkin_plugin_t;
|
|
|
|
void pumpkin_register_plugin(pumpkin_plugin_t plugin);
|
|
|
|
#define REGISTER_PUMPKIN_PLUGIN(plugin) \
|
|
void exports_plugin_init_plugin(void) { pumpkin_register_plugin(plugin); }
|
|
|
|
#ifdef __cplusplus
|
|
}
|
|
#endif
|
|
|
|
#endif
|