Vuo  2.3.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)
20  #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 
109 #define VuoModuleMetadata(...) extern const char *moduleDetails; const char *moduleDetails = #__VA_ARGS__
110 
116 #ifndef DISPATCH_RETURNS_RETAINED_BLOCK
119  #define DISPATCH_RETURNS_RETAINED_BLOCK
120 #endif
121 #include "VuoMacOSSDKWorkaround.h"
122 #include <dispatch/dispatch.h>
123 
127 typedef void (*VuoCompositionFiniCallback)(void);
128 
132 const char *VuoGetWorkingDirectory(void);
133 
134 const char *VuoGetFrameworkPath(void);
135 const char *VuoGetRunnerFrameworkPath(void);
136 
140 pid_t VuoGetRunnerPid(void);
141 
145 void VuoStopComposition(void);
146 
153 void VuoStopCurrentComposition(void);
154 
162 
174 void VuoDisableTermination(void);
175 
179 void VuoEnableTermination(void);
180 
184 bool VuoShouldShowSplashWindow(void);
185 
186 bool VuoIsPro(void);
187 
188 bool VuoProcessorSupportsAVX2(void);
189 
194 extern const int VuoGraphicsWindowDefaultWidth;
195 
214 #define VuoJson_getObjectValue(type, js, key, ...) \
215 (^{ \
216  json_object *o; \
217  if (json_object_object_get_ex(js, key, &o)) \
218  return type ## _makeFromJson(o); \
219  else \
220  return (type)__VA_ARGS__; \
221 }())
222 
238 #define VuoType_returnInequality(type, a, b) \
239  if (type ## _isLessThan(a, b)) return true; \
240  if (type ## _isLessThan(b, a)) return false;
241 
242 #ifdef __cplusplus
243 }
244 #endif