mirror of
https://github.com/SatDump/SatDump
synced 2026-08-13 17:47:30 -04:00
36 lines
No EOL
967 B
C++
36 lines
No EOL
967 B
C++
#pragma once
|
|
|
|
#include "dll_export.h"
|
|
#include <memory>
|
|
#include <map>
|
|
#include "common/eventbus/event_bus.hpp"
|
|
|
|
#define PLUGIN_LOADER(constructor) \
|
|
extern "C" \
|
|
{ \
|
|
satdump::Plugin *loader() \
|
|
{ \
|
|
return (satdump::Plugin *)new constructor(); \
|
|
} \
|
|
}
|
|
|
|
namespace satdump
|
|
{
|
|
struct SatDumpStartedEvent
|
|
{
|
|
};
|
|
|
|
class Plugin
|
|
{
|
|
public:
|
|
Plugin() {}
|
|
virtual std::string getID() = 0;
|
|
virtual void init() = 0;
|
|
virtual ~Plugin(){};
|
|
};
|
|
|
|
SATDUMP_DLL extern std::map<std::string, std::shared_ptr<satdump::Plugin>> loaded_plugins;
|
|
SATDUMP_DLL extern std::shared_ptr<dp::event_bus> eventBus;
|
|
}; // namespace satdump
|
|
|
|
void loadPlugins(); |