Vuo  2.4.0
VuoBlackmagicOutputDevice.c
Go to the documentation of this file.
1
10#include "type.h"
12
14#ifdef VUO_COMPILER
16 "title" : "Blackmagic Output Device",
17 "description" : "Information about a Blackmagic video output device.",
18 "keywords" : [ ],
19 "version" : "1.0.0",
20 "dependencies" : [
21 "VuoBlackmagicConnection",
22 "VuoBlackmagicVideoMode",
23 "VuoInteger",
24 "VuoText"
25 ]
26});
27#endif
29
43{
45 VuoJson_getObjectValue(VuoText, js, "name", NULL),
46 VuoJson_getObjectValue(VuoInteger, js, "subDevice", 0),
47 VuoJson_getObjectValue(VuoBlackmagicConnection, js, "connection", VuoBlackmagicConnection_Composite),
48 VuoJson_getObjectValue(VuoBlackmagicVideoMode, js, "videoMode", VuoBlackmagicVideoMode_NTSC),
49 };
50}
51
56{
57 json_object *js = json_object_new_object();
58
59 if (value.name)
60 json_object_object_add(js, "name", VuoText_getJson(value.name));
61
62 if (value.subDevice)
63 json_object_object_add(js, "subDevice", VuoInteger_getJson(value.subDevice));
64
65 json_object_object_add(js, "connection", VuoBlackmagicConnection_getJson(value.connection));
66
67 json_object_object_add(js, "videoMode", VuoBlackmagicVideoMode_getJson(value.videoMode));
68
69 return js;
70}
71
76{
77 char *connection = VuoBlackmagicConnection_getSummary(value.connection);
78 char *mode = VuoBlackmagicVideoMode_getSummary(value.videoMode);
79
80 char *summary;
81 if (value.name)
82 summary = VuoText_format("%s<br>Sub-device %lld<br>Connection: %s<br>Mode: %s",
83 value.name, value.subDevice, connection, mode);
84 else
85 summary = VuoText_format("First available Blackmagic output device<br>Connection: %s<br>Mode: %s",
86 connection, mode);
87
88 free(connection);
89 free(mode);
90 return summary;
91}
92
97{
98 if (value.name)
99 return VuoText_format("%s, sub-device %lld", value.name, value.subDevice);
100 else
101 return strdup("First available Blackmagic output device");
102}
103
108{
109 return (VuoBlackmagicOutputDevice){name, subDevice, connection, videoMode};
110}
111
116{
117 if (!VuoText_areEqual(value1.name, value2.name))
118 return false;
119
120 if (value1.subDevice != value2.subDevice)
121 return false;
122
123 if (!VuoBlackmagicConnection_areEqual(value1.connection, value2.connection))
124 return false;
125
126 if (!VuoBlackmagicVideoMode_areEqual(value1.videoMode, value2.videoMode))
127 return false;
128
129 return true;
130}
131
136{
137 VuoType_returnInequality(VuoText, a.name, b.name);
138 VuoType_returnInequality(VuoInteger, a.subDevice, b.subDevice);
139 VuoType_returnInequality(VuoBlackmagicConnection, a.connection, b.connection);
140 VuoType_returnInequality(VuoBlackmagicVideoMode, a.videoMode, b.videoMode);
141 return false;
142}