2016-09-16 17:29:17 +02:00
|
|
|
#pragma once
|
|
|
|
|
|
|
|
#include <string>
|
|
|
|
#include <vector>
|
|
|
|
|
2016-11-06 11:34:51 +01:00
|
|
|
#include "RuntimeModule.h"
|
|
|
|
|
2016-09-16 17:29:17 +02:00
|
|
|
struct RuntimeModule;
|
|
|
|
|
2016-11-06 11:34:51 +01:00
|
|
|
struct RuntimeModule {
|
|
|
|
std::string name = "";
|
|
|
|
void *handle = nullptr;
|
|
|
|
ino_t id = 0;
|
|
|
|
void *data = nullptr;
|
|
|
|
int mtime = 0;
|
2017-01-14 16:21:47 +01:00
|
|
|
int mtimensec = 0;
|
2016-11-06 11:34:51 +01:00
|
|
|
|
|
|
|
struct module_api api;
|
|
|
|
struct module_state *state = nullptr;
|
|
|
|
};
|
|
|
|
|
2016-09-16 17:29:17 +02:00
|
|
|
struct RuntimeModuleManager {
|
|
|
|
std::vector<RuntimeModule*> mModules;
|
|
|
|
|
|
|
|
void RegisterModule(const char* name);
|
2016-11-25 22:27:37 +01:00
|
|
|
void UnregisterModules();
|
|
|
|
|
2016-09-16 17:29:17 +02:00
|
|
|
void LoadModule(RuntimeModule* module);
|
2016-10-21 22:07:23 +02:00
|
|
|
bool CheckModulesChanged();
|
2016-09-16 17:29:17 +02:00
|
|
|
void UnloadModules();
|
2016-11-25 22:27:37 +01:00
|
|
|
void LoadModules();
|
2016-09-16 17:29:17 +02:00
|
|
|
void Update(float dt);
|
|
|
|
};
|