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 
134 pid_t VuoGetRunnerPid(void);
135 
139 void VuoStopComposition(void);
140 
147 void VuoStopCurrentComposition(void);
148 
156 
168 void VuoDisableTermination(void);
169 
173 void VuoEnableTermination(void);
174 
178 bool VuoShouldShowSplashWindow(void);
179 
180 bool VuoProcessorSupportsAVX2(void);
181 
186 extern const int VuoGraphicsWindowDefaultWidth;
187 
206 #define VuoJson_getObjectValue(type, js, key, ...) \
207 (^{ \
208  json_object *o; \
209  if (json_object_object_get_ex(js, key, &o)) \
210  return type ## _makeFromJson(o); \
211  else \
212  return (type)__VA_ARGS__; \
213 }())
214 
230 #define VuoType_returnInequality(type, a, b) \
231  if (type ## _isLessThan(a, b)) return true; \
232  if (type ## _isLessThan(b, a)) return false;
233 
234 #ifdef __cplusplus
235 }
236 #endif