Vuo  2.4.0
VuoArtNetInputDevice.c
Go to the documentation of this file.
1
10#include "type.h"
12
14#ifdef VUO_COMPILER
16 "title" : "Art-Net Input Device",
17 "description" : "Information about an Art-Net input device.",
18 "keywords" : [ ],
19 "version" : "1.0.0",
20 "dependencies" : [
21 "VuoInteger",
22 "VuoText"
23 ]
24 });
25#endif
27
43{
44 return (VuoArtNetInputDevice){
45 VuoJson_getObjectValue(VuoText, js, "name", NULL),
46 VuoJson_getObjectValue(VuoText, js, "ipAddress", NULL),
47 VuoJson_getObjectValue(VuoText, js, "ethernetAddress", NULL),
48 {
50 VuoJson_getObjectValue(VuoInteger, js, "subNet", 0),
51 VuoJson_getObjectValue(VuoInteger, js, "universe", 0),
52 }};
53}
54
59{
60 json_object *js = json_object_new_object();
61
62 if (value.name)
63 json_object_object_add(js, "name", VuoText_getJson(value.name));
64
65 if (value.ipAddress)
66 json_object_object_add(js, "ipAddress", VuoText_getJson(value.ipAddress));
67
68 if (value.ethernetAddress)
69 json_object_object_add(js, "ethernetAddress", VuoText_getJson(value.ethernetAddress));
70
71 json_object_object_add(js, "net", VuoInteger_getJson(value.address.net));
72
73 json_object_object_add(js, "subNet", VuoInteger_getJson(value.address.subNet));
74
75 json_object_object_add(js, "universe", VuoInteger_getJson(value.address.universe));
76
77 return js;
78}
79
84{
85 if (value.name && value.ipAddress && value.ethernetAddress)
86 return VuoText_format("%s<br>%s (%s)<br>Net %lld, Sub-Net %lld, Universe %lld",
87 value.name,
88 value.ipAddress, value.ethernetAddress,
89 value.address.net, value.address.subNet, value.address.universe);
90 else
91 return VuoText_format("Net %lld, Sub-Net %lld, Universe %lld", value.address.net, value.address.subNet, value.address.universe);
92}
93
98{
100 bzero(&d, sizeof(VuoArtNetInputDevice));
101 d.address.net = MIN(MAX(net, 0), 127);
102 d.address.subNet = MIN(MAX(subNet, 0), 15);
103 d.address.universe = MIN(MAX(universe, 0), 15);
104 return d;
105}
106
115{
116 if (!VuoArtNetAddress_areEqual(value1.address, value2.address))
117 return false;
118
119 if (!VuoText_areEqual(value1.ipAddress, value2.ipAddress))
120 return false;
121
122 if (!VuoText_areEqual(value1.name, value2.name))
123 return false;
124
125 if (!VuoText_areEqual(value1.ethernetAddress, value2.ethernetAddress))
126 return false;
127
128 return true;
129}
130
135{
136 VuoType_returnInequality(VuoText, a.name, b.name);
137 VuoType_returnInequality(VuoText, a.ipAddress, b.ipAddress);
138 VuoType_returnInequality(VuoText, a.ethernetAddress, b.ethernetAddress);
139 VuoType_returnInequality(VuoArtNetAddress, a.address, b.address);
140 return false;
141}
142
147{
148 return value1.net == value2.net
149 && value1.subNet == value2.subNet
150 && value1.universe == value2.universe;
151}
152
157{
158 VuoInteger a1 = (value1.net << 8) + (value1.subNet << 4) + value1.universe;
159 VuoInteger a2 = (value2.net << 8) + (value2.subNet << 4) + value2.universe;
160
161 return a1 < a2;
162}