VLCPlugin.h 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738
  1. #define VLC_PLUGIN_ENTRY(entrypoint) entrypoint,
  2. #include "plugins.manifest.h"
  3. /**
  4. * Define the list of plugins entry to use in the application.
  5. *
  6. * The plugins must then be linked to the application on way or
  7. * another, by static linking the plugin into the executable or
  8. * providing a dynamic library and link it for example.
  9. *
  10. * LibVLC plugins will automatically get inserted too. If only
  11. * LibVLC plugins are needed, this macro can be called with
  12. * NULL instead of the list of plugins entrypoint.
  13. *
  14. * \warning{This macro must be called once per application.
  15. * Calling it in a library is discouraged as it might prevent the
  16. * final application from including other plugins.} */
  17. __attribute__((visibility("default"))) \
  18. extern const int (*vlc_static_modules[])(int (*)(void*,void*,int,...), void*);
  19. #define VLCKIT_DECLARE_PLUGINS_EXPLICIT_(...) \
  20. const int (*vlc_static_modules[])(int (*)(void*,void*,int,...), void*) = { \
  21. __VA_ARGS__, \
  22. NULL \
  23. };
  24. #ifdef VLC_PLUGIN_MANIFEST_LIST
  25. #define VLCKIT_DECLARE_PLUGINS(...) \
  26. VLCKIT_DECLARE_PLUGINS_EXPLICIT_( \
  27. VLC_PLUGIN_MANIFEST_LIST \
  28. __VA_ARGS__)
  29. #else
  30. #define VLCKIT_DECLARE_PLUGINS(...) \
  31. VLCKIT_DECLARE_PLUGINS_EXPLICIT_( \
  32. __VA_ARGS__)
  33. #endif