plugin-main.c 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940
  1. #include <obs-module.h>
  2. OBS_DECLARE_MODULE()
  3. OBS_MODULE_USE_DEFAULT_LOCALE("mac-capture", "en-US")
  4. MODULE_EXPORT const char *obs_module_description(void)
  5. {
  6. return "macOS audio input/output and window/display capture";
  7. }
  8. extern struct obs_source_info coreaudio_input_capture_info;
  9. extern struct obs_source_info coreaudio_output_capture_info;
  10. extern struct obs_source_info display_capture_info;
  11. extern struct obs_source_info window_capture_info;
  12. extern bool is_screen_capture_available() WEAK_IMPORT_ATTRIBUTE;
  13. bool obs_module_load(void)
  14. {
  15. #if __MAC_OS_X_VERSION_MAX_ALLOWED >= 120300 // __MAC_12_3
  16. if (is_screen_capture_available()) {
  17. extern struct obs_source_info sck_video_capture_info;
  18. obs_register_source(&sck_video_capture_info);
  19. if (__builtin_available(macOS 13.0, *)) {
  20. display_capture_info.output_flags |=
  21. OBS_SOURCE_DEPRECATED;
  22. window_capture_info.output_flags |=
  23. OBS_SOURCE_DEPRECATED;
  24. coreaudio_output_capture_info.output_flags |=
  25. OBS_SOURCE_DEPRECATED;
  26. extern struct obs_source_info sck_audio_capture_info;
  27. obs_register_source(&sck_audio_capture_info);
  28. }
  29. }
  30. #endif
  31. obs_register_source(&display_capture_info);
  32. obs_register_source(&window_capture_info);
  33. obs_register_source(&coreaudio_input_capture_info);
  34. obs_register_source(&coreaudio_output_capture_info);
  35. return true;
  36. }