44#define MK_STATIC(A) A, NULL
45#define MK_STATIC_REF(A) &A, NULL
51#define MK_NAME(A) NULL, #A
52#define MK_NAME_REF(A) NULL, #A
54#define NULL_IF_BUILD_LIBRARIES(x) NULL
58#define MK_NAME(A) A, NULL
59#define MK_NAME_REF(A) &A, NULL
61#define NULL_IF_BUILD_LIBRARIES(x) x
112#define REGISTER_MODULE_FUNCNAME(name, info, lclass, abi, funcname, hidden) static void funcname(void) __attribute__((constructor));\
114static void funcname(void)\
116 register_library(#name, info, lclass, abi, hidden);\
118struct NOT_DEFINED_STRUCT_THAT_SWALLOWS_SEMICOLON
120#define REGISTER_MODULE_FUNC_FUNCNAME(name, func, lclass, abi, funcname, hidden) static void funcname(void) __attribute__((constructor));\
122static void funcname(void)\
124 const void *info = func();\
126 register_library(#name, info, lclass, abi, hidden);\
129struct NOT_DEFINED_STRUCT_THAT_SWALLOWS_SEMICOLON
144#define REGISTER_MODULE(name, info, lclass, abi) REGISTER_MODULE_FUNCNAME(name, info, lclass, abi, UNIQUE_LABEL, 0)
150#define REGISTER_MODULE_WITH_FUNC(name, func, lclass, abi) REGISTER_MODULE_FUNC_FUNCNAME(name, func, lclass, abi, UNIQUE_LABEL, 0)
156#define REGISTER_HIDDEN_MODULE(name, info, lclass, abi) REGISTER_MODULE_FUNCNAME(name, info, lclass, abi, UNIQUE_LABEL, 1)
std::map< std::string, const void * > get_libraries_for_class(enum library_class cls, int abi_version, bool include_hidden=true)
@ LIBRARY_CLASS_VIDEO_POSTPROCESS
@ LIBRARY_CLASS_VIDEO_DECOMPRESS
@ LIBRARY_CLASS_AUDIO_FILTER
@ LIBRARY_CLASS_VIDEO_CAPTURE
@ LIBRARY_CLASS_AUDIO_PLAYBACK
@ LIBRARY_CLASS_VIDEO_RXTX
@ LIBRARY_CLASS_AUDIO_CAPTURE
@ LIBRARY_CLASS_VIDEO_DISPLAY
@ LIBRARY_CLASS_UNDEFINED
@ LIBRARY_CLASS_CAPTURE_FILTER
@ LIBRARY_CLASS_AUDIO_COMPRESS
@ LIBRARY_CLASS_VIDEO_COMPRESS
void list_modules(enum library_class, int abi_version, bool full)
const void * load_library(const char *name, enum library_class, int abi_version)
void open_all(const char *pattern, std::list< void * > &libs)
void register_library(const char *name, const void *info, enum library_class, int abi_version, int hidden)