Vuo  2.1.2
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 VuoIsPro(void);
184 
185 bool VuoProcessorSupportsAVX2(void);
186 
191 extern const int VuoGraphicsWindowDefaultWidth;
192 
211 #define VuoJson_getObjectValue(type, js, key, ...) \
212 (^{ \
213  json_object *o; \
214  if (json_object_object_get_ex(js, key, &o)) \
215  return type ## _makeFromJson(o); \
216  else \
217  return (type)__VA_ARGS__; \
218 }())
219 
235 #define VuoType_returnInequality(type, a, b) \
236  if (type ## _isLessThan(a, b)) return true; \
237  if (type ## _isLessThan(b, a)) return false;
238 
239 #ifdef __cplusplus
240 }
241 #endif