Ich schreibe ein Programm ein Plugin für ein Programm, das nicht in der Cocoa-Umgebung existiert (denke C++ - Kommandozeilenprogramm sagen wir mal). Wenn es von Interesse ist, ist dies das v8-Knoten-Add-On-System. Ich würde dieses Plugin wie den Bildschirm zu erfassen und somit den Einsatz von AVCaptureSession zu machen, etc. Also im Wesentlichen, so etwas wie:Wenn ich von einer Nicht-Cocoa-App aus in die Foundation eintrete, benötige ich NSRunLoop?
void start(/*entry*/)
{
// No run loop is *necessarily* present.
AVCaptureSession * session = ...
}
void stop (/*entry*/)
{
// etc..
}
In Wirklichkeit werde ich wahrscheinlich eine neue pthread beginnen, dieses Zeug zu tun in so dass nichts davon blockiert. Meine Frage ist, wie viel von der umliegenden Foundation-Infrastruktur ich einrichten muss. Ich brauche an Sicherheit grenzender Wahrscheinlichkeit eine @autoreleasepool {}, aber sollte ich meine eigenen Standard NSRunLoop im Thread ausgeführt werden, tatsächlich beginnen, nach oben, wenn ich nicht den Eindruck, dass jede Verschlagenheit in AVCapture usw. fehlschlagen:
BOOL isStillRecording = YES;
void start(/*entry*/)
{
// setup avcapture and what have you.
NSRunLoop *theRL = [NSRunLoop new];
while (isStillRecording && [theRL runMode:NSDefaultRunLoopMode beforeDate:[NSDate distantFuture]]);
}
void stop(/**entry**/)
{
// kill avcapture, maybe through async_dispatch to not stop on the start up.
isStillRecording = NO;
}