main.cpp 910 B

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. #include "aja-card-manager.hpp"
  2. #include <obs-module.h>
  3. #include <ajantv2/includes/ntv2devicescanner.h>
  4. OBS_DECLARE_MODULE()
  5. OBS_MODULE_USE_DEFAULT_LOCALE("aja", "en-US")
  6. MODULE_EXPORT const char *obs_module_description(void)
  7. {
  8. return "aja";
  9. }
  10. extern struct obs_source_info create_aja_source_info();
  11. struct obs_source_info aja_source_info;
  12. extern struct obs_output_info create_aja_output_info();
  13. struct obs_output_info aja_output_info;
  14. bool obs_module_load(void)
  15. {
  16. CNTV2DeviceScanner scanner;
  17. auto numDevices = scanner.GetNumDevices();
  18. if (numDevices == 0) {
  19. return false;
  20. }
  21. aja::CardManager::Instance().EnumerateCards();
  22. aja_source_info = create_aja_source_info();
  23. obs_register_source(&aja_source_info);
  24. aja_output_info = create_aja_output_info();
  25. obs_register_output(&aja_output_info);
  26. return true;
  27. }
  28. void obs_module_unload(void)
  29. {
  30. aja::CardManager::Instance().ClearCardEntries();
  31. }