File: main.cpp

package info (click to toggle)
obs-studio 29.0.2%2Bdfsg-1
  • links: PTS, VCS
  • area: main
  • in suites: bookworm
  • size: 35,920 kB
  • sloc: ansic: 182,921; cpp: 98,959; sh: 1,591; python: 945; makefile: 858; javascript: 19
file content (48 lines) | stat: -rw-r--r-- 1,086 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
#include "aja-card-manager.hpp"
#include <obs-module.h>
#include <ajantv2/includes/ntv2devicescanner.h>

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(&params, "card_manager", (void *)cardManager);
	auto signal_handler = obs_get_signal_handler();
	signal_handler_signal(signal_handler, "aja_loaded", &params);
	calldata_free(&params);
}

void obs_module_unload(void)
{
	aja::CardManager::Instance().ClearCardEntries();
}