112 char **dylibPath = (
char **)dlsym(RTLD_SELF,
"VuoApp_dylibPath");
114 dylibPath = (
char **)dlsym(RTLD_DEFAULT,
"VuoApp_dylibPath");
117 char *filename = strrchr(*dylibPath,
'/');
120 char *name = strdup(filename + 1);
121 name[strlen(name) - strlen("-XXXXXX.dylib")] = 0;
123 if (strcmp(name,
"VuoComposition") == 0)
126 return strdup(
"Vuo Composition");
136 char *runnerName = (
char *)malloc(2*MAXCOMLEN);
137 proc_name(
runnerPid, runnerName, 2*MAXCOMLEN);
141 NSBundle *mainBundle = [NSBundle mainBundle];
142 NSString *name = [mainBundle objectForInfoDictionaryKey:@"CFBundleDisplayName"];
144 name = [mainBundle objectForInfoDictionaryKey:@"CFBundleName"];
146 name = [mainBundle objectForInfoDictionaryKey:@"CFBundleExecutable"];
148 name = [[[mainBundle executablePath] stringByDeletingPathExtension] lastPathComponent];
151 return strdup([name UTF8String]);
163 NSAutoreleasePool *pool = [NSAutoreleasePool new];
166 NSApplication *app = [NSApplication sharedApplication];
176 BOOL ret = [app setActivationPolicy:requiresDockIcon ? NSApplicationActivationPolicyRegular : NSApplicationActivationPolicyAccessory];
178 VUserLog(
"-[NSApplication setActivationPolicy:%d] failed", requiresDockIcon);
181 [app finishLaunching];
187 && [NSRunningApplication.currentApplication respondsToSelector:
@selector(activateFromApplication:options:)])
189 NSRunningApplication *runnerApp = [NSRunningApplication runningApplicationWithProcessIdentifier:runnerPid];
190 BOOL activated = (
BOOL)[NSRunningApplication.currentApplication
191 performSelector:
@selector(activateFromApplication:options:)
193 withObject:(id)NSApplicationActivateAllWindows];
195 VUserLog(
"-[NSRunningApplication activateFromApplication:%d options:] failed",
runnerPid);
254 SEL stopRecording =
@selector(stopRecording);
255 SEL compositionUidSel =
@selector(compositionUid);
256 for (NSWindow *window in [NSApp windows])
260 if ([window respondsToSelector:stopRecording]
261 && [window respondsToSelector:compositionUidSel]
262 && (uint64_t)[window performSelector:compositionUidSel] == compositionUid)
263 [window performSelector:stopRecording];
265 if ([NSApp windows].count)
268 [NSApp setActivationPolicy:NSApplicationActivationPolicyProhibited];
271 [NSRunLoop.currentRunLoop runUntilDate:[NSDate dateWithTimeIntervalSinceNow:VuoApp_windowFadeSeconds + fudge]];