Vuo  2.3.2
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 }