#include "aja-card-manager.hpp" #include #include OBS_DECLARE_MODULE() OBS_MODULE_USE_DEFAULT_LOCALE("aja", "en-US") MODULE_EXPORT const char *obs_module_description(void) { return "aja"; } extern void register_aja_source_info(); extern void register_aja_output_info(); bool obs_module_load(void) { CNTV2DeviceScanner scanner; auto numDevices = scanner.GetNumDevices(); if (numDevices == 0) { blog(LOG_WARNING, "No AJA devices found, skipping loading AJA plugin"); return false; } aja::CardManager::Instance().EnumerateCards(); register_aja_source_info(); register_aja_output_info(); return true; } void obs_module_post_load(void) { struct calldata params = {0}; auto cardManager = &aja::CardManager::Instance(); calldata_set_ptr(¶ms, "card_manager", (void *)cardManager); auto signal_handler = obs_get_signal_handler(); signal_handler_signal(signal_handler, "aja_loaded", ¶ms); calldata_free(¶ms); } void obs_module_unload(void) { aja::CardManager::Instance().ClearCardEntries(); }