main.cpp 1.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  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 void register_aja_source_info();
  11. extern void register_aja_output_info();
  12. bool obs_module_load(void)
  13. {
  14. CNTV2DeviceScanner scanner;
  15. auto numDevices = scanner.GetNumDevices();
  16. if (numDevices == 0) {
  17. blog(LOG_WARNING,
  18. "No AJA devices found, skipping loading AJA plugin");
  19. return false;
  20. }
  21. aja::CardManager::Instance().EnumerateCards();
  22. register_aja_source_info();
  23. register_aja_output_info();
  24. return true;
  25. }
  26. void obs_module_post_load(void)
  27. {
  28. struct calldata params = {0};
  29. auto cardManager = &aja::CardManager::Instance();
  30. calldata_set_ptr(&params, "card_manager", (void *)cardManager);
  31. auto signal_handler = obs_get_signal_handler();
  32. signal_handler_signal(signal_handler, "aja_loaded", &params);
  33. calldata_free(&params);
  34. }
  35. void obs_module_unload(void)
  36. {
  37. aja::CardManager::Instance().ClearCardEntries();
  38. }