main.cpp 1.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  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, "No AJA devices found, skipping loading AJA plugin");
  18. return false;
  19. }
  20. aja::CardManager::Instance().EnumerateCards();
  21. register_aja_source_info();
  22. register_aja_output_info();
  23. return true;
  24. }
  25. void obs_module_post_load(void)
  26. {
  27. struct calldata params = {0};
  28. auto cardManager = &aja::CardManager::Instance();
  29. calldata_set_ptr(&params, "card_manager", (void *)cardManager);
  30. auto signal_handler = obs_get_signal_handler();
  31. signal_handler_signal(signal_handler, "aja_loaded", &params);
  32. calldata_free(&params);
  33. }
  34. void obs_module_unload(void)
  35. {
  36. aja::CardManager::Instance().ClearCardEntries();
  37. }