21#ifndef LS_INSTRUMENT_EDITOR_FACTORY_H
22#define LS_INSTRUMENT_EDITOR_FACTORY_H
28#include "../common/Exception.h"
32# define REGISTER_INSTRUMENT_EDITOR(PluginClass) \
33 extern "C" __declspec(dllexport) void* \
34 createInstrumentEditorInnerFactory() { \
35 return new LinuxSampler::InstrumentEditorFactory::InnerFactoryTemplate<PluginClass>(); \
43# define REGISTER_INSTRUMENT_EDITOR(PluginClass) \
44 LinuxSampler::InstrumentEditorFactory::InnerFactoryRegistrator<PluginClass> \
45 __auto_register_instrument_editor__##PluginClass;
59 template<
class PluginClass_T>
71 template<
class PluginClass_T>
Exception that will be thrown in NON REAL TIME PARTS of the LinuxSampler application.
~InnerFactoryRegistrator()
InnerFactoryRegistrator()
virtual void Destroy(InstrumentEditor *pEditor)
virtual InstrumentEditor * Create()
virtual void Destroy(InstrumentEditor *pEditor)=0
virtual InstrumentEditor * Create()=0
static std::list< void * > LoadedDLLs
static std::vector< String > PluginDirs()
static bool bPluginsLoaded
static std::map< String, InnerFactory * > InnerFactories
static void ClosePlugins()
static InstrumentEditor * Create(String InstrumentEditorName)
static std::vector< String > AvailableEditors()
static String AvailableEditorsAsString()
static void LoadPlugins()
static std::vector< String > MatchingEditors(String sTypeName, String sTypeVersion)
static String PluginDirsAsString()
static void Destroy(InstrumentEditor *pInstrumentEditor)
Instrument Editor Interface (external plugin)
Wraps as a kind of pointer class some data object shared with other threads, to protect / synchronize...