Vuo  2.0.0
module.h
Go to the documentation of this file.
1 
10 #pragma once
11 
12 #include "VuoConfig.h"
13 
14 #ifdef __cplusplus
15 extern "C" {
16 #endif
17 
18 #if !defined(VUO_STRINGIFY)
19  #define VUO_STRINGIFY(...) #__VA_ARGS__
21 #endif
22 
23 #include "VuoHeap.h"
24 
25 #if !defined(_json_object_h_) && !defined(DOXYGEN)
26  struct json_object;
27  extern const char* json_object_to_json_string(struct json_object *obj);
28 #endif
29 
30 #include "coreTypes.h"
31 
32 
107 #define VuoModuleMetadata(...) extern const char *moduleDetails; const char *moduleDetails = #__VA_ARGS__
108 
114 #ifndef DISPATCH_RETURNS_RETAINED_BLOCK
115  #define DISPATCH_RETURNS_RETAINED_BLOCK
118 #endif
119 #include <dispatch/dispatch.h>
120 
124 typedef void (*VuoCompositionFiniCallback)(void);
125 
129 const char *VuoGetWorkingDirectory(void);
130 
131 const char *VuoGetFrameworkPath(void);
132 const char *VuoGetRunnerFrameworkPath(void);
133 
137 pid_t VuoGetRunnerPid(void);
138 
142 void VuoStopComposition(void);
143 
150 void VuoStopCurrentComposition(void);
151 
159 
171 void VuoDisableTermination(void);
172 
176 void VuoEnableTermination(void);
177 
181 bool VuoShouldShowSplashWindow(void);
182 
183 bool VuoProcessorSupportsAVX2(void);
184 
189 extern const int VuoGraphicsWindowDefaultWidth;
190 
209 #define VuoJson_getObjectValue(type, js, key, ...) \
210 (^{ \
211  json_object *o; \
212  if (json_object_object_get_ex(js, key, &o)) \
213  return type ## _makeFromJson(o); \
214  else \
215  return (type)__VA_ARGS__; \
216 }())
217 
233 #define VuoType_returnInequality(type, a, b) \
234  if (type ## _isLessThan(a, b)) return true; \
235  if (type ## _isLessThan(b, a)) return false;
236 
237 #ifdef __cplusplus
238 }
239 #endif