diff --git a/atemOSC.app/Contents/Frameworks/VVBasics.framework/Resources b/atemOSC.app/Contents/Frameworks/VVBasics.framework/Resources new file mode 120000 index 0000000..953ee36 --- /dev/null +++ b/atemOSC.app/Contents/Frameworks/VVBasics.framework/Resources @@ -0,0 +1 @@ +Versions/Current/Resources \ No newline at end of file diff --git a/atemOSC.app/Contents/Frameworks/VVBasics.framework/Resources/Info.plist b/atemOSC.app/Contents/Frameworks/VVBasics.framework/Resources/Info.plist deleted file mode 100644 index 29822ba..0000000 --- a/atemOSC.app/Contents/Frameworks/VVBasics.framework/Resources/Info.plist +++ /dev/null @@ -1,38 +0,0 @@ - - - - - BuildMachineOSBuild - 11E53 - CFBundleDevelopmentRegion - English - CFBundleExecutable - VVBasics - CFBundleGetInfoString - 156 - CFBundleIdentifier - com.vidvox.VVBasics - CFBundleInfoDictionaryVersion - 6.0 - CFBundlePackageType - FMWK - CFBundleSignature - ???? - CFBundleVersion - 156 - DTCompiler - com.apple.compilers.llvm.clang.1_0 - DTPlatformBuild - 4E2002 - DTPlatformVersion - GM - DTSDKBuild - 10K549 - DTSDKName - macosx10.6 - DTXcode - 0432 - DTXcodeBuild - 4E2002 - - diff --git a/atemOSC.app/Contents/Frameworks/VVBasics.framework/Resources/VVCrashReporter.nib b/atemOSC.app/Contents/Frameworks/VVBasics.framework/Resources/VVCrashReporter.nib deleted file mode 100644 index 4c7b505..0000000 Binary files a/atemOSC.app/Contents/Frameworks/VVBasics.framework/Resources/VVCrashReporter.nib and /dev/null differ diff --git a/atemOSC.app/Contents/Frameworks/VVBasics.framework/VVBasics b/atemOSC.app/Contents/Frameworks/VVBasics.framework/VVBasics deleted file mode 100755 index 6de9533..0000000 Binary files a/atemOSC.app/Contents/Frameworks/VVBasics.framework/VVBasics and /dev/null differ diff --git a/atemOSC.app/Contents/Frameworks/VVBasics.framework/VVBasics b/atemOSC.app/Contents/Frameworks/VVBasics.framework/VVBasics new file mode 120000 index 0000000..b4f88c3 --- /dev/null +++ b/atemOSC.app/Contents/Frameworks/VVBasics.framework/VVBasics @@ -0,0 +1 @@ +Versions/Current/VVBasics \ No newline at end of file diff --git a/atemOSC.app/Contents/Frameworks/VVBasics.framework/Versions/A/Headers/MutLockArray.h b/atemOSC.app/Contents/Frameworks/VVBasics.framework/Versions/A/Headers/MutLockArray.h deleted file mode 100644 index deaf284..0000000 --- a/atemOSC.app/Contents/Frameworks/VVBasics.framework/Versions/A/Headers/MutLockArray.h +++ /dev/null @@ -1,185 +0,0 @@ - -#if IPHONE -#import -#else -#import -#endif -#import - - - -/// Similar to NSMutableArray, but thread-safe. Internally, uses an NSMutableArray and a rwlock. -/* -This class exists because NSMutableArray is not thread-safe by default: if you call methods on it from two different threads at the same time, it will try to execute both, often crashing in the process. I found myself writing a lot of lock/array pairs, so simplified everything by combining them into a single class. MutLockArray has methods which allow you to work with a mutable array in a transparent and thread-safe manner- it will automatically establish the read-/write-locks necessary to perform the relevant task. By avoiding the "lock" methods, you can also work with the array without performing any locking- so you can get a read-/write-lock, perform a number of actions, and then unlock. - -It is important to remember, when working with it, that MutLockArray is NOT a subclass of NSMutableArray; rather, it is a subclass of NSObject with an instance of an NSMutableArray and a rwlock for working with it safely. This means that you can't pass an instance of MutLockArray to anything which is expecting to be passed an NSMutableArray- internally, apple's frameworks will probably be doing some dark voodoo bullshit which will result in a spectacular failure. If you want to work with an actual NSMutableArray, check out the "array", "createArrayCopy", and "lockCreateArrayCopy" methods below. - -...and remember- when looking for stuff in an NSMutableArray, the array will use the "isEqualTo:" comparator method, which is slower than comparing the address of two pointers. if you know the pointer address hasn't changed (if you're *not* working with NSStrings), use the "indexOfIdenticalPtr", "removeIdenticalPtr", etc. methods to work with the array. -*/ - -@interface MutLockArray : NSObject { - NSMutableArray *array; - pthread_rwlock_t arrayLock; -} - -/// Creates and returns an auto-released MutLockArray with a given capacity. The capacity may be 0. -+ (id) arrayWithCapacity:(NSUInteger)c; -/// Inits and returns a MutLockArray with a given capacity; the capacity may be 0. -- (id) initWithCapacity:(NSUInteger)c; -- (id) init; - -/// Establishes a read-lock for the array; multiple read locks may exist simultaneously (if it's not changing, anything can look at the contents of the array). This method does not return until it has been able to get the lock. -- (void) rdlock; -- (BOOL) tryRdLock; // returns YES if i got a read-lock successfully! -/// Establishes a write-lock for the array. Only one write-lock may exist at any given time, and all read-locks must be relinquished before the write-lock may be established (if you're going to change the array, nothing else can be changing or observing it). -- (void) wrlock; -/// Unlocks the array. -- (void) unlock; - -/// Returns the NSMutableArray with everything in it. This returns the actual array, so be careful- it's possible to do something which ISN'T threadsafe with this... -- (NSMutableArray *) array; -/// Returns an NSMutableArray which was created by calling "mutableCopy" on my array. Again, it's possible to do something which ISN'T threadsafe by calling this... -- (NSMutableArray *) createArrayCopy; -/// Returns an NSMutableArray which was created while a read-lock was established; this is threadsafe. -- (NSMutableArray *) lockCreateArrayCopy; - -/// Calls "addObject" on my array; not threadsafe. -- (void) addObject:(id)o; -/// Establishes a write-lock, then calls "addObject" on self; threadsafe. -- (void) lockAddObject:(id)o; -/// Calls "addObjectsFromArray" on my array; not threadsafe. -- (void) addObjectsFromArray:(id)a; -/// Establishes a write-lock, then calls "addObjectsFromArray" on self; threadsafe. -- (void) lockAddObjectsFromArray:(id)a; -/// Calls "addObjectsFromArray" on my array; not threadsafe. -- (void) replaceWithObjectsFromArray:(id)a; -/// Establishes a write-lock, then calls "replaceWithObjectsFromArray" on self; threadsafe. -- (void) lockReplaceWithObjectsFromArray:(id)a; -/// Calls "insertObject:atIndex:" on my array; not threadsafe. -- (void) insertObject:(id)o atIndex:(NSUInteger)i; -/// Establishes a write-lock, then calls "insertObject:atIndex:" on self; threadsafe. -- (void) lockInsertObject:(id)o atIndex:(NSUInteger)i; -/// Calls "removeAllObjects" on my array; not threadsafe. -- (void) removeAllObjects; -/// Establishes a write-lock, then calls "removeAllObjects" on self; threadsafe. -- (void) lockRemoveAllObjects; -/// Calls "objectAtIndex:0" on my array; not threadsafe. -- (id) firstObject; -/// Establishes a read-lock, then calls "firstObject" on self; threadsafe -- (id) lockFirstObject; -/// Calls "removeObjectAtIndex:0" on my array; not threadsafe -- (void) removeFirstObject; -/// Establishes a write-lock, then calls "removeFirstObject" on self; threadsafe. -- (void) lockRemoveFirstObject; -/// Calls "lastObject" on my array; not threadsafe. -- (id) lastObject; -/// Establishes a read-lock, then calls "lastObject" on self; threadsafe. -- (id) lockLastObject; -/// Calls "removeLastObject" on my array; not threadsafe. -- (void) removeLastObject; -/// Establishes a write-lock, then calls "removeLastObject" on self; threadsafe. -- (void) lockRemoveLastObject; -/// Calls "removeObject:" on my array; not threadsafe. -- (void) removeObject:(id)o; -/// Establishes a write-lock, then calls "removeObject:" on self; threadsafe. -- (void) lockRemoveObject:(id)o; -/// Calls "removeObjectAtIndex:" on my array; not threadsafe. -- (void) removeObjectAtIndex:(NSUInteger)i; -/// Establishes a write-lock, then calls "removeObjectAtIndex:" on self; threadsafe. -- (void) lockRemoveObjectAtIndex:(NSUInteger)i; -/// Calls "removeObjectsAtIndexes:" on my array; not threadsafe. -- (void) removeObjectsAtIndexes:(NSIndexSet *)i; -/// Establishes a write-lock, then calls "removeObjectsAtIndexes:" on self; threadsafe. -- (void) lockRemoveObjectsAtIndexes:(NSIndexSet *)i; -/// Calls "removeObjectsInArray:" on my array; not threadsafe. -- (void) removeObjectsInArray:(NSArray *)otherArray; -/// Establishes a write-lock, then calls "removeObjectsInArray:" on self; threadsafe. -- (void) lockRemoveObjectsInArray:(NSArray *)otherArray; -/// Calls "removeIdenticalPtrsInArray:" on my array; not threadsafe -- (void) removeIdenticalPtrsInArray:(NSArray *)a; -/// Establishes a write-lock, then calls "removeIdenticalPtrsInArray:" on self; threadsafe. -- (void) lockRemoveIdenticalPtrsInArray:(NSArray *)a; - -/// Calls "replaceObjectsAtIndexes:withObjects" on my array; not threadsafe. -- (void) replaceObjectsAtIndexes:(NSIndexSet *)indexes withObjects:(NSArray *)objects; -// Establishes a write-lock, then calls "replaceObjectsAtIndexes:withObjects on self; threadsafe -- (void) lockReplaceObjectsAtIndexes:(NSIndexSet *)indexes withObjects:(NSArray *)objects; - -/// Calls "valueForKey:" on my array; not threadsafe. -- (id) valueForKey:(NSString *)key; -/// Establishes a read-lock, then calls "valueForKey:" on self; threadsafe. -- (id) lockValueForKey:(NSString *)key; - - -/// Calls "containsObject:" on my array; not threadsafe. -- (BOOL) containsObject:(id)o; -/// Establishes a read-lock, then calls "containsObject:" on self; threadsafe. -- (BOOL) lockContainsObject:(id)o; -/// Calls "objectAtIndex:" on my array; not threadsafe. -- (id) objectAtIndex:(NSUInteger)i; -/// Establishes a read-lock, then calls "objectAtIndex:" on self; threadsafe. -- (id) lockObjectAtIndex:(NSUInteger)i; -/// Calls "objectsAtIndexes:" on my array; not threadsafe. -- (NSArray *) objectsAtIndexes:(NSIndexSet *)indexes; -/// Establishes a read-lock, then calls "objectsAtIndexes:" on self; threadsafe. -- (NSArray *) lockObjectsAtIndexes:(NSIndexSet *)indexes; -/// Calls "indexOfObject:" on my array; not threadsafe. -- (NSUInteger) indexOfObject:(id)o; -/// Establishes a read-lock, then calls "indexOfObject:" on self; threadsafe. -- (NSUInteger) lockIndexOfObject:(id)o; - - -/// Enumerates through my array- compares the address of each item in the array to the passed pointer. Unlike NSMutableArray, this method does NOT call isEqualTo:, it's just a simple == operator. -- (BOOL) containsIdenticalPtr:(id)o; -/// Establishes a read-lock, then calls "containsIdenticalPtr:" on self; threadsafe. -- (BOOL) lockContainsIdenticalPtr:(id)o; -/// Enumerates through my array- compares the address of each item in the array to the passed pointer. Unlike NSMutableArray, this method does NOT call isEqualTo:, it's just a simple == operator. -- (long) indexOfIdenticalPtr:(id)o; -/// Establishes a read-lock, then calls "indexOfIdenticalPtr:" on self; threadsafe. -- (long) lockIndexOfIdenticalPtr:(id)o; -/// Locates an item in my array by enumerating through it and comparing the address of each item in the array to the passed ptr, and then deletes the matching item from the array; not threadsafe. -- (void) removeIdenticalPtr:(id)o; -/// Establishes a write-lock, then calls "removeIdenticalPtr:" on self; threadsafe. -- (void) lockRemoveIdenticalPtr:(id)o; - -// Calls "filteredArrayUsingPredicate:" on my array; not threadsafe -- (NSArray *)filteredArrayUsingPredicate:(NSPredicate *)predicate; -// Establishes a read-lock, then calls "filteredArrayUsingPredicate:" on self; threadsafe -- (NSArray *) lockFilteredArrayUsingPredicate:(NSPredicate *)predicate; - -/// Calls "makeObjectsPerformSelector:" on my array; not threadsafe. -- (void) makeObjectsPerformSelector:(SEL)s; -/// Establishes a read-lock, then calls "makeObjectsPerformSelector:" on self; threadsafe. -- (void) lockMakeObjectsPerformSelector:(SEL)s; -/// Calls "makeObjectsPerformSelector:withObject:" on my array; not threadsafe. -- (void) makeObjectsPerformSelector:(SEL)s withObject:(id)o; -/// Establishes a read-lock, then calls "makeObjectsPerformSelector:withObject:" on self; threadsafe. -- (void) lockMakeObjectsPerformSelector:(SEL)s withObject:(id)o; - - - -/* -- (void) makeCopyPerformSelector:(SEL)s; -- (void) lockMakeCopyPerformSelector:(SEL)s; -- (void) makeCopyPerformSelector:(SEL)s withObject:(id)o; -- (void) lockMakeCopyPerformSelector:(SEL)s withObject:(id)o; -*/ - - - -/// Calls "sortUsingSelector:" on my array; not threadsafe. -- (void) sortUsingSelector:(SEL)s; -/// Establishes a write-lock, then calls "sortUsingSelector:" on self; threadsafe. -- (void) lockSortUsingSelector:(SEL)s; - -/// Calls "sortUsingDescriptors:" on my array; not threadsafe. -- (void) sortUsingDescriptors:(NSArray *)descriptors; -/// Establishes a write-lock, then calls "sortUsingDescriptors:" on self; threadsafe. -- (void) lockSortUsingDescriptors:(NSArray *)descriptors; - -- (NSEnumerator *) objectEnumerator; -- (NSEnumerator *) reverseObjectEnumerator; -- (long) count; -- (long) lockCount; - -@end diff --git a/atemOSC.app/Contents/Frameworks/VVBasics.framework/Versions/A/Headers/MutLockDict.h b/atemOSC.app/Contents/Frameworks/VVBasics.framework/Versions/A/Headers/MutLockDict.h deleted file mode 100644 index e162293..0000000 --- a/atemOSC.app/Contents/Frameworks/VVBasics.framework/Versions/A/Headers/MutLockDict.h +++ /dev/null @@ -1,56 +0,0 @@ - -#if IPHONE -#import -#else -#import -#endif -#import - - - -/// MutLockDict is a thread-safe version of NSMutableDictionary. -/*! -This class exists because NSMutableDictionary is not thread-safe by default: if you call methods on it from two different threads at the same time, it will try to execute both, often crashing in the process. This class has methods which allow you to work with a mutable dictionary in a transparent and thread-safe manner. -*/ - -@interface MutLockDict : NSObject { - NSMutableDictionary *dict; - pthread_rwlock_t dictLock; -} - -+ (id) dictionaryWithCapacity:(NSUInteger)c; -+ (id) dictionaryWithDict:(NSDictionary *)d; -- (id) initWithCapacity:(NSUInteger)c; - -- (void) rdlock; -- (void) wrlock; -- (void) unlock; - -- (NSMutableDictionary *) dict; -- (NSMutableDictionary *) createDictCopy; -- (NSMutableDictionary *) lockCreateDictCopy; - -- (void) setObject:(id)o forKey:(NSString *)s; -- (void) lockSetObject:(id)o forKey:(NSString *)s; -- (void) setValue:(id)v forKey:(NSString *)s; -- (void) lockSetValue:(id)v forKey:(NSString *)s; -- (void) removeAllObjects; -- (void) lockRemoveAllObjects; -- (id) objectForKey:(NSString *)k; -- (id) lockObjectForKey:(NSString *)k; -- (void) removeObjectForKey:(NSString *)k; -- (void) lockRemoveObjectForKey:(NSString *)k; -- (void) addEntriesFromDictionary:(NSDictionary *)otherDictionary; -- (void) lockAddEntriesFromDictionary:(NSDictionary *)otherDictionary; -- (NSArray *) allKeys; -- (NSArray *) lockAllKeys; -- (NSArray *) allValues; -- (NSArray *) lockAllValues; - -- (void) lockMakeObjectsPerformSelector:(SEL)s; -- (void) makeObjectsPerformSelector:(SEL)s; - -- (NSUInteger) count; -- (NSUInteger) lockCount; - -@end diff --git a/atemOSC.app/Contents/Frameworks/VVBasics.framework/Versions/A/Headers/MutNRLockArray.h b/atemOSC.app/Contents/Frameworks/VVBasics.framework/Versions/A/Headers/MutNRLockArray.h deleted file mode 100644 index 9ad1138..0000000 --- a/atemOSC.app/Contents/Frameworks/VVBasics.framework/Versions/A/Headers/MutNRLockArray.h +++ /dev/null @@ -1,50 +0,0 @@ - -#if IPHONE -#import -#else -#import -#endif - -#import "MutLockArray.h" -#import "ObjectHolder.h" - - - -/// Subclass of MutLockArray; this class does NOT retain the objects in its array! -/* -this class exists because i frequently find myself in situations where i want to add an instance of an object to an array/dict/[any class which retains the passed instance], but i don't actually want the item to be retained. - -Instead of adding (and therefore retaining) objects to an array like my superclass, this class makes an ObjectHolder for objects which are added to it (so they don't get retained), and adds the ObjectHolder to me. when other classes ask me for the index of an object, or ask for the object at a particular index, i'll find the relevant ObjectHolder and then return the object it's storing. -*/ - -@interface MutNRLockArray : MutLockArray { - -} - -+ (id) arrayWithCapacity:(NSUInteger)c; - -- (NSMutableArray *) createArrayCopy; -- (NSMutableArray *) lockCreateArrayCopyFromObjects; -- (NSMutableArray *) createArrayCopyFromObjects; -- (void) addObject:(id)o; -- (void) addObjectsFromArray:(id)a; -- (void) replaceWithObjectsFromArray:(id)a; -- (void) insertObject:(id)o atIndex:(NSUInteger)i; -- (id) lastObject; -- (void) removeObject:(id)o; -- (BOOL) containsObject:(id)o; -- (id) objectAtIndex:(NSUInteger)i; -- (NSArray *) objectsAtIndexes:(NSIndexSet *)indexes; -- (NSUInteger) indexOfObject:(id)o; -- (BOOL) containsIdenticalPtr:(id)o; -- (long) indexOfIdenticalPtr:(id)o; -- (void) removeIdenticalPtr:(id)o; - -// these methods exist because the lookup cost for an ObjectHolder can be significant for high-performance applications- these methods get the object from the ObjectHolder and call the method directly on it! -- (void) bruteForceMakeObjectsPerformSelector:(SEL)s; -- (void) lockBruteForceMakeObjectsPerformSelector:(SEL)s; -- (void) bruteForceMakeObjectsPerformSelector:(SEL)s withObject:(id)o; -- (void) lockBruteForceMakeObjectsPerformSelector:(SEL)s withObject:(id)o; - - -@end diff --git a/atemOSC.app/Contents/Frameworks/VVBasics.framework/Versions/A/Headers/MutNRLockDict.h b/atemOSC.app/Contents/Frameworks/VVBasics.framework/Versions/A/Headers/MutNRLockDict.h deleted file mode 100644 index f4f757f..0000000 --- a/atemOSC.app/Contents/Frameworks/VVBasics.framework/Versions/A/Headers/MutNRLockDict.h +++ /dev/null @@ -1,39 +0,0 @@ -// -// MutNRLockDict.h -// VVOpenSource -// -// Created by David Lublin on 12/22/09. -// Copyright 2009 Vidvox. All rights reserved. -// - -#if IPHONE -#import -#else -#import -#endif - -#import "MutLockDict.h" -#import "ObjectHolder.h" - - - -/// Subclass of MutLockDict; this class does NOT retain the objects in its array! -/* -this class exists because i frequently find myself in situations where i want to add an instance of an object to an array/dict/[any class which retains the passed instance], but i don't actually want the item to be retained. - -Instead of adding (and therefore retaining) objects to an array like my superclass, this class makes an ObjectHolder for objects which are added to it (so they don't get retained), and adds the ObjectHolder to me. when other classes ask me for the index of an object, or ask for the object at a particular index, i'll find the relevant ObjectHolder and then return the object it's storing. -*/ - - -@interface MutNRLockDict : MutLockDict { - -} - - -- (void) setObject:(id)o forKey:(NSString *)s; -- (void) setValue:(id)v forKey:(NSString *)s; -- (id) objectForKey:(NSString *)k; -- (void) addEntriesFromDictionary:(id)otherDictionary; -- (NSArray *) allValues; - -@end diff --git a/atemOSC.app/Contents/Frameworks/VVBasics.framework/Versions/A/Headers/NamedMutLockArray.h b/atemOSC.app/Contents/Frameworks/VVBasics.framework/Versions/A/Headers/NamedMutLockArray.h deleted file mode 100644 index 54e75d0..0000000 --- a/atemOSC.app/Contents/Frameworks/VVBasics.framework/Versions/A/Headers/NamedMutLockArray.h +++ /dev/null @@ -1,31 +0,0 @@ - -#if IPHONE -#import -#else -#import -#endif -#import "VVBasicMacros.h" -#import "MutLockArray.h" - - - - -/* - // only difference between this and MutLockArray is the "name" variable. -*/ - - - - -@interface NamedMutLockArray : MutLockArray { - NSString *name; -} - -+ (id) arrayWithCapacity:(int)c; -+ (id) create; - -- (NSComparisonResult) nameCompare:(NamedMutLockArray *)comp; - -@property (assign, readwrite) NSString *name; - -@end diff --git a/atemOSC.app/Contents/Frameworks/VVBasics.framework/Versions/A/Headers/ObjectHolder.h b/atemOSC.app/Contents/Frameworks/VVBasics.framework/Versions/A/Headers/ObjectHolder.h deleted file mode 100644 index 64c397f..0000000 --- a/atemOSC.app/Contents/Frameworks/VVBasics.framework/Versions/A/Headers/ObjectHolder.h +++ /dev/null @@ -1,38 +0,0 @@ - -#if IPHONE -#import -#else -#import -#endif - - - - -/* - created for working with the MutNRLockArray class. - - basically, you create an instance of this class and give it a reference to an - instance of an object. the instance is NOT retained- but you're now free to - pass ObjectHolder to stuff which will otherwise retain/release it without - worrying about whether the passed instance is retained/released. - - if you call a method on an instance of ObjectHolder and the ObjectHolder - class doesn't respond to that method, the instance will try to call the - method on its object. this means that working with ObjectHolder should- - theoretically, at any rate- be transparent... -*/ - - - - -@interface ObjectHolder : NSObject { - BOOL deleted; - id object; -} - -+ (id) createWithObject:(id)o; -- (id) initWithObject:(id)o; - -@property (assign,readwrite) id object; - -@end diff --git a/atemOSC.app/Contents/Frameworks/VVBasics.framework/Versions/A/Headers/VVAssertionHandler.h b/atemOSC.app/Contents/Frameworks/VVBasics.framework/Versions/A/Headers/VVAssertionHandler.h deleted file mode 100644 index 47cdeef..0000000 --- a/atemOSC.app/Contents/Frameworks/VVBasics.framework/Versions/A/Headers/VVAssertionHandler.h +++ /dev/null @@ -1,31 +0,0 @@ - -#if IPHONE -#import -#else -#import -#endif - - - - -#define USE_CUSTOM_ASSERTION_HANDLER \ -{ \ - NSThread *__currentThread = [NSThread currentThread]; \ - NSDictionary *__threadDict = (__currentThread==nil) ? nil : [__currentThread threadDictionary]; \ - if (__threadDict != nil) { \ - VVAssertionHandler *__newAH = [[VVAssertionHandler alloc] init]; \ - if (__newAH != nil) { \ - [__threadDict setValue:__newAH forKey:@"NSAssertionHandler"]; \ - [__newAH release]; \ - __newAH = nil; \ - } \ - } \ -} - - - -@interface VVAssertionHandler : NSAssertionHandler { - -} - -@end diff --git a/atemOSC.app/Contents/Frameworks/VVBasics.framework/Versions/A/Headers/VVBasicMacros.h b/atemOSC.app/Contents/Frameworks/VVBasics.framework/Versions/A/Headers/VVBasicMacros.h deleted file mode 100644 index 6eab4c6..0000000 --- a/atemOSC.app/Contents/Frameworks/VVBasics.framework/Versions/A/Headers/VVBasicMacros.h +++ /dev/null @@ -1,229 +0,0 @@ - -// macros for checking to see if something is nil, and if it's not releasing and setting it to nil -#define VVRELEASE(item) {if (item != nil) { \ - [item release]; \ - item = nil; \ -}} -#define VVAUTORELEASE(item) {if (item != nil) { \ - [item autorelease]; \ - item = nil; \ -}} - - - -// macros for making a CGRect from an NSRect -#define NSMAKECGRECT(n) CGRectMake(n.origin.x, n.origin.y, n.size.width, n.size.height) -#define NSMAKECGPOINT(n) CGPointMake(n.x, n.y) -#define NSMAKECGSIZE(n) CGSizeMake(n.width, n.height) -// macros for making an NSRect from a CGRect -#define CGMAKENSRECT(n) NSMakeRect(n.origin.x, n.origin.y, n.size.width, n.size.height) -#define CGMAKENSSIZE(n) NSMakeSize(n.width,n.height) - -// macro for quickly printing out the dimensions of a rect (and a name/id so you can distinguish between them) -#define NSRectLog(n,r) NSLog(@"%@, (%f,%f) : %fx%f",n,r.origin.x,r.origin.y,r.size.width,r.size.height) -#define NSPointLog(n,r) NSLog(@"%@, (%f,%f)",n,r.x,r.y) -#define NSSizeLog(n,s) NSLog(@"%@, %fx%f",n,s.width,s.height) - -// macros for quickly making numbers and values -#define NUMINT(i) [NSNumber numberWithInt:i] -#define NUMFLOAT(f) [NSNumber numberWithFloat:f] -#define NUMBOOL(b) [NSNumber numberWithBool:b] -#define NUMDOUBLE(d) [NSNumber numberWithDouble:d] -#define VALSIZE(s) [NSValue valueWithSize:s] -#define VALRECT(r) [NSValue valueWithRect:r] - -// macro for quickly archiving and object -#define ARCHIVE(a) [NSKeyedArchiver archivedDataWithRootObject:a] -#define UNARCHIVE(a) [NSKeyedUnarchiver unarchiveObjectWithData:a] - -// macro for quickly making colors -#define VVDEVCOLOR(r,g,b,a) [NSColor colorWithDeviceRed:r green:g blue:b alpha:a] -#define VVCALCOLOR(r,g,b,a) [NSColor colorWithCalibratedRed:r green:g blue:b alpha:a] - -// nice little macro for strings -#define VVSTRING(n) ((NSString *)[NSString stringWithString:n]) -#define VVFMTSTRING(f, ...) ((NSString *)[NSString stringWithFormat:f, ##__VA_ARGS__]) -#define VVDATASTRING(n) ((NSData *)[[NSString stringWithString:n] dataUsingEncoding:NSUTF8StringEncoding]) -#define VVDATAFMTSTRING(f, ...) ((NSData *)[[NSString stringWithFormat:f, ##__VA_ARGS__] dataUsingEncoding:NSUTF8StringEncoding]) - -// macros for quickly making arrays because.....well, it's the wiimote, and i'm fucking tired of typing. so there. -#define OBJARRAY(f) [NSArray arrayWithObject:f] -#define OBJSARRAY(f, ...) [NSArray arrayWithObjects:f, ##__VA_ARGS__, nil] -#define MUTARRAY [NSMutableArray arrayWithCapacity:0] - -// macros for quickly making dicts -#define OBJDICT(o,k) [NSDictionary dictionaryWithObject:o forKey:k] -#define OBJSDICT(o, ...) [NSDictionary dictionaryWithObjectsAndKeys:o,#__VA_ARGS__, nil] -#define MUTDICT [NSMutableDictionary dictionaryWithCapacity:0] - -// calculating the distance between two NSPoints or similar structs -#define POINTDISTANCE(a,b) fabs(sqrtf((a.x-b.x)*(a.x-b.x) + (a.y-b.y)*(a.y-b.y))) - - -// this is a macro for drawing an NSRect in opengl -#define GLDRAWRECT(r) \ -{ \ - GLfloat vvMacroVertices[]={ \ - r.origin.x, r.origin.y, 0.0, \ - r.origin.x, r.origin.y+r.size.height, 0.0, \ - r.origin.x+r.size.width, r.origin.y+r.size.height, 0.0, \ - r.origin.x+r.size.width, r.origin.y, 0.0}; \ - glVertexPointer(3,GL_FLOAT,0,vvMacroVertices); \ - glDrawArrays(GL_QUADS,0,4); \ -} - - - -// this is a macro for stroking an NSRect in opengl -#define GLSTROKERECT(r) \ -{ \ - GLfloat vvMacroVertices[]={ \ - r.origin.x-0.5, r.origin.y-0.5, 0.0, \ - r.origin.x+r.size.width+0.5, r.origin.y-0.5, 0.0, \ - r.origin.x+r.size.width+0.5, r.origin.y-0.5, 0.0, \ - r.origin.x+r.size.width+0.5, r.origin.y+r.size.height-0.5, 0.0, \ - r.origin.x+r.size.width+0.5, r.origin.y+r.size.height-0.5, 0.0, \ - r.origin.x-0.5, r.origin.y+r.size.height-0.5, 0.0, \ - r.origin.x-0.5, r.origin.y+r.size.height-0.5, 0.0, \ - r.origin.x-0.5, r.origin.y-0.5, 0.0}; \ - glVertexPointer(3,GL_FLOAT,0,vvMacroVertices); \ - glDrawArrays(GL_LINES,0,8); \ -} -/* -#define GLSTROKERECT(r) \ -{ \ - GLfloat vvMacroVertices[]={ \ - r.origin.x, r.origin.y, 0.0, \ - r.origin.x+r.size.width, r.origin.y, 0.0, \ - r.origin.x+r.size.width, r.origin.y, 0.0, \ - r.origin.x+r.size.width, r.origin.y+r.size.height, 0.0, \ - r.origin.x+r.size.width, r.origin.y+r.size.height, 0.0, \ - r.origin.x, r.origin.y+r.size.height, 0.0, \ - r.origin.x, r.origin.y+r.size.height, 0.0, \ - r.origin.x, r.origin.y, 0.0}; \ - glVertexPointer(3,GL_FLOAT,0,vvMacroVertices); \ - glDrawArrays(GL_LINES,0,8); \ -} -*/ - - -// this is a macro for drawing a line connecting two points -#define GLDRAWLINE(p,q) \ -{ \ - GLfloat vvMacroVertices[]={ \ - p.x, p.y, 0.0, \ - q.x, q.y, 0.0}; \ - glVertexPointer(3,GL_FLOAT,0,vvMacroVertices); \ - glDrawArrays(GL_LINES,0,2); \ -} - - - -// this is a macro for drawing a diamond specified by a point and radius in opengl -#define GLDRAWDIAMOND(p,r) \ -{ \ - GLfloat vvMacroVertices[] = { \ - p.x-r, p.y, 0.0, \ - p.x, p.y+r, 0.0, \ - p.x+r, p.y, 0.0, \ - p.x, p.y-r, 0.0}; \ - glVertexPointer(3,GL_FLOAT,0,vvMacroVertices); \ - glDrawArrays(GL_QUADS,0,4); \ -} - - - -// this is a macro for stroking an diamond around a point in opengl -#define GLSTROKEDIAMOND(p,r) \ -{ \ - GLfloat vvMacroVertices[] = { \ - p.x-r, p.y, 0.0, \ - p.x, p.y+r, 0.0, \ - p.x, p.y+r, 0.0, \ - p.x+r, p.y, 0.0, \ - p.x+r, p.y, 0.0, \ - p.x, p.y-r, 0.0, \ - p.x, p.y-r, 0.0, \ - p.x-r, p.y, 0.0}; \ - glVertexPointer(3,GL_FLOAT,0,vvMacroVertices); \ - glDrawArrays(GL_LINE_LOOP,0,8); \ -} - - -// this is a macro for drawing a texture of a specified size in a rect -#define GLDRAWTEXSIZEDINRECT(t,s,r) \ -{ \ - GLfloat vvMacroVertices[]={ \ - r.origin.x, r.origin.y, 0.0, \ - r.origin.x+r.size.width, r.origin.y, 0.0, \ - r.origin.x+r.size.width, r.origin.y+r.size.height, 0.0, \ - r.origin.x, r.origin.y+r.size.height, 0.0}; \ - GLfloat vvMacroTexCoords[]={ \ - 0.0,s.height, \ - s.width,s.height, \ - s.width,0.0, \ - 0.0,0.0}; \ - glVertexPointer(3,GL_FLOAT,0,vvMacroVertices); \ - glTexCoordPointer(2,GL_FLOAT,0,vvMacroTexCoords); \ - glBindTexture(GL_TEXTURE_RECTANGLE_EXT,t); \ - glDrawArrays(GL_QUADS,0,4); \ - glBindTexture(GL_TEXTURE_RECTANGLE_EXT,0); \ -} - -#define GLDRAWFLIPPEDTEXSIZEDINRECT(t,s,r) \ -{ \ - GLfloat vvMacroVertices[]={ \ - r.origin.x, r.origin.y, 0.0, \ - r.origin.x+r.size.width, r.origin.y, 0.0, \ - r.origin.x+r.size.width, r.origin.y+r.size.height, 0.0, \ - r.origin.x, r.origin.y+r.size.height, 0.0}; \ - GLfloat vvMacroTexCoords[]={ \ - 0.0, 0.0, \ - s.width, 0.0, \ - s.width, s.height, \ - 0.0, s.height}; \ - glVertexPointer(3,GL_FLOAT,0,vvMacroVertices); \ - glTexCoordPointer(2,GL_FLOAT,0,vvMacroTexCoords); \ - glBindTexture(GL_TEXTURE_RECTANGLE_EXT,t); \ - glDrawArrays(GL_QUADS,0,4); \ - glBindTexture(GL_TEXTURE_RECTANGLE_EXT,0); \ -} - -#define GLDRAWTEXSIZEDINRECTATZ(t,s,r,z) \ -{ \ - GLfloat vvMacroVertices[]={ \ - r.origin.x, r.origin.y, z, \ - r.origin.x+r.size.width, r.origin.y, z, \ - r.origin.x+r.size.width, r.origin.y+r.size.height, z, \ - r.origin.x, r.origin.y+r.size.height, z}; \ - GLfloat vvMacroTexCoords[]={ \ - 0.0,s.height, \ - s.width,s.height, \ - s.width,0.0, \ - 0.0,0.0}; \ - glVertexPointer(3,GL_FLOAT,0,vvMacroVertices); \ - glTexCoordPointer(2,GL_FLOAT,0,vvMacroTexCoords); \ - glBindTexture(GL_TEXTURE_RECTANGLE_EXT,t); \ - glDrawArrays(GL_QUADS,0,4); \ - glBindTexture(GL_TEXTURE_RECTANGLE_EXT,0); \ -} - -#define GLDRAWFLIPPEDTEXSIZEDINRECTATZ(t,s,r,z) \ -{ \ - GLfloat vvMacroVertices[]={ \ - r.origin.x, r.origin.y, z, \ - r.origin.x+r.size.width, r.origin.y, z, \ - r.origin.x+r.size.width, r.origin.y+r.size.height, z, \ - r.origin.x, r.origin.y+r.size.height, z}; \ - GLfloat vvMacroTexCoords[]={ \ - 0.0, 0.0, \ - s.width, 0.0, \ - s.width, s.height, \ - 0.0, s.height}; \ - glVertexPointer(3,GL_FLOAT,0,vvMacroVertices); \ - glTexCoordPointer(2,GL_FLOAT,0,vvMacroTexCoords); \ - glBindTexture(GL_TEXTURE_RECTANGLE_EXT,t); \ - glDrawArrays(GL_QUADS,0,4); \ - glBindTexture(GL_TEXTURE_RECTANGLE_EXT,0); \ -} - diff --git a/atemOSC.app/Contents/Frameworks/VVBasics.framework/Versions/A/Headers/VVBasics.h b/atemOSC.app/Contents/Frameworks/VVBasics.framework/Versions/A/Headers/VVBasics.h deleted file mode 100644 index b36c65a..0000000 --- a/atemOSC.app/Contents/Frameworks/VVBasics.framework/Versions/A/Headers/VVBasics.h +++ /dev/null @@ -1,55 +0,0 @@ - -#import "VVBasicMacros.h" - -#import "VVThreadLoop.h" -#import "VVAssertionHandler.h" -#import "VVStopwatch.h" -#import "ObjectHolder.h" -#import "MutLockArray.h" -#import "MutLockDict.h" -#import "MutNRLockArray.h" -#import "MutNRLockDict.h" -#import "NamedMutLockArray.h" - -#if !IPHONE - #import "VVCURLDL.h" - #import "VVSprite.h" - #import "VVSpriteManager.h" - #import "VVSpriteView.h" - #import "VVSpriteControl.h" - #import "VVSpriteControlCell.h" - #import "VVSpriteGLView.h" - #import "VVCrashReporter.h" - //#import "NSHostAdditions.h" -#endif - -/* - the following stuff is for doxygen -*/ - -/*! -\mainpage - -\htmlonly - - - -Introduction -

-VVBasics is an Objective-c framework with a number of classes which perform functions that i need regularly- but, for whatever reason, aren't provided by the stock frameworks. Expect pretty much everything to link against this framework for one reason or another- macros, useful classes, etc- and expect this framework to continuously grow as I start to open-source more and more of my bag of tricks. -

- -\endhtmlonly -*/ diff --git a/atemOSC.app/Contents/Frameworks/VVBasics.framework/Versions/A/Headers/VVCURLDL.h b/atemOSC.app/Contents/Frameworks/VVBasics.framework/Versions/A/Headers/VVCURLDL.h deleted file mode 100644 index 39d4c9b..0000000 --- a/atemOSC.app/Contents/Frameworks/VVBasics.framework/Versions/A/Headers/VVCURLDL.h +++ /dev/null @@ -1,72 +0,0 @@ - -/* - this class offers a very limited, very simple cocoa interface to libcurl for doing extremely - basic http transfer ops - - basically, this class exists because at this time NSURLConnection is problematic and - top-heavy, and i wanted an easy, effective, and reliable interface for handling the extremely - limited set of http data transfer operations required by my frameworks/apps. - - this class was meant to be used as a one-shot throwaway; that is, you're meant to create an - instance of this class which will be auto-released as soon as the autorelease pool is - popped. the instance you create is meant to be used once, and then thrown away- THIS WILL - PROBABLY BREAK IF YOU TRY TO USE THE SAME INSTANCE TO PERFORM MORE THAN ONE TRANSFER. -*/ - - -#import -#import - - - - -@protocol VVCURLDLDelegate -- (void) dlFinished:(id)h; -@end - - - - -@interface VVCURLDL : NSObject { - NSString *urlString; - CURL *curlHandle; - - NSMutableData *responseData; - - struct curl_slist *headerList; // nil by default- if non-nil, supplied to the handle as CURLOPT_HTTPHEADER - NSMutableData *postData; // if non-nil, simply posted as CURLOPT_POSTFIELDS - struct curl_httppost *firstFormPtr; // if postData was nil but this isn't, posted as CURLOPT_HTTPPOST - struct curl_httppost *lastFormPtr; - - BOOL returnOnMain; - BOOL performing; - CURLcode err; -} - -+ (id) createWithAddress:(NSString *)a; -- (id) initWithAddress:(NSString *)a; - -- (void) perform; -- (void) performAsync:(BOOL)as withDelegate:(id )d; -- (void) _performAsyncWithDelegate:(id )d; -- (void) _performWithDelegate:(id )d; - -//- (struct curl_slist *) headerList; -//- (struct curl_httppost *) firstFormPtr; -//- (struct curl_httppost *) lastFormPtr; -- (void) appendDataToPOST:(NSData *)d; -- (void) appendStringToPOST:(NSString *)s; - -- (void) writePtr:(void *)ptr size:(size_t)s; - -@property (assign,readwrite) struct curl_slist *headerList; -@property (assign,readwrite) struct curl_httppost *firstFormPtr; -@property (assign,readwrite) struct curl_httppost *lastFormPtr; -@property (assign,readwrite) BOOL returnOnMain; -@property (readonly) NSMutableData *responseData; -@property (readonly) NSString *responseString; -@property (readonly) CURLcode err; - -@end - -size_t vvcurlWriteFunction(void *ptr, size_t size, size_t nmemb, void *stream); diff --git a/atemOSC.app/Contents/Frameworks/VVBasics.framework/Versions/A/Headers/VVCrashReporter.h b/atemOSC.app/Contents/Frameworks/VVBasics.framework/Versions/A/Headers/VVCrashReporter.h deleted file mode 100644 index 0dc9c90..0000000 --- a/atemOSC.app/Contents/Frameworks/VVBasics.framework/Versions/A/Headers/VVCrashReporter.h +++ /dev/null @@ -1,101 +0,0 @@ - -#import -#import -#include "AvailabilityMacros.h" -#import -#import -#import "VVCURLDL.h" -#import "MutLockArray.h" - - - - -/// The crash reporter's delegate must adhere to this protocol -/*! - This protocol exists largely because it's conceivable that objects will want to know when the crash reporter- which uploads asynchronously- has finished sending its data to the remote server. -*/ -@protocol OldVVCrashReporterDelegate -- (void) crashReporterCheckDone; -@end - -@protocol VVCrashReporterDelegate -- (void) crashReporterCheckDone:(BOOL)foundLogs; // "new"- 'f' designates whether crash reports were found or not -@end - - - -/// Simple class which automatically uploads crash logs and other relevant diagnostic information automatically made available by os x to a remote server. -/*! -it's been my experience that most apps crash much more frequently on end-users than the app's developers would guess. the simplest and easiest way to improve the end-user's experience is to have the application check their machine for crash logs- which are generated automatically by os x whenever an application crashes- and send them to the developer. - -this class exists so i have a really easy way to make my apps send their crash logs to me; the goal here is to make it as easy as possible to get all the information i need to troubleshoot a problem with as little work on the user's part as possible. it also sends a basic system profile, anything the app- and ONLY the app, not other apps- recently printed to the console log, and optional description/email fields to facilitate communication directly with the user. this data is then uploaded to a given URL using an HTTP POST. - -on the server side, i use a PHP page which sanitizes the POST data (i can't stress how important this step is) and works with it. i've included a sample PHP page that simply dumps the received data to a file on disk (and optionally emails someone) with this project. - -HOW TO USE THIS CLASS: - - 1)- create an instance of this class - - 2)- set the instance's delegate, uploadURL, and developerEmail. these are necessary! - - 3)- call "check" on the instance. when it's done, it calls "crashReporterCheckDone" on the - delegate. that's it- you're done. -*/ - -@interface VVCrashReporter : NSObject { - NSString *uploadURL; // does NOT includes http:// - NSString *developerEmail; - id delegate; // must respond to VVCrashReporterDelegate protocol - MutLockArray *crashLogArray; - NSMutableDictionary *systemProfilerDict; - NSString *consoleLog; - int jobSize; // used to update progress indicator/label - int jobCurrentIndex; // used to update progress indicator/label - int currentCrashLogTimeout; // countdown for timeout of sending/receiving data for a specific crash log - NSTimer *currentCrashLogTimer; - - IBOutlet NSWindow *window; - IBOutlet NSButton *replyButton; - IBOutlet NSView *emailFieldHolder; - IBOutlet NSTextField *emailField; - IBOutlet NSTextView *descriptionField; - IBOutlet NSTextField *submittingLabel; // non-editable. 'submitting', 'getting machine profile', etc. - IBOutlet NSProgressIndicator *progressIndicator; // indicates progress through all crash logs to be submitted - IBOutlet NSTextField *countdownLabel; // non-editable; countdown so user knows app hasn't hung - - NSNib *theNib; - NSArray *nibTopLevelObjects; -} - -+ (NSString *) _stringForSystemProfilerDataType:(NSString *)t; - -/// This is the main method- when you call 'check', the crash reporter looks for crash logs, gets a basic system profile, and collects anything your applications has dumped to the console log. -- (void) check; -- (void) openCrashReporter; -- (IBAction) replyButtonClicked:(id)sender; -- (IBAction) doneClicked:(id)sender; -- (void) sendACrashLog; -- (void) closeCrashReporter; - -- (NSString *) _nibName; -- (BOOL) _assembleCrashLogs; // assembles the array of crash logs, returns a YES if logs were found and have to be sent in -- (NSString *) _consoleLogString; -- (NSMutableDictionary *) _systemProfilerDict; - -- (void) updateCrashLogTimeout:(NSTimer *)t; - -// VVCURLDLDelegate method- this class will be the delegate of multiple VVCURLDL instances -- (void) dlFinished:(id)h; - -/// Sets the developer email address; this is displayed if the user has a problem connecting to the internet/the server the crash reporter is supposed to be connecting to -- (void) setDeveloperEmail:(NSString *)n; -- (NSString *) developerEmail; -/// This is the URL of the php/cgi/etc. page which the crash data will be POSTed to -- (void) setUploadURL:(NSString *)n; -- (NSString *) uploadURL; - -/// The crash reporter's delegate is notified when the check has completed -@property (assign,readwrite) id delegate; -@property (readonly) NSButton *replyButton; - -@end diff --git a/atemOSC.app/Contents/Frameworks/VVBasics.framework/Versions/A/Headers/VVCrashReporterDescriptionField.h b/atemOSC.app/Contents/Frameworks/VVBasics.framework/Versions/A/Headers/VVCrashReporterDescriptionField.h deleted file mode 100644 index f39f0f5..0000000 --- a/atemOSC.app/Contents/Frameworks/VVBasics.framework/Versions/A/Headers/VVCrashReporterDescriptionField.h +++ /dev/null @@ -1,15 +0,0 @@ -#import - - -/* - this class exists solely to prevent users from pasting or dragging huge amounts of text (like - crash/console logs!) into the description field of the crash reporter. sounds weird, but trust - me- it's necessary. -*/ - - -@interface VVCrashReporterDescriptionField : NSTextView { - -} - -@end diff --git a/atemOSC.app/Contents/Frameworks/VVBasics.framework/Versions/A/Headers/VVCrashReporterEmailField.h b/atemOSC.app/Contents/Frameworks/VVBasics.framework/Versions/A/Headers/VVCrashReporterEmailField.h deleted file mode 100644 index fb883f8..0000000 --- a/atemOSC.app/Contents/Frameworks/VVBasics.framework/Versions/A/Headers/VVCrashReporterEmailField.h +++ /dev/null @@ -1,14 +0,0 @@ -#import -#import - - -/* - this class exists solely to prevent users from pasting huge amounts of text into the email field -*/ - - -@interface VVCrashReporterEmailField : NSTextField { - -} - -@end diff --git a/atemOSC.app/Contents/Frameworks/VVBasics.framework/Versions/A/Headers/VVSprite.h b/atemOSC.app/Contents/Frameworks/VVBasics.framework/Versions/A/Headers/VVSprite.h deleted file mode 100644 index 34246be..0000000 --- a/atemOSC.app/Contents/Frameworks/VVBasics.framework/Versions/A/Headers/VVSprite.h +++ /dev/null @@ -1,104 +0,0 @@ - -/* Always with the sprites... - - sprite |sprīt| - noun - 1 an elf or fairy. - 2 a computer graphic that may be moved on-screen and otherwise manipulated as a single entity. - 3 a faint flash, typically red, sometimes emitted in the upper atmosphere over a thunderstorm owing to the collision of high-energy electrons with air molecules. - ORIGIN Middle English : alteration of sprit, a contraction of spirit . */ - -#import -#include - - - - -typedef enum _VVSpriteEventType { - VVSpriteEventNULL = 0, - VVSpriteEventDown = 1, - VVSpriteEventDrag = 2, - VVSpriteEventUp = 3, - VVSpriteEventDouble = 4, - VVSpriteEventRightDown = 5, - VVSpriteEventRightUp = 6 -} VVSpriteEventType; - - - - -@interface VVSprite : NSObject { - BOOL deleted; - BOOL locked; // whether or not i should respond to mouse input. DOESN'T AFFECT ANYTHING IN THIS CLASS! variable exists for the user's convenience, and is otherwise superfluous! - BOOL hidden; // whether or not the sprite should draw. DOESN'T AFFECT ANYTHING IN THIS CLASS! variable exists for the user's convenience, and is otherwise superfluous! - BOOL dropFromMultiSpriteActions; // only valid if sprite manager's allowMultiSpriteInteraction' is YES. NO by default. if YES, then if you mousedown on this and any other sprite, this sprite gets dropped from the mousedown. used for allowing multi-sprite interaction to prevent clicks from hitting "background" sprites (which have this set to YES) - long spriteIndex; - id manager; // the VVSpriteManager i exist within- NOT retained! - id delegate; // NOT retained! - SEL drawCallback; // delegate method; passed a ptr to this sprite! - SEL actionCallback; // delegate method; passed a ptr to this sprite! - - NSRect rect; // the sprite i'm tracking - NSBezierPath *bezierPath; // retained. nil by default, set to nil if you call setRect: on this instance. if non-nil, this path is used instead of "rect" for determining mouse action and drawing intersection! - OSSpinLock pathLock; - - int lastActionType; // updated whenever an action is received - NSPoint lastActionCoords; // coords at which last action took place - BOOL lastActionInBounds; // whether or not the last action was within my bounds - BOOL trackingFlag; // whether or not i'm tracking stuff - NSPoint mouseDownCoords; // absolute coords of mousedown - NSPoint lastActionDelta; // change between most-recently-received action coords and last received coords - NSPoint mouseDownDelta; // change between mousedown loc and most-recently received coords - long mouseDownModifierFlags; - - id userInfo; // RETAINED! for storing a random thing... - id NRUserInfo; // NOT RETAINED! for storing something that *shouldn't* be retained... - id safeString; // nil on init- many sprites need formatted text, this is a convenience variable... -} - -+ (id) createWithRect:(NSRect)r inManager:(id)m; -- (id) initWithRect:(NSRect)r inManager:(id)m; - -- (void) prepareToBeDeleted; - -- (BOOL) checkPoint:(NSPoint)p; -- (BOOL) checkRect:(NSRect)r; - -- (void) receivedEvent:(VVSpriteEventType)e atPoint:(NSPoint)p withModifierFlag:(long)m; -- (void) mouseDown:(NSPoint)p modifierFlag:(long)m; -- (void) rightMouseDown:(NSPoint)p modifierFlag:(long)m; -- (void) rightMouseUp:(NSPoint)p; -- (void) mouseDragged:(NSPoint)p; -- (void) mouseUp:(NSPoint)p; -- (void) draw; - -- (void) bringToFront; -- (void) sendToBack; - -@property (assign, readwrite) BOOL locked; -@property (assign, readwrite) BOOL hidden; -@property (assign, readwrite) BOOL dropFromMultiSpriteActions; -@property (readonly) long spriteIndex; -@property (readonly) id manager; -@property (assign, readwrite) id delegate; -@property (assign, readwrite) SEL drawCallback; -@property (assign, readwrite) SEL actionCallback; - -@property (assign, readwrite) NSRect rect; -//@property (retain,readwrite) NSBezierPath *path; -- (void) setBezierPath:(NSBezierPath *)n; -- (NSBezierPath *) safelyGetBezierPath; -- (NSRect) spriteBounds; // special method- either returns "rect" or (if path is non-nil) the bounds of the bezier path! -@property (readonly) VVSpriteEventType lastActionType; -@property (readonly) NSPoint lastActionCoords; -@property (readonly) BOOL lastActionInBounds; -@property (readonly) BOOL trackingFlag; -@property (readonly) NSPoint mouseDownCoords; -@property (readonly) NSPoint lastActionDelta; -@property (readonly) NSPoint mouseDownDelta; -@property (readonly) long mouseDownModifierFlags; -@property (assign,readwrite) id userInfo; -@property (assign,readwrite) id NRUserInfo; -@property (assign,readwrite) id safeString; - -@end diff --git a/atemOSC.app/Contents/Frameworks/VVBasics.framework/Versions/A/Headers/VVSpriteControl.h b/atemOSC.app/Contents/Frameworks/VVBasics.framework/Versions/A/Headers/VVSpriteControl.h deleted file mode 100644 index 2ed78b7..0000000 --- a/atemOSC.app/Contents/Frameworks/VVBasics.framework/Versions/A/Headers/VVSpriteControl.h +++ /dev/null @@ -1,49 +0,0 @@ - -#import -#import "VVSpriteManager.h" -#include - - - - -extern int _maxSpriteControlCount; -extern int _spriteControlCount; - - - - -@interface VVSpriteControl : NSControl { - BOOL deleted; - VVSpriteManager *spriteManager; - BOOL spritesNeedUpdate; - - OSSpinLock propertyLock; - NSEvent *lastMouseEvent; - NSColor *clearColor; - BOOL drawBorder; - NSColor *borderColor; - - long mouseDownModifierFlags; - BOOL mouseIsDown; - NSView *clickedSubview; // NOT RETAINED -} - -- (void) generalInit; - -- (void) prepareToBeDeleted; - -- (void) finishedDrawing; - -- (void) updateSprites; - -@property (readonly) BOOL deleted; -@property (readonly) VVSpriteManager *spriteManager; -@property (assign, readwrite) BOOL spritesNeedUpdate; -- (void) setSpritesNeedUpdate; -@property (readonly) NSEvent *lastMouseEvent; -@property (retain,readwrite) NSColor *clearColor; -@property (assign,readwrite) BOOL drawBorder; -@property (retain,readwrite) NSColor *borderColor; -@property (readonly) BOOL mouseIsDown; - -@end diff --git a/atemOSC.app/Contents/Frameworks/VVBasics.framework/Versions/A/Headers/VVSpriteControlCell.h b/atemOSC.app/Contents/Frameworks/VVBasics.framework/Versions/A/Headers/VVSpriteControlCell.h deleted file mode 100644 index fc8e151..0000000 --- a/atemOSC.app/Contents/Frameworks/VVBasics.framework/Versions/A/Headers/VVSpriteControlCell.h +++ /dev/null @@ -1,11 +0,0 @@ - -#import - - - - -@interface VVSpriteControlCell : NSActionCell { - -} - -@end diff --git a/atemOSC.app/Contents/Frameworks/VVBasics.framework/Versions/A/Headers/VVSpriteGLView.h b/atemOSC.app/Contents/Frameworks/VVBasics.framework/Versions/A/Headers/VVSpriteGLView.h deleted file mode 100644 index a47b6a2..0000000 --- a/atemOSC.app/Contents/Frameworks/VVBasics.framework/Versions/A/Headers/VVSpriteGLView.h +++ /dev/null @@ -1,82 +0,0 @@ - -#import -#import "VVSpriteManager.h" -#import -#import -#import - - - - -typedef enum { - VVFenceModeEveryRefresh = 0, // every time a display callback runs, drawing commands are sent to the GPU. - VVFenceModeDBSkip = 1, // the apple gl fence extension is used to make sure that drawing commands for the back buffer have finished before more drawing commands are sent to the back buffer (the front buffer can receive commands, though) - VVFenceModeSBSkip = 2, // the apple gl fence extension is used to make sure that drawing commands for the single buffer have finished before more drawing commands are sent to it - VVFenceModeFinish = 3 // glFinish is used instead of glFlush -} VVFenceMode; - -typedef enum { - VVFlushModeGL = 0, // glFlush() - VVFlushModeCGL = 1, // CGLFlushDrawable() - VVFlushModeNS = 2, // [context flushBuffer] - VVFlushModeApple = 3, // glFlushRenderAPPLE() - VVFlushModeFinish = 4 // glFinish() -} VVFlushMode; - - - - -@interface VVSpriteGLView : NSOpenGLView { - BOOL deleted; - - BOOL initialized; - //BOOL needsReshape; - pthread_mutex_t glLock; - - VVSpriteManager *spriteManager; - BOOL spritesNeedUpdate; - NSEvent *lastMouseEvent; - GLfloat clearColor[4]; - BOOL drawBorder; - GLfloat borderColor[4]; - - long mouseDownModifierFlags; - BOOL mouseIsDown; - NSView *clickedSubview; // NOT RETAINED - - VVFlushMode flushMode; - - VVFenceMode fenceMode; - GLuint fenceA; - GLuint fenceB; - BOOL waitingForFenceA; - BOOL fenceADeployed; - BOOL fenceBDeployed; - OSSpinLock fenceLock; -} - -- (void) generalInit; -- (void) prepareToBeDeleted; - -- (void) initializeGL; -- (void) finishedDrawing; -//- (void) reshapeGL; -- (void) updateSprites; - -- (void) _lock; -- (void) _unlock; -//- (void) lockSetOpenGLContext:(NSOpenGLContext *)n; - -@property (readonly) BOOL deleted; -@property (assign,readwrite) BOOL initialized; -@property (assign, readwrite) BOOL spritesNeedUpdate; -- (void) setSpritesNeedUpdate; -@property (readonly) NSEvent *lastMouseEvent; -@property (retain,readwrite) NSColor *clearColor; -@property (assign,readwrite) BOOL drawBorder; -@property (retain,readwrite) NSColor *borderColor; -@property (readonly) VVSpriteManager *spriteManager; -@property (readonly) BOOL mouseIsDown; -@property (assign, readwrite) VVFlushMode flushMode; - -@end diff --git a/atemOSC.app/Contents/Frameworks/VVBasics.framework/Versions/A/Headers/VVSpriteManager.h b/atemOSC.app/Contents/Frameworks/VVBasics.framework/Versions/A/Headers/VVSpriteManager.h deleted file mode 100644 index b8f0dc4..0000000 --- a/atemOSC.app/Contents/Frameworks/VVBasics.framework/Versions/A/Headers/VVSpriteManager.h +++ /dev/null @@ -1,57 +0,0 @@ - -#import -#import "VVSprite.h" -#import "MutLockArray.h" - - - - -@interface VVSpriteManager : NSObject { - BOOL deleted; - BOOL allowMultiSpriteInteraction; // NO by default- if YES, clicking/dragging/etc works with multiple sprites! - BOOL multiSpriteExecutesOnMultipleSprites; // only relevant if multi-sprite interaction is YES. this is NO by default- if it's YES all sprites in "spritesInUse" will receive an action callback when any of them get an action method. if this is NO then only the sprite that "caught" the interaction will receive an action callback! - MutLockArray *spriteArray; // searched from beginning to end, so order is like z-index! - VVSprite *spriteInUse; // array of VVSprite objects currently tracking drag info - MutLockArray *spritesInUse; // ONLY VALID IF MULTI SPRITE INTERACTION IS YES! array of VVSprite o - long spriteIndexCount; -} - -- (void) prepareToBeDeleted; - -// return YES if the mousedown occurred on one or more sprites -- (BOOL) receivedMouseDownEvent:(VVSpriteEventType)e atPoint:(NSPoint)p withModifierFlag:(long)m visibleOnly:(BOOL)v; -- (void) receivedOtherEvent:(VVSpriteEventType)e atPoint:(NSPoint)p withModifierFlag:(long)m; -- (BOOL) localMouseDown:(NSPoint)p modifierFlag:(long)m; -- (BOOL) localVisibleMouseDown:(NSPoint)p modifierFlag:(long)m; -- (BOOL) localRightMouseDown:(NSPoint)p modifierFlag:(long)m; -- (BOOL) localVisibleRightMouseDown:(NSPoint)p modifierFlag:(long)m; -- (void) localRightMouseUp:(NSPoint)p; -- (void) localMouseDragged:(NSPoint)p; -- (void) localMouseUp:(NSPoint)p; -- (void) terminatePresentMouseSession; // call this and sprites will stop responding to the mouse until it is clicked again - -- (id) newSpriteAtBottomForRect:(NSRect)r; -- (id) newSpriteAtTopForRect:(NSRect)r; -- (long) getUniqueSpriteIndex; - -- (VVSprite *) spriteAtPoint:(NSPoint)p; -- (VVSprite *) visibleSpriteAtPoint:(NSPoint)p; -- (VVSprite *) spriteForIndex:(long)i; -- (void) removeSpriteForIndex:(long)i; -- (void) removeSprite:(id)z; -- (void) removeSpritesFromArray:(NSArray *)array; -- (void) removeAllSprites; -//- (void) moveSpriteToFront:(VVSprite *)z; - -- (void) draw; -- (void) drawRect:(NSRect)r; - -- (VVSprite *) spriteInUse; -- (void) setSpriteInUse:(VVSprite *)z; - -@property (assign,readwrite) BOOL allowMultiSpriteInteraction; -@property (assign,readwrite) BOOL multiSpriteExecutesOnMultipleSprites; -@property (readonly) MutLockArray *spriteArray; -@property (readonly) MutLockArray *spritesInUse; - -@end diff --git a/atemOSC.app/Contents/Frameworks/VVBasics.framework/Versions/A/Headers/VVSpriteView.h b/atemOSC.app/Contents/Frameworks/VVBasics.framework/Versions/A/Headers/VVSpriteView.h deleted file mode 100644 index a8d17a0..0000000 --- a/atemOSC.app/Contents/Frameworks/VVBasics.framework/Versions/A/Headers/VVSpriteView.h +++ /dev/null @@ -1,48 +0,0 @@ - -#import -#import "VVSpriteManager.h" -#include - - - - -extern int _spriteViewCount; - - - - -@interface VVSpriteView : NSView { - BOOL deleted; - VVSpriteManager *spriteManager; - BOOL spritesNeedUpdate; - - OSSpinLock propertyLock; - NSEvent *lastMouseEvent; - NSColor *clearColor; - BOOL drawBorder; - NSColor *borderColor; - - long mouseDownModifierFlags; - BOOL mouseIsDown; - NSView *clickedSubview; // NOT RETAINED -} - -- (void) generalInit; - -- (void) prepareToBeDeleted; - -- (void) finishedDrawing; - -- (void) updateSprites; - -@property (readonly) BOOL deleted; -@property (readonly) VVSpriteManager *spriteManager; -@property (assign, readwrite) BOOL spritesNeedUpdate; -- (void) setSpritesNeedUpdate; -@property (readonly) NSEvent *lastMouseEvent; -@property (retain,readwrite) NSColor *clearColor; -@property (assign,readwrite) BOOL drawBorder; -@property (retain,readwrite) NSColor *borderColor; -@property (readonly) BOOL mouseIsDown; - -@end diff --git a/atemOSC.app/Contents/Frameworks/VVBasics.framework/Versions/A/Headers/VVStopwatch.h b/atemOSC.app/Contents/Frameworks/VVBasics.framework/Versions/A/Headers/VVStopwatch.h deleted file mode 100644 index a1f9c35..0000000 --- a/atemOSC.app/Contents/Frameworks/VVBasics.framework/Versions/A/Headers/VVStopwatch.h +++ /dev/null @@ -1,35 +0,0 @@ - -#if IPHONE -#import -#else -#import -#endif -#include -#import - - - -/// This class is used to measure how long it takes to do things; much easier to work with than NSDate. - -@interface VVStopwatch : NSObject { - struct timeval startTime; - OSSpinLock timeLock; -} - -/// Returns an auto-released instance of VVStopwatch; the stopwatch is started on creation. -+ (id) create; - -/// Starts the stopwatch over again -- (void) start; -/// Returns a float representing the time (in seconds) since the stopwatch was started -- (double) timeSinceStart; -/// Sets the stopwatch's starting time as an offset to the current time -- (void) startInTimeInterval:(NSTimeInterval)t; -/// Populates the passed timeval struct with the current timeval -- (void) copyStartTimeToTimevalStruct:(struct timeval *)dst; -/// Populates the starting time with the passed timeval struct -- (void) setStartTimeStruct:(struct timeval *)src; - -@end - -void populateTimevalWithFloat(struct timeval *tval, double secVal); diff --git a/atemOSC.app/Contents/Frameworks/VVBasics.framework/Versions/A/Headers/VVThreadLoop.h b/atemOSC.app/Contents/Frameworks/VVBasics.framework/Versions/A/Headers/VVThreadLoop.h deleted file mode 100644 index 0a6342f..0000000 --- a/atemOSC.app/Contents/Frameworks/VVBasics.framework/Versions/A/Headers/VVThreadLoop.h +++ /dev/null @@ -1,63 +0,0 @@ - -#if IPHONE -#import -#else -#import -#endif -#include -#import -#include - - - - -/// Simple class for spawning a thread which executes at a specified interval- simpler and easier to work with than NSThread/NSTimer in multi-threaded programming environments. -/*! -When started, an instance of this class will spawn a thread and repeatedly execute a method on that thread. If it was passed a target and selector on creation, the selector will be called on the target every time the thread executes. If it's more convenient to subclass VVThreadLoop and work with your custom subclass, leave the target/selector nil and VVThreadLoop will call "threadProc" on itself- just override this method (it's empty anyway) in your subclass and do whatever you want in there. - -You can change the execution interval, and VVThreadLoop also examines how long it takes to execute your code and adjusts in an attempt to ensure that the interval is accurate (sleep-time is interval-duration minus proc-execution-duration) -*/ - - - - -@interface VVThreadLoop : NSObject { - double interval; - double maxInterval; - BOOL running; - BOOL bail; - BOOL paused; - BOOL executingCallback; - - OSSpinLock valLock; // ONLY used for quickly accessing 'running', 'bail', 'paused', and 'executingCallback' in a threadsafe fashion - - id targetObj; //! - Everyone is permitted to copy and distribute verbatim copies - of this license document, but changing it is not allowed. - - - This version of the GNU Lesser General Public License incorporates -the terms and conditions of version 3 of the GNU General Public -License, supplemented by the additional permissions listed below. - - 0. Additional Definitions. - - As used herein, "this License" refers to version 3 of the GNU Lesser -General Public License, and the "GNU GPL" refers to version 3 of the GNU -General Public License. - - "The Library" refers to a covered work governed by this License, -other than an Application or a Combined Work as defined below. - - An "Application" is any work that makes use of an interface provided -by the Library, but which is not otherwise based on the Library. -Defining a subclass of a class defined by the Library is deemed a mode -of using an interface provided by the Library. - - A "Combined Work" is a work produced by combining or linking an -Application with the Library. The particular version of the Library -with which the Combined Work was made is also called the "Linked -Version". - - The "Minimal Corresponding Source" for a Combined Work means the -Corresponding Source for the Combined Work, excluding any source code -for portions of the Combined Work that, considered in isolation, are -based on the Application, and not on the Linked Version. - - The "Corresponding Application Code" for a Combined Work means the -object code and/or source code for the Application, including any data -and utility programs needed for reproducing the Combined Work from the -Application, but excluding the System Libraries of the Combined Work. - - 1. Exception to Section 3 of the GNU GPL. - - You may convey a covered work under sections 3 and 4 of this License -without being bound by section 3 of the GNU GPL. - - 2. Conveying Modified Versions. - - If you modify a copy of the Library, and, in your modifications, a -facility refers to a function or data to be supplied by an Application -that uses the facility (other than as an argument passed when the -facility is invoked), then you may convey a copy of the modified -version: - - a) under this License, provided that you make a good faith effort to - ensure that, in the event an Application does not supply the - function or data, the facility still operates, and performs - whatever part of its purpose remains meaningful, or - - b) under the GNU GPL, with none of the additional permissions of - this License applicable to that copy. - - 3. Object Code Incorporating Material from Library Header Files. - - The object code form of an Application may incorporate material from -a header file that is part of the Library. You may convey such object -code under terms of your choice, provided that, if the incorporated -material is not limited to numerical parameters, data structure -layouts and accessors, or small macros, inline functions and templates -(ten or fewer lines in length), you do both of the following: - - a) Give prominent notice with each copy of the object code that the - Library is used in it and that the Library and its use are - covered by this License. - - b) Accompany the object code with a copy of the GNU GPL and this license - document. - - 4. Combined Works. - - You may convey a Combined Work under terms of your choice that, -taken together, effectively do not restrict modification of the -portions of the Library contained in the Combined Work and reverse -engineering for debugging such modifications, if you also do each of -the following: - - a) Give prominent notice with each copy of the Combined Work that - the Library is used in it and that the Library and its use are - covered by this License. - - b) Accompany the Combined Work with a copy of the GNU GPL and this license - document. - - c) For a Combined Work that displays copyright notices during - execution, include the copyright notice for the Library among - these notices, as well as a reference directing the user to the - copies of the GNU GPL and this license document. - - d) Do one of the following: - - 0) Convey the Minimal Corresponding Source under the terms of this - License, and the Corresponding Application Code in a form - suitable for, and under terms that permit, the user to - recombine or relink the Application with a modified version of - the Linked Version to produce a modified Combined Work, in the - manner specified by section 6 of the GNU GPL for conveying - Corresponding Source. - - 1) Use a suitable shared library mechanism for linking with the - Library. A suitable mechanism is one that (a) uses at run time - a copy of the Library already present on the user's computer - system, and (b) will operate properly with a modified version - of the Library that is interface-compatible with the Linked - Version. - - e) Provide Installation Information, but only if you would otherwise - be required to provide such information under section 6 of the - GNU GPL, and only to the extent that such information is - necessary to install and execute a modified version of the - Combined Work produced by recombining or relinking the - Application with a modified version of the Linked Version. (If - you use option 4d0, the Installation Information must accompany - the Minimal Corresponding Source and Corresponding Application - Code. If you use option 4d1, you must provide the Installation - Information in the manner specified by section 6 of the GNU GPL - for conveying Corresponding Source.) - - 5. Combined Libraries. - - You may place library facilities that are a work based on the -Library side by side in a single library together with other library -facilities that are not Applications and are not covered by this -License, and convey such a combined library under terms of your -choice, if you do both of the following: - - a) Accompany the combined library with a copy of the same work based - on the Library, uncombined with any other library facilities, - conveyed under the terms of this License. - - b) Give prominent notice with the combined library that part of it - is a work based on the Library, and explaining where to find the - accompanying uncombined form of the same work. - - 6. Revised Versions of the GNU Lesser General Public License. - - The Free Software Foundation may publish revised and/or new versions -of the GNU Lesser General Public License from time to time. Such new -versions will be similar in spirit to the present version, but may -differ in detail to address new problems or concerns. - - Each version is given a distinguishing version number. If the -Library as you received it specifies that a certain numbered version -of the GNU Lesser General Public License "or any later version" -applies to it, you have the option of following the terms and -conditions either of that published version or of any later version -published by the Free Software Foundation. If the Library as you -received it does not specify a version number of the GNU Lesser -General Public License, you may choose any version of the GNU Lesser -General Public License ever published by the Free Software Foundation. - - If the Library as you received it specifies that a proxy can decide -whether future versions of the GNU Lesser General Public License shall -apply, that proxy's public statement of acceptance of any version is -permanent authorization for you to choose that version for the -Library. diff --git a/atemOSC.app/Contents/Frameworks/VVBasics.framework/Versions/A/Resources/Info.plist b/atemOSC.app/Contents/Frameworks/VVBasics.framework/Versions/A/Resources/Info.plist index 29822ba..3b94c59 100644 --- a/atemOSC.app/Contents/Frameworks/VVBasics.framework/Versions/A/Resources/Info.plist +++ b/atemOSC.app/Contents/Frameworks/VVBasics.framework/Versions/A/Resources/Info.plist @@ -3,36 +3,42 @@ BuildMachineOSBuild - 11E53 + 19B88 CFBundleDevelopmentRegion English CFBundleExecutable VVBasics CFBundleGetInfoString - 156 + 175 CFBundleIdentifier - com.vidvox.VVBasics + com.yourcompany.VVBasics CFBundleInfoDictionaryVersion 6.0 CFBundlePackageType FMWK CFBundleSignature ???? + CFBundleSupportedPlatforms + + MacOSX + CFBundleVersion - 156 + 175 DTCompiler com.apple.compilers.llvm.clang.1_0 DTPlatformBuild - 4E2002 + 11C29 DTPlatformVersion GM DTSDKBuild - 10K549 + 19B90 DTSDKName - macosx10.6 + macosx10.15 DTXcode - 0432 + 1130 DTXcodeBuild - 4E2002 + 11C29 + LSMinimumSystemVersion + 10.10 diff --git a/atemOSC.app/Contents/Frameworks/VVBasics.framework/Versions/A/Resources/LICENSE b/atemOSC.app/Contents/Frameworks/VVBasics.framework/Versions/A/Resources/LICENSE new file mode 100644 index 0000000..da593e9 --- /dev/null +++ b/atemOSC.app/Contents/Frameworks/VVBasics.framework/Versions/A/Resources/LICENSE @@ -0,0 +1,15 @@ +MAZeroingWeakRef and all code associated with it is distributed under a BSD license, as listed below. + + +Copyright (c) 2010, Michael Ash +All rights reserved. + +Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: + +Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. + +Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. + +Neither the name of Michael Ash nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. \ No newline at end of file diff --git a/atemOSC.app/Contents/Frameworks/VVBasics.framework/Versions/A/Resources/VVCrashReporter.nib b/atemOSC.app/Contents/Frameworks/VVBasics.framework/Versions/A/Resources/VVCrashReporter.nib deleted file mode 100644 index 4c7b505..0000000 Binary files a/atemOSC.app/Contents/Frameworks/VVBasics.framework/Versions/A/Resources/VVCrashReporter.nib and /dev/null differ diff --git a/atemOSC.app/Contents/Frameworks/VVBasics.framework/Versions/A/VVBasics b/atemOSC.app/Contents/Frameworks/VVBasics.framework/Versions/A/VVBasics index 6de9533..ac2e37b 100755 Binary files a/atemOSC.app/Contents/Frameworks/VVBasics.framework/Versions/A/VVBasics and b/atemOSC.app/Contents/Frameworks/VVBasics.framework/Versions/A/VVBasics differ diff --git a/atemOSC.app/Contents/Frameworks/VVBasics.framework/Versions/A/_CodeSignature/CodeResources b/atemOSC.app/Contents/Frameworks/VVBasics.framework/Versions/A/_CodeSignature/CodeResources new file mode 100644 index 0000000..870090f --- /dev/null +++ b/atemOSC.app/Contents/Frameworks/VVBasics.framework/Versions/A/_CodeSignature/CodeResources @@ -0,0 +1,147 @@ + + + + + files + + Resources/Info.plist + + aBL+oY/babUC+/4PXQDuGCTbmIw= + + Resources/LICENSE + + I8OGtbN8SJaNPbPwca/YbyjPxDw= + + + files2 + + Resources/Info.plist + + hash + + aBL+oY/babUC+/4PXQDuGCTbmIw= + + hash2 + + I3kcVlezeZlWoLli8U0I6OCnnNyQPKeZEthbPS+ES+s= + + + Resources/LICENSE + + hash + + I8OGtbN8SJaNPbPwca/YbyjPxDw= + + hash2 + + yld8VoEGbHonhiYH9HKK4B/ndye/lPGwjYrhAEjSC+o= + + + + rules + + ^Resources/ + + ^Resources/.*\.lproj/ + + optional + + weight + 1000 + + ^Resources/.*\.lproj/locversion.plist$ + + omit + + weight + 1100 + + ^Resources/Base\.lproj/ + + weight + 1010 + + ^version.plist$ + + + rules2 + + .*\.dSYM($|/) + + weight + 11 + + ^(.*/)?\.DS_Store$ + + omit + + weight + 2000 + + ^(Frameworks|SharedFrameworks|PlugIns|Plug-ins|XPCServices|Helpers|MacOS|Library/(Automator|Spotlight|LoginItems))/ + + nested + + weight + 10 + + ^.* + + ^Info\.plist$ + + omit + + weight + 20 + + ^PkgInfo$ + + omit + + weight + 20 + + ^Resources/ + + weight + 20 + + ^Resources/.*\.lproj/ + + optional + + weight + 1000 + + ^Resources/.*\.lproj/locversion.plist$ + + omit + + weight + 1100 + + ^Resources/Base\.lproj/ + + weight + 1010 + + ^[^/]+$ + + nested + + weight + 10 + + ^embedded\.provisionprofile$ + + weight + 20 + + ^version\.plist$ + + weight + 20 + + + + diff --git a/atemOSC.app/Contents/Frameworks/VVBasics.framework/Versions/Current b/atemOSC.app/Contents/Frameworks/VVBasics.framework/Versions/Current new file mode 120000 index 0000000..8c7e5a6 --- /dev/null +++ b/atemOSC.app/Contents/Frameworks/VVBasics.framework/Versions/Current @@ -0,0 +1 @@ +A \ No newline at end of file diff --git a/atemOSC.app/Contents/Frameworks/VVBasics.framework/Versions/Current/Headers/MutLockArray.h b/atemOSC.app/Contents/Frameworks/VVBasics.framework/Versions/Current/Headers/MutLockArray.h deleted file mode 100644 index deaf284..0000000 --- a/atemOSC.app/Contents/Frameworks/VVBasics.framework/Versions/Current/Headers/MutLockArray.h +++ /dev/null @@ -1,185 +0,0 @@ - -#if IPHONE -#import -#else -#import -#endif -#import - - - -/// Similar to NSMutableArray, but thread-safe. Internally, uses an NSMutableArray and a rwlock. -/* -This class exists because NSMutableArray is not thread-safe by default: if you call methods on it from two different threads at the same time, it will try to execute both, often crashing in the process. I found myself writing a lot of lock/array pairs, so simplified everything by combining them into a single class. MutLockArray has methods which allow you to work with a mutable array in a transparent and thread-safe manner- it will automatically establish the read-/write-locks necessary to perform the relevant task. By avoiding the "lock" methods, you can also work with the array without performing any locking- so you can get a read-/write-lock, perform a number of actions, and then unlock. - -It is important to remember, when working with it, that MutLockArray is NOT a subclass of NSMutableArray; rather, it is a subclass of NSObject with an instance of an NSMutableArray and a rwlock for working with it safely. This means that you can't pass an instance of MutLockArray to anything which is expecting to be passed an NSMutableArray- internally, apple's frameworks will probably be doing some dark voodoo bullshit which will result in a spectacular failure. If you want to work with an actual NSMutableArray, check out the "array", "createArrayCopy", and "lockCreateArrayCopy" methods below. - -...and remember- when looking for stuff in an NSMutableArray, the array will use the "isEqualTo:" comparator method, which is slower than comparing the address of two pointers. if you know the pointer address hasn't changed (if you're *not* working with NSStrings), use the "indexOfIdenticalPtr", "removeIdenticalPtr", etc. methods to work with the array. -*/ - -@interface MutLockArray : NSObject { - NSMutableArray *array; - pthread_rwlock_t arrayLock; -} - -/// Creates and returns an auto-released MutLockArray with a given capacity. The capacity may be 0. -+ (id) arrayWithCapacity:(NSUInteger)c; -/// Inits and returns a MutLockArray with a given capacity; the capacity may be 0. -- (id) initWithCapacity:(NSUInteger)c; -- (id) init; - -/// Establishes a read-lock for the array; multiple read locks may exist simultaneously (if it's not changing, anything can look at the contents of the array). This method does not return until it has been able to get the lock. -- (void) rdlock; -- (BOOL) tryRdLock; // returns YES if i got a read-lock successfully! -/// Establishes a write-lock for the array. Only one write-lock may exist at any given time, and all read-locks must be relinquished before the write-lock may be established (if you're going to change the array, nothing else can be changing or observing it). -- (void) wrlock; -/// Unlocks the array. -- (void) unlock; - -/// Returns the NSMutableArray with everything in it. This returns the actual array, so be careful- it's possible to do something which ISN'T threadsafe with this... -- (NSMutableArray *) array; -/// Returns an NSMutableArray which was created by calling "mutableCopy" on my array. Again, it's possible to do something which ISN'T threadsafe by calling this... -- (NSMutableArray *) createArrayCopy; -/// Returns an NSMutableArray which was created while a read-lock was established; this is threadsafe. -- (NSMutableArray *) lockCreateArrayCopy; - -/// Calls "addObject" on my array; not threadsafe. -- (void) addObject:(id)o; -/// Establishes a write-lock, then calls "addObject" on self; threadsafe. -- (void) lockAddObject:(id)o; -/// Calls "addObjectsFromArray" on my array; not threadsafe. -- (void) addObjectsFromArray:(id)a; -/// Establishes a write-lock, then calls "addObjectsFromArray" on self; threadsafe. -- (void) lockAddObjectsFromArray:(id)a; -/// Calls "addObjectsFromArray" on my array; not threadsafe. -- (void) replaceWithObjectsFromArray:(id)a; -/// Establishes a write-lock, then calls "replaceWithObjectsFromArray" on self; threadsafe. -- (void) lockReplaceWithObjectsFromArray:(id)a; -/// Calls "insertObject:atIndex:" on my array; not threadsafe. -- (void) insertObject:(id)o atIndex:(NSUInteger)i; -/// Establishes a write-lock, then calls "insertObject:atIndex:" on self; threadsafe. -- (void) lockInsertObject:(id)o atIndex:(NSUInteger)i; -/// Calls "removeAllObjects" on my array; not threadsafe. -- (void) removeAllObjects; -/// Establishes a write-lock, then calls "removeAllObjects" on self; threadsafe. -- (void) lockRemoveAllObjects; -/// Calls "objectAtIndex:0" on my array; not threadsafe. -- (id) firstObject; -/// Establishes a read-lock, then calls "firstObject" on self; threadsafe -- (id) lockFirstObject; -/// Calls "removeObjectAtIndex:0" on my array; not threadsafe -- (void) removeFirstObject; -/// Establishes a write-lock, then calls "removeFirstObject" on self; threadsafe. -- (void) lockRemoveFirstObject; -/// Calls "lastObject" on my array; not threadsafe. -- (id) lastObject; -/// Establishes a read-lock, then calls "lastObject" on self; threadsafe. -- (id) lockLastObject; -/// Calls "removeLastObject" on my array; not threadsafe. -- (void) removeLastObject; -/// Establishes a write-lock, then calls "removeLastObject" on self; threadsafe. -- (void) lockRemoveLastObject; -/// Calls "removeObject:" on my array; not threadsafe. -- (void) removeObject:(id)o; -/// Establishes a write-lock, then calls "removeObject:" on self; threadsafe. -- (void) lockRemoveObject:(id)o; -/// Calls "removeObjectAtIndex:" on my array; not threadsafe. -- (void) removeObjectAtIndex:(NSUInteger)i; -/// Establishes a write-lock, then calls "removeObjectAtIndex:" on self; threadsafe. -- (void) lockRemoveObjectAtIndex:(NSUInteger)i; -/// Calls "removeObjectsAtIndexes:" on my array; not threadsafe. -- (void) removeObjectsAtIndexes:(NSIndexSet *)i; -/// Establishes a write-lock, then calls "removeObjectsAtIndexes:" on self; threadsafe. -- (void) lockRemoveObjectsAtIndexes:(NSIndexSet *)i; -/// Calls "removeObjectsInArray:" on my array; not threadsafe. -- (void) removeObjectsInArray:(NSArray *)otherArray; -/// Establishes a write-lock, then calls "removeObjectsInArray:" on self; threadsafe. -- (void) lockRemoveObjectsInArray:(NSArray *)otherArray; -/// Calls "removeIdenticalPtrsInArray:" on my array; not threadsafe -- (void) removeIdenticalPtrsInArray:(NSArray *)a; -/// Establishes a write-lock, then calls "removeIdenticalPtrsInArray:" on self; threadsafe. -- (void) lockRemoveIdenticalPtrsInArray:(NSArray *)a; - -/// Calls "replaceObjectsAtIndexes:withObjects" on my array; not threadsafe. -- (void) replaceObjectsAtIndexes:(NSIndexSet *)indexes withObjects:(NSArray *)objects; -// Establishes a write-lock, then calls "replaceObjectsAtIndexes:withObjects on self; threadsafe -- (void) lockReplaceObjectsAtIndexes:(NSIndexSet *)indexes withObjects:(NSArray *)objects; - -/// Calls "valueForKey:" on my array; not threadsafe. -- (id) valueForKey:(NSString *)key; -/// Establishes a read-lock, then calls "valueForKey:" on self; threadsafe. -- (id) lockValueForKey:(NSString *)key; - - -/// Calls "containsObject:" on my array; not threadsafe. -- (BOOL) containsObject:(id)o; -/// Establishes a read-lock, then calls "containsObject:" on self; threadsafe. -- (BOOL) lockContainsObject:(id)o; -/// Calls "objectAtIndex:" on my array; not threadsafe. -- (id) objectAtIndex:(NSUInteger)i; -/// Establishes a read-lock, then calls "objectAtIndex:" on self; threadsafe. -- (id) lockObjectAtIndex:(NSUInteger)i; -/// Calls "objectsAtIndexes:" on my array; not threadsafe. -- (NSArray *) objectsAtIndexes:(NSIndexSet *)indexes; -/// Establishes a read-lock, then calls "objectsAtIndexes:" on self; threadsafe. -- (NSArray *) lockObjectsAtIndexes:(NSIndexSet *)indexes; -/// Calls "indexOfObject:" on my array; not threadsafe. -- (NSUInteger) indexOfObject:(id)o; -/// Establishes a read-lock, then calls "indexOfObject:" on self; threadsafe. -- (NSUInteger) lockIndexOfObject:(id)o; - - -/// Enumerates through my array- compares the address of each item in the array to the passed pointer. Unlike NSMutableArray, this method does NOT call isEqualTo:, it's just a simple == operator. -- (BOOL) containsIdenticalPtr:(id)o; -/// Establishes a read-lock, then calls "containsIdenticalPtr:" on self; threadsafe. -- (BOOL) lockContainsIdenticalPtr:(id)o; -/// Enumerates through my array- compares the address of each item in the array to the passed pointer. Unlike NSMutableArray, this method does NOT call isEqualTo:, it's just a simple == operator. -- (long) indexOfIdenticalPtr:(id)o; -/// Establishes a read-lock, then calls "indexOfIdenticalPtr:" on self; threadsafe. -- (long) lockIndexOfIdenticalPtr:(id)o; -/// Locates an item in my array by enumerating through it and comparing the address of each item in the array to the passed ptr, and then deletes the matching item from the array; not threadsafe. -- (void) removeIdenticalPtr:(id)o; -/// Establishes a write-lock, then calls "removeIdenticalPtr:" on self; threadsafe. -- (void) lockRemoveIdenticalPtr:(id)o; - -// Calls "filteredArrayUsingPredicate:" on my array; not threadsafe -- (NSArray *)filteredArrayUsingPredicate:(NSPredicate *)predicate; -// Establishes a read-lock, then calls "filteredArrayUsingPredicate:" on self; threadsafe -- (NSArray *) lockFilteredArrayUsingPredicate:(NSPredicate *)predicate; - -/// Calls "makeObjectsPerformSelector:" on my array; not threadsafe. -- (void) makeObjectsPerformSelector:(SEL)s; -/// Establishes a read-lock, then calls "makeObjectsPerformSelector:" on self; threadsafe. -- (void) lockMakeObjectsPerformSelector:(SEL)s; -/// Calls "makeObjectsPerformSelector:withObject:" on my array; not threadsafe. -- (void) makeObjectsPerformSelector:(SEL)s withObject:(id)o; -/// Establishes a read-lock, then calls "makeObjectsPerformSelector:withObject:" on self; threadsafe. -- (void) lockMakeObjectsPerformSelector:(SEL)s withObject:(id)o; - - - -/* -- (void) makeCopyPerformSelector:(SEL)s; -- (void) lockMakeCopyPerformSelector:(SEL)s; -- (void) makeCopyPerformSelector:(SEL)s withObject:(id)o; -- (void) lockMakeCopyPerformSelector:(SEL)s withObject:(id)o; -*/ - - - -/// Calls "sortUsingSelector:" on my array; not threadsafe. -- (void) sortUsingSelector:(SEL)s; -/// Establishes a write-lock, then calls "sortUsingSelector:" on self; threadsafe. -- (void) lockSortUsingSelector:(SEL)s; - -/// Calls "sortUsingDescriptors:" on my array; not threadsafe. -- (void) sortUsingDescriptors:(NSArray *)descriptors; -/// Establishes a write-lock, then calls "sortUsingDescriptors:" on self; threadsafe. -- (void) lockSortUsingDescriptors:(NSArray *)descriptors; - -- (NSEnumerator *) objectEnumerator; -- (NSEnumerator *) reverseObjectEnumerator; -- (long) count; -- (long) lockCount; - -@end diff --git a/atemOSC.app/Contents/Frameworks/VVBasics.framework/Versions/Current/Headers/MutLockDict.h b/atemOSC.app/Contents/Frameworks/VVBasics.framework/Versions/Current/Headers/MutLockDict.h deleted file mode 100644 index e162293..0000000 --- a/atemOSC.app/Contents/Frameworks/VVBasics.framework/Versions/Current/Headers/MutLockDict.h +++ /dev/null @@ -1,56 +0,0 @@ - -#if IPHONE -#import -#else -#import -#endif -#import - - - -/// MutLockDict is a thread-safe version of NSMutableDictionary. -/*! -This class exists because NSMutableDictionary is not thread-safe by default: if you call methods on it from two different threads at the same time, it will try to execute both, often crashing in the process. This class has methods which allow you to work with a mutable dictionary in a transparent and thread-safe manner. -*/ - -@interface MutLockDict : NSObject { - NSMutableDictionary *dict; - pthread_rwlock_t dictLock; -} - -+ (id) dictionaryWithCapacity:(NSUInteger)c; -+ (id) dictionaryWithDict:(NSDictionary *)d; -- (id) initWithCapacity:(NSUInteger)c; - -- (void) rdlock; -- (void) wrlock; -- (void) unlock; - -- (NSMutableDictionary *) dict; -- (NSMutableDictionary *) createDictCopy; -- (NSMutableDictionary *) lockCreateDictCopy; - -- (void) setObject:(id)o forKey:(NSString *)s; -- (void) lockSetObject:(id)o forKey:(NSString *)s; -- (void) setValue:(id)v forKey:(NSString *)s; -- (void) lockSetValue:(id)v forKey:(NSString *)s; -- (void) removeAllObjects; -- (void) lockRemoveAllObjects; -- (id) objectForKey:(NSString *)k; -- (id) lockObjectForKey:(NSString *)k; -- (void) removeObjectForKey:(NSString *)k; -- (void) lockRemoveObjectForKey:(NSString *)k; -- (void) addEntriesFromDictionary:(NSDictionary *)otherDictionary; -- (void) lockAddEntriesFromDictionary:(NSDictionary *)otherDictionary; -- (NSArray *) allKeys; -- (NSArray *) lockAllKeys; -- (NSArray *) allValues; -- (NSArray *) lockAllValues; - -- (void) lockMakeObjectsPerformSelector:(SEL)s; -- (void) makeObjectsPerformSelector:(SEL)s; - -- (NSUInteger) count; -- (NSUInteger) lockCount; - -@end diff --git a/atemOSC.app/Contents/Frameworks/VVBasics.framework/Versions/Current/Headers/MutNRLockArray.h b/atemOSC.app/Contents/Frameworks/VVBasics.framework/Versions/Current/Headers/MutNRLockArray.h deleted file mode 100644 index 9ad1138..0000000 --- a/atemOSC.app/Contents/Frameworks/VVBasics.framework/Versions/Current/Headers/MutNRLockArray.h +++ /dev/null @@ -1,50 +0,0 @@ - -#if IPHONE -#import -#else -#import -#endif - -#import "MutLockArray.h" -#import "ObjectHolder.h" - - - -/// Subclass of MutLockArray; this class does NOT retain the objects in its array! -/* -this class exists because i frequently find myself in situations where i want to add an instance of an object to an array/dict/[any class which retains the passed instance], but i don't actually want the item to be retained. - -Instead of adding (and therefore retaining) objects to an array like my superclass, this class makes an ObjectHolder for objects which are added to it (so they don't get retained), and adds the ObjectHolder to me. when other classes ask me for the index of an object, or ask for the object at a particular index, i'll find the relevant ObjectHolder and then return the object it's storing. -*/ - -@interface MutNRLockArray : MutLockArray { - -} - -+ (id) arrayWithCapacity:(NSUInteger)c; - -- (NSMutableArray *) createArrayCopy; -- (NSMutableArray *) lockCreateArrayCopyFromObjects; -- (NSMutableArray *) createArrayCopyFromObjects; -- (void) addObject:(id)o; -- (void) addObjectsFromArray:(id)a; -- (void) replaceWithObjectsFromArray:(id)a; -- (void) insertObject:(id)o atIndex:(NSUInteger)i; -- (id) lastObject; -- (void) removeObject:(id)o; -- (BOOL) containsObject:(id)o; -- (id) objectAtIndex:(NSUInteger)i; -- (NSArray *) objectsAtIndexes:(NSIndexSet *)indexes; -- (NSUInteger) indexOfObject:(id)o; -- (BOOL) containsIdenticalPtr:(id)o; -- (long) indexOfIdenticalPtr:(id)o; -- (void) removeIdenticalPtr:(id)o; - -// these methods exist because the lookup cost for an ObjectHolder can be significant for high-performance applications- these methods get the object from the ObjectHolder and call the method directly on it! -- (void) bruteForceMakeObjectsPerformSelector:(SEL)s; -- (void) lockBruteForceMakeObjectsPerformSelector:(SEL)s; -- (void) bruteForceMakeObjectsPerformSelector:(SEL)s withObject:(id)o; -- (void) lockBruteForceMakeObjectsPerformSelector:(SEL)s withObject:(id)o; - - -@end diff --git a/atemOSC.app/Contents/Frameworks/VVBasics.framework/Versions/Current/Headers/MutNRLockDict.h b/atemOSC.app/Contents/Frameworks/VVBasics.framework/Versions/Current/Headers/MutNRLockDict.h deleted file mode 100644 index f4f757f..0000000 --- a/atemOSC.app/Contents/Frameworks/VVBasics.framework/Versions/Current/Headers/MutNRLockDict.h +++ /dev/null @@ -1,39 +0,0 @@ -// -// MutNRLockDict.h -// VVOpenSource -// -// Created by David Lublin on 12/22/09. -// Copyright 2009 Vidvox. All rights reserved. -// - -#if IPHONE -#import -#else -#import -#endif - -#import "MutLockDict.h" -#import "ObjectHolder.h" - - - -/// Subclass of MutLockDict; this class does NOT retain the objects in its array! -/* -this class exists because i frequently find myself in situations where i want to add an instance of an object to an array/dict/[any class which retains the passed instance], but i don't actually want the item to be retained. - -Instead of adding (and therefore retaining) objects to an array like my superclass, this class makes an ObjectHolder for objects which are added to it (so they don't get retained), and adds the ObjectHolder to me. when other classes ask me for the index of an object, or ask for the object at a particular index, i'll find the relevant ObjectHolder and then return the object it's storing. -*/ - - -@interface MutNRLockDict : MutLockDict { - -} - - -- (void) setObject:(id)o forKey:(NSString *)s; -- (void) setValue:(id)v forKey:(NSString *)s; -- (id) objectForKey:(NSString *)k; -- (void) addEntriesFromDictionary:(id)otherDictionary; -- (NSArray *) allValues; - -@end diff --git a/atemOSC.app/Contents/Frameworks/VVBasics.framework/Versions/Current/Headers/NamedMutLockArray.h b/atemOSC.app/Contents/Frameworks/VVBasics.framework/Versions/Current/Headers/NamedMutLockArray.h deleted file mode 100644 index 54e75d0..0000000 --- a/atemOSC.app/Contents/Frameworks/VVBasics.framework/Versions/Current/Headers/NamedMutLockArray.h +++ /dev/null @@ -1,31 +0,0 @@ - -#if IPHONE -#import -#else -#import -#endif -#import "VVBasicMacros.h" -#import "MutLockArray.h" - - - - -/* - // only difference between this and MutLockArray is the "name" variable. -*/ - - - - -@interface NamedMutLockArray : MutLockArray { - NSString *name; -} - -+ (id) arrayWithCapacity:(int)c; -+ (id) create; - -- (NSComparisonResult) nameCompare:(NamedMutLockArray *)comp; - -@property (assign, readwrite) NSString *name; - -@end diff --git a/atemOSC.app/Contents/Frameworks/VVBasics.framework/Versions/Current/Headers/ObjectHolder.h b/atemOSC.app/Contents/Frameworks/VVBasics.framework/Versions/Current/Headers/ObjectHolder.h deleted file mode 100644 index 64c397f..0000000 --- a/atemOSC.app/Contents/Frameworks/VVBasics.framework/Versions/Current/Headers/ObjectHolder.h +++ /dev/null @@ -1,38 +0,0 @@ - -#if IPHONE -#import -#else -#import -#endif - - - - -/* - created for working with the MutNRLockArray class. - - basically, you create an instance of this class and give it a reference to an - instance of an object. the instance is NOT retained- but you're now free to - pass ObjectHolder to stuff which will otherwise retain/release it without - worrying about whether the passed instance is retained/released. - - if you call a method on an instance of ObjectHolder and the ObjectHolder - class doesn't respond to that method, the instance will try to call the - method on its object. this means that working with ObjectHolder should- - theoretically, at any rate- be transparent... -*/ - - - - -@interface ObjectHolder : NSObject { - BOOL deleted; - id object; -} - -+ (id) createWithObject:(id)o; -- (id) initWithObject:(id)o; - -@property (assign,readwrite) id object; - -@end diff --git a/atemOSC.app/Contents/Frameworks/VVBasics.framework/Versions/Current/Headers/VVAssertionHandler.h b/atemOSC.app/Contents/Frameworks/VVBasics.framework/Versions/Current/Headers/VVAssertionHandler.h deleted file mode 100644 index 47cdeef..0000000 --- a/atemOSC.app/Contents/Frameworks/VVBasics.framework/Versions/Current/Headers/VVAssertionHandler.h +++ /dev/null @@ -1,31 +0,0 @@ - -#if IPHONE -#import -#else -#import -#endif - - - - -#define USE_CUSTOM_ASSERTION_HANDLER \ -{ \ - NSThread *__currentThread = [NSThread currentThread]; \ - NSDictionary *__threadDict = (__currentThread==nil) ? nil : [__currentThread threadDictionary]; \ - if (__threadDict != nil) { \ - VVAssertionHandler *__newAH = [[VVAssertionHandler alloc] init]; \ - if (__newAH != nil) { \ - [__threadDict setValue:__newAH forKey:@"NSAssertionHandler"]; \ - [__newAH release]; \ - __newAH = nil; \ - } \ - } \ -} - - - -@interface VVAssertionHandler : NSAssertionHandler { - -} - -@end diff --git a/atemOSC.app/Contents/Frameworks/VVBasics.framework/Versions/Current/Headers/VVBasicMacros.h b/atemOSC.app/Contents/Frameworks/VVBasics.framework/Versions/Current/Headers/VVBasicMacros.h deleted file mode 100644 index 6eab4c6..0000000 --- a/atemOSC.app/Contents/Frameworks/VVBasics.framework/Versions/Current/Headers/VVBasicMacros.h +++ /dev/null @@ -1,229 +0,0 @@ - -// macros for checking to see if something is nil, and if it's not releasing and setting it to nil -#define VVRELEASE(item) {if (item != nil) { \ - [item release]; \ - item = nil; \ -}} -#define VVAUTORELEASE(item) {if (item != nil) { \ - [item autorelease]; \ - item = nil; \ -}} - - - -// macros for making a CGRect from an NSRect -#define NSMAKECGRECT(n) CGRectMake(n.origin.x, n.origin.y, n.size.width, n.size.height) -#define NSMAKECGPOINT(n) CGPointMake(n.x, n.y) -#define NSMAKECGSIZE(n) CGSizeMake(n.width, n.height) -// macros for making an NSRect from a CGRect -#define CGMAKENSRECT(n) NSMakeRect(n.origin.x, n.origin.y, n.size.width, n.size.height) -#define CGMAKENSSIZE(n) NSMakeSize(n.width,n.height) - -// macro for quickly printing out the dimensions of a rect (and a name/id so you can distinguish between them) -#define NSRectLog(n,r) NSLog(@"%@, (%f,%f) : %fx%f",n,r.origin.x,r.origin.y,r.size.width,r.size.height) -#define NSPointLog(n,r) NSLog(@"%@, (%f,%f)",n,r.x,r.y) -#define NSSizeLog(n,s) NSLog(@"%@, %fx%f",n,s.width,s.height) - -// macros for quickly making numbers and values -#define NUMINT(i) [NSNumber numberWithInt:i] -#define NUMFLOAT(f) [NSNumber numberWithFloat:f] -#define NUMBOOL(b) [NSNumber numberWithBool:b] -#define NUMDOUBLE(d) [NSNumber numberWithDouble:d] -#define VALSIZE(s) [NSValue valueWithSize:s] -#define VALRECT(r) [NSValue valueWithRect:r] - -// macro for quickly archiving and object -#define ARCHIVE(a) [NSKeyedArchiver archivedDataWithRootObject:a] -#define UNARCHIVE(a) [NSKeyedUnarchiver unarchiveObjectWithData:a] - -// macro for quickly making colors -#define VVDEVCOLOR(r,g,b,a) [NSColor colorWithDeviceRed:r green:g blue:b alpha:a] -#define VVCALCOLOR(r,g,b,a) [NSColor colorWithCalibratedRed:r green:g blue:b alpha:a] - -// nice little macro for strings -#define VVSTRING(n) ((NSString *)[NSString stringWithString:n]) -#define VVFMTSTRING(f, ...) ((NSString *)[NSString stringWithFormat:f, ##__VA_ARGS__]) -#define VVDATASTRING(n) ((NSData *)[[NSString stringWithString:n] dataUsingEncoding:NSUTF8StringEncoding]) -#define VVDATAFMTSTRING(f, ...) ((NSData *)[[NSString stringWithFormat:f, ##__VA_ARGS__] dataUsingEncoding:NSUTF8StringEncoding]) - -// macros for quickly making arrays because.....well, it's the wiimote, and i'm fucking tired of typing. so there. -#define OBJARRAY(f) [NSArray arrayWithObject:f] -#define OBJSARRAY(f, ...) [NSArray arrayWithObjects:f, ##__VA_ARGS__, nil] -#define MUTARRAY [NSMutableArray arrayWithCapacity:0] - -// macros for quickly making dicts -#define OBJDICT(o,k) [NSDictionary dictionaryWithObject:o forKey:k] -#define OBJSDICT(o, ...) [NSDictionary dictionaryWithObjectsAndKeys:o,#__VA_ARGS__, nil] -#define MUTDICT [NSMutableDictionary dictionaryWithCapacity:0] - -// calculating the distance between two NSPoints or similar structs -#define POINTDISTANCE(a,b) fabs(sqrtf((a.x-b.x)*(a.x-b.x) + (a.y-b.y)*(a.y-b.y))) - - -// this is a macro for drawing an NSRect in opengl -#define GLDRAWRECT(r) \ -{ \ - GLfloat vvMacroVertices[]={ \ - r.origin.x, r.origin.y, 0.0, \ - r.origin.x, r.origin.y+r.size.height, 0.0, \ - r.origin.x+r.size.width, r.origin.y+r.size.height, 0.0, \ - r.origin.x+r.size.width, r.origin.y, 0.0}; \ - glVertexPointer(3,GL_FLOAT,0,vvMacroVertices); \ - glDrawArrays(GL_QUADS,0,4); \ -} - - - -// this is a macro for stroking an NSRect in opengl -#define GLSTROKERECT(r) \ -{ \ - GLfloat vvMacroVertices[]={ \ - r.origin.x-0.5, r.origin.y-0.5, 0.0, \ - r.origin.x+r.size.width+0.5, r.origin.y-0.5, 0.0, \ - r.origin.x+r.size.width+0.5, r.origin.y-0.5, 0.0, \ - r.origin.x+r.size.width+0.5, r.origin.y+r.size.height-0.5, 0.0, \ - r.origin.x+r.size.width+0.5, r.origin.y+r.size.height-0.5, 0.0, \ - r.origin.x-0.5, r.origin.y+r.size.height-0.5, 0.0, \ - r.origin.x-0.5, r.origin.y+r.size.height-0.5, 0.0, \ - r.origin.x-0.5, r.origin.y-0.5, 0.0}; \ - glVertexPointer(3,GL_FLOAT,0,vvMacroVertices); \ - glDrawArrays(GL_LINES,0,8); \ -} -/* -#define GLSTROKERECT(r) \ -{ \ - GLfloat vvMacroVertices[]={ \ - r.origin.x, r.origin.y, 0.0, \ - r.origin.x+r.size.width, r.origin.y, 0.0, \ - r.origin.x+r.size.width, r.origin.y, 0.0, \ - r.origin.x+r.size.width, r.origin.y+r.size.height, 0.0, \ - r.origin.x+r.size.width, r.origin.y+r.size.height, 0.0, \ - r.origin.x, r.origin.y+r.size.height, 0.0, \ - r.origin.x, r.origin.y+r.size.height, 0.0, \ - r.origin.x, r.origin.y, 0.0}; \ - glVertexPointer(3,GL_FLOAT,0,vvMacroVertices); \ - glDrawArrays(GL_LINES,0,8); \ -} -*/ - - -// this is a macro for drawing a line connecting two points -#define GLDRAWLINE(p,q) \ -{ \ - GLfloat vvMacroVertices[]={ \ - p.x, p.y, 0.0, \ - q.x, q.y, 0.0}; \ - glVertexPointer(3,GL_FLOAT,0,vvMacroVertices); \ - glDrawArrays(GL_LINES,0,2); \ -} - - - -// this is a macro for drawing a diamond specified by a point and radius in opengl -#define GLDRAWDIAMOND(p,r) \ -{ \ - GLfloat vvMacroVertices[] = { \ - p.x-r, p.y, 0.0, \ - p.x, p.y+r, 0.0, \ - p.x+r, p.y, 0.0, \ - p.x, p.y-r, 0.0}; \ - glVertexPointer(3,GL_FLOAT,0,vvMacroVertices); \ - glDrawArrays(GL_QUADS,0,4); \ -} - - - -// this is a macro for stroking an diamond around a point in opengl -#define GLSTROKEDIAMOND(p,r) \ -{ \ - GLfloat vvMacroVertices[] = { \ - p.x-r, p.y, 0.0, \ - p.x, p.y+r, 0.0, \ - p.x, p.y+r, 0.0, \ - p.x+r, p.y, 0.0, \ - p.x+r, p.y, 0.0, \ - p.x, p.y-r, 0.0, \ - p.x, p.y-r, 0.0, \ - p.x-r, p.y, 0.0}; \ - glVertexPointer(3,GL_FLOAT,0,vvMacroVertices); \ - glDrawArrays(GL_LINE_LOOP,0,8); \ -} - - -// this is a macro for drawing a texture of a specified size in a rect -#define GLDRAWTEXSIZEDINRECT(t,s,r) \ -{ \ - GLfloat vvMacroVertices[]={ \ - r.origin.x, r.origin.y, 0.0, \ - r.origin.x+r.size.width, r.origin.y, 0.0, \ - r.origin.x+r.size.width, r.origin.y+r.size.height, 0.0, \ - r.origin.x, r.origin.y+r.size.height, 0.0}; \ - GLfloat vvMacroTexCoords[]={ \ - 0.0,s.height, \ - s.width,s.height, \ - s.width,0.0, \ - 0.0,0.0}; \ - glVertexPointer(3,GL_FLOAT,0,vvMacroVertices); \ - glTexCoordPointer(2,GL_FLOAT,0,vvMacroTexCoords); \ - glBindTexture(GL_TEXTURE_RECTANGLE_EXT,t); \ - glDrawArrays(GL_QUADS,0,4); \ - glBindTexture(GL_TEXTURE_RECTANGLE_EXT,0); \ -} - -#define GLDRAWFLIPPEDTEXSIZEDINRECT(t,s,r) \ -{ \ - GLfloat vvMacroVertices[]={ \ - r.origin.x, r.origin.y, 0.0, \ - r.origin.x+r.size.width, r.origin.y, 0.0, \ - r.origin.x+r.size.width, r.origin.y+r.size.height, 0.0, \ - r.origin.x, r.origin.y+r.size.height, 0.0}; \ - GLfloat vvMacroTexCoords[]={ \ - 0.0, 0.0, \ - s.width, 0.0, \ - s.width, s.height, \ - 0.0, s.height}; \ - glVertexPointer(3,GL_FLOAT,0,vvMacroVertices); \ - glTexCoordPointer(2,GL_FLOAT,0,vvMacroTexCoords); \ - glBindTexture(GL_TEXTURE_RECTANGLE_EXT,t); \ - glDrawArrays(GL_QUADS,0,4); \ - glBindTexture(GL_TEXTURE_RECTANGLE_EXT,0); \ -} - -#define GLDRAWTEXSIZEDINRECTATZ(t,s,r,z) \ -{ \ - GLfloat vvMacroVertices[]={ \ - r.origin.x, r.origin.y, z, \ - r.origin.x+r.size.width, r.origin.y, z, \ - r.origin.x+r.size.width, r.origin.y+r.size.height, z, \ - r.origin.x, r.origin.y+r.size.height, z}; \ - GLfloat vvMacroTexCoords[]={ \ - 0.0,s.height, \ - s.width,s.height, \ - s.width,0.0, \ - 0.0,0.0}; \ - glVertexPointer(3,GL_FLOAT,0,vvMacroVertices); \ - glTexCoordPointer(2,GL_FLOAT,0,vvMacroTexCoords); \ - glBindTexture(GL_TEXTURE_RECTANGLE_EXT,t); \ - glDrawArrays(GL_QUADS,0,4); \ - glBindTexture(GL_TEXTURE_RECTANGLE_EXT,0); \ -} - -#define GLDRAWFLIPPEDTEXSIZEDINRECTATZ(t,s,r,z) \ -{ \ - GLfloat vvMacroVertices[]={ \ - r.origin.x, r.origin.y, z, \ - r.origin.x+r.size.width, r.origin.y, z, \ - r.origin.x+r.size.width, r.origin.y+r.size.height, z, \ - r.origin.x, r.origin.y+r.size.height, z}; \ - GLfloat vvMacroTexCoords[]={ \ - 0.0, 0.0, \ - s.width, 0.0, \ - s.width, s.height, \ - 0.0, s.height}; \ - glVertexPointer(3,GL_FLOAT,0,vvMacroVertices); \ - glTexCoordPointer(2,GL_FLOAT,0,vvMacroTexCoords); \ - glBindTexture(GL_TEXTURE_RECTANGLE_EXT,t); \ - glDrawArrays(GL_QUADS,0,4); \ - glBindTexture(GL_TEXTURE_RECTANGLE_EXT,0); \ -} - diff --git a/atemOSC.app/Contents/Frameworks/VVBasics.framework/Versions/Current/Headers/VVBasics.h b/atemOSC.app/Contents/Frameworks/VVBasics.framework/Versions/Current/Headers/VVBasics.h deleted file mode 100644 index b36c65a..0000000 --- a/atemOSC.app/Contents/Frameworks/VVBasics.framework/Versions/Current/Headers/VVBasics.h +++ /dev/null @@ -1,55 +0,0 @@ - -#import "VVBasicMacros.h" - -#import "VVThreadLoop.h" -#import "VVAssertionHandler.h" -#import "VVStopwatch.h" -#import "ObjectHolder.h" -#import "MutLockArray.h" -#import "MutLockDict.h" -#import "MutNRLockArray.h" -#import "MutNRLockDict.h" -#import "NamedMutLockArray.h" - -#if !IPHONE - #import "VVCURLDL.h" - #import "VVSprite.h" - #import "VVSpriteManager.h" - #import "VVSpriteView.h" - #import "VVSpriteControl.h" - #import "VVSpriteControlCell.h" - #import "VVSpriteGLView.h" - #import "VVCrashReporter.h" - //#import "NSHostAdditions.h" -#endif - -/* - the following stuff is for doxygen -*/ - -/*! -\mainpage - -\htmlonly - - - -Introduction -

-VVBasics is an Objective-c framework with a number of classes which perform functions that i need regularly- but, for whatever reason, aren't provided by the stock frameworks. Expect pretty much everything to link against this framework for one reason or another- macros, useful classes, etc- and expect this framework to continuously grow as I start to open-source more and more of my bag of tricks. -

- -\endhtmlonly -*/ diff --git a/atemOSC.app/Contents/Frameworks/VVBasics.framework/Versions/Current/Headers/VVCURLDL.h b/atemOSC.app/Contents/Frameworks/VVBasics.framework/Versions/Current/Headers/VVCURLDL.h deleted file mode 100644 index 39d4c9b..0000000 --- a/atemOSC.app/Contents/Frameworks/VVBasics.framework/Versions/Current/Headers/VVCURLDL.h +++ /dev/null @@ -1,72 +0,0 @@ - -/* - this class offers a very limited, very simple cocoa interface to libcurl for doing extremely - basic http transfer ops - - basically, this class exists because at this time NSURLConnection is problematic and - top-heavy, and i wanted an easy, effective, and reliable interface for handling the extremely - limited set of http data transfer operations required by my frameworks/apps. - - this class was meant to be used as a one-shot throwaway; that is, you're meant to create an - instance of this class which will be auto-released as soon as the autorelease pool is - popped. the instance you create is meant to be used once, and then thrown away- THIS WILL - PROBABLY BREAK IF YOU TRY TO USE THE SAME INSTANCE TO PERFORM MORE THAN ONE TRANSFER. -*/ - - -#import -#import - - - - -@protocol VVCURLDLDelegate -- (void) dlFinished:(id)h; -@end - - - - -@interface VVCURLDL : NSObject { - NSString *urlString; - CURL *curlHandle; - - NSMutableData *responseData; - - struct curl_slist *headerList; // nil by default- if non-nil, supplied to the handle as CURLOPT_HTTPHEADER - NSMutableData *postData; // if non-nil, simply posted as CURLOPT_POSTFIELDS - struct curl_httppost *firstFormPtr; // if postData was nil but this isn't, posted as CURLOPT_HTTPPOST - struct curl_httppost *lastFormPtr; - - BOOL returnOnMain; - BOOL performing; - CURLcode err; -} - -+ (id) createWithAddress:(NSString *)a; -- (id) initWithAddress:(NSString *)a; - -- (void) perform; -- (void) performAsync:(BOOL)as withDelegate:(id )d; -- (void) _performAsyncWithDelegate:(id )d; -- (void) _performWithDelegate:(id )d; - -//- (struct curl_slist *) headerList; -//- (struct curl_httppost *) firstFormPtr; -//- (struct curl_httppost *) lastFormPtr; -- (void) appendDataToPOST:(NSData *)d; -- (void) appendStringToPOST:(NSString *)s; - -- (void) writePtr:(void *)ptr size:(size_t)s; - -@property (assign,readwrite) struct curl_slist *headerList; -@property (assign,readwrite) struct curl_httppost *firstFormPtr; -@property (assign,readwrite) struct curl_httppost *lastFormPtr; -@property (assign,readwrite) BOOL returnOnMain; -@property (readonly) NSMutableData *responseData; -@property (readonly) NSString *responseString; -@property (readonly) CURLcode err; - -@end - -size_t vvcurlWriteFunction(void *ptr, size_t size, size_t nmemb, void *stream); diff --git a/atemOSC.app/Contents/Frameworks/VVBasics.framework/Versions/Current/Headers/VVCrashReporter.h b/atemOSC.app/Contents/Frameworks/VVBasics.framework/Versions/Current/Headers/VVCrashReporter.h deleted file mode 100644 index 0dc9c90..0000000 --- a/atemOSC.app/Contents/Frameworks/VVBasics.framework/Versions/Current/Headers/VVCrashReporter.h +++ /dev/null @@ -1,101 +0,0 @@ - -#import -#import -#include "AvailabilityMacros.h" -#import -#import -#import "VVCURLDL.h" -#import "MutLockArray.h" - - - - -/// The crash reporter's delegate must adhere to this protocol -/*! - This protocol exists largely because it's conceivable that objects will want to know when the crash reporter- which uploads asynchronously- has finished sending its data to the remote server. -*/ -@protocol OldVVCrashReporterDelegate -- (void) crashReporterCheckDone; -@end - -@protocol VVCrashReporterDelegate -- (void) crashReporterCheckDone:(BOOL)foundLogs; // "new"- 'f' designates whether crash reports were found or not -@end - - - -/// Simple class which automatically uploads crash logs and other relevant diagnostic information automatically made available by os x to a remote server. -/*! -it's been my experience that most apps crash much more frequently on end-users than the app's developers would guess. the simplest and easiest way to improve the end-user's experience is to have the application check their machine for crash logs- which are generated automatically by os x whenever an application crashes- and send them to the developer. - -this class exists so i have a really easy way to make my apps send their crash logs to me; the goal here is to make it as easy as possible to get all the information i need to troubleshoot a problem with as little work on the user's part as possible. it also sends a basic system profile, anything the app- and ONLY the app, not other apps- recently printed to the console log, and optional description/email fields to facilitate communication directly with the user. this data is then uploaded to a given URL using an HTTP POST. - -on the server side, i use a PHP page which sanitizes the POST data (i can't stress how important this step is) and works with it. i've included a sample PHP page that simply dumps the received data to a file on disk (and optionally emails someone) with this project. - -HOW TO USE THIS CLASS: - - 1)- create an instance of this class - - 2)- set the instance's delegate, uploadURL, and developerEmail. these are necessary! - - 3)- call "check" on the instance. when it's done, it calls "crashReporterCheckDone" on the - delegate. that's it- you're done. -*/ - -@interface VVCrashReporter : NSObject { - NSString *uploadURL; // does NOT includes http:// - NSString *developerEmail; - id delegate; // must respond to VVCrashReporterDelegate protocol - MutLockArray *crashLogArray; - NSMutableDictionary *systemProfilerDict; - NSString *consoleLog; - int jobSize; // used to update progress indicator/label - int jobCurrentIndex; // used to update progress indicator/label - int currentCrashLogTimeout; // countdown for timeout of sending/receiving data for a specific crash log - NSTimer *currentCrashLogTimer; - - IBOutlet NSWindow *window; - IBOutlet NSButton *replyButton; - IBOutlet NSView *emailFieldHolder; - IBOutlet NSTextField *emailField; - IBOutlet NSTextView *descriptionField; - IBOutlet NSTextField *submittingLabel; // non-editable. 'submitting', 'getting machine profile', etc. - IBOutlet NSProgressIndicator *progressIndicator; // indicates progress through all crash logs to be submitted - IBOutlet NSTextField *countdownLabel; // non-editable; countdown so user knows app hasn't hung - - NSNib *theNib; - NSArray *nibTopLevelObjects; -} - -+ (NSString *) _stringForSystemProfilerDataType:(NSString *)t; - -/// This is the main method- when you call 'check', the crash reporter looks for crash logs, gets a basic system profile, and collects anything your applications has dumped to the console log. -- (void) check; -- (void) openCrashReporter; -- (IBAction) replyButtonClicked:(id)sender; -- (IBAction) doneClicked:(id)sender; -- (void) sendACrashLog; -- (void) closeCrashReporter; - -- (NSString *) _nibName; -- (BOOL) _assembleCrashLogs; // assembles the array of crash logs, returns a YES if logs were found and have to be sent in -- (NSString *) _consoleLogString; -- (NSMutableDictionary *) _systemProfilerDict; - -- (void) updateCrashLogTimeout:(NSTimer *)t; - -// VVCURLDLDelegate method- this class will be the delegate of multiple VVCURLDL instances -- (void) dlFinished:(id)h; - -/// Sets the developer email address; this is displayed if the user has a problem connecting to the internet/the server the crash reporter is supposed to be connecting to -- (void) setDeveloperEmail:(NSString *)n; -- (NSString *) developerEmail; -/// This is the URL of the php/cgi/etc. page which the crash data will be POSTed to -- (void) setUploadURL:(NSString *)n; -- (NSString *) uploadURL; - -/// The crash reporter's delegate is notified when the check has completed -@property (assign,readwrite) id delegate; -@property (readonly) NSButton *replyButton; - -@end diff --git a/atemOSC.app/Contents/Frameworks/VVBasics.framework/Versions/Current/Headers/VVCrashReporterDescriptionField.h b/atemOSC.app/Contents/Frameworks/VVBasics.framework/Versions/Current/Headers/VVCrashReporterDescriptionField.h deleted file mode 100644 index f39f0f5..0000000 --- a/atemOSC.app/Contents/Frameworks/VVBasics.framework/Versions/Current/Headers/VVCrashReporterDescriptionField.h +++ /dev/null @@ -1,15 +0,0 @@ -#import - - -/* - this class exists solely to prevent users from pasting or dragging huge amounts of text (like - crash/console logs!) into the description field of the crash reporter. sounds weird, but trust - me- it's necessary. -*/ - - -@interface VVCrashReporterDescriptionField : NSTextView { - -} - -@end diff --git a/atemOSC.app/Contents/Frameworks/VVBasics.framework/Versions/Current/Headers/VVCrashReporterEmailField.h b/atemOSC.app/Contents/Frameworks/VVBasics.framework/Versions/Current/Headers/VVCrashReporterEmailField.h deleted file mode 100644 index fb883f8..0000000 --- a/atemOSC.app/Contents/Frameworks/VVBasics.framework/Versions/Current/Headers/VVCrashReporterEmailField.h +++ /dev/null @@ -1,14 +0,0 @@ -#import -#import - - -/* - this class exists solely to prevent users from pasting huge amounts of text into the email field -*/ - - -@interface VVCrashReporterEmailField : NSTextField { - -} - -@end diff --git a/atemOSC.app/Contents/Frameworks/VVBasics.framework/Versions/Current/Headers/VVSprite.h b/atemOSC.app/Contents/Frameworks/VVBasics.framework/Versions/Current/Headers/VVSprite.h deleted file mode 100644 index 34246be..0000000 --- a/atemOSC.app/Contents/Frameworks/VVBasics.framework/Versions/Current/Headers/VVSprite.h +++ /dev/null @@ -1,104 +0,0 @@ - -/* Always with the sprites... - - sprite |sprīt| - noun - 1 an elf or fairy. - 2 a computer graphic that may be moved on-screen and otherwise manipulated as a single entity. - 3 a faint flash, typically red, sometimes emitted in the upper atmosphere over a thunderstorm owing to the collision of high-energy electrons with air molecules. - ORIGIN Middle English : alteration of sprit, a contraction of spirit . */ - -#import -#include - - - - -typedef enum _VVSpriteEventType { - VVSpriteEventNULL = 0, - VVSpriteEventDown = 1, - VVSpriteEventDrag = 2, - VVSpriteEventUp = 3, - VVSpriteEventDouble = 4, - VVSpriteEventRightDown = 5, - VVSpriteEventRightUp = 6 -} VVSpriteEventType; - - - - -@interface VVSprite : NSObject { - BOOL deleted; - BOOL locked; // whether or not i should respond to mouse input. DOESN'T AFFECT ANYTHING IN THIS CLASS! variable exists for the user's convenience, and is otherwise superfluous! - BOOL hidden; // whether or not the sprite should draw. DOESN'T AFFECT ANYTHING IN THIS CLASS! variable exists for the user's convenience, and is otherwise superfluous! - BOOL dropFromMultiSpriteActions; // only valid if sprite manager's allowMultiSpriteInteraction' is YES. NO by default. if YES, then if you mousedown on this and any other sprite, this sprite gets dropped from the mousedown. used for allowing multi-sprite interaction to prevent clicks from hitting "background" sprites (which have this set to YES) - long spriteIndex; - id manager; // the VVSpriteManager i exist within- NOT retained! - id delegate; // NOT retained! - SEL drawCallback; // delegate method; passed a ptr to this sprite! - SEL actionCallback; // delegate method; passed a ptr to this sprite! - - NSRect rect; // the sprite i'm tracking - NSBezierPath *bezierPath; // retained. nil by default, set to nil if you call setRect: on this instance. if non-nil, this path is used instead of "rect" for determining mouse action and drawing intersection! - OSSpinLock pathLock; - - int lastActionType; // updated whenever an action is received - NSPoint lastActionCoords; // coords at which last action took place - BOOL lastActionInBounds; // whether or not the last action was within my bounds - BOOL trackingFlag; // whether or not i'm tracking stuff - NSPoint mouseDownCoords; // absolute coords of mousedown - NSPoint lastActionDelta; // change between most-recently-received action coords and last received coords - NSPoint mouseDownDelta; // change between mousedown loc and most-recently received coords - long mouseDownModifierFlags; - - id userInfo; // RETAINED! for storing a random thing... - id NRUserInfo; // NOT RETAINED! for storing something that *shouldn't* be retained... - id safeString; // nil on init- many sprites need formatted text, this is a convenience variable... -} - -+ (id) createWithRect:(NSRect)r inManager:(id)m; -- (id) initWithRect:(NSRect)r inManager:(id)m; - -- (void) prepareToBeDeleted; - -- (BOOL) checkPoint:(NSPoint)p; -- (BOOL) checkRect:(NSRect)r; - -- (void) receivedEvent:(VVSpriteEventType)e atPoint:(NSPoint)p withModifierFlag:(long)m; -- (void) mouseDown:(NSPoint)p modifierFlag:(long)m; -- (void) rightMouseDown:(NSPoint)p modifierFlag:(long)m; -- (void) rightMouseUp:(NSPoint)p; -- (void) mouseDragged:(NSPoint)p; -- (void) mouseUp:(NSPoint)p; -- (void) draw; - -- (void) bringToFront; -- (void) sendToBack; - -@property (assign, readwrite) BOOL locked; -@property (assign, readwrite) BOOL hidden; -@property (assign, readwrite) BOOL dropFromMultiSpriteActions; -@property (readonly) long spriteIndex; -@property (readonly) id manager; -@property (assign, readwrite) id delegate; -@property (assign, readwrite) SEL drawCallback; -@property (assign, readwrite) SEL actionCallback; - -@property (assign, readwrite) NSRect rect; -//@property (retain,readwrite) NSBezierPath *path; -- (void) setBezierPath:(NSBezierPath *)n; -- (NSBezierPath *) safelyGetBezierPath; -- (NSRect) spriteBounds; // special method- either returns "rect" or (if path is non-nil) the bounds of the bezier path! -@property (readonly) VVSpriteEventType lastActionType; -@property (readonly) NSPoint lastActionCoords; -@property (readonly) BOOL lastActionInBounds; -@property (readonly) BOOL trackingFlag; -@property (readonly) NSPoint mouseDownCoords; -@property (readonly) NSPoint lastActionDelta; -@property (readonly) NSPoint mouseDownDelta; -@property (readonly) long mouseDownModifierFlags; -@property (assign,readwrite) id userInfo; -@property (assign,readwrite) id NRUserInfo; -@property (assign,readwrite) id safeString; - -@end diff --git a/atemOSC.app/Contents/Frameworks/VVBasics.framework/Versions/Current/Headers/VVSpriteControl.h b/atemOSC.app/Contents/Frameworks/VVBasics.framework/Versions/Current/Headers/VVSpriteControl.h deleted file mode 100644 index 2ed78b7..0000000 --- a/atemOSC.app/Contents/Frameworks/VVBasics.framework/Versions/Current/Headers/VVSpriteControl.h +++ /dev/null @@ -1,49 +0,0 @@ - -#import -#import "VVSpriteManager.h" -#include - - - - -extern int _maxSpriteControlCount; -extern int _spriteControlCount; - - - - -@interface VVSpriteControl : NSControl { - BOOL deleted; - VVSpriteManager *spriteManager; - BOOL spritesNeedUpdate; - - OSSpinLock propertyLock; - NSEvent *lastMouseEvent; - NSColor *clearColor; - BOOL drawBorder; - NSColor *borderColor; - - long mouseDownModifierFlags; - BOOL mouseIsDown; - NSView *clickedSubview; // NOT RETAINED -} - -- (void) generalInit; - -- (void) prepareToBeDeleted; - -- (void) finishedDrawing; - -- (void) updateSprites; - -@property (readonly) BOOL deleted; -@property (readonly) VVSpriteManager *spriteManager; -@property (assign, readwrite) BOOL spritesNeedUpdate; -- (void) setSpritesNeedUpdate; -@property (readonly) NSEvent *lastMouseEvent; -@property (retain,readwrite) NSColor *clearColor; -@property (assign,readwrite) BOOL drawBorder; -@property (retain,readwrite) NSColor *borderColor; -@property (readonly) BOOL mouseIsDown; - -@end diff --git a/atemOSC.app/Contents/Frameworks/VVBasics.framework/Versions/Current/Headers/VVSpriteControlCell.h b/atemOSC.app/Contents/Frameworks/VVBasics.framework/Versions/Current/Headers/VVSpriteControlCell.h deleted file mode 100644 index fc8e151..0000000 --- a/atemOSC.app/Contents/Frameworks/VVBasics.framework/Versions/Current/Headers/VVSpriteControlCell.h +++ /dev/null @@ -1,11 +0,0 @@ - -#import - - - - -@interface VVSpriteControlCell : NSActionCell { - -} - -@end diff --git a/atemOSC.app/Contents/Frameworks/VVBasics.framework/Versions/Current/Headers/VVSpriteGLView.h b/atemOSC.app/Contents/Frameworks/VVBasics.framework/Versions/Current/Headers/VVSpriteGLView.h deleted file mode 100644 index a47b6a2..0000000 --- a/atemOSC.app/Contents/Frameworks/VVBasics.framework/Versions/Current/Headers/VVSpriteGLView.h +++ /dev/null @@ -1,82 +0,0 @@ - -#import -#import "VVSpriteManager.h" -#import -#import -#import - - - - -typedef enum { - VVFenceModeEveryRefresh = 0, // every time a display callback runs, drawing commands are sent to the GPU. - VVFenceModeDBSkip = 1, // the apple gl fence extension is used to make sure that drawing commands for the back buffer have finished before more drawing commands are sent to the back buffer (the front buffer can receive commands, though) - VVFenceModeSBSkip = 2, // the apple gl fence extension is used to make sure that drawing commands for the single buffer have finished before more drawing commands are sent to it - VVFenceModeFinish = 3 // glFinish is used instead of glFlush -} VVFenceMode; - -typedef enum { - VVFlushModeGL = 0, // glFlush() - VVFlushModeCGL = 1, // CGLFlushDrawable() - VVFlushModeNS = 2, // [context flushBuffer] - VVFlushModeApple = 3, // glFlushRenderAPPLE() - VVFlushModeFinish = 4 // glFinish() -} VVFlushMode; - - - - -@interface VVSpriteGLView : NSOpenGLView { - BOOL deleted; - - BOOL initialized; - //BOOL needsReshape; - pthread_mutex_t glLock; - - VVSpriteManager *spriteManager; - BOOL spritesNeedUpdate; - NSEvent *lastMouseEvent; - GLfloat clearColor[4]; - BOOL drawBorder; - GLfloat borderColor[4]; - - long mouseDownModifierFlags; - BOOL mouseIsDown; - NSView *clickedSubview; // NOT RETAINED - - VVFlushMode flushMode; - - VVFenceMode fenceMode; - GLuint fenceA; - GLuint fenceB; - BOOL waitingForFenceA; - BOOL fenceADeployed; - BOOL fenceBDeployed; - OSSpinLock fenceLock; -} - -- (void) generalInit; -- (void) prepareToBeDeleted; - -- (void) initializeGL; -- (void) finishedDrawing; -//- (void) reshapeGL; -- (void) updateSprites; - -- (void) _lock; -- (void) _unlock; -//- (void) lockSetOpenGLContext:(NSOpenGLContext *)n; - -@property (readonly) BOOL deleted; -@property (assign,readwrite) BOOL initialized; -@property (assign, readwrite) BOOL spritesNeedUpdate; -- (void) setSpritesNeedUpdate; -@property (readonly) NSEvent *lastMouseEvent; -@property (retain,readwrite) NSColor *clearColor; -@property (assign,readwrite) BOOL drawBorder; -@property (retain,readwrite) NSColor *borderColor; -@property (readonly) VVSpriteManager *spriteManager; -@property (readonly) BOOL mouseIsDown; -@property (assign, readwrite) VVFlushMode flushMode; - -@end diff --git a/atemOSC.app/Contents/Frameworks/VVBasics.framework/Versions/Current/Headers/VVSpriteManager.h b/atemOSC.app/Contents/Frameworks/VVBasics.framework/Versions/Current/Headers/VVSpriteManager.h deleted file mode 100644 index b8f0dc4..0000000 --- a/atemOSC.app/Contents/Frameworks/VVBasics.framework/Versions/Current/Headers/VVSpriteManager.h +++ /dev/null @@ -1,57 +0,0 @@ - -#import -#import "VVSprite.h" -#import "MutLockArray.h" - - - - -@interface VVSpriteManager : NSObject { - BOOL deleted; - BOOL allowMultiSpriteInteraction; // NO by default- if YES, clicking/dragging/etc works with multiple sprites! - BOOL multiSpriteExecutesOnMultipleSprites; // only relevant if multi-sprite interaction is YES. this is NO by default- if it's YES all sprites in "spritesInUse" will receive an action callback when any of them get an action method. if this is NO then only the sprite that "caught" the interaction will receive an action callback! - MutLockArray *spriteArray; // searched from beginning to end, so order is like z-index! - VVSprite *spriteInUse; // array of VVSprite objects currently tracking drag info - MutLockArray *spritesInUse; // ONLY VALID IF MULTI SPRITE INTERACTION IS YES! array of VVSprite o - long spriteIndexCount; -} - -- (void) prepareToBeDeleted; - -// return YES if the mousedown occurred on one or more sprites -- (BOOL) receivedMouseDownEvent:(VVSpriteEventType)e atPoint:(NSPoint)p withModifierFlag:(long)m visibleOnly:(BOOL)v; -- (void) receivedOtherEvent:(VVSpriteEventType)e atPoint:(NSPoint)p withModifierFlag:(long)m; -- (BOOL) localMouseDown:(NSPoint)p modifierFlag:(long)m; -- (BOOL) localVisibleMouseDown:(NSPoint)p modifierFlag:(long)m; -- (BOOL) localRightMouseDown:(NSPoint)p modifierFlag:(long)m; -- (BOOL) localVisibleRightMouseDown:(NSPoint)p modifierFlag:(long)m; -- (void) localRightMouseUp:(NSPoint)p; -- (void) localMouseDragged:(NSPoint)p; -- (void) localMouseUp:(NSPoint)p; -- (void) terminatePresentMouseSession; // call this and sprites will stop responding to the mouse until it is clicked again - -- (id) newSpriteAtBottomForRect:(NSRect)r; -- (id) newSpriteAtTopForRect:(NSRect)r; -- (long) getUniqueSpriteIndex; - -- (VVSprite *) spriteAtPoint:(NSPoint)p; -- (VVSprite *) visibleSpriteAtPoint:(NSPoint)p; -- (VVSprite *) spriteForIndex:(long)i; -- (void) removeSpriteForIndex:(long)i; -- (void) removeSprite:(id)z; -- (void) removeSpritesFromArray:(NSArray *)array; -- (void) removeAllSprites; -//- (void) moveSpriteToFront:(VVSprite *)z; - -- (void) draw; -- (void) drawRect:(NSRect)r; - -- (VVSprite *) spriteInUse; -- (void) setSpriteInUse:(VVSprite *)z; - -@property (assign,readwrite) BOOL allowMultiSpriteInteraction; -@property (assign,readwrite) BOOL multiSpriteExecutesOnMultipleSprites; -@property (readonly) MutLockArray *spriteArray; -@property (readonly) MutLockArray *spritesInUse; - -@end diff --git a/atemOSC.app/Contents/Frameworks/VVBasics.framework/Versions/Current/Headers/VVSpriteView.h b/atemOSC.app/Contents/Frameworks/VVBasics.framework/Versions/Current/Headers/VVSpriteView.h deleted file mode 100644 index a8d17a0..0000000 --- a/atemOSC.app/Contents/Frameworks/VVBasics.framework/Versions/Current/Headers/VVSpriteView.h +++ /dev/null @@ -1,48 +0,0 @@ - -#import -#import "VVSpriteManager.h" -#include - - - - -extern int _spriteViewCount; - - - - -@interface VVSpriteView : NSView { - BOOL deleted; - VVSpriteManager *spriteManager; - BOOL spritesNeedUpdate; - - OSSpinLock propertyLock; - NSEvent *lastMouseEvent; - NSColor *clearColor; - BOOL drawBorder; - NSColor *borderColor; - - long mouseDownModifierFlags; - BOOL mouseIsDown; - NSView *clickedSubview; // NOT RETAINED -} - -- (void) generalInit; - -- (void) prepareToBeDeleted; - -- (void) finishedDrawing; - -- (void) updateSprites; - -@property (readonly) BOOL deleted; -@property (readonly) VVSpriteManager *spriteManager; -@property (assign, readwrite) BOOL spritesNeedUpdate; -- (void) setSpritesNeedUpdate; -@property (readonly) NSEvent *lastMouseEvent; -@property (retain,readwrite) NSColor *clearColor; -@property (assign,readwrite) BOOL drawBorder; -@property (retain,readwrite) NSColor *borderColor; -@property (readonly) BOOL mouseIsDown; - -@end diff --git a/atemOSC.app/Contents/Frameworks/VVBasics.framework/Versions/Current/Headers/VVStopwatch.h b/atemOSC.app/Contents/Frameworks/VVBasics.framework/Versions/Current/Headers/VVStopwatch.h deleted file mode 100644 index a1f9c35..0000000 --- a/atemOSC.app/Contents/Frameworks/VVBasics.framework/Versions/Current/Headers/VVStopwatch.h +++ /dev/null @@ -1,35 +0,0 @@ - -#if IPHONE -#import -#else -#import -#endif -#include -#import - - - -/// This class is used to measure how long it takes to do things; much easier to work with than NSDate. - -@interface VVStopwatch : NSObject { - struct timeval startTime; - OSSpinLock timeLock; -} - -/// Returns an auto-released instance of VVStopwatch; the stopwatch is started on creation. -+ (id) create; - -/// Starts the stopwatch over again -- (void) start; -/// Returns a float representing the time (in seconds) since the stopwatch was started -- (double) timeSinceStart; -/// Sets the stopwatch's starting time as an offset to the current time -- (void) startInTimeInterval:(NSTimeInterval)t; -/// Populates the passed timeval struct with the current timeval -- (void) copyStartTimeToTimevalStruct:(struct timeval *)dst; -/// Populates the starting time with the passed timeval struct -- (void) setStartTimeStruct:(struct timeval *)src; - -@end - -void populateTimevalWithFloat(struct timeval *tval, double secVal); diff --git a/atemOSC.app/Contents/Frameworks/VVBasics.framework/Versions/Current/Headers/VVThreadLoop.h b/atemOSC.app/Contents/Frameworks/VVBasics.framework/Versions/Current/Headers/VVThreadLoop.h deleted file mode 100644 index 0a6342f..0000000 --- a/atemOSC.app/Contents/Frameworks/VVBasics.framework/Versions/Current/Headers/VVThreadLoop.h +++ /dev/null @@ -1,63 +0,0 @@ - -#if IPHONE -#import -#else -#import -#endif -#include -#import -#include - - - - -/// Simple class for spawning a thread which executes at a specified interval- simpler and easier to work with than NSThread/NSTimer in multi-threaded programming environments. -/*! -When started, an instance of this class will spawn a thread and repeatedly execute a method on that thread. If it was passed a target and selector on creation, the selector will be called on the target every time the thread executes. If it's more convenient to subclass VVThreadLoop and work with your custom subclass, leave the target/selector nil and VVThreadLoop will call "threadProc" on itself- just override this method (it's empty anyway) in your subclass and do whatever you want in there. - -You can change the execution interval, and VVThreadLoop also examines how long it takes to execute your code and adjusts in an attempt to ensure that the interval is accurate (sleep-time is interval-duration minus proc-execution-duration) -*/ - - - - -@interface VVThreadLoop : NSObject { - double interval; - double maxInterval; - BOOL running; - BOOL bail; - BOOL paused; - BOOL executingCallback; - - OSSpinLock valLock; // ONLY used for quickly accessing 'running', 'bail', 'paused', and 'executingCallback' in a threadsafe fashion - - id targetObj; //! - Everyone is permitted to copy and distribute verbatim copies - of this license document, but changing it is not allowed. - - - This version of the GNU Lesser General Public License incorporates -the terms and conditions of version 3 of the GNU General Public -License, supplemented by the additional permissions listed below. - - 0. Additional Definitions. - - As used herein, "this License" refers to version 3 of the GNU Lesser -General Public License, and the "GNU GPL" refers to version 3 of the GNU -General Public License. - - "The Library" refers to a covered work governed by this License, -other than an Application or a Combined Work as defined below. - - An "Application" is any work that makes use of an interface provided -by the Library, but which is not otherwise based on the Library. -Defining a subclass of a class defined by the Library is deemed a mode -of using an interface provided by the Library. - - A "Combined Work" is a work produced by combining or linking an -Application with the Library. The particular version of the Library -with which the Combined Work was made is also called the "Linked -Version". - - The "Minimal Corresponding Source" for a Combined Work means the -Corresponding Source for the Combined Work, excluding any source code -for portions of the Combined Work that, considered in isolation, are -based on the Application, and not on the Linked Version. - - The "Corresponding Application Code" for a Combined Work means the -object code and/or source code for the Application, including any data -and utility programs needed for reproducing the Combined Work from the -Application, but excluding the System Libraries of the Combined Work. - - 1. Exception to Section 3 of the GNU GPL. - - You may convey a covered work under sections 3 and 4 of this License -without being bound by section 3 of the GNU GPL. - - 2. Conveying Modified Versions. - - If you modify a copy of the Library, and, in your modifications, a -facility refers to a function or data to be supplied by an Application -that uses the facility (other than as an argument passed when the -facility is invoked), then you may convey a copy of the modified -version: - - a) under this License, provided that you make a good faith effort to - ensure that, in the event an Application does not supply the - function or data, the facility still operates, and performs - whatever part of its purpose remains meaningful, or - - b) under the GNU GPL, with none of the additional permissions of - this License applicable to that copy. - - 3. Object Code Incorporating Material from Library Header Files. - - The object code form of an Application may incorporate material from -a header file that is part of the Library. You may convey such object -code under terms of your choice, provided that, if the incorporated -material is not limited to numerical parameters, data structure -layouts and accessors, or small macros, inline functions and templates -(ten or fewer lines in length), you do both of the following: - - a) Give prominent notice with each copy of the object code that the - Library is used in it and that the Library and its use are - covered by this License. - - b) Accompany the object code with a copy of the GNU GPL and this license - document. - - 4. Combined Works. - - You may convey a Combined Work under terms of your choice that, -taken together, effectively do not restrict modification of the -portions of the Library contained in the Combined Work and reverse -engineering for debugging such modifications, if you also do each of -the following: - - a) Give prominent notice with each copy of the Combined Work that - the Library is used in it and that the Library and its use are - covered by this License. - - b) Accompany the Combined Work with a copy of the GNU GPL and this license - document. - - c) For a Combined Work that displays copyright notices during - execution, include the copyright notice for the Library among - these notices, as well as a reference directing the user to the - copies of the GNU GPL and this license document. - - d) Do one of the following: - - 0) Convey the Minimal Corresponding Source under the terms of this - License, and the Corresponding Application Code in a form - suitable for, and under terms that permit, the user to - recombine or relink the Application with a modified version of - the Linked Version to produce a modified Combined Work, in the - manner specified by section 6 of the GNU GPL for conveying - Corresponding Source. - - 1) Use a suitable shared library mechanism for linking with the - Library. A suitable mechanism is one that (a) uses at run time - a copy of the Library already present on the user's computer - system, and (b) will operate properly with a modified version - of the Library that is interface-compatible with the Linked - Version. - - e) Provide Installation Information, but only if you would otherwise - be required to provide such information under section 6 of the - GNU GPL, and only to the extent that such information is - necessary to install and execute a modified version of the - Combined Work produced by recombining or relinking the - Application with a modified version of the Linked Version. (If - you use option 4d0, the Installation Information must accompany - the Minimal Corresponding Source and Corresponding Application - Code. If you use option 4d1, you must provide the Installation - Information in the manner specified by section 6 of the GNU GPL - for conveying Corresponding Source.) - - 5. Combined Libraries. - - You may place library facilities that are a work based on the -Library side by side in a single library together with other library -facilities that are not Applications and are not covered by this -License, and convey such a combined library under terms of your -choice, if you do both of the following: - - a) Accompany the combined library with a copy of the same work based - on the Library, uncombined with any other library facilities, - conveyed under the terms of this License. - - b) Give prominent notice with the combined library that part of it - is a work based on the Library, and explaining where to find the - accompanying uncombined form of the same work. - - 6. Revised Versions of the GNU Lesser General Public License. - - The Free Software Foundation may publish revised and/or new versions -of the GNU Lesser General Public License from time to time. Such new -versions will be similar in spirit to the present version, but may -differ in detail to address new problems or concerns. - - Each version is given a distinguishing version number. If the -Library as you received it specifies that a certain numbered version -of the GNU Lesser General Public License "or any later version" -applies to it, you have the option of following the terms and -conditions either of that published version or of any later version -published by the Free Software Foundation. If the Library as you -received it does not specify a version number of the GNU Lesser -General Public License, you may choose any version of the GNU Lesser -General Public License ever published by the Free Software Foundation. - - If the Library as you received it specifies that a proxy can decide -whether future versions of the GNU Lesser General Public License shall -apply, that proxy's public statement of acceptance of any version is -permanent authorization for you to choose that version for the -Library. diff --git a/atemOSC.app/Contents/Frameworks/VVBasics.framework/Versions/Current/Resources/Info.plist b/atemOSC.app/Contents/Frameworks/VVBasics.framework/Versions/Current/Resources/Info.plist deleted file mode 100644 index 29822ba..0000000 --- a/atemOSC.app/Contents/Frameworks/VVBasics.framework/Versions/Current/Resources/Info.plist +++ /dev/null @@ -1,38 +0,0 @@ - - - - - BuildMachineOSBuild - 11E53 - CFBundleDevelopmentRegion - English - CFBundleExecutable - VVBasics - CFBundleGetInfoString - 156 - CFBundleIdentifier - com.vidvox.VVBasics - CFBundleInfoDictionaryVersion - 6.0 - CFBundlePackageType - FMWK - CFBundleSignature - ???? - CFBundleVersion - 156 - DTCompiler - com.apple.compilers.llvm.clang.1_0 - DTPlatformBuild - 4E2002 - DTPlatformVersion - GM - DTSDKBuild - 10K549 - DTSDKName - macosx10.6 - DTXcode - 0432 - DTXcodeBuild - 4E2002 - - diff --git a/atemOSC.app/Contents/Frameworks/VVBasics.framework/Versions/Current/Resources/VVCrashReporter.nib b/atemOSC.app/Contents/Frameworks/VVBasics.framework/Versions/Current/Resources/VVCrashReporter.nib deleted file mode 100644 index 4c7b505..0000000 Binary files a/atemOSC.app/Contents/Frameworks/VVBasics.framework/Versions/Current/Resources/VVCrashReporter.nib and /dev/null differ diff --git a/atemOSC.app/Contents/Frameworks/VVBasics.framework/Versions/Current/VVBasics b/atemOSC.app/Contents/Frameworks/VVBasics.framework/Versions/Current/VVBasics deleted file mode 100755 index 6de9533..0000000 Binary files a/atemOSC.app/Contents/Frameworks/VVBasics.framework/Versions/Current/VVBasics and /dev/null differ diff --git a/atemOSC.app/Contents/Frameworks/VVBasics.framework/headers/MutLockArray.h b/atemOSC.app/Contents/Frameworks/VVBasics.framework/headers/MutLockArray.h deleted file mode 100644 index deaf284..0000000 --- a/atemOSC.app/Contents/Frameworks/VVBasics.framework/headers/MutLockArray.h +++ /dev/null @@ -1,185 +0,0 @@ - -#if IPHONE -#import -#else -#import -#endif -#import - - - -/// Similar to NSMutableArray, but thread-safe. Internally, uses an NSMutableArray and a rwlock. -/* -This class exists because NSMutableArray is not thread-safe by default: if you call methods on it from two different threads at the same time, it will try to execute both, often crashing in the process. I found myself writing a lot of lock/array pairs, so simplified everything by combining them into a single class. MutLockArray has methods which allow you to work with a mutable array in a transparent and thread-safe manner- it will automatically establish the read-/write-locks necessary to perform the relevant task. By avoiding the "lock" methods, you can also work with the array without performing any locking- so you can get a read-/write-lock, perform a number of actions, and then unlock. - -It is important to remember, when working with it, that MutLockArray is NOT a subclass of NSMutableArray; rather, it is a subclass of NSObject with an instance of an NSMutableArray and a rwlock for working with it safely. This means that you can't pass an instance of MutLockArray to anything which is expecting to be passed an NSMutableArray- internally, apple's frameworks will probably be doing some dark voodoo bullshit which will result in a spectacular failure. If you want to work with an actual NSMutableArray, check out the "array", "createArrayCopy", and "lockCreateArrayCopy" methods below. - -...and remember- when looking for stuff in an NSMutableArray, the array will use the "isEqualTo:" comparator method, which is slower than comparing the address of two pointers. if you know the pointer address hasn't changed (if you're *not* working with NSStrings), use the "indexOfIdenticalPtr", "removeIdenticalPtr", etc. methods to work with the array. -*/ - -@interface MutLockArray : NSObject { - NSMutableArray *array; - pthread_rwlock_t arrayLock; -} - -/// Creates and returns an auto-released MutLockArray with a given capacity. The capacity may be 0. -+ (id) arrayWithCapacity:(NSUInteger)c; -/// Inits and returns a MutLockArray with a given capacity; the capacity may be 0. -- (id) initWithCapacity:(NSUInteger)c; -- (id) init; - -/// Establishes a read-lock for the array; multiple read locks may exist simultaneously (if it's not changing, anything can look at the contents of the array). This method does not return until it has been able to get the lock. -- (void) rdlock; -- (BOOL) tryRdLock; // returns YES if i got a read-lock successfully! -/// Establishes a write-lock for the array. Only one write-lock may exist at any given time, and all read-locks must be relinquished before the write-lock may be established (if you're going to change the array, nothing else can be changing or observing it). -- (void) wrlock; -/// Unlocks the array. -- (void) unlock; - -/// Returns the NSMutableArray with everything in it. This returns the actual array, so be careful- it's possible to do something which ISN'T threadsafe with this... -- (NSMutableArray *) array; -/// Returns an NSMutableArray which was created by calling "mutableCopy" on my array. Again, it's possible to do something which ISN'T threadsafe by calling this... -- (NSMutableArray *) createArrayCopy; -/// Returns an NSMutableArray which was created while a read-lock was established; this is threadsafe. -- (NSMutableArray *) lockCreateArrayCopy; - -/// Calls "addObject" on my array; not threadsafe. -- (void) addObject:(id)o; -/// Establishes a write-lock, then calls "addObject" on self; threadsafe. -- (void) lockAddObject:(id)o; -/// Calls "addObjectsFromArray" on my array; not threadsafe. -- (void) addObjectsFromArray:(id)a; -/// Establishes a write-lock, then calls "addObjectsFromArray" on self; threadsafe. -- (void) lockAddObjectsFromArray:(id)a; -/// Calls "addObjectsFromArray" on my array; not threadsafe. -- (void) replaceWithObjectsFromArray:(id)a; -/// Establishes a write-lock, then calls "replaceWithObjectsFromArray" on self; threadsafe. -- (void) lockReplaceWithObjectsFromArray:(id)a; -/// Calls "insertObject:atIndex:" on my array; not threadsafe. -- (void) insertObject:(id)o atIndex:(NSUInteger)i; -/// Establishes a write-lock, then calls "insertObject:atIndex:" on self; threadsafe. -- (void) lockInsertObject:(id)o atIndex:(NSUInteger)i; -/// Calls "removeAllObjects" on my array; not threadsafe. -- (void) removeAllObjects; -/// Establishes a write-lock, then calls "removeAllObjects" on self; threadsafe. -- (void) lockRemoveAllObjects; -/// Calls "objectAtIndex:0" on my array; not threadsafe. -- (id) firstObject; -/// Establishes a read-lock, then calls "firstObject" on self; threadsafe -- (id) lockFirstObject; -/// Calls "removeObjectAtIndex:0" on my array; not threadsafe -- (void) removeFirstObject; -/// Establishes a write-lock, then calls "removeFirstObject" on self; threadsafe. -- (void) lockRemoveFirstObject; -/// Calls "lastObject" on my array; not threadsafe. -- (id) lastObject; -/// Establishes a read-lock, then calls "lastObject" on self; threadsafe. -- (id) lockLastObject; -/// Calls "removeLastObject" on my array; not threadsafe. -- (void) removeLastObject; -/// Establishes a write-lock, then calls "removeLastObject" on self; threadsafe. -- (void) lockRemoveLastObject; -/// Calls "removeObject:" on my array; not threadsafe. -- (void) removeObject:(id)o; -/// Establishes a write-lock, then calls "removeObject:" on self; threadsafe. -- (void) lockRemoveObject:(id)o; -/// Calls "removeObjectAtIndex:" on my array; not threadsafe. -- (void) removeObjectAtIndex:(NSUInteger)i; -/// Establishes a write-lock, then calls "removeObjectAtIndex:" on self; threadsafe. -- (void) lockRemoveObjectAtIndex:(NSUInteger)i; -/// Calls "removeObjectsAtIndexes:" on my array; not threadsafe. -- (void) removeObjectsAtIndexes:(NSIndexSet *)i; -/// Establishes a write-lock, then calls "removeObjectsAtIndexes:" on self; threadsafe. -- (void) lockRemoveObjectsAtIndexes:(NSIndexSet *)i; -/// Calls "removeObjectsInArray:" on my array; not threadsafe. -- (void) removeObjectsInArray:(NSArray *)otherArray; -/// Establishes a write-lock, then calls "removeObjectsInArray:" on self; threadsafe. -- (void) lockRemoveObjectsInArray:(NSArray *)otherArray; -/// Calls "removeIdenticalPtrsInArray:" on my array; not threadsafe -- (void) removeIdenticalPtrsInArray:(NSArray *)a; -/// Establishes a write-lock, then calls "removeIdenticalPtrsInArray:" on self; threadsafe. -- (void) lockRemoveIdenticalPtrsInArray:(NSArray *)a; - -/// Calls "replaceObjectsAtIndexes:withObjects" on my array; not threadsafe. -- (void) replaceObjectsAtIndexes:(NSIndexSet *)indexes withObjects:(NSArray *)objects; -// Establishes a write-lock, then calls "replaceObjectsAtIndexes:withObjects on self; threadsafe -- (void) lockReplaceObjectsAtIndexes:(NSIndexSet *)indexes withObjects:(NSArray *)objects; - -/// Calls "valueForKey:" on my array; not threadsafe. -- (id) valueForKey:(NSString *)key; -/// Establishes a read-lock, then calls "valueForKey:" on self; threadsafe. -- (id) lockValueForKey:(NSString *)key; - - -/// Calls "containsObject:" on my array; not threadsafe. -- (BOOL) containsObject:(id)o; -/// Establishes a read-lock, then calls "containsObject:" on self; threadsafe. -- (BOOL) lockContainsObject:(id)o; -/// Calls "objectAtIndex:" on my array; not threadsafe. -- (id) objectAtIndex:(NSUInteger)i; -/// Establishes a read-lock, then calls "objectAtIndex:" on self; threadsafe. -- (id) lockObjectAtIndex:(NSUInteger)i; -/// Calls "objectsAtIndexes:" on my array; not threadsafe. -- (NSArray *) objectsAtIndexes:(NSIndexSet *)indexes; -/// Establishes a read-lock, then calls "objectsAtIndexes:" on self; threadsafe. -- (NSArray *) lockObjectsAtIndexes:(NSIndexSet *)indexes; -/// Calls "indexOfObject:" on my array; not threadsafe. -- (NSUInteger) indexOfObject:(id)o; -/// Establishes a read-lock, then calls "indexOfObject:" on self; threadsafe. -- (NSUInteger) lockIndexOfObject:(id)o; - - -/// Enumerates through my array- compares the address of each item in the array to the passed pointer. Unlike NSMutableArray, this method does NOT call isEqualTo:, it's just a simple == operator. -- (BOOL) containsIdenticalPtr:(id)o; -/// Establishes a read-lock, then calls "containsIdenticalPtr:" on self; threadsafe. -- (BOOL) lockContainsIdenticalPtr:(id)o; -/// Enumerates through my array- compares the address of each item in the array to the passed pointer. Unlike NSMutableArray, this method does NOT call isEqualTo:, it's just a simple == operator. -- (long) indexOfIdenticalPtr:(id)o; -/// Establishes a read-lock, then calls "indexOfIdenticalPtr:" on self; threadsafe. -- (long) lockIndexOfIdenticalPtr:(id)o; -/// Locates an item in my array by enumerating through it and comparing the address of each item in the array to the passed ptr, and then deletes the matching item from the array; not threadsafe. -- (void) removeIdenticalPtr:(id)o; -/// Establishes a write-lock, then calls "removeIdenticalPtr:" on self; threadsafe. -- (void) lockRemoveIdenticalPtr:(id)o; - -// Calls "filteredArrayUsingPredicate:" on my array; not threadsafe -- (NSArray *)filteredArrayUsingPredicate:(NSPredicate *)predicate; -// Establishes a read-lock, then calls "filteredArrayUsingPredicate:" on self; threadsafe -- (NSArray *) lockFilteredArrayUsingPredicate:(NSPredicate *)predicate; - -/// Calls "makeObjectsPerformSelector:" on my array; not threadsafe. -- (void) makeObjectsPerformSelector:(SEL)s; -/// Establishes a read-lock, then calls "makeObjectsPerformSelector:" on self; threadsafe. -- (void) lockMakeObjectsPerformSelector:(SEL)s; -/// Calls "makeObjectsPerformSelector:withObject:" on my array; not threadsafe. -- (void) makeObjectsPerformSelector:(SEL)s withObject:(id)o; -/// Establishes a read-lock, then calls "makeObjectsPerformSelector:withObject:" on self; threadsafe. -- (void) lockMakeObjectsPerformSelector:(SEL)s withObject:(id)o; - - - -/* -- (void) makeCopyPerformSelector:(SEL)s; -- (void) lockMakeCopyPerformSelector:(SEL)s; -- (void) makeCopyPerformSelector:(SEL)s withObject:(id)o; -- (void) lockMakeCopyPerformSelector:(SEL)s withObject:(id)o; -*/ - - - -/// Calls "sortUsingSelector:" on my array; not threadsafe. -- (void) sortUsingSelector:(SEL)s; -/// Establishes a write-lock, then calls "sortUsingSelector:" on self; threadsafe. -- (void) lockSortUsingSelector:(SEL)s; - -/// Calls "sortUsingDescriptors:" on my array; not threadsafe. -- (void) sortUsingDescriptors:(NSArray *)descriptors; -/// Establishes a write-lock, then calls "sortUsingDescriptors:" on self; threadsafe. -- (void) lockSortUsingDescriptors:(NSArray *)descriptors; - -- (NSEnumerator *) objectEnumerator; -- (NSEnumerator *) reverseObjectEnumerator; -- (long) count; -- (long) lockCount; - -@end diff --git a/atemOSC.app/Contents/Frameworks/VVBasics.framework/headers/MutLockDict.h b/atemOSC.app/Contents/Frameworks/VVBasics.framework/headers/MutLockDict.h deleted file mode 100644 index e162293..0000000 --- a/atemOSC.app/Contents/Frameworks/VVBasics.framework/headers/MutLockDict.h +++ /dev/null @@ -1,56 +0,0 @@ - -#if IPHONE -#import -#else -#import -#endif -#import - - - -/// MutLockDict is a thread-safe version of NSMutableDictionary. -/*! -This class exists because NSMutableDictionary is not thread-safe by default: if you call methods on it from two different threads at the same time, it will try to execute both, often crashing in the process. This class has methods which allow you to work with a mutable dictionary in a transparent and thread-safe manner. -*/ - -@interface MutLockDict : NSObject { - NSMutableDictionary *dict; - pthread_rwlock_t dictLock; -} - -+ (id) dictionaryWithCapacity:(NSUInteger)c; -+ (id) dictionaryWithDict:(NSDictionary *)d; -- (id) initWithCapacity:(NSUInteger)c; - -- (void) rdlock; -- (void) wrlock; -- (void) unlock; - -- (NSMutableDictionary *) dict; -- (NSMutableDictionary *) createDictCopy; -- (NSMutableDictionary *) lockCreateDictCopy; - -- (void) setObject:(id)o forKey:(NSString *)s; -- (void) lockSetObject:(id)o forKey:(NSString *)s; -- (void) setValue:(id)v forKey:(NSString *)s; -- (void) lockSetValue:(id)v forKey:(NSString *)s; -- (void) removeAllObjects; -- (void) lockRemoveAllObjects; -- (id) objectForKey:(NSString *)k; -- (id) lockObjectForKey:(NSString *)k; -- (void) removeObjectForKey:(NSString *)k; -- (void) lockRemoveObjectForKey:(NSString *)k; -- (void) addEntriesFromDictionary:(NSDictionary *)otherDictionary; -- (void) lockAddEntriesFromDictionary:(NSDictionary *)otherDictionary; -- (NSArray *) allKeys; -- (NSArray *) lockAllKeys; -- (NSArray *) allValues; -- (NSArray *) lockAllValues; - -- (void) lockMakeObjectsPerformSelector:(SEL)s; -- (void) makeObjectsPerformSelector:(SEL)s; - -- (NSUInteger) count; -- (NSUInteger) lockCount; - -@end diff --git a/atemOSC.app/Contents/Frameworks/VVBasics.framework/headers/MutNRLockArray.h b/atemOSC.app/Contents/Frameworks/VVBasics.framework/headers/MutNRLockArray.h deleted file mode 100644 index 9ad1138..0000000 --- a/atemOSC.app/Contents/Frameworks/VVBasics.framework/headers/MutNRLockArray.h +++ /dev/null @@ -1,50 +0,0 @@ - -#if IPHONE -#import -#else -#import -#endif - -#import "MutLockArray.h" -#import "ObjectHolder.h" - - - -/// Subclass of MutLockArray; this class does NOT retain the objects in its array! -/* -this class exists because i frequently find myself in situations where i want to add an instance of an object to an array/dict/[any class which retains the passed instance], but i don't actually want the item to be retained. - -Instead of adding (and therefore retaining) objects to an array like my superclass, this class makes an ObjectHolder for objects which are added to it (so they don't get retained), and adds the ObjectHolder to me. when other classes ask me for the index of an object, or ask for the object at a particular index, i'll find the relevant ObjectHolder and then return the object it's storing. -*/ - -@interface MutNRLockArray : MutLockArray { - -} - -+ (id) arrayWithCapacity:(NSUInteger)c; - -- (NSMutableArray *) createArrayCopy; -- (NSMutableArray *) lockCreateArrayCopyFromObjects; -- (NSMutableArray *) createArrayCopyFromObjects; -- (void) addObject:(id)o; -- (void) addObjectsFromArray:(id)a; -- (void) replaceWithObjectsFromArray:(id)a; -- (void) insertObject:(id)o atIndex:(NSUInteger)i; -- (id) lastObject; -- (void) removeObject:(id)o; -- (BOOL) containsObject:(id)o; -- (id) objectAtIndex:(NSUInteger)i; -- (NSArray *) objectsAtIndexes:(NSIndexSet *)indexes; -- (NSUInteger) indexOfObject:(id)o; -- (BOOL) containsIdenticalPtr:(id)o; -- (long) indexOfIdenticalPtr:(id)o; -- (void) removeIdenticalPtr:(id)o; - -// these methods exist because the lookup cost for an ObjectHolder can be significant for high-performance applications- these methods get the object from the ObjectHolder and call the method directly on it! -- (void) bruteForceMakeObjectsPerformSelector:(SEL)s; -- (void) lockBruteForceMakeObjectsPerformSelector:(SEL)s; -- (void) bruteForceMakeObjectsPerformSelector:(SEL)s withObject:(id)o; -- (void) lockBruteForceMakeObjectsPerformSelector:(SEL)s withObject:(id)o; - - -@end diff --git a/atemOSC.app/Contents/Frameworks/VVBasics.framework/headers/MutNRLockDict.h b/atemOSC.app/Contents/Frameworks/VVBasics.framework/headers/MutNRLockDict.h deleted file mode 100644 index f4f757f..0000000 --- a/atemOSC.app/Contents/Frameworks/VVBasics.framework/headers/MutNRLockDict.h +++ /dev/null @@ -1,39 +0,0 @@ -// -// MutNRLockDict.h -// VVOpenSource -// -// Created by David Lublin on 12/22/09. -// Copyright 2009 Vidvox. All rights reserved. -// - -#if IPHONE -#import -#else -#import -#endif - -#import "MutLockDict.h" -#import "ObjectHolder.h" - - - -/// Subclass of MutLockDict; this class does NOT retain the objects in its array! -/* -this class exists because i frequently find myself in situations where i want to add an instance of an object to an array/dict/[any class which retains the passed instance], but i don't actually want the item to be retained. - -Instead of adding (and therefore retaining) objects to an array like my superclass, this class makes an ObjectHolder for objects which are added to it (so they don't get retained), and adds the ObjectHolder to me. when other classes ask me for the index of an object, or ask for the object at a particular index, i'll find the relevant ObjectHolder and then return the object it's storing. -*/ - - -@interface MutNRLockDict : MutLockDict { - -} - - -- (void) setObject:(id)o forKey:(NSString *)s; -- (void) setValue:(id)v forKey:(NSString *)s; -- (id) objectForKey:(NSString *)k; -- (void) addEntriesFromDictionary:(id)otherDictionary; -- (NSArray *) allValues; - -@end diff --git a/atemOSC.app/Contents/Frameworks/VVBasics.framework/headers/NamedMutLockArray.h b/atemOSC.app/Contents/Frameworks/VVBasics.framework/headers/NamedMutLockArray.h deleted file mode 100644 index 54e75d0..0000000 --- a/atemOSC.app/Contents/Frameworks/VVBasics.framework/headers/NamedMutLockArray.h +++ /dev/null @@ -1,31 +0,0 @@ - -#if IPHONE -#import -#else -#import -#endif -#import "VVBasicMacros.h" -#import "MutLockArray.h" - - - - -/* - // only difference between this and MutLockArray is the "name" variable. -*/ - - - - -@interface NamedMutLockArray : MutLockArray { - NSString *name; -} - -+ (id) arrayWithCapacity:(int)c; -+ (id) create; - -- (NSComparisonResult) nameCompare:(NamedMutLockArray *)comp; - -@property (assign, readwrite) NSString *name; - -@end diff --git a/atemOSC.app/Contents/Frameworks/VVBasics.framework/headers/ObjectHolder.h b/atemOSC.app/Contents/Frameworks/VVBasics.framework/headers/ObjectHolder.h deleted file mode 100644 index 64c397f..0000000 --- a/atemOSC.app/Contents/Frameworks/VVBasics.framework/headers/ObjectHolder.h +++ /dev/null @@ -1,38 +0,0 @@ - -#if IPHONE -#import -#else -#import -#endif - - - - -/* - created for working with the MutNRLockArray class. - - basically, you create an instance of this class and give it a reference to an - instance of an object. the instance is NOT retained- but you're now free to - pass ObjectHolder to stuff which will otherwise retain/release it without - worrying about whether the passed instance is retained/released. - - if you call a method on an instance of ObjectHolder and the ObjectHolder - class doesn't respond to that method, the instance will try to call the - method on its object. this means that working with ObjectHolder should- - theoretically, at any rate- be transparent... -*/ - - - - -@interface ObjectHolder : NSObject { - BOOL deleted; - id object; -} - -+ (id) createWithObject:(id)o; -- (id) initWithObject:(id)o; - -@property (assign,readwrite) id object; - -@end diff --git a/atemOSC.app/Contents/Frameworks/VVBasics.framework/headers/VVAssertionHandler.h b/atemOSC.app/Contents/Frameworks/VVBasics.framework/headers/VVAssertionHandler.h deleted file mode 100644 index 47cdeef..0000000 --- a/atemOSC.app/Contents/Frameworks/VVBasics.framework/headers/VVAssertionHandler.h +++ /dev/null @@ -1,31 +0,0 @@ - -#if IPHONE -#import -#else -#import -#endif - - - - -#define USE_CUSTOM_ASSERTION_HANDLER \ -{ \ - NSThread *__currentThread = [NSThread currentThread]; \ - NSDictionary *__threadDict = (__currentThread==nil) ? nil : [__currentThread threadDictionary]; \ - if (__threadDict != nil) { \ - VVAssertionHandler *__newAH = [[VVAssertionHandler alloc] init]; \ - if (__newAH != nil) { \ - [__threadDict setValue:__newAH forKey:@"NSAssertionHandler"]; \ - [__newAH release]; \ - __newAH = nil; \ - } \ - } \ -} - - - -@interface VVAssertionHandler : NSAssertionHandler { - -} - -@end diff --git a/atemOSC.app/Contents/Frameworks/VVBasics.framework/headers/VVBasicMacros.h b/atemOSC.app/Contents/Frameworks/VVBasics.framework/headers/VVBasicMacros.h deleted file mode 100644 index 6eab4c6..0000000 --- a/atemOSC.app/Contents/Frameworks/VVBasics.framework/headers/VVBasicMacros.h +++ /dev/null @@ -1,229 +0,0 @@ - -// macros for checking to see if something is nil, and if it's not releasing and setting it to nil -#define VVRELEASE(item) {if (item != nil) { \ - [item release]; \ - item = nil; \ -}} -#define VVAUTORELEASE(item) {if (item != nil) { \ - [item autorelease]; \ - item = nil; \ -}} - - - -// macros for making a CGRect from an NSRect -#define NSMAKECGRECT(n) CGRectMake(n.origin.x, n.origin.y, n.size.width, n.size.height) -#define NSMAKECGPOINT(n) CGPointMake(n.x, n.y) -#define NSMAKECGSIZE(n) CGSizeMake(n.width, n.height) -// macros for making an NSRect from a CGRect -#define CGMAKENSRECT(n) NSMakeRect(n.origin.x, n.origin.y, n.size.width, n.size.height) -#define CGMAKENSSIZE(n) NSMakeSize(n.width,n.height) - -// macro for quickly printing out the dimensions of a rect (and a name/id so you can distinguish between them) -#define NSRectLog(n,r) NSLog(@"%@, (%f,%f) : %fx%f",n,r.origin.x,r.origin.y,r.size.width,r.size.height) -#define NSPointLog(n,r) NSLog(@"%@, (%f,%f)",n,r.x,r.y) -#define NSSizeLog(n,s) NSLog(@"%@, %fx%f",n,s.width,s.height) - -// macros for quickly making numbers and values -#define NUMINT(i) [NSNumber numberWithInt:i] -#define NUMFLOAT(f) [NSNumber numberWithFloat:f] -#define NUMBOOL(b) [NSNumber numberWithBool:b] -#define NUMDOUBLE(d) [NSNumber numberWithDouble:d] -#define VALSIZE(s) [NSValue valueWithSize:s] -#define VALRECT(r) [NSValue valueWithRect:r] - -// macro for quickly archiving and object -#define ARCHIVE(a) [NSKeyedArchiver archivedDataWithRootObject:a] -#define UNARCHIVE(a) [NSKeyedUnarchiver unarchiveObjectWithData:a] - -// macro for quickly making colors -#define VVDEVCOLOR(r,g,b,a) [NSColor colorWithDeviceRed:r green:g blue:b alpha:a] -#define VVCALCOLOR(r,g,b,a) [NSColor colorWithCalibratedRed:r green:g blue:b alpha:a] - -// nice little macro for strings -#define VVSTRING(n) ((NSString *)[NSString stringWithString:n]) -#define VVFMTSTRING(f, ...) ((NSString *)[NSString stringWithFormat:f, ##__VA_ARGS__]) -#define VVDATASTRING(n) ((NSData *)[[NSString stringWithString:n] dataUsingEncoding:NSUTF8StringEncoding]) -#define VVDATAFMTSTRING(f, ...) ((NSData *)[[NSString stringWithFormat:f, ##__VA_ARGS__] dataUsingEncoding:NSUTF8StringEncoding]) - -// macros for quickly making arrays because.....well, it's the wiimote, and i'm fucking tired of typing. so there. -#define OBJARRAY(f) [NSArray arrayWithObject:f] -#define OBJSARRAY(f, ...) [NSArray arrayWithObjects:f, ##__VA_ARGS__, nil] -#define MUTARRAY [NSMutableArray arrayWithCapacity:0] - -// macros for quickly making dicts -#define OBJDICT(o,k) [NSDictionary dictionaryWithObject:o forKey:k] -#define OBJSDICT(o, ...) [NSDictionary dictionaryWithObjectsAndKeys:o,#__VA_ARGS__, nil] -#define MUTDICT [NSMutableDictionary dictionaryWithCapacity:0] - -// calculating the distance between two NSPoints or similar structs -#define POINTDISTANCE(a,b) fabs(sqrtf((a.x-b.x)*(a.x-b.x) + (a.y-b.y)*(a.y-b.y))) - - -// this is a macro for drawing an NSRect in opengl -#define GLDRAWRECT(r) \ -{ \ - GLfloat vvMacroVertices[]={ \ - r.origin.x, r.origin.y, 0.0, \ - r.origin.x, r.origin.y+r.size.height, 0.0, \ - r.origin.x+r.size.width, r.origin.y+r.size.height, 0.0, \ - r.origin.x+r.size.width, r.origin.y, 0.0}; \ - glVertexPointer(3,GL_FLOAT,0,vvMacroVertices); \ - glDrawArrays(GL_QUADS,0,4); \ -} - - - -// this is a macro for stroking an NSRect in opengl -#define GLSTROKERECT(r) \ -{ \ - GLfloat vvMacroVertices[]={ \ - r.origin.x-0.5, r.origin.y-0.5, 0.0, \ - r.origin.x+r.size.width+0.5, r.origin.y-0.5, 0.0, \ - r.origin.x+r.size.width+0.5, r.origin.y-0.5, 0.0, \ - r.origin.x+r.size.width+0.5, r.origin.y+r.size.height-0.5, 0.0, \ - r.origin.x+r.size.width+0.5, r.origin.y+r.size.height-0.5, 0.0, \ - r.origin.x-0.5, r.origin.y+r.size.height-0.5, 0.0, \ - r.origin.x-0.5, r.origin.y+r.size.height-0.5, 0.0, \ - r.origin.x-0.5, r.origin.y-0.5, 0.0}; \ - glVertexPointer(3,GL_FLOAT,0,vvMacroVertices); \ - glDrawArrays(GL_LINES,0,8); \ -} -/* -#define GLSTROKERECT(r) \ -{ \ - GLfloat vvMacroVertices[]={ \ - r.origin.x, r.origin.y, 0.0, \ - r.origin.x+r.size.width, r.origin.y, 0.0, \ - r.origin.x+r.size.width, r.origin.y, 0.0, \ - r.origin.x+r.size.width, r.origin.y+r.size.height, 0.0, \ - r.origin.x+r.size.width, r.origin.y+r.size.height, 0.0, \ - r.origin.x, r.origin.y+r.size.height, 0.0, \ - r.origin.x, r.origin.y+r.size.height, 0.0, \ - r.origin.x, r.origin.y, 0.0}; \ - glVertexPointer(3,GL_FLOAT,0,vvMacroVertices); \ - glDrawArrays(GL_LINES,0,8); \ -} -*/ - - -// this is a macro for drawing a line connecting two points -#define GLDRAWLINE(p,q) \ -{ \ - GLfloat vvMacroVertices[]={ \ - p.x, p.y, 0.0, \ - q.x, q.y, 0.0}; \ - glVertexPointer(3,GL_FLOAT,0,vvMacroVertices); \ - glDrawArrays(GL_LINES,0,2); \ -} - - - -// this is a macro for drawing a diamond specified by a point and radius in opengl -#define GLDRAWDIAMOND(p,r) \ -{ \ - GLfloat vvMacroVertices[] = { \ - p.x-r, p.y, 0.0, \ - p.x, p.y+r, 0.0, \ - p.x+r, p.y, 0.0, \ - p.x, p.y-r, 0.0}; \ - glVertexPointer(3,GL_FLOAT,0,vvMacroVertices); \ - glDrawArrays(GL_QUADS,0,4); \ -} - - - -// this is a macro for stroking an diamond around a point in opengl -#define GLSTROKEDIAMOND(p,r) \ -{ \ - GLfloat vvMacroVertices[] = { \ - p.x-r, p.y, 0.0, \ - p.x, p.y+r, 0.0, \ - p.x, p.y+r, 0.0, \ - p.x+r, p.y, 0.0, \ - p.x+r, p.y, 0.0, \ - p.x, p.y-r, 0.0, \ - p.x, p.y-r, 0.0, \ - p.x-r, p.y, 0.0}; \ - glVertexPointer(3,GL_FLOAT,0,vvMacroVertices); \ - glDrawArrays(GL_LINE_LOOP,0,8); \ -} - - -// this is a macro for drawing a texture of a specified size in a rect -#define GLDRAWTEXSIZEDINRECT(t,s,r) \ -{ \ - GLfloat vvMacroVertices[]={ \ - r.origin.x, r.origin.y, 0.0, \ - r.origin.x+r.size.width, r.origin.y, 0.0, \ - r.origin.x+r.size.width, r.origin.y+r.size.height, 0.0, \ - r.origin.x, r.origin.y+r.size.height, 0.0}; \ - GLfloat vvMacroTexCoords[]={ \ - 0.0,s.height, \ - s.width,s.height, \ - s.width,0.0, \ - 0.0,0.0}; \ - glVertexPointer(3,GL_FLOAT,0,vvMacroVertices); \ - glTexCoordPointer(2,GL_FLOAT,0,vvMacroTexCoords); \ - glBindTexture(GL_TEXTURE_RECTANGLE_EXT,t); \ - glDrawArrays(GL_QUADS,0,4); \ - glBindTexture(GL_TEXTURE_RECTANGLE_EXT,0); \ -} - -#define GLDRAWFLIPPEDTEXSIZEDINRECT(t,s,r) \ -{ \ - GLfloat vvMacroVertices[]={ \ - r.origin.x, r.origin.y, 0.0, \ - r.origin.x+r.size.width, r.origin.y, 0.0, \ - r.origin.x+r.size.width, r.origin.y+r.size.height, 0.0, \ - r.origin.x, r.origin.y+r.size.height, 0.0}; \ - GLfloat vvMacroTexCoords[]={ \ - 0.0, 0.0, \ - s.width, 0.0, \ - s.width, s.height, \ - 0.0, s.height}; \ - glVertexPointer(3,GL_FLOAT,0,vvMacroVertices); \ - glTexCoordPointer(2,GL_FLOAT,0,vvMacroTexCoords); \ - glBindTexture(GL_TEXTURE_RECTANGLE_EXT,t); \ - glDrawArrays(GL_QUADS,0,4); \ - glBindTexture(GL_TEXTURE_RECTANGLE_EXT,0); \ -} - -#define GLDRAWTEXSIZEDINRECTATZ(t,s,r,z) \ -{ \ - GLfloat vvMacroVertices[]={ \ - r.origin.x, r.origin.y, z, \ - r.origin.x+r.size.width, r.origin.y, z, \ - r.origin.x+r.size.width, r.origin.y+r.size.height, z, \ - r.origin.x, r.origin.y+r.size.height, z}; \ - GLfloat vvMacroTexCoords[]={ \ - 0.0,s.height, \ - s.width,s.height, \ - s.width,0.0, \ - 0.0,0.0}; \ - glVertexPointer(3,GL_FLOAT,0,vvMacroVertices); \ - glTexCoordPointer(2,GL_FLOAT,0,vvMacroTexCoords); \ - glBindTexture(GL_TEXTURE_RECTANGLE_EXT,t); \ - glDrawArrays(GL_QUADS,0,4); \ - glBindTexture(GL_TEXTURE_RECTANGLE_EXT,0); \ -} - -#define GLDRAWFLIPPEDTEXSIZEDINRECTATZ(t,s,r,z) \ -{ \ - GLfloat vvMacroVertices[]={ \ - r.origin.x, r.origin.y, z, \ - r.origin.x+r.size.width, r.origin.y, z, \ - r.origin.x+r.size.width, r.origin.y+r.size.height, z, \ - r.origin.x, r.origin.y+r.size.height, z}; \ - GLfloat vvMacroTexCoords[]={ \ - 0.0, 0.0, \ - s.width, 0.0, \ - s.width, s.height, \ - 0.0, s.height}; \ - glVertexPointer(3,GL_FLOAT,0,vvMacroVertices); \ - glTexCoordPointer(2,GL_FLOAT,0,vvMacroTexCoords); \ - glBindTexture(GL_TEXTURE_RECTANGLE_EXT,t); \ - glDrawArrays(GL_QUADS,0,4); \ - glBindTexture(GL_TEXTURE_RECTANGLE_EXT,0); \ -} - diff --git a/atemOSC.app/Contents/Frameworks/VVBasics.framework/headers/VVBasics.h b/atemOSC.app/Contents/Frameworks/VVBasics.framework/headers/VVBasics.h deleted file mode 100644 index b36c65a..0000000 --- a/atemOSC.app/Contents/Frameworks/VVBasics.framework/headers/VVBasics.h +++ /dev/null @@ -1,55 +0,0 @@ - -#import "VVBasicMacros.h" - -#import "VVThreadLoop.h" -#import "VVAssertionHandler.h" -#import "VVStopwatch.h" -#import "ObjectHolder.h" -#import "MutLockArray.h" -#import "MutLockDict.h" -#import "MutNRLockArray.h" -#import "MutNRLockDict.h" -#import "NamedMutLockArray.h" - -#if !IPHONE - #import "VVCURLDL.h" - #import "VVSprite.h" - #import "VVSpriteManager.h" - #import "VVSpriteView.h" - #import "VVSpriteControl.h" - #import "VVSpriteControlCell.h" - #import "VVSpriteGLView.h" - #import "VVCrashReporter.h" - //#import "NSHostAdditions.h" -#endif - -/* - the following stuff is for doxygen -*/ - -/*! -\mainpage - -\htmlonly - - - -Introduction -

-VVBasics is an Objective-c framework with a number of classes which perform functions that i need regularly- but, for whatever reason, aren't provided by the stock frameworks. Expect pretty much everything to link against this framework for one reason or another- macros, useful classes, etc- and expect this framework to continuously grow as I start to open-source more and more of my bag of tricks. -

- -\endhtmlonly -*/ diff --git a/atemOSC.app/Contents/Frameworks/VVBasics.framework/headers/VVCURLDL.h b/atemOSC.app/Contents/Frameworks/VVBasics.framework/headers/VVCURLDL.h deleted file mode 100644 index 39d4c9b..0000000 --- a/atemOSC.app/Contents/Frameworks/VVBasics.framework/headers/VVCURLDL.h +++ /dev/null @@ -1,72 +0,0 @@ - -/* - this class offers a very limited, very simple cocoa interface to libcurl for doing extremely - basic http transfer ops - - basically, this class exists because at this time NSURLConnection is problematic and - top-heavy, and i wanted an easy, effective, and reliable interface for handling the extremely - limited set of http data transfer operations required by my frameworks/apps. - - this class was meant to be used as a one-shot throwaway; that is, you're meant to create an - instance of this class which will be auto-released as soon as the autorelease pool is - popped. the instance you create is meant to be used once, and then thrown away- THIS WILL - PROBABLY BREAK IF YOU TRY TO USE THE SAME INSTANCE TO PERFORM MORE THAN ONE TRANSFER. -*/ - - -#import -#import - - - - -@protocol VVCURLDLDelegate -- (void) dlFinished:(id)h; -@end - - - - -@interface VVCURLDL : NSObject { - NSString *urlString; - CURL *curlHandle; - - NSMutableData *responseData; - - struct curl_slist *headerList; // nil by default- if non-nil, supplied to the handle as CURLOPT_HTTPHEADER - NSMutableData *postData; // if non-nil, simply posted as CURLOPT_POSTFIELDS - struct curl_httppost *firstFormPtr; // if postData was nil but this isn't, posted as CURLOPT_HTTPPOST - struct curl_httppost *lastFormPtr; - - BOOL returnOnMain; - BOOL performing; - CURLcode err; -} - -+ (id) createWithAddress:(NSString *)a; -- (id) initWithAddress:(NSString *)a; - -- (void) perform; -- (void) performAsync:(BOOL)as withDelegate:(id )d; -- (void) _performAsyncWithDelegate:(id )d; -- (void) _performWithDelegate:(id )d; - -//- (struct curl_slist *) headerList; -//- (struct curl_httppost *) firstFormPtr; -//- (struct curl_httppost *) lastFormPtr; -- (void) appendDataToPOST:(NSData *)d; -- (void) appendStringToPOST:(NSString *)s; - -- (void) writePtr:(void *)ptr size:(size_t)s; - -@property (assign,readwrite) struct curl_slist *headerList; -@property (assign,readwrite) struct curl_httppost *firstFormPtr; -@property (assign,readwrite) struct curl_httppost *lastFormPtr; -@property (assign,readwrite) BOOL returnOnMain; -@property (readonly) NSMutableData *responseData; -@property (readonly) NSString *responseString; -@property (readonly) CURLcode err; - -@end - -size_t vvcurlWriteFunction(void *ptr, size_t size, size_t nmemb, void *stream); diff --git a/atemOSC.app/Contents/Frameworks/VVBasics.framework/headers/VVCrashReporter.h b/atemOSC.app/Contents/Frameworks/VVBasics.framework/headers/VVCrashReporter.h deleted file mode 100644 index 0dc9c90..0000000 --- a/atemOSC.app/Contents/Frameworks/VVBasics.framework/headers/VVCrashReporter.h +++ /dev/null @@ -1,101 +0,0 @@ - -#import -#import -#include "AvailabilityMacros.h" -#import -#import -#import "VVCURLDL.h" -#import "MutLockArray.h" - - - - -/// The crash reporter's delegate must adhere to this protocol -/*! - This protocol exists largely because it's conceivable that objects will want to know when the crash reporter- which uploads asynchronously- has finished sending its data to the remote server. -*/ -@protocol OldVVCrashReporterDelegate -- (void) crashReporterCheckDone; -@end - -@protocol VVCrashReporterDelegate -- (void) crashReporterCheckDone:(BOOL)foundLogs; // "new"- 'f' designates whether crash reports were found or not -@end - - - -/// Simple class which automatically uploads crash logs and other relevant diagnostic information automatically made available by os x to a remote server. -/*! -it's been my experience that most apps crash much more frequently on end-users than the app's developers would guess. the simplest and easiest way to improve the end-user's experience is to have the application check their machine for crash logs- which are generated automatically by os x whenever an application crashes- and send them to the developer. - -this class exists so i have a really easy way to make my apps send their crash logs to me; the goal here is to make it as easy as possible to get all the information i need to troubleshoot a problem with as little work on the user's part as possible. it also sends a basic system profile, anything the app- and ONLY the app, not other apps- recently printed to the console log, and optional description/email fields to facilitate communication directly with the user. this data is then uploaded to a given URL using an HTTP POST. - -on the server side, i use a PHP page which sanitizes the POST data (i can't stress how important this step is) and works with it. i've included a sample PHP page that simply dumps the received data to a file on disk (and optionally emails someone) with this project. - -HOW TO USE THIS CLASS: - - 1)- create an instance of this class - - 2)- set the instance's delegate, uploadURL, and developerEmail. these are necessary! - - 3)- call "check" on the instance. when it's done, it calls "crashReporterCheckDone" on the - delegate. that's it- you're done. -*/ - -@interface VVCrashReporter : NSObject { - NSString *uploadURL; // does NOT includes http:// - NSString *developerEmail; - id delegate; // must respond to VVCrashReporterDelegate protocol - MutLockArray *crashLogArray; - NSMutableDictionary *systemProfilerDict; - NSString *consoleLog; - int jobSize; // used to update progress indicator/label - int jobCurrentIndex; // used to update progress indicator/label - int currentCrashLogTimeout; // countdown for timeout of sending/receiving data for a specific crash log - NSTimer *currentCrashLogTimer; - - IBOutlet NSWindow *window; - IBOutlet NSButton *replyButton; - IBOutlet NSView *emailFieldHolder; - IBOutlet NSTextField *emailField; - IBOutlet NSTextView *descriptionField; - IBOutlet NSTextField *submittingLabel; // non-editable. 'submitting', 'getting machine profile', etc. - IBOutlet NSProgressIndicator *progressIndicator; // indicates progress through all crash logs to be submitted - IBOutlet NSTextField *countdownLabel; // non-editable; countdown so user knows app hasn't hung - - NSNib *theNib; - NSArray *nibTopLevelObjects; -} - -+ (NSString *) _stringForSystemProfilerDataType:(NSString *)t; - -/// This is the main method- when you call 'check', the crash reporter looks for crash logs, gets a basic system profile, and collects anything your applications has dumped to the console log. -- (void) check; -- (void) openCrashReporter; -- (IBAction) replyButtonClicked:(id)sender; -- (IBAction) doneClicked:(id)sender; -- (void) sendACrashLog; -- (void) closeCrashReporter; - -- (NSString *) _nibName; -- (BOOL) _assembleCrashLogs; // assembles the array of crash logs, returns a YES if logs were found and have to be sent in -- (NSString *) _consoleLogString; -- (NSMutableDictionary *) _systemProfilerDict; - -- (void) updateCrashLogTimeout:(NSTimer *)t; - -// VVCURLDLDelegate method- this class will be the delegate of multiple VVCURLDL instances -- (void) dlFinished:(id)h; - -/// Sets the developer email address; this is displayed if the user has a problem connecting to the internet/the server the crash reporter is supposed to be connecting to -- (void) setDeveloperEmail:(NSString *)n; -- (NSString *) developerEmail; -/// This is the URL of the php/cgi/etc. page which the crash data will be POSTed to -- (void) setUploadURL:(NSString *)n; -- (NSString *) uploadURL; - -/// The crash reporter's delegate is notified when the check has completed -@property (assign,readwrite) id delegate; -@property (readonly) NSButton *replyButton; - -@end diff --git a/atemOSC.app/Contents/Frameworks/VVBasics.framework/headers/VVCrashReporterDescriptionField.h b/atemOSC.app/Contents/Frameworks/VVBasics.framework/headers/VVCrashReporterDescriptionField.h deleted file mode 100644 index f39f0f5..0000000 --- a/atemOSC.app/Contents/Frameworks/VVBasics.framework/headers/VVCrashReporterDescriptionField.h +++ /dev/null @@ -1,15 +0,0 @@ -#import - - -/* - this class exists solely to prevent users from pasting or dragging huge amounts of text (like - crash/console logs!) into the description field of the crash reporter. sounds weird, but trust - me- it's necessary. -*/ - - -@interface VVCrashReporterDescriptionField : NSTextView { - -} - -@end diff --git a/atemOSC.app/Contents/Frameworks/VVBasics.framework/headers/VVCrashReporterEmailField.h b/atemOSC.app/Contents/Frameworks/VVBasics.framework/headers/VVCrashReporterEmailField.h deleted file mode 100644 index fb883f8..0000000 --- a/atemOSC.app/Contents/Frameworks/VVBasics.framework/headers/VVCrashReporterEmailField.h +++ /dev/null @@ -1,14 +0,0 @@ -#import -#import - - -/* - this class exists solely to prevent users from pasting huge amounts of text into the email field -*/ - - -@interface VVCrashReporterEmailField : NSTextField { - -} - -@end diff --git a/atemOSC.app/Contents/Frameworks/VVBasics.framework/headers/VVSprite.h b/atemOSC.app/Contents/Frameworks/VVBasics.framework/headers/VVSprite.h deleted file mode 100644 index 34246be..0000000 --- a/atemOSC.app/Contents/Frameworks/VVBasics.framework/headers/VVSprite.h +++ /dev/null @@ -1,104 +0,0 @@ - -/* Always with the sprites... - - sprite |sprÄ«t| - noun - 1 an elf or fairy. - 2 a computer graphic that may be moved on-screen and otherwise manipulated as a single entity. - 3 a faint flash, typically red, sometimes emitted in the upper atmosphere over a thunderstorm owing to the collision of high-energy electrons with air molecules. - ORIGIN Middle English : alteration of sprit, a contraction of spirit . */ - -#import -#include - - - - -typedef enum _VVSpriteEventType { - VVSpriteEventNULL = 0, - VVSpriteEventDown = 1, - VVSpriteEventDrag = 2, - VVSpriteEventUp = 3, - VVSpriteEventDouble = 4, - VVSpriteEventRightDown = 5, - VVSpriteEventRightUp = 6 -} VVSpriteEventType; - - - - -@interface VVSprite : NSObject { - BOOL deleted; - BOOL locked; // whether or not i should respond to mouse input. DOESN'T AFFECT ANYTHING IN THIS CLASS! variable exists for the user's convenience, and is otherwise superfluous! - BOOL hidden; // whether or not the sprite should draw. DOESN'T AFFECT ANYTHING IN THIS CLASS! variable exists for the user's convenience, and is otherwise superfluous! - BOOL dropFromMultiSpriteActions; // only valid if sprite manager's allowMultiSpriteInteraction' is YES. NO by default. if YES, then if you mousedown on this and any other sprite, this sprite gets dropped from the mousedown. used for allowing multi-sprite interaction to prevent clicks from hitting "background" sprites (which have this set to YES) - long spriteIndex; - id manager; // the VVSpriteManager i exist within- NOT retained! - id delegate; // NOT retained! - SEL drawCallback; // delegate method; passed a ptr to this sprite! - SEL actionCallback; // delegate method; passed a ptr to this sprite! - - NSRect rect; // the sprite i'm tracking - NSBezierPath *bezierPath; // retained. nil by default, set to nil if you call setRect: on this instance. if non-nil, this path is used instead of "rect" for determining mouse action and drawing intersection! - OSSpinLock pathLock; - - int lastActionType; // updated whenever an action is received - NSPoint lastActionCoords; // coords at which last action took place - BOOL lastActionInBounds; // whether or not the last action was within my bounds - BOOL trackingFlag; // whether or not i'm tracking stuff - NSPoint mouseDownCoords; // absolute coords of mousedown - NSPoint lastActionDelta; // change between most-recently-received action coords and last received coords - NSPoint mouseDownDelta; // change between mousedown loc and most-recently received coords - long mouseDownModifierFlags; - - id userInfo; // RETAINED! for storing a random thing... - id NRUserInfo; // NOT RETAINED! for storing something that *shouldn't* be retained... - id safeString; // nil on init- many sprites need formatted text, this is a convenience variable... -} - -+ (id) createWithRect:(NSRect)r inManager:(id)m; -- (id) initWithRect:(NSRect)r inManager:(id)m; - -- (void) prepareToBeDeleted; - -- (BOOL) checkPoint:(NSPoint)p; -- (BOOL) checkRect:(NSRect)r; - -- (void) receivedEvent:(VVSpriteEventType)e atPoint:(NSPoint)p withModifierFlag:(long)m; -- (void) mouseDown:(NSPoint)p modifierFlag:(long)m; -- (void) rightMouseDown:(NSPoint)p modifierFlag:(long)m; -- (void) rightMouseUp:(NSPoint)p; -- (void) mouseDragged:(NSPoint)p; -- (void) mouseUp:(NSPoint)p; -- (void) draw; - -- (void) bringToFront; -- (void) sendToBack; - -@property (assign, readwrite) BOOL locked; -@property (assign, readwrite) BOOL hidden; -@property (assign, readwrite) BOOL dropFromMultiSpriteActions; -@property (readonly) long spriteIndex; -@property (readonly) id manager; -@property (assign, readwrite) id delegate; -@property (assign, readwrite) SEL drawCallback; -@property (assign, readwrite) SEL actionCallback; - -@property (assign, readwrite) NSRect rect; -//@property (retain,readwrite) NSBezierPath *path; -- (void) setBezierPath:(NSBezierPath *)n; -- (NSBezierPath *) safelyGetBezierPath; -- (NSRect) spriteBounds; // special method- either returns "rect" or (if path is non-nil) the bounds of the bezier path! -@property (readonly) VVSpriteEventType lastActionType; -@property (readonly) NSPoint lastActionCoords; -@property (readonly) BOOL lastActionInBounds; -@property (readonly) BOOL trackingFlag; -@property (readonly) NSPoint mouseDownCoords; -@property (readonly) NSPoint lastActionDelta; -@property (readonly) NSPoint mouseDownDelta; -@property (readonly) long mouseDownModifierFlags; -@property (assign,readwrite) id userInfo; -@property (assign,readwrite) id NRUserInfo; -@property (assign,readwrite) id safeString; - -@end diff --git a/atemOSC.app/Contents/Frameworks/VVBasics.framework/headers/VVSpriteControl.h b/atemOSC.app/Contents/Frameworks/VVBasics.framework/headers/VVSpriteControl.h deleted file mode 100644 index 2ed78b7..0000000 --- a/atemOSC.app/Contents/Frameworks/VVBasics.framework/headers/VVSpriteControl.h +++ /dev/null @@ -1,49 +0,0 @@ - -#import -#import "VVSpriteManager.h" -#include - - - - -extern int _maxSpriteControlCount; -extern int _spriteControlCount; - - - - -@interface VVSpriteControl : NSControl { - BOOL deleted; - VVSpriteManager *spriteManager; - BOOL spritesNeedUpdate; - - OSSpinLock propertyLock; - NSEvent *lastMouseEvent; - NSColor *clearColor; - BOOL drawBorder; - NSColor *borderColor; - - long mouseDownModifierFlags; - BOOL mouseIsDown; - NSView *clickedSubview; // NOT RETAINED -} - -- (void) generalInit; - -- (void) prepareToBeDeleted; - -- (void) finishedDrawing; - -- (void) updateSprites; - -@property (readonly) BOOL deleted; -@property (readonly) VVSpriteManager *spriteManager; -@property (assign, readwrite) BOOL spritesNeedUpdate; -- (void) setSpritesNeedUpdate; -@property (readonly) NSEvent *lastMouseEvent; -@property (retain,readwrite) NSColor *clearColor; -@property (assign,readwrite) BOOL drawBorder; -@property (retain,readwrite) NSColor *borderColor; -@property (readonly) BOOL mouseIsDown; - -@end diff --git a/atemOSC.app/Contents/Frameworks/VVBasics.framework/headers/VVSpriteControlCell.h b/atemOSC.app/Contents/Frameworks/VVBasics.framework/headers/VVSpriteControlCell.h deleted file mode 100644 index fc8e151..0000000 --- a/atemOSC.app/Contents/Frameworks/VVBasics.framework/headers/VVSpriteControlCell.h +++ /dev/null @@ -1,11 +0,0 @@ - -#import - - - - -@interface VVSpriteControlCell : NSActionCell { - -} - -@end diff --git a/atemOSC.app/Contents/Frameworks/VVBasics.framework/headers/VVSpriteGLView.h b/atemOSC.app/Contents/Frameworks/VVBasics.framework/headers/VVSpriteGLView.h deleted file mode 100644 index a47b6a2..0000000 --- a/atemOSC.app/Contents/Frameworks/VVBasics.framework/headers/VVSpriteGLView.h +++ /dev/null @@ -1,82 +0,0 @@ - -#import -#import "VVSpriteManager.h" -#import -#import -#import - - - - -typedef enum { - VVFenceModeEveryRefresh = 0, // every time a display callback runs, drawing commands are sent to the GPU. - VVFenceModeDBSkip = 1, // the apple gl fence extension is used to make sure that drawing commands for the back buffer have finished before more drawing commands are sent to the back buffer (the front buffer can receive commands, though) - VVFenceModeSBSkip = 2, // the apple gl fence extension is used to make sure that drawing commands for the single buffer have finished before more drawing commands are sent to it - VVFenceModeFinish = 3 // glFinish is used instead of glFlush -} VVFenceMode; - -typedef enum { - VVFlushModeGL = 0, // glFlush() - VVFlushModeCGL = 1, // CGLFlushDrawable() - VVFlushModeNS = 2, // [context flushBuffer] - VVFlushModeApple = 3, // glFlushRenderAPPLE() - VVFlushModeFinish = 4 // glFinish() -} VVFlushMode; - - - - -@interface VVSpriteGLView : NSOpenGLView { - BOOL deleted; - - BOOL initialized; - //BOOL needsReshape; - pthread_mutex_t glLock; - - VVSpriteManager *spriteManager; - BOOL spritesNeedUpdate; - NSEvent *lastMouseEvent; - GLfloat clearColor[4]; - BOOL drawBorder; - GLfloat borderColor[4]; - - long mouseDownModifierFlags; - BOOL mouseIsDown; - NSView *clickedSubview; // NOT RETAINED - - VVFlushMode flushMode; - - VVFenceMode fenceMode; - GLuint fenceA; - GLuint fenceB; - BOOL waitingForFenceA; - BOOL fenceADeployed; - BOOL fenceBDeployed; - OSSpinLock fenceLock; -} - -- (void) generalInit; -- (void) prepareToBeDeleted; - -- (void) initializeGL; -- (void) finishedDrawing; -//- (void) reshapeGL; -- (void) updateSprites; - -- (void) _lock; -- (void) _unlock; -//- (void) lockSetOpenGLContext:(NSOpenGLContext *)n; - -@property (readonly) BOOL deleted; -@property (assign,readwrite) BOOL initialized; -@property (assign, readwrite) BOOL spritesNeedUpdate; -- (void) setSpritesNeedUpdate; -@property (readonly) NSEvent *lastMouseEvent; -@property (retain,readwrite) NSColor *clearColor; -@property (assign,readwrite) BOOL drawBorder; -@property (retain,readwrite) NSColor *borderColor; -@property (readonly) VVSpriteManager *spriteManager; -@property (readonly) BOOL mouseIsDown; -@property (assign, readwrite) VVFlushMode flushMode; - -@end diff --git a/atemOSC.app/Contents/Frameworks/VVBasics.framework/headers/VVSpriteManager.h b/atemOSC.app/Contents/Frameworks/VVBasics.framework/headers/VVSpriteManager.h deleted file mode 100644 index b8f0dc4..0000000 --- a/atemOSC.app/Contents/Frameworks/VVBasics.framework/headers/VVSpriteManager.h +++ /dev/null @@ -1,57 +0,0 @@ - -#import -#import "VVSprite.h" -#import "MutLockArray.h" - - - - -@interface VVSpriteManager : NSObject { - BOOL deleted; - BOOL allowMultiSpriteInteraction; // NO by default- if YES, clicking/dragging/etc works with multiple sprites! - BOOL multiSpriteExecutesOnMultipleSprites; // only relevant if multi-sprite interaction is YES. this is NO by default- if it's YES all sprites in "spritesInUse" will receive an action callback when any of them get an action method. if this is NO then only the sprite that "caught" the interaction will receive an action callback! - MutLockArray *spriteArray; // searched from beginning to end, so order is like z-index! - VVSprite *spriteInUse; // array of VVSprite objects currently tracking drag info - MutLockArray *spritesInUse; // ONLY VALID IF MULTI SPRITE INTERACTION IS YES! array of VVSprite o - long spriteIndexCount; -} - -- (void) prepareToBeDeleted; - -// return YES if the mousedown occurred on one or more sprites -- (BOOL) receivedMouseDownEvent:(VVSpriteEventType)e atPoint:(NSPoint)p withModifierFlag:(long)m visibleOnly:(BOOL)v; -- (void) receivedOtherEvent:(VVSpriteEventType)e atPoint:(NSPoint)p withModifierFlag:(long)m; -- (BOOL) localMouseDown:(NSPoint)p modifierFlag:(long)m; -- (BOOL) localVisibleMouseDown:(NSPoint)p modifierFlag:(long)m; -- (BOOL) localRightMouseDown:(NSPoint)p modifierFlag:(long)m; -- (BOOL) localVisibleRightMouseDown:(NSPoint)p modifierFlag:(long)m; -- (void) localRightMouseUp:(NSPoint)p; -- (void) localMouseDragged:(NSPoint)p; -- (void) localMouseUp:(NSPoint)p; -- (void) terminatePresentMouseSession; // call this and sprites will stop responding to the mouse until it is clicked again - -- (id) newSpriteAtBottomForRect:(NSRect)r; -- (id) newSpriteAtTopForRect:(NSRect)r; -- (long) getUniqueSpriteIndex; - -- (VVSprite *) spriteAtPoint:(NSPoint)p; -- (VVSprite *) visibleSpriteAtPoint:(NSPoint)p; -- (VVSprite *) spriteForIndex:(long)i; -- (void) removeSpriteForIndex:(long)i; -- (void) removeSprite:(id)z; -- (void) removeSpritesFromArray:(NSArray *)array; -- (void) removeAllSprites; -//- (void) moveSpriteToFront:(VVSprite *)z; - -- (void) draw; -- (void) drawRect:(NSRect)r; - -- (VVSprite *) spriteInUse; -- (void) setSpriteInUse:(VVSprite *)z; - -@property (assign,readwrite) BOOL allowMultiSpriteInteraction; -@property (assign,readwrite) BOOL multiSpriteExecutesOnMultipleSprites; -@property (readonly) MutLockArray *spriteArray; -@property (readonly) MutLockArray *spritesInUse; - -@end diff --git a/atemOSC.app/Contents/Frameworks/VVBasics.framework/headers/VVSpriteView.h b/atemOSC.app/Contents/Frameworks/VVBasics.framework/headers/VVSpriteView.h deleted file mode 100644 index a8d17a0..0000000 --- a/atemOSC.app/Contents/Frameworks/VVBasics.framework/headers/VVSpriteView.h +++ /dev/null @@ -1,48 +0,0 @@ - -#import -#import "VVSpriteManager.h" -#include - - - - -extern int _spriteViewCount; - - - - -@interface VVSpriteView : NSView { - BOOL deleted; - VVSpriteManager *spriteManager; - BOOL spritesNeedUpdate; - - OSSpinLock propertyLock; - NSEvent *lastMouseEvent; - NSColor *clearColor; - BOOL drawBorder; - NSColor *borderColor; - - long mouseDownModifierFlags; - BOOL mouseIsDown; - NSView *clickedSubview; // NOT RETAINED -} - -- (void) generalInit; - -- (void) prepareToBeDeleted; - -- (void) finishedDrawing; - -- (void) updateSprites; - -@property (readonly) BOOL deleted; -@property (readonly) VVSpriteManager *spriteManager; -@property (assign, readwrite) BOOL spritesNeedUpdate; -- (void) setSpritesNeedUpdate; -@property (readonly) NSEvent *lastMouseEvent; -@property (retain,readwrite) NSColor *clearColor; -@property (assign,readwrite) BOOL drawBorder; -@property (retain,readwrite) NSColor *borderColor; -@property (readonly) BOOL mouseIsDown; - -@end diff --git a/atemOSC.app/Contents/Frameworks/VVBasics.framework/headers/VVStopwatch.h b/atemOSC.app/Contents/Frameworks/VVBasics.framework/headers/VVStopwatch.h deleted file mode 100644 index a1f9c35..0000000 --- a/atemOSC.app/Contents/Frameworks/VVBasics.framework/headers/VVStopwatch.h +++ /dev/null @@ -1,35 +0,0 @@ - -#if IPHONE -#import -#else -#import -#endif -#include -#import - - - -/// This class is used to measure how long it takes to do things; much easier to work with than NSDate. - -@interface VVStopwatch : NSObject { - struct timeval startTime; - OSSpinLock timeLock; -} - -/// Returns an auto-released instance of VVStopwatch; the stopwatch is started on creation. -+ (id) create; - -/// Starts the stopwatch over again -- (void) start; -/// Returns a float representing the time (in seconds) since the stopwatch was started -- (double) timeSinceStart; -/// Sets the stopwatch's starting time as an offset to the current time -- (void) startInTimeInterval:(NSTimeInterval)t; -/// Populates the passed timeval struct with the current timeval -- (void) copyStartTimeToTimevalStruct:(struct timeval *)dst; -/// Populates the starting time with the passed timeval struct -- (void) setStartTimeStruct:(struct timeval *)src; - -@end - -void populateTimevalWithFloat(struct timeval *tval, double secVal); diff --git a/atemOSC.app/Contents/Frameworks/VVBasics.framework/headers/VVThreadLoop.h b/atemOSC.app/Contents/Frameworks/VVBasics.framework/headers/VVThreadLoop.h deleted file mode 100644 index 0a6342f..0000000 --- a/atemOSC.app/Contents/Frameworks/VVBasics.framework/headers/VVThreadLoop.h +++ /dev/null @@ -1,63 +0,0 @@ - -#if IPHONE -#import -#else -#import -#endif -#include -#import -#include - - - - -/// Simple class for spawning a thread which executes at a specified interval- simpler and easier to work with than NSThread/NSTimer in multi-threaded programming environments. -/*! -When started, an instance of this class will spawn a thread and repeatedly execute a method on that thread. If it was passed a target and selector on creation, the selector will be called on the target every time the thread executes. If it's more convenient to subclass VVThreadLoop and work with your custom subclass, leave the target/selector nil and VVThreadLoop will call "threadProc" on itself- just override this method (it's empty anyway) in your subclass and do whatever you want in there. - -You can change the execution interval, and VVThreadLoop also examines how long it takes to execute your code and adjusts in an attempt to ensure that the interval is accurate (sleep-time is interval-duration minus proc-execution-duration) -*/ - - - - -@interface VVThreadLoop : NSObject { - double interval; - double maxInterval; - BOOL running; - BOOL bail; - BOOL paused; - BOOL executingCallback; - - OSSpinLock valLock; // ONLY used for quickly accessing 'running', 'bail', 'paused', and 'executingCallback' in a threadsafe fashion - - id targetObj; //! - Everyone is permitted to copy and distribute verbatim copies - of this license document, but changing it is not allowed. - - - This version of the GNU Lesser General Public License incorporates -the terms and conditions of version 3 of the GNU General Public -License, supplemented by the additional permissions listed below. - - 0. Additional Definitions. - - As used herein, "this License" refers to version 3 of the GNU Lesser -General Public License, and the "GNU GPL" refers to version 3 of the GNU -General Public License. - - "The Library" refers to a covered work governed by this License, -other than an Application or a Combined Work as defined below. - - An "Application" is any work that makes use of an interface provided -by the Library, but which is not otherwise based on the Library. -Defining a subclass of a class defined by the Library is deemed a mode -of using an interface provided by the Library. - - A "Combined Work" is a work produced by combining or linking an -Application with the Library. The particular version of the Library -with which the Combined Work was made is also called the "Linked -Version". - - The "Minimal Corresponding Source" for a Combined Work means the -Corresponding Source for the Combined Work, excluding any source code -for portions of the Combined Work that, considered in isolation, are -based on the Application, and not on the Linked Version. - - The "Corresponding Application Code" for a Combined Work means the -object code and/or source code for the Application, including any data -and utility programs needed for reproducing the Combined Work from the -Application, but excluding the System Libraries of the Combined Work. - - 1. Exception to Section 3 of the GNU GPL. - - You may convey a covered work under sections 3 and 4 of this License -without being bound by section 3 of the GNU GPL. - - 2. Conveying Modified Versions. - - If you modify a copy of the Library, and, in your modifications, a -facility refers to a function or data to be supplied by an Application -that uses the facility (other than as an argument passed when the -facility is invoked), then you may convey a copy of the modified -version: - - a) under this License, provided that you make a good faith effort to - ensure that, in the event an Application does not supply the - function or data, the facility still operates, and performs - whatever part of its purpose remains meaningful, or - - b) under the GNU GPL, with none of the additional permissions of - this License applicable to that copy. - - 3. Object Code Incorporating Material from Library Header Files. - - The object code form of an Application may incorporate material from -a header file that is part of the Library. You may convey such object -code under terms of your choice, provided that, if the incorporated -material is not limited to numerical parameters, data structure -layouts and accessors, or small macros, inline functions and templates -(ten or fewer lines in length), you do both of the following: - - a) Give prominent notice with each copy of the object code that the - Library is used in it and that the Library and its use are - covered by this License. - - b) Accompany the object code with a copy of the GNU GPL and this license - document. - - 4. Combined Works. - - You may convey a Combined Work under terms of your choice that, -taken together, effectively do not restrict modification of the -portions of the Library contained in the Combined Work and reverse -engineering for debugging such modifications, if you also do each of -the following: - - a) Give prominent notice with each copy of the Combined Work that - the Library is used in it and that the Library and its use are - covered by this License. - - b) Accompany the Combined Work with a copy of the GNU GPL and this license - document. - - c) For a Combined Work that displays copyright notices during - execution, include the copyright notice for the Library among - these notices, as well as a reference directing the user to the - copies of the GNU GPL and this license document. - - d) Do one of the following: - - 0) Convey the Minimal Corresponding Source under the terms of this - License, and the Corresponding Application Code in a form - suitable for, and under terms that permit, the user to - recombine or relink the Application with a modified version of - the Linked Version to produce a modified Combined Work, in the - manner specified by section 6 of the GNU GPL for conveying - Corresponding Source. - - 1) Use a suitable shared library mechanism for linking with the - Library. A suitable mechanism is one that (a) uses at run time - a copy of the Library already present on the user's computer - system, and (b) will operate properly with a modified version - of the Library that is interface-compatible with the Linked - Version. - - e) Provide Installation Information, but only if you would otherwise - be required to provide such information under section 6 of the - GNU GPL, and only to the extent that such information is - necessary to install and execute a modified version of the - Combined Work produced by recombining or relinking the - Application with a modified version of the Linked Version. (If - you use option 4d0, the Installation Information must accompany - the Minimal Corresponding Source and Corresponding Application - Code. If you use option 4d1, you must provide the Installation - Information in the manner specified by section 6 of the GNU GPL - for conveying Corresponding Source.) - - 5. Combined Libraries. - - You may place library facilities that are a work based on the -Library side by side in a single library together with other library -facilities that are not Applications and are not covered by this -License, and convey such a combined library under terms of your -choice, if you do both of the following: - - a) Accompany the combined library with a copy of the same work based - on the Library, uncombined with any other library facilities, - conveyed under the terms of this License. - - b) Give prominent notice with the combined library that part of it - is a work based on the Library, and explaining where to find the - accompanying uncombined form of the same work. - - 6. Revised Versions of the GNU Lesser General Public License. - - The Free Software Foundation may publish revised and/or new versions -of the GNU Lesser General Public License from time to time. Such new -versions will be similar in spirit to the present version, but may -differ in detail to address new problems or concerns. - - Each version is given a distinguishing version number. If the -Library as you received it specifies that a certain numbered version -of the GNU Lesser General Public License "or any later version" -applies to it, you have the option of following the terms and -conditions either of that published version or of any later version -published by the Free Software Foundation. If the Library as you -received it does not specify a version number of the GNU Lesser -General Public License, you may choose any version of the GNU Lesser -General Public License ever published by the Free Software Foundation. - - If the Library as you received it specifies that a proxy can decide -whether future versions of the GNU Lesser General Public License shall -apply, that proxy's public statement of acceptance of any version is -permanent authorization for you to choose that version for the -Library. diff --git a/atemOSC.app/Contents/Frameworks/VVOSC.framework/Headers/OSCAddressSpace.h b/atemOSC.app/Contents/Frameworks/VVOSC.framework/Headers/OSCAddressSpace.h deleted file mode 100644 index 966aa33..0000000 --- a/atemOSC.app/Contents/Frameworks/VVOSC.framework/Headers/OSCAddressSpace.h +++ /dev/null @@ -1,77 +0,0 @@ - -#if IPHONE -#import -#else -#import -#endif -#import "OSCNode.h" - - - - -// OSCAddressSpace delegate protocol -@protocol OSCAddressSpaceDelegateProtocol -- (void) nodeRenamed:(OSCNode *)n; -- (void) dispatchReplyOrError:(OSCMessage *)m; // this method is called by nodes in the address space. the passed message is a reply or error in response to a query which should be sent out an output. -@end - - - - -// this is the main instance of OSCAddressSpace. it is auto-created when this class is initialized -extern id _mainAddressSpace; - - - - -/// OSCAddressSpace is a representation of the OSC address space described in the OSC spec. It is a subclass of OSCNode. This class is optional- it's not needed for basic OSC message sending/receiving. -/*! -There should only ever be one instance of OSCAddressSpace, and you shouldn't explicitly create it. Just call [OSCAddressSpace class] (or any other OSCAddressSpace method) and it will be automatically created. This main instance may be retrieved by the class method +[OSCAddressSpace mainAddressSpace] or by the class variable _mainAddressSpace. - -OSCAddressSpace is your application's main way of dealing with the OSC address space- if you need to dispatch a message, set, rename, or delete a node, you should do via the main instance of this class. -*/ -@interface OSCAddressSpace : OSCNode { - id delegate; -} - -/// Returns the main instance of the OSC address space (and creates it if necessary) -+ (id) mainAddressSpace; -+ (void) refreshMenu; -#if !IPHONE -+ (NSMenu *) makeMenuForNode:(OSCNode *)n withTarget:(id)t action:(SEL)a; -+ (NSMenu *) makeMenuForNode:(OSCNode *)n ofType:(NSIndexSet *)ts withTarget:(id)t action:(SEL)a; -#endif - -/// Renames 'before' to 'after'. Sub-nodes stay with their owners! Can also be though of as a "move". -- (void) renameAddress:(NSString *)before to:(NSString *)after; -- (void) renameAddressArray:(NSArray *)before toArray:(NSArray *)after; - -/// If 'n' is nil, the node at the passed address will be deleted (as will any of its sub-nodes) -- (void) setNode:(OSCNode *)n forAddress:(NSString *)a; -- (void) setNode:(OSCNode *)n forAddress:(NSString *)a createIfMissing:(BOOL)c; -- (void) setNode:(OSCNode *)n forAddressArray:(NSArray *)a; -- (void) setNode:(OSCNode *)n forAddressArray:(NSArray *)a createIfMissing:(BOOL)c; - -// this method is called whenever a node is added to another node -- (void) nodeRenamed:(OSCNode *)n; - -/// Unlike a normal OSCNode, this method finds the destination node and then dispatches the msg. If the destination is itself, it just calls the super. -- (void) dispatchMessage:(OSCMessage *)m; -// This method gets called by an OSCNode inside me (or by me), and you probably won't need to ever call this method. The passed message is a reply or error that needs to be sent back in response to a query. The passed OSCMessage contains the IP address and port of the destination. This method just passes the data on to the addres space's delegate- it does NOT actually send anything out, this is something you'll have to implement in the delegate. -- (void) _dispatchReplyOrError:(OSCMessage *)m; - -- (void) addDelegate:(id)d forPath:(NSString *)p; -- (void) removeDelegate:(id)d forPath:(NSString *)p; -/* -- (void) addQueryDelegate:(id)d forPath:(NSString *)p; -- (void) removeQueryDelegate:(id)d forPath:(NSString *)p; -*/ -@property (assign, readwrite) id delegate; - - -@end - - - - - diff --git a/atemOSC.app/Contents/Frameworks/VVOSC.framework/Headers/OSCBundle.h b/atemOSC.app/Contents/Frameworks/VVOSC.framework/Headers/OSCBundle.h deleted file mode 100644 index 857d688..0000000 --- a/atemOSC.app/Contents/Frameworks/VVOSC.framework/Headers/OSCBundle.h +++ /dev/null @@ -1,46 +0,0 @@ - -#if IPHONE -#import -#else -#import -#endif - -#import "OSCMessage.h" - - - - -/// An OSCBundle is a "container" for multiple OSC messages or bundles (bundles may also be nested) -/*! -According to the OSC spec, an OSC bundle is basically a wrapper for multiple OSC messages (or other bundles). Instead of sending a bunch of individual messages, you can wrap them all into a bundle, and send the bundle (messages will still be sent to their individual address paths). OSCBundleÕs interface is correspondingly simple: you can create a bundle from some elements, or you can create a bundle and then add some elements (OSCMessages or OSCBundles) to it. - -OSC bundles also have a time stamp- by default, this will be set to immediate execution (0s except for a single 1 in the LSB). while timetag execution isn't widely supported, you may specify non-immediate time tags in the hopes that the software on the receiving end will execute the bundle in time. -*/ - - - - -@interface OSCBundle : NSObject { - NSMutableArray *elementArray; // array of messages or bundles - NSDate *timeTag; // nil by default, or the time at which the contents of this bundle should be dispatched -} - -+ (void) parseRawBuffer:(unsigned char *)b ofMaxLength:(int)l toInPort:(id)p inheritedTimeTag:(NSDate *)d fromAddr:(unsigned int)txAddr port:(unsigned short)txPort; -/// Creates and returns an auto-released bundle -+ (id) create; -/// Creates and returns an auto-released bundle with the single passed element -+ (id) createWithElement:(id)n; -/// Creates and returns an auto-released bundle with the array of passed elements -+ (id) createWithElementArray:(id)a; - -/// Adds the passed element to the bundle -- (void) addElement:(id)n; -/// Adds the array of passed elements to the bundle -- (void) addElementArray:(NSArray *)a; - -- (long) bufferLength; -- (void) writeToBuffer:(unsigned char *)b; - -@property (retain,readwrite) NSDate *timeTag; - -@end diff --git a/atemOSC.app/Contents/Frameworks/VVOSC.framework/Headers/OSCConstants.h b/atemOSC.app/Contents/Frameworks/VVOSC.framework/Headers/OSCConstants.h deleted file mode 100644 index 7261ae2..0000000 --- a/atemOSC.app/Contents/Frameworks/VVOSC.framework/Headers/OSCConstants.h +++ /dev/null @@ -1,131 +0,0 @@ - -/*! -\file OSCConstants.h -\brief Constants and Macros used by one or more of the OSC classes in this framework -*/ - -/// OSCValueType -/*! -OSCValues have distinct types; these are used to describe the type of an OSCValue. -*/ -typedef enum { - OSCValInt = 1, //! -#else -#import -#endif - -#import -//#import -//#import -#import -#import -#import -#import "OSCPacket.h" -#import "OSCBundle.h" -#import "OSCMessage.h" -#import "OSCOutPort.h" - - - - -/// OSCInPort handles everything needed to receive OSC data on a given port -/*! -You should never create or destroy an instance of this class manually. OSCInPort instances should be created/destroyed by the OSCManager. - -Each OSCInPort is running in its own separate thread- so make sure anything called as a result of received OSC input is thread-safe! When OSCInPort receives data, it gets parsed and passed to the in port's delegate as a series of OSCMessages consisting of an address path and an OSCValue. By default, the inport's delegate is the manager which created it- and by default, managers pass this data on to *their* delegates (your objects/app). - -the documentation here only covers the basics, the header file for this class is small and heavily commented if you want to know more because you're heavily customizing OSCInPort. -*/ -@interface OSCInPort : NSObject { - BOOL deleted; // whether or not i'm deleted- ensures that socket gets closed - BOOL bound; // whether or not the socket is bound - OSSpinLock socketLock; - int sock; // socket file descriptor. remember, everything in unix is files! - struct sockaddr_in addr; // struct that describes *my* address (this is an in port) - unsigned short port; // the port number i'm receiving from - unsigned char buf[65506]; // the socket gets data and dumps it here immediately - - OSSpinLock scratchLock; - NSThread *thread; - //VVThreadLoop *threadLooper; - - NSString *portLabel; //! -#else -#import -#endif -#import "OSCAddressSpace.h" -#import "OSCZeroConfManager.h" -#import "OSCInPort.h" -#import "OSCOutPort.h" - - - - -/// Main VVOSC class- manages in & out port creation, zero configuration networking (bonjour/zeroconf) -/*! -The OSCManager will probably be the main class that you're working with: it creates/deletes inputs (which receive data) and outputs (which send data), passes any OSC data received to its delegate (your application), optionally handles distribution of all received OSC messages, and does other manager-ish things. You should only need one instance of OSCManager in your application. One of your objects should be OSCManager's delegate (see the "OSCDelegateProtocol" below) so you may receive OSC data. - -Incoming OSC data is initially received by an OSCInPort; fundamentally, in ports are running a loop which checks a socket for data received since the last loop. By default, the OSCInPort's delegate is the OSCManager which created it. Every time the loop runs, it passes the received data off to its delegate (the manager) as the raw address/value pairs in the order they're received. When the OSCManager receives data from its in port it immediately passes the received data to its delegate, which should respond to one of the following methods (referred to as the 'OSCDelegateProtocol'): - -\htmlonly -
-@protocol OSCDelegateProtocol
-- (void) receivedOSCMessage:(OSCMessage *)m;
-@end -
-\endhtmlonly - -...if you want to work with received OSC data, OSCManager's delegate must respond to this method! -*/ - - - - -@interface OSCManager : NSObject { - MutLockArray *inPortArray; // Array of OSCInPorts in a locking array for threadsafe access - MutLockArray *outPortArray; // Array of OSCOutPorts in a locking array for threadsafe access - - id delegate; //! -#else -#import -#endif -#import "OSCValue.h" -#import - - - - -/// Corresponds to an OSC message: contains zero or more values, and the address path the values have to get sent to. -/*! -According to the OSC spec, a message consists of an address path (where the message should be sent) and zero or more arguments. An OSCMessage must be created with an address path- once the OSCMessage exists, you may add as many arguments to it as you'd like. -*/ -@interface OSCMessage : NSObject { - NSString *address; //! 1 - - NSDate *timeTag; //! -#else -#import -#endif -#import "OSCMessage.h" -#import -#import -#import - - - - -@protocol OSCNodeDelegateProtocol -- (void) node:(id)n receivedOSCMessage:(id)msg; -- (void) nodeNameChanged:(id)node; -- (void) nodeDeleted:(id)node; -@end -/// An OSCNode's queryDelegate must respond to these methods, which are called when a query-type OSCMessage is dispatched to an OSCNode -@protocol OSCNodeQueryDelegateProtocol -- (NSMutableArray *) namespaceArrayForNode:(id)n; -- (NSString *) docStringForNode:(id)n; -- (NSString *) typeSignatureForNode:(id)n; -- (OSCValue *) currentValueForNode:(id)n; -- (NSString *) returnTypeStringForNode:(id)n; -@end - - - - -/// OSCNode describes a single destination for OSC addresses. The OSC address space is made up of many different nodes. This class is optional- it is not used for basic OSC message sending/receiving, and only gets used if you start working with OSCAddressSpace. -/*! -The OSC specification describes a slash-delineated address space- as messages are received, they are dispatched to the described address. An OSCNode represents a single unique destination in the OSC address space. OSCNodes may have subnodes and have a non-retaining reference to their parent node (unless they're top-level, in which case their parent node is nil). They retain a copy of the last message dispatched directly to this node for convenience. OSCNode instances have zero or more delegates- delegates are NOT retained, and are assumed to respond to all the methods in OSCNOdeDelegateProtocol. - -If you want to work with an instance of OSCNode, you need to acquire or work with it from the main OSCAddressSpace. Do not just start creating OSCNode instances willy-nilly; there's no point, they're only useful if they're part of an address space. - -Generally speaking, it's a good idea for each instance of OSCNode to have a discrete type, as this makes it easier to browse and filter the hierarchy of OSCNode instances that make up the OSC address space. Most of the documented methods here are simply for querying basic properties of the OSCNode instance or doing simple message dispatch. -*/ - - - - -@interface OSCNode : NSObject { - id addressSpace; // the class OSCAddressSpace is a subclass of OSCNode, and is essentially the "root" node. all OSCNodes have a pointer to the root node! - BOOL deleted; - - OSSpinLock nameLock; - NSString *nodeName; /// "local" name: name of the node at /a/b/c is "c" - NSString *fullName; /// "full" name: name of the node at /a/b/c is "/a/b/c" - MutLockArray *nodeContents; /// Contains OSCNode instances- this OSCNode's sub-nodes. type 'MutLockArray'- this should all be threadsafe... - OSCNode *parentNode; // my "parent" node (or nil). NOT retained! - OSCNodeType nodeType; /// What 'type' of node i am - BOOL hiddenInMenu; // NO by default. if YES, this node (and all its sub-nodes) will be omitted from menus! - - OSCMessage *lastReceivedMessage; /// The last message sent to this node is retained (the message is retained instead of the value because messages can have multiple values) - OSSpinLock lastReceivedMessageLock; - MutNRLockArray *delegateArray; // type 'MutNRLockArray'. contents are NOT retained! could be anything! - - BOOL autoQueryReply; // NO by default. if YES and the queryDelegate is nil or doesn't respond to one of the delegate methods or returns nil from one of the delegate methods, the OSCNode will try to automatically respond to the query - id queryDelegate; // nil by default, NOT retained; unlike "normal" delegates, an OSCNode has a single query delegate -} - -// only called by the address space to craft a formatted string for logging purposes -- (void) _logDescriptionToString:(NSMutableString *)s tabDepth:(int)d; - -+ (id) createWithName:(NSString *)n; -- (id) initWithName:(NSString *)n; -- (id) init; -- (void) prepareToBeDeleted; - -// convenience method so nodes may be sorted by name -- (NSComparisonResult) nodeNameCompare:(OSCNode *)comp; - -// "local" add/remove/find methods for working with my node contents -- (void) addLocalNode:(OSCNode *)n; -- (void) addLocalNodes:(NSArray *)n; -- (void) removeLocalNode:(OSCNode *)n; // this just removes the passed node from my 'nodeContents' array- doesn't assume that the passed node will be released! -- (void) deleteLocalNode:(OSCNode *)n; // calls 'prepareToBeDeleted' on the passed node- call this is if you want to make sure that the passed node will stop sending delegate messages/etc! -- (void) removeFromAddressSpace; // tries to remove me from the OSCAddressSpace singleton by setting my fullName to nil - -/// It's assumed that the passed name doesn't have any wildcards/regex. If the receiver contains a node with the identical name as the passed string, the node will be returned. This is not a "deep" search, it's restricted to the receiver's nodeContents array. -- (OSCNode *) findLocalNodeNamed:(NSString *)n; -/// Same as findLocalNodeNamed:, but if any of the interim nodes don't exist they will be created. -- (OSCNode *) findLocalNodeNamed:(NSString *)n createIfMissing:(BOOL)c; - -/// Compares the names of all the receiver's sub-nodes to the passed POSIX regex string, returns an array with all the nodes whose nodeNames match the regex. If there are no sub-nodes or none of the sub-nodes match the regex, returns nil. -- (NSMutableArray *) findLocalNodesMatchingPOSIXRegex:(NSString *)regex; -- (void) _addLocalNodesMatchingRegex:(NSString *)regex toMutArray:(NSMutableArray *)a; - - -/// Calls findNodeForAddress:createIfMissing:NO. -// these find methods do NOT work with regex! it is assumed that the passed string is NOT a regex algorithm! -- (OSCNode *) findNodeForAddress:(NSString *)p; -/// It's assumed that the passed address doesn't have any wildcards/regex (no checking is done). The receiver tries to locate the node at the passed address (relative to the receiver). If c is YES, any OSCNodes missing in the passed address are automatically created. If they have sub-nodes, the auto-created nodes' types are set to OSCNodeDirectory; if not, the auto-created nodes' types are OSCNodeTypeUnknown -- (OSCNode *) findNodeForAddress:(NSString *)p createIfMissing:(BOOL)c; -- (OSCNode *) findNodeForAddressArray:(NSArray *)a; -- (OSCNode *) findNodeForAddressArray:(NSArray *)a createIfMissing:(BOOL)c; -// these find methods work with regex! path components may be regex strings- this returns all the nodes that match every component in the passed address/address array! -- (NSMutableArray *) findNodesMatchingAddress:(NSString *)a; -- (NSMutableArray *) findNodesMatchingAddressArray:(NSArray *)a; - -// a node's delegate is informed of received osc messages or name changes (OSCNodeDelegateProtocol) -// NODE DELEGATES ARE __NOT__ RETAINED! -// NODE DELEGATES __MUST__ REMOVE THEMSELVES FROM THE DELEGATE ARRAY! -- (void) addDelegate:(id)d; -- (void) removeDelegate:(id)d; -- (void) informDelegatesOfNameChange; -- (void) addDelegatesFromNode:(OSCNode *)n; - -/// Sends the passed message to all of the node's delegates- it does NOT parse the address at all (it's assumed that the passed message's address points to this instance of OSCNode). If the passed message is a query, this tries to assemble a reply (either from the queryDelegate or automatically if autoQueryReply is enabled) which is sent to the main address space. -- (void) dispatchMessage:(OSCMessage *)m; - -@property (assign, readwrite) id addressSpace; -@property (assign, readwrite) NSString *nodeName; -- (void) _setNodeName:(NSString *)n; -@property (readonly) NSString *fullName; -@property (readonly) id nodeContents; -@property (assign, readwrite) OSCNode *parentNode; -@property (assign, readwrite) int nodeType; -@property (assign, readwrite) BOOL hiddenInMenu; -@property (readonly) OSCMessage *lastReceivedMessage; -@property (readonly) OSCValue *lastReceivedValue; -@property (readonly) id delegateArray; -//@property (readonly) id queryDelegateArray; -@property (assign,readwrite) BOOL autoQueryReply; -@property (assign,readwrite) id queryDelegate; - -@end diff --git a/atemOSC.app/Contents/Frameworks/VVOSC.framework/Headers/OSCOutPort.h b/atemOSC.app/Contents/Frameworks/VVOSC.framework/Headers/OSCOutPort.h deleted file mode 100644 index 091b593..0000000 --- a/atemOSC.app/Contents/Frameworks/VVOSC.framework/Headers/OSCOutPort.h +++ /dev/null @@ -1,71 +0,0 @@ - -#if IPHONE -#import -#else -#import -#endif - - -#include - -#import "OSCPacket.h" -#import "OSCBundle.h" -#import "OSCMessage.h" - - - - -/// OSCOutPort handles everything needed to send OSC data to a given address -/*! -You should never create or destroy an instance of this class manually. OSCOutPort instances should be created/destroyed by the OSCManager. - -the documentation here only covers the basics, the header file for this class is small and heavily commented if you want to know more because you're heavily customizing OSCOutPort. -*/ -@interface OSCOutPort : NSObject { - BOOL deleted; - int sock; - struct sockaddr_in addr; - unsigned short port; //! -#else -#import -#endif - -#include -#import "OSCBundle.h" -#import "OSCMessage.h" - - - -/// Used to parse raw OSC data or to assemble raw OSC data from OSCMessages/OSCBundles -/*! -An OSC packet is the basic unit of transmitting OSC data- the OSCPacket class is mostly used internally to either parse received raw data or to assemble raw data from OSCMessages/OSCBundles for sending. -*/ - -@interface OSCPacket : NSObject { - long bufferLength; - unsigned char *payload; -} - -+ (void) parseRawBuffer:(unsigned char *)b ofMaxLength:(int)l toInPort:(id)p fromAddr:(unsigned int)txAddr port:(unsigned short)txPort; -/// Creates & returns an auto-released packet from either an OSCBundle or an OSCMessage -+ (id) createWithContent:(id)c; -- (id) initWithContent:(id)c; - -- (long) bufferLength; -- (unsigned char *) payload; - -@end diff --git a/atemOSC.app/Contents/Frameworks/VVOSC.framework/Headers/OSCStringAdditions.h b/atemOSC.app/Contents/Frameworks/VVOSC.framework/Headers/OSCStringAdditions.h deleted file mode 100644 index 48146c2..0000000 --- a/atemOSC.app/Contents/Frameworks/VVOSC.framework/Headers/OSCStringAdditions.h +++ /dev/null @@ -1,49 +0,0 @@ - -#if IPHONE -#import -#else -#import -#endif -#import -#import - - - - -extern NSCharacterSet *_OSCStrAdditionsWildcardCharSet; -extern MutLockDict *_OSCStrPOSIXRegexDict; // key is the regex string, object is an OSCPOSIXRegExpHolder containing the compiled regex- which is threadsafe, and may be reused - - - - -@interface OSCPOSIXRegExpHolder : NSObject { - NSString *regexString; - regex_t *regex; -} - -+ (id) createWithString:(NSString *)n; -- (id) initWithString:(NSString *)n; -- (BOOL) evalAgainstString:(NSString *)n; -- (NSString *) regexString; - -@end - - - - -@interface NSString (OSCStringAdditions) - -+ (NSString *) stringWithBytes:(const void *)b length:(NSUInteger)l encoding:(NSStringEncoding)e; -+ (NSString *) stringFromRawIPAddress:(unsigned long)i; -- (NSString *) trimFirstAndLastSlashes; -- (NSString *) stringByDeletingFirstPathComponent; -- (NSString *) firstPathComponent; -- (NSString *) stringBySanitizingForOSCPath; -- (NSString *) stringByDeletingLastAndAddingFirstSlash; -- (BOOL) containsOSCWildCard; - -- (BOOL) predicateMatchAgainstRegex:(NSString *)r; -- (BOOL) posixMatchAgainstSlowRegex:(NSString *)r; -- (BOOL) posixMatchAgainstFastRegex:(NSString *)r; - -@end diff --git a/atemOSC.app/Contents/Frameworks/VVOSC.framework/Headers/OSCValue.h b/atemOSC.app/Contents/Frameworks/VVOSC.framework/Headers/OSCValue.h deleted file mode 100644 index fd0ea5e..0000000 --- a/atemOSC.app/Contents/Frameworks/VVOSC.framework/Headers/OSCValue.h +++ /dev/null @@ -1,107 +0,0 @@ - -#if IPHONE -#import -#else -#import -#endif -#import "OSCConstants.h" - - - - -/// OSCValue encapsulates any value you can send or receive via OSC. It is NOT mutable at this time. -/*! -When you send or receive values via OSC, you'll be working with OSCValue objects in an OSCMessage. Internally, OSCValue isn't mutable, and it attempts to store its value in its native format (int for an int, float for a float) instead of relying on NSNumber. The exceptions to this are NSColor/UIColor and NSString. -*/ - - - - -@interface OSCValue : NSObject { - OSCValueType type; //! -#import -#else -#import -#endif -//#import -#import -#import -#import -#import -#include - - - -#if IPHONE -@interface OSCZeroConfDomain : NSObject { -#else -@interface OSCZeroConfDomain : NSObject { -#endif - NSString *domainString; - NSNetServiceBrowser *serviceBrowser; - - MutLockArray *servicesArray; - - id domainManager; -} - -+ (id) createWithDomain:(NSString *)d andDomainManager:(id)m; -- (id) initWithDomain:(NSString *)d andDomainManager:(id)m; - -// NSNetServiceBrowser delegate methods -- (void)netServiceBrowser:(NSNetServiceBrowser *)n didFindService:(NSNetService *)x moreComing:(BOOL)m; -- (void)netServiceBrowser:(NSNetServiceBrowser *)n didNotSearch:(NSDictionary *)err; -- (void)netServiceBrowser:(NSNetServiceBrowser *)n didRemoveService:(NSNetService *)s moreComing:(BOOL)m; - -// NSNetService delegate methods -- (void)netService:(NSNetService *)n didNotResolve:(NSDictionary *)err; -- (void)netServiceDidResolveAddress:(NSNetService *)n; - -@end diff --git a/atemOSC.app/Contents/Frameworks/VVOSC.framework/Headers/OSCZeroConfManager.h b/atemOSC.app/Contents/Frameworks/VVOSC.framework/Headers/OSCZeroConfManager.h deleted file mode 100644 index c1795ab..0000000 --- a/atemOSC.app/Contents/Frameworks/VVOSC.framework/Headers/OSCZeroConfManager.h +++ /dev/null @@ -1,37 +0,0 @@ - -#if IPHONE -#import -#else -#import -#endif - -#import -#import "OSCZeroConfDomain.h" -#import - - - - -#if IPHONE -@interface OSCZeroConfManager : NSObject { -#else -@interface OSCZeroConfManager : NSObject { -#endif - NSNetServiceBrowser *domainBrowser; - - NSMutableDictionary *domainDict; - pthread_rwlock_t domainLock; - - id oscManager; -} - -- (id) initWithOSCManager:(id)m; - -- (void) serviceRemoved:(NSNetService *)s; -- (void) serviceResolved:(NSNetService *)s; - -// NSNetServiceBrowser delegate methods -- (void)netServiceBrowser:(NSNetServiceBrowser *)n didFindDomain:(NSString *)d moreComing:(BOOL)m; -- (void)netServiceBrowser:(NSNetServiceBrowser *)n didNotSearch:(NSDictionary *)err; - -@end diff --git a/atemOSC.app/Contents/Frameworks/VVOSC.framework/Headers/VVOSC.h b/atemOSC.app/Contents/Frameworks/VVOSC.framework/Headers/VVOSC.h deleted file mode 100644 index 47eeb3a..0000000 --- a/atemOSC.app/Contents/Frameworks/VVOSC.framework/Headers/VVOSC.h +++ /dev/null @@ -1,121 +0,0 @@ - - -#import "OSCConstants.h" - -#import "OSCValue.h" -#import "OSCMessage.h" -#import "OSCBundle.h" -#import "OSCPacket.h" - -#import "OSCOutPort.h" -#import "OSCInPort.h" - -#import "OSCManager.h" -#import "OSCZeroConfManager.h" - -#import "OSCNode.h" -#import "OSCAddressSpace.h" - -#import "OSCStringAdditions.h" - - - - -/// Most common means of passing OSC data to your application. Delegates of OSCManager and OSCInPort should support this protocol. -/*! -When instances of OSCInPort and OSCManager receive OSC data, they pass it to their delegate by calling this method. If you want to receive OSC data, your OSCManager's delegate must respond to this method! -*/ -@protocol OSCDelegateProtocol -/// This method is called whenever your in port/manager receives an OSCMessage. -- (void) receivedOSCMessage:(OSCMessage *)m; -@end - - - - -/* - the following stuff is for doxygen -*/ - - -/*! -\mainpage - -\htmlonly - - - - -Introduction -

-VVOSC is an Objective-c framework for assembling, sending, and receiving OSC (Open Sound Control) messages on OS X. A simple sample application (gui) which sends and receives OSC messages is also included to aid in the debugging of your software. There's also an SDK which allows you to develop iPhone applications which use VVOSC. All the source code is available on the project homepage: http://code.google.com/p/vvopensource -

- - -Features and Capabilities -

-

  • Includes a sample GUI app for debugging OSC applications and hardware that also demonstrates use of the framework
  • -
  • Packet parsing (client) + construction (server)
  • -
  • Creates bundles/nested bundles, safely parse bundles/nested bundles
  • -
  • Detects other OSC destinations via bonjour/zero-conf networking and automatically creates output ports so you can send data to them.
  • -
  • Input ports automagically advertise their presence via bonjour/zero-conf networking. This is as close to no-setup as it gets!
  • -
  • Supports the following data types: i (int32), f (float32), s/S (OSC-string), b (OSC blob), h (64-bit int), d (64-bit float/double), r (32-bit RGBA color), m (MIDI message), T (tru), F (false), N(nil), I (infinity), t (OSC-timetag)
  • -
  • Processing frequency defaults to 30hz, but may be adjusted dynamically well in excess of 100hz
  • -
  • Multithreaded- each input port runs on its own thread- and threadsafe.
  • -
  • Optional OSC address space classes (OSCNode & OSCAddressSpace) may be used to quickly create a simple OSC-based API for controlling software. Address space includes POSIX regex-based pattern matching engine for dispatching a single message to multiple nodes.
  • -
  • Built on a handful of small, easy-to-grok classes written specifically for OS X. Very easy to understand, modify, subclass, or extend.
  • -
  • Project includes targets that build and install an SDK for using VVOSC in iOS apps
  • -

    - -Breaks from the OSC specification -

    -
  • "char" data type not supported yet, you can use "string" in the meantime
  • -
  • It's possible to create an OSCValue from an NSString containing UTF8 characters, which VVOSC will try to send- and if the software receiving this data doesn't freak out, this allows you to UTF8 characters. In other words, VVOSC doesn't explicitly prevent the use of non-ASCII characters, so it's possible to use it to create incompatible OSC data!
  • -
  • The OSC specification describes a limited subset of regex to be used in wildcard/pattern matching for OSC dispatch. VVOSC's message dispatch is presently a POSIX regex engine simply because it was faster and easier to get going (it's built into the OS) than rolling my own. The specific engine used may change if message dispatch becomes a speed issue in the future; presumably, this ambiguity is why the OSC spec describes a specific and limited subset of regex!
  • -
  • The OSC spec describes the optional type characters [ and ] to delineate arrays and basic node-based structures for ad-hoc data types. Lacking any specific usage examples, this isn't supported yet- if someone wants to send me a specific example i can use to support this protocol properly, please let me know.
  • -
  • While VVOSC parses, stores, and allows you to set OSC time tags (and even create and pass time tags as values), it doesn't perform any delay or scheduling if it receives an OSC bundle with a time tag which is later than the current time. Parsed time tags are available to your applications as the 'timeTag' variable of a passed OSCMessage, which is stored as an NSDate (which, internally, is a double which basically represents 64-bit NTP time, as I understand it).
  • -

    - - -Sample code - -
    -// create an OSCManager- set myself up as its delegate
    -manager = [[OSCManager alloc] init];
    -[manager setDelegate:self];
    -
    -// create an input port for receiving OSC data
    -[manager createNewInputForPort:1234];
    -
    -// create an output so i can send OSC data to myself
    -outPort = [manager createNewOutputToAddress:@"127.0.0.1" atPort:1234];
    -
    -// make an OSC message
    -newMsg = [OSCMessage createWithAddress:@"/Address/Path/1"];
    -
    -// add a bunch arguments to the message
    -[newMsg addInt:12];
    -[newMsg addFloat:12.34];
    -[newMsg addColor:[NSColor colorWithDeviceRed:0.0 green:1.0 blue:0.0 alpha:1.0]];
    -[newMsg addBOOL:YES];
    -[newMsg addString:@"Hello World!"];
    -
    -// send the OSC message
    -[outPort sendThisMessage:newMsg];
    -
    - - -\endhtmlonly -*/ diff --git a/atemOSC.app/Contents/Frameworks/VVOSC.framework/Headers/lgpl-3.0.txt b/atemOSC.app/Contents/Frameworks/VVOSC.framework/Headers/lgpl-3.0.txt deleted file mode 100644 index 65c5ca8..0000000 --- a/atemOSC.app/Contents/Frameworks/VVOSC.framework/Headers/lgpl-3.0.txt +++ /dev/null @@ -1,165 +0,0 @@ - GNU LESSER GENERAL PUBLIC LICENSE - Version 3, 29 June 2007 - - Copyright (C) 2007 Free Software Foundation, Inc. - Everyone is permitted to copy and distribute verbatim copies - of this license document, but changing it is not allowed. - - - This version of the GNU Lesser General Public License incorporates -the terms and conditions of version 3 of the GNU General Public -License, supplemented by the additional permissions listed below. - - 0. Additional Definitions. - - As used herein, "this License" refers to version 3 of the GNU Lesser -General Public License, and the "GNU GPL" refers to version 3 of the GNU -General Public License. - - "The Library" refers to a covered work governed by this License, -other than an Application or a Combined Work as defined below. - - An "Application" is any work that makes use of an interface provided -by the Library, but which is not otherwise based on the Library. -Defining a subclass of a class defined by the Library is deemed a mode -of using an interface provided by the Library. - - A "Combined Work" is a work produced by combining or linking an -Application with the Library. The particular version of the Library -with which the Combined Work was made is also called the "Linked -Version". - - The "Minimal Corresponding Source" for a Combined Work means the -Corresponding Source for the Combined Work, excluding any source code -for portions of the Combined Work that, considered in isolation, are -based on the Application, and not on the Linked Version. - - The "Corresponding Application Code" for a Combined Work means the -object code and/or source code for the Application, including any data -and utility programs needed for reproducing the Combined Work from the -Application, but excluding the System Libraries of the Combined Work. - - 1. Exception to Section 3 of the GNU GPL. - - You may convey a covered work under sections 3 and 4 of this License -without being bound by section 3 of the GNU GPL. - - 2. Conveying Modified Versions. - - If you modify a copy of the Library, and, in your modifications, a -facility refers to a function or data to be supplied by an Application -that uses the facility (other than as an argument passed when the -facility is invoked), then you may convey a copy of the modified -version: - - a) under this License, provided that you make a good faith effort to - ensure that, in the event an Application does not supply the - function or data, the facility still operates, and performs - whatever part of its purpose remains meaningful, or - - b) under the GNU GPL, with none of the additional permissions of - this License applicable to that copy. - - 3. Object Code Incorporating Material from Library Header Files. - - The object code form of an Application may incorporate material from -a header file that is part of the Library. You may convey such object -code under terms of your choice, provided that, if the incorporated -material is not limited to numerical parameters, data structure -layouts and accessors, or small macros, inline functions and templates -(ten or fewer lines in length), you do both of the following: - - a) Give prominent notice with each copy of the object code that the - Library is used in it and that the Library and its use are - covered by this License. - - b) Accompany the object code with a copy of the GNU GPL and this license - document. - - 4. Combined Works. - - You may convey a Combined Work under terms of your choice that, -taken together, effectively do not restrict modification of the -portions of the Library contained in the Combined Work and reverse -engineering for debugging such modifications, if you also do each of -the following: - - a) Give prominent notice with each copy of the Combined Work that - the Library is used in it and that the Library and its use are - covered by this License. - - b) Accompany the Combined Work with a copy of the GNU GPL and this license - document. - - c) For a Combined Work that displays copyright notices during - execution, include the copyright notice for the Library among - these notices, as well as a reference directing the user to the - copies of the GNU GPL and this license document. - - d) Do one of the following: - - 0) Convey the Minimal Corresponding Source under the terms of this - License, and the Corresponding Application Code in a form - suitable for, and under terms that permit, the user to - recombine or relink the Application with a modified version of - the Linked Version to produce a modified Combined Work, in the - manner specified by section 6 of the GNU GPL for conveying - Corresponding Source. - - 1) Use a suitable shared library mechanism for linking with the - Library. A suitable mechanism is one that (a) uses at run time - a copy of the Library already present on the user's computer - system, and (b) will operate properly with a modified version - of the Library that is interface-compatible with the Linked - Version. - - e) Provide Installation Information, but only if you would otherwise - be required to provide such information under section 6 of the - GNU GPL, and only to the extent that such information is - necessary to install and execute a modified version of the - Combined Work produced by recombining or relinking the - Application with a modified version of the Linked Version. (If - you use option 4d0, the Installation Information must accompany - the Minimal Corresponding Source and Corresponding Application - Code. If you use option 4d1, you must provide the Installation - Information in the manner specified by section 6 of the GNU GPL - for conveying Corresponding Source.) - - 5. Combined Libraries. - - You may place library facilities that are a work based on the -Library side by side in a single library together with other library -facilities that are not Applications and are not covered by this -License, and convey such a combined library under terms of your -choice, if you do both of the following: - - a) Accompany the combined library with a copy of the same work based - on the Library, uncombined with any other library facilities, - conveyed under the terms of this License. - - b) Give prominent notice with the combined library that part of it - is a work based on the Library, and explaining where to find the - accompanying uncombined form of the same work. - - 6. Revised Versions of the GNU Lesser General Public License. - - The Free Software Foundation may publish revised and/or new versions -of the GNU Lesser General Public License from time to time. Such new -versions will be similar in spirit to the present version, but may -differ in detail to address new problems or concerns. - - Each version is given a distinguishing version number. If the -Library as you received it specifies that a certain numbered version -of the GNU Lesser General Public License "or any later version" -applies to it, you have the option of following the terms and -conditions either of that published version or of any later version -published by the Free Software Foundation. If the Library as you -received it does not specify a version number of the GNU Lesser -General Public License, you may choose any version of the GNU Lesser -General Public License ever published by the Free Software Foundation. - - If the Library as you received it specifies that a proxy can decide -whether future versions of the GNU Lesser General Public License shall -apply, that proxy's public statement of acceptance of any version is -permanent authorization for you to choose that version for the -Library. diff --git a/atemOSC.app/Contents/Frameworks/VVOSC.framework/Resources b/atemOSC.app/Contents/Frameworks/VVOSC.framework/Resources new file mode 120000 index 0000000..953ee36 --- /dev/null +++ b/atemOSC.app/Contents/Frameworks/VVOSC.framework/Resources @@ -0,0 +1 @@ +Versions/Current/Resources \ No newline at end of file diff --git a/atemOSC.app/Contents/Frameworks/VVOSC.framework/Resources/Info.plist b/atemOSC.app/Contents/Frameworks/VVOSC.framework/Resources/Info.plist deleted file mode 100644 index ed0ff17..0000000 --- a/atemOSC.app/Contents/Frameworks/VVOSC.framework/Resources/Info.plist +++ /dev/null @@ -1,38 +0,0 @@ - - - - - BuildMachineOSBuild - 11E53 - CFBundleDevelopmentRegion - English - CFBundleExecutable - VVOSC - CFBundleGetInfoString - 156 - CFBundleIdentifier - com.vidvox.VVOSC - CFBundleInfoDictionaryVersion - 6.0 - CFBundlePackageType - FMWK - CFBundleSignature - ???? - CFBundleVersion - 156 - DTCompiler - com.apple.compilers.llvm.clang.1_0 - DTPlatformBuild - 4E2002 - DTPlatformVersion - GM - DTSDKBuild - 11E53 - DTSDKName - - DTXcode - 0432 - DTXcodeBuild - 4E2002 - - diff --git a/atemOSC.app/Contents/Frameworks/VVOSC.framework/VVOSC b/atemOSC.app/Contents/Frameworks/VVOSC.framework/VVOSC deleted file mode 100755 index f2043fe..0000000 Binary files a/atemOSC.app/Contents/Frameworks/VVOSC.framework/VVOSC and /dev/null differ diff --git a/atemOSC.app/Contents/Frameworks/VVOSC.framework/VVOSC b/atemOSC.app/Contents/Frameworks/VVOSC.framework/VVOSC new file mode 120000 index 0000000..c6a43b0 --- /dev/null +++ b/atemOSC.app/Contents/Frameworks/VVOSC.framework/VVOSC @@ -0,0 +1 @@ +Versions/Current/VVOSC \ No newline at end of file diff --git a/atemOSC.app/Contents/Frameworks/VVOSC.framework/Versions/A/Headers/OSCAddressSpace.h b/atemOSC.app/Contents/Frameworks/VVOSC.framework/Versions/A/Headers/OSCAddressSpace.h deleted file mode 100644 index 966aa33..0000000 --- a/atemOSC.app/Contents/Frameworks/VVOSC.framework/Versions/A/Headers/OSCAddressSpace.h +++ /dev/null @@ -1,77 +0,0 @@ - -#if IPHONE -#import -#else -#import -#endif -#import "OSCNode.h" - - - - -// OSCAddressSpace delegate protocol -@protocol OSCAddressSpaceDelegateProtocol -- (void) nodeRenamed:(OSCNode *)n; -- (void) dispatchReplyOrError:(OSCMessage *)m; // this method is called by nodes in the address space. the passed message is a reply or error in response to a query which should be sent out an output. -@end - - - - -// this is the main instance of OSCAddressSpace. it is auto-created when this class is initialized -extern id _mainAddressSpace; - - - - -/// OSCAddressSpace is a representation of the OSC address space described in the OSC spec. It is a subclass of OSCNode. This class is optional- it's not needed for basic OSC message sending/receiving. -/*! -There should only ever be one instance of OSCAddressSpace, and you shouldn't explicitly create it. Just call [OSCAddressSpace class] (or any other OSCAddressSpace method) and it will be automatically created. This main instance may be retrieved by the class method +[OSCAddressSpace mainAddressSpace] or by the class variable _mainAddressSpace. - -OSCAddressSpace is your application's main way of dealing with the OSC address space- if you need to dispatch a message, set, rename, or delete a node, you should do via the main instance of this class. -*/ -@interface OSCAddressSpace : OSCNode { - id delegate; -} - -/// Returns the main instance of the OSC address space (and creates it if necessary) -+ (id) mainAddressSpace; -+ (void) refreshMenu; -#if !IPHONE -+ (NSMenu *) makeMenuForNode:(OSCNode *)n withTarget:(id)t action:(SEL)a; -+ (NSMenu *) makeMenuForNode:(OSCNode *)n ofType:(NSIndexSet *)ts withTarget:(id)t action:(SEL)a; -#endif - -/// Renames 'before' to 'after'. Sub-nodes stay with their owners! Can also be though of as a "move". -- (void) renameAddress:(NSString *)before to:(NSString *)after; -- (void) renameAddressArray:(NSArray *)before toArray:(NSArray *)after; - -/// If 'n' is nil, the node at the passed address will be deleted (as will any of its sub-nodes) -- (void) setNode:(OSCNode *)n forAddress:(NSString *)a; -- (void) setNode:(OSCNode *)n forAddress:(NSString *)a createIfMissing:(BOOL)c; -- (void) setNode:(OSCNode *)n forAddressArray:(NSArray *)a; -- (void) setNode:(OSCNode *)n forAddressArray:(NSArray *)a createIfMissing:(BOOL)c; - -// this method is called whenever a node is added to another node -- (void) nodeRenamed:(OSCNode *)n; - -/// Unlike a normal OSCNode, this method finds the destination node and then dispatches the msg. If the destination is itself, it just calls the super. -- (void) dispatchMessage:(OSCMessage *)m; -// This method gets called by an OSCNode inside me (or by me), and you probably won't need to ever call this method. The passed message is a reply or error that needs to be sent back in response to a query. The passed OSCMessage contains the IP address and port of the destination. This method just passes the data on to the addres space's delegate- it does NOT actually send anything out, this is something you'll have to implement in the delegate. -- (void) _dispatchReplyOrError:(OSCMessage *)m; - -- (void) addDelegate:(id)d forPath:(NSString *)p; -- (void) removeDelegate:(id)d forPath:(NSString *)p; -/* -- (void) addQueryDelegate:(id)d forPath:(NSString *)p; -- (void) removeQueryDelegate:(id)d forPath:(NSString *)p; -*/ -@property (assign, readwrite) id delegate; - - -@end - - - - - diff --git a/atemOSC.app/Contents/Frameworks/VVOSC.framework/Versions/A/Headers/OSCBundle.h b/atemOSC.app/Contents/Frameworks/VVOSC.framework/Versions/A/Headers/OSCBundle.h deleted file mode 100644 index 857d688..0000000 --- a/atemOSC.app/Contents/Frameworks/VVOSC.framework/Versions/A/Headers/OSCBundle.h +++ /dev/null @@ -1,46 +0,0 @@ - -#if IPHONE -#import -#else -#import -#endif - -#import "OSCMessage.h" - - - - -/// An OSCBundle is a "container" for multiple OSC messages or bundles (bundles may also be nested) -/*! -According to the OSC spec, an OSC bundle is basically a wrapper for multiple OSC messages (or other bundles). Instead of sending a bunch of individual messages, you can wrap them all into a bundle, and send the bundle (messages will still be sent to their individual address paths). OSCBundleÕs interface is correspondingly simple: you can create a bundle from some elements, or you can create a bundle and then add some elements (OSCMessages or OSCBundles) to it. - -OSC bundles also have a time stamp- by default, this will be set to immediate execution (0s except for a single 1 in the LSB). while timetag execution isn't widely supported, you may specify non-immediate time tags in the hopes that the software on the receiving end will execute the bundle in time. -*/ - - - - -@interface OSCBundle : NSObject { - NSMutableArray *elementArray; // array of messages or bundles - NSDate *timeTag; // nil by default, or the time at which the contents of this bundle should be dispatched -} - -+ (void) parseRawBuffer:(unsigned char *)b ofMaxLength:(int)l toInPort:(id)p inheritedTimeTag:(NSDate *)d fromAddr:(unsigned int)txAddr port:(unsigned short)txPort; -/// Creates and returns an auto-released bundle -+ (id) create; -/// Creates and returns an auto-released bundle with the single passed element -+ (id) createWithElement:(id)n; -/// Creates and returns an auto-released bundle with the array of passed elements -+ (id) createWithElementArray:(id)a; - -/// Adds the passed element to the bundle -- (void) addElement:(id)n; -/// Adds the array of passed elements to the bundle -- (void) addElementArray:(NSArray *)a; - -- (long) bufferLength; -- (void) writeToBuffer:(unsigned char *)b; - -@property (retain,readwrite) NSDate *timeTag; - -@end diff --git a/atemOSC.app/Contents/Frameworks/VVOSC.framework/Versions/A/Headers/OSCConstants.h b/atemOSC.app/Contents/Frameworks/VVOSC.framework/Versions/A/Headers/OSCConstants.h deleted file mode 100644 index 7261ae2..0000000 --- a/atemOSC.app/Contents/Frameworks/VVOSC.framework/Versions/A/Headers/OSCConstants.h +++ /dev/null @@ -1,131 +0,0 @@ - -/*! -\file OSCConstants.h -\brief Constants and Macros used by one or more of the OSC classes in this framework -*/ - -/// OSCValueType -/*! -OSCValues have distinct types; these are used to describe the type of an OSCValue. -*/ -typedef enum { - OSCValInt = 1, //! -#else -#import -#endif - -#import -//#import -//#import -#import -#import -#import -#import "OSCPacket.h" -#import "OSCBundle.h" -#import "OSCMessage.h" -#import "OSCOutPort.h" - - - - -/// OSCInPort handles everything needed to receive OSC data on a given port -/*! -You should never create or destroy an instance of this class manually. OSCInPort instances should be created/destroyed by the OSCManager. - -Each OSCInPort is running in its own separate thread- so make sure anything called as a result of received OSC input is thread-safe! When OSCInPort receives data, it gets parsed and passed to the in port's delegate as a series of OSCMessages consisting of an address path and an OSCValue. By default, the inport's delegate is the manager which created it- and by default, managers pass this data on to *their* delegates (your objects/app). - -the documentation here only covers the basics, the header file for this class is small and heavily commented if you want to know more because you're heavily customizing OSCInPort. -*/ -@interface OSCInPort : NSObject { - BOOL deleted; // whether or not i'm deleted- ensures that socket gets closed - BOOL bound; // whether or not the socket is bound - OSSpinLock socketLock; - int sock; // socket file descriptor. remember, everything in unix is files! - struct sockaddr_in addr; // struct that describes *my* address (this is an in port) - unsigned short port; // the port number i'm receiving from - unsigned char buf[65506]; // the socket gets data and dumps it here immediately - - OSSpinLock scratchLock; - NSThread *thread; - //VVThreadLoop *threadLooper; - - NSString *portLabel; //! -#else -#import -#endif -#import "OSCAddressSpace.h" -#import "OSCZeroConfManager.h" -#import "OSCInPort.h" -#import "OSCOutPort.h" - - - - -/// Main VVOSC class- manages in & out port creation, zero configuration networking (bonjour/zeroconf) -/*! -The OSCManager will probably be the main class that you're working with: it creates/deletes inputs (which receive data) and outputs (which send data), passes any OSC data received to its delegate (your application), optionally handles distribution of all received OSC messages, and does other manager-ish things. You should only need one instance of OSCManager in your application. One of your objects should be OSCManager's delegate (see the "OSCDelegateProtocol" below) so you may receive OSC data. - -Incoming OSC data is initially received by an OSCInPort; fundamentally, in ports are running a loop which checks a socket for data received since the last loop. By default, the OSCInPort's delegate is the OSCManager which created it. Every time the loop runs, it passes the received data off to its delegate (the manager) as the raw address/value pairs in the order they're received. When the OSCManager receives data from its in port it immediately passes the received data to its delegate, which should respond to one of the following methods (referred to as the 'OSCDelegateProtocol'): - -\htmlonly -
    -@protocol OSCDelegateProtocol
    -- (void) receivedOSCMessage:(OSCMessage *)m;
    -@end -
    -\endhtmlonly - -...if you want to work with received OSC data, OSCManager's delegate must respond to this method! -*/ - - - - -@interface OSCManager : NSObject { - MutLockArray *inPortArray; // Array of OSCInPorts in a locking array for threadsafe access - MutLockArray *outPortArray; // Array of OSCOutPorts in a locking array for threadsafe access - - id delegate; //! -#else -#import -#endif -#import "OSCValue.h" -#import - - - - -/// Corresponds to an OSC message: contains zero or more values, and the address path the values have to get sent to. -/*! -According to the OSC spec, a message consists of an address path (where the message should be sent) and zero or more arguments. An OSCMessage must be created with an address path- once the OSCMessage exists, you may add as many arguments to it as you'd like. -*/ -@interface OSCMessage : NSObject { - NSString *address; //! 1 - - NSDate *timeTag; //! -#else -#import -#endif -#import "OSCMessage.h" -#import -#import -#import - - - - -@protocol OSCNodeDelegateProtocol -- (void) node:(id)n receivedOSCMessage:(id)msg; -- (void) nodeNameChanged:(id)node; -- (void) nodeDeleted:(id)node; -@end -/// An OSCNode's queryDelegate must respond to these methods, which are called when a query-type OSCMessage is dispatched to an OSCNode -@protocol OSCNodeQueryDelegateProtocol -- (NSMutableArray *) namespaceArrayForNode:(id)n; -- (NSString *) docStringForNode:(id)n; -- (NSString *) typeSignatureForNode:(id)n; -- (OSCValue *) currentValueForNode:(id)n; -- (NSString *) returnTypeStringForNode:(id)n; -@end - - - - -/// OSCNode describes a single destination for OSC addresses. The OSC address space is made up of many different nodes. This class is optional- it is not used for basic OSC message sending/receiving, and only gets used if you start working with OSCAddressSpace. -/*! -The OSC specification describes a slash-delineated address space- as messages are received, they are dispatched to the described address. An OSCNode represents a single unique destination in the OSC address space. OSCNodes may have subnodes and have a non-retaining reference to their parent node (unless they're top-level, in which case their parent node is nil). They retain a copy of the last message dispatched directly to this node for convenience. OSCNode instances have zero or more delegates- delegates are NOT retained, and are assumed to respond to all the methods in OSCNOdeDelegateProtocol. - -If you want to work with an instance of OSCNode, you need to acquire or work with it from the main OSCAddressSpace. Do not just start creating OSCNode instances willy-nilly; there's no point, they're only useful if they're part of an address space. - -Generally speaking, it's a good idea for each instance of OSCNode to have a discrete type, as this makes it easier to browse and filter the hierarchy of OSCNode instances that make up the OSC address space. Most of the documented methods here are simply for querying basic properties of the OSCNode instance or doing simple message dispatch. -*/ - - - - -@interface OSCNode : NSObject { - id addressSpace; // the class OSCAddressSpace is a subclass of OSCNode, and is essentially the "root" node. all OSCNodes have a pointer to the root node! - BOOL deleted; - - OSSpinLock nameLock; - NSString *nodeName; /// "local" name: name of the node at /a/b/c is "c" - NSString *fullName; /// "full" name: name of the node at /a/b/c is "/a/b/c" - MutLockArray *nodeContents; /// Contains OSCNode instances- this OSCNode's sub-nodes. type 'MutLockArray'- this should all be threadsafe... - OSCNode *parentNode; // my "parent" node (or nil). NOT retained! - OSCNodeType nodeType; /// What 'type' of node i am - BOOL hiddenInMenu; // NO by default. if YES, this node (and all its sub-nodes) will be omitted from menus! - - OSCMessage *lastReceivedMessage; /// The last message sent to this node is retained (the message is retained instead of the value because messages can have multiple values) - OSSpinLock lastReceivedMessageLock; - MutNRLockArray *delegateArray; // type 'MutNRLockArray'. contents are NOT retained! could be anything! - - BOOL autoQueryReply; // NO by default. if YES and the queryDelegate is nil or doesn't respond to one of the delegate methods or returns nil from one of the delegate methods, the OSCNode will try to automatically respond to the query - id queryDelegate; // nil by default, NOT retained; unlike "normal" delegates, an OSCNode has a single query delegate -} - -// only called by the address space to craft a formatted string for logging purposes -- (void) _logDescriptionToString:(NSMutableString *)s tabDepth:(int)d; - -+ (id) createWithName:(NSString *)n; -- (id) initWithName:(NSString *)n; -- (id) init; -- (void) prepareToBeDeleted; - -// convenience method so nodes may be sorted by name -- (NSComparisonResult) nodeNameCompare:(OSCNode *)comp; - -// "local" add/remove/find methods for working with my node contents -- (void) addLocalNode:(OSCNode *)n; -- (void) addLocalNodes:(NSArray *)n; -- (void) removeLocalNode:(OSCNode *)n; // this just removes the passed node from my 'nodeContents' array- doesn't assume that the passed node will be released! -- (void) deleteLocalNode:(OSCNode *)n; // calls 'prepareToBeDeleted' on the passed node- call this is if you want to make sure that the passed node will stop sending delegate messages/etc! -- (void) removeFromAddressSpace; // tries to remove me from the OSCAddressSpace singleton by setting my fullName to nil - -/// It's assumed that the passed name doesn't have any wildcards/regex. If the receiver contains a node with the identical name as the passed string, the node will be returned. This is not a "deep" search, it's restricted to the receiver's nodeContents array. -- (OSCNode *) findLocalNodeNamed:(NSString *)n; -/// Same as findLocalNodeNamed:, but if any of the interim nodes don't exist they will be created. -- (OSCNode *) findLocalNodeNamed:(NSString *)n createIfMissing:(BOOL)c; - -/// Compares the names of all the receiver's sub-nodes to the passed POSIX regex string, returns an array with all the nodes whose nodeNames match the regex. If there are no sub-nodes or none of the sub-nodes match the regex, returns nil. -- (NSMutableArray *) findLocalNodesMatchingPOSIXRegex:(NSString *)regex; -- (void) _addLocalNodesMatchingRegex:(NSString *)regex toMutArray:(NSMutableArray *)a; - - -/// Calls findNodeForAddress:createIfMissing:NO. -// these find methods do NOT work with regex! it is assumed that the passed string is NOT a regex algorithm! -- (OSCNode *) findNodeForAddress:(NSString *)p; -/// It's assumed that the passed address doesn't have any wildcards/regex (no checking is done). The receiver tries to locate the node at the passed address (relative to the receiver). If c is YES, any OSCNodes missing in the passed address are automatically created. If they have sub-nodes, the auto-created nodes' types are set to OSCNodeDirectory; if not, the auto-created nodes' types are OSCNodeTypeUnknown -- (OSCNode *) findNodeForAddress:(NSString *)p createIfMissing:(BOOL)c; -- (OSCNode *) findNodeForAddressArray:(NSArray *)a; -- (OSCNode *) findNodeForAddressArray:(NSArray *)a createIfMissing:(BOOL)c; -// these find methods work with regex! path components may be regex strings- this returns all the nodes that match every component in the passed address/address array! -- (NSMutableArray *) findNodesMatchingAddress:(NSString *)a; -- (NSMutableArray *) findNodesMatchingAddressArray:(NSArray *)a; - -// a node's delegate is informed of received osc messages or name changes (OSCNodeDelegateProtocol) -// NODE DELEGATES ARE __NOT__ RETAINED! -// NODE DELEGATES __MUST__ REMOVE THEMSELVES FROM THE DELEGATE ARRAY! -- (void) addDelegate:(id)d; -- (void) removeDelegate:(id)d; -- (void) informDelegatesOfNameChange; -- (void) addDelegatesFromNode:(OSCNode *)n; - -/// Sends the passed message to all of the node's delegates- it does NOT parse the address at all (it's assumed that the passed message's address points to this instance of OSCNode). If the passed message is a query, this tries to assemble a reply (either from the queryDelegate or automatically if autoQueryReply is enabled) which is sent to the main address space. -- (void) dispatchMessage:(OSCMessage *)m; - -@property (assign, readwrite) id addressSpace; -@property (assign, readwrite) NSString *nodeName; -- (void) _setNodeName:(NSString *)n; -@property (readonly) NSString *fullName; -@property (readonly) id nodeContents; -@property (assign, readwrite) OSCNode *parentNode; -@property (assign, readwrite) int nodeType; -@property (assign, readwrite) BOOL hiddenInMenu; -@property (readonly) OSCMessage *lastReceivedMessage; -@property (readonly) OSCValue *lastReceivedValue; -@property (readonly) id delegateArray; -//@property (readonly) id queryDelegateArray; -@property (assign,readwrite) BOOL autoQueryReply; -@property (assign,readwrite) id queryDelegate; - -@end diff --git a/atemOSC.app/Contents/Frameworks/VVOSC.framework/Versions/A/Headers/OSCOutPort.h b/atemOSC.app/Contents/Frameworks/VVOSC.framework/Versions/A/Headers/OSCOutPort.h deleted file mode 100644 index 091b593..0000000 --- a/atemOSC.app/Contents/Frameworks/VVOSC.framework/Versions/A/Headers/OSCOutPort.h +++ /dev/null @@ -1,71 +0,0 @@ - -#if IPHONE -#import -#else -#import -#endif - - -#include - -#import "OSCPacket.h" -#import "OSCBundle.h" -#import "OSCMessage.h" - - - - -/// OSCOutPort handles everything needed to send OSC data to a given address -/*! -You should never create or destroy an instance of this class manually. OSCOutPort instances should be created/destroyed by the OSCManager. - -the documentation here only covers the basics, the header file for this class is small and heavily commented if you want to know more because you're heavily customizing OSCOutPort. -*/ -@interface OSCOutPort : NSObject { - BOOL deleted; - int sock; - struct sockaddr_in addr; - unsigned short port; //! -#else -#import -#endif - -#include -#import "OSCBundle.h" -#import "OSCMessage.h" - - - -/// Used to parse raw OSC data or to assemble raw OSC data from OSCMessages/OSCBundles -/*! -An OSC packet is the basic unit of transmitting OSC data- the OSCPacket class is mostly used internally to either parse received raw data or to assemble raw data from OSCMessages/OSCBundles for sending. -*/ - -@interface OSCPacket : NSObject { - long bufferLength; - unsigned char *payload; -} - -+ (void) parseRawBuffer:(unsigned char *)b ofMaxLength:(int)l toInPort:(id)p fromAddr:(unsigned int)txAddr port:(unsigned short)txPort; -/// Creates & returns an auto-released packet from either an OSCBundle or an OSCMessage -+ (id) createWithContent:(id)c; -- (id) initWithContent:(id)c; - -- (long) bufferLength; -- (unsigned char *) payload; - -@end diff --git a/atemOSC.app/Contents/Frameworks/VVOSC.framework/Versions/A/Headers/OSCStringAdditions.h b/atemOSC.app/Contents/Frameworks/VVOSC.framework/Versions/A/Headers/OSCStringAdditions.h deleted file mode 100644 index 48146c2..0000000 --- a/atemOSC.app/Contents/Frameworks/VVOSC.framework/Versions/A/Headers/OSCStringAdditions.h +++ /dev/null @@ -1,49 +0,0 @@ - -#if IPHONE -#import -#else -#import -#endif -#import -#import - - - - -extern NSCharacterSet *_OSCStrAdditionsWildcardCharSet; -extern MutLockDict *_OSCStrPOSIXRegexDict; // key is the regex string, object is an OSCPOSIXRegExpHolder containing the compiled regex- which is threadsafe, and may be reused - - - - -@interface OSCPOSIXRegExpHolder : NSObject { - NSString *regexString; - regex_t *regex; -} - -+ (id) createWithString:(NSString *)n; -- (id) initWithString:(NSString *)n; -- (BOOL) evalAgainstString:(NSString *)n; -- (NSString *) regexString; - -@end - - - - -@interface NSString (OSCStringAdditions) - -+ (NSString *) stringWithBytes:(const void *)b length:(NSUInteger)l encoding:(NSStringEncoding)e; -+ (NSString *) stringFromRawIPAddress:(unsigned long)i; -- (NSString *) trimFirstAndLastSlashes; -- (NSString *) stringByDeletingFirstPathComponent; -- (NSString *) firstPathComponent; -- (NSString *) stringBySanitizingForOSCPath; -- (NSString *) stringByDeletingLastAndAddingFirstSlash; -- (BOOL) containsOSCWildCard; - -- (BOOL) predicateMatchAgainstRegex:(NSString *)r; -- (BOOL) posixMatchAgainstSlowRegex:(NSString *)r; -- (BOOL) posixMatchAgainstFastRegex:(NSString *)r; - -@end diff --git a/atemOSC.app/Contents/Frameworks/VVOSC.framework/Versions/A/Headers/OSCValue.h b/atemOSC.app/Contents/Frameworks/VVOSC.framework/Versions/A/Headers/OSCValue.h deleted file mode 100644 index fd0ea5e..0000000 --- a/atemOSC.app/Contents/Frameworks/VVOSC.framework/Versions/A/Headers/OSCValue.h +++ /dev/null @@ -1,107 +0,0 @@ - -#if IPHONE -#import -#else -#import -#endif -#import "OSCConstants.h" - - - - -/// OSCValue encapsulates any value you can send or receive via OSC. It is NOT mutable at this time. -/*! -When you send or receive values via OSC, you'll be working with OSCValue objects in an OSCMessage. Internally, OSCValue isn't mutable, and it attempts to store its value in its native format (int for an int, float for a float) instead of relying on NSNumber. The exceptions to this are NSColor/UIColor and NSString. -*/ - - - - -@interface OSCValue : NSObject { - OSCValueType type; //! -#import -#else -#import -#endif -//#import -#import -#import -#import -#import -#include - - - -#if IPHONE -@interface OSCZeroConfDomain : NSObject { -#else -@interface OSCZeroConfDomain : NSObject { -#endif - NSString *domainString; - NSNetServiceBrowser *serviceBrowser; - - MutLockArray *servicesArray; - - id domainManager; -} - -+ (id) createWithDomain:(NSString *)d andDomainManager:(id)m; -- (id) initWithDomain:(NSString *)d andDomainManager:(id)m; - -// NSNetServiceBrowser delegate methods -- (void)netServiceBrowser:(NSNetServiceBrowser *)n didFindService:(NSNetService *)x moreComing:(BOOL)m; -- (void)netServiceBrowser:(NSNetServiceBrowser *)n didNotSearch:(NSDictionary *)err; -- (void)netServiceBrowser:(NSNetServiceBrowser *)n didRemoveService:(NSNetService *)s moreComing:(BOOL)m; - -// NSNetService delegate methods -- (void)netService:(NSNetService *)n didNotResolve:(NSDictionary *)err; -- (void)netServiceDidResolveAddress:(NSNetService *)n; - -@end diff --git a/atemOSC.app/Contents/Frameworks/VVOSC.framework/Versions/A/Headers/OSCZeroConfManager.h b/atemOSC.app/Contents/Frameworks/VVOSC.framework/Versions/A/Headers/OSCZeroConfManager.h deleted file mode 100644 index c1795ab..0000000 --- a/atemOSC.app/Contents/Frameworks/VVOSC.framework/Versions/A/Headers/OSCZeroConfManager.h +++ /dev/null @@ -1,37 +0,0 @@ - -#if IPHONE -#import -#else -#import -#endif - -#import -#import "OSCZeroConfDomain.h" -#import - - - - -#if IPHONE -@interface OSCZeroConfManager : NSObject { -#else -@interface OSCZeroConfManager : NSObject { -#endif - NSNetServiceBrowser *domainBrowser; - - NSMutableDictionary *domainDict; - pthread_rwlock_t domainLock; - - id oscManager; -} - -- (id) initWithOSCManager:(id)m; - -- (void) serviceRemoved:(NSNetService *)s; -- (void) serviceResolved:(NSNetService *)s; - -// NSNetServiceBrowser delegate methods -- (void)netServiceBrowser:(NSNetServiceBrowser *)n didFindDomain:(NSString *)d moreComing:(BOOL)m; -- (void)netServiceBrowser:(NSNetServiceBrowser *)n didNotSearch:(NSDictionary *)err; - -@end diff --git a/atemOSC.app/Contents/Frameworks/VVOSC.framework/Versions/A/Headers/VVOSC.h b/atemOSC.app/Contents/Frameworks/VVOSC.framework/Versions/A/Headers/VVOSC.h deleted file mode 100644 index 47eeb3a..0000000 --- a/atemOSC.app/Contents/Frameworks/VVOSC.framework/Versions/A/Headers/VVOSC.h +++ /dev/null @@ -1,121 +0,0 @@ - - -#import "OSCConstants.h" - -#import "OSCValue.h" -#import "OSCMessage.h" -#import "OSCBundle.h" -#import "OSCPacket.h" - -#import "OSCOutPort.h" -#import "OSCInPort.h" - -#import "OSCManager.h" -#import "OSCZeroConfManager.h" - -#import "OSCNode.h" -#import "OSCAddressSpace.h" - -#import "OSCStringAdditions.h" - - - - -/// Most common means of passing OSC data to your application. Delegates of OSCManager and OSCInPort should support this protocol. -/*! -When instances of OSCInPort and OSCManager receive OSC data, they pass it to their delegate by calling this method. If you want to receive OSC data, your OSCManager's delegate must respond to this method! -*/ -@protocol OSCDelegateProtocol -/// This method is called whenever your in port/manager receives an OSCMessage. -- (void) receivedOSCMessage:(OSCMessage *)m; -@end - - - - -/* - the following stuff is for doxygen -*/ - - -/*! -\mainpage - -\htmlonly - - - - -Introduction -

    -VVOSC is an Objective-c framework for assembling, sending, and receiving OSC (Open Sound Control) messages on OS X. A simple sample application (gui) which sends and receives OSC messages is also included to aid in the debugging of your software. There's also an SDK which allows you to develop iPhone applications which use VVOSC. All the source code is available on the project homepage: http://code.google.com/p/vvopensource -

    - - -Features and Capabilities -

    -

  • Includes a sample GUI app for debugging OSC applications and hardware that also demonstrates use of the framework
  • -
  • Packet parsing (client) + construction (server)
  • -
  • Creates bundles/nested bundles, safely parse bundles/nested bundles
  • -
  • Detects other OSC destinations via bonjour/zero-conf networking and automatically creates output ports so you can send data to them.
  • -
  • Input ports automagically advertise their presence via bonjour/zero-conf networking. This is as close to no-setup as it gets!
  • -
  • Supports the following data types: i (int32), f (float32), s/S (OSC-string), b (OSC blob), h (64-bit int), d (64-bit float/double), r (32-bit RGBA color), m (MIDI message), T (tru), F (false), N(nil), I (infinity), t (OSC-timetag)
  • -
  • Processing frequency defaults to 30hz, but may be adjusted dynamically well in excess of 100hz
  • -
  • Multithreaded- each input port runs on its own thread- and threadsafe.
  • -
  • Optional OSC address space classes (OSCNode & OSCAddressSpace) may be used to quickly create a simple OSC-based API for controlling software. Address space includes POSIX regex-based pattern matching engine for dispatching a single message to multiple nodes.
  • -
  • Built on a handful of small, easy-to-grok classes written specifically for OS X. Very easy to understand, modify, subclass, or extend.
  • -
  • Project includes targets that build and install an SDK for using VVOSC in iOS apps
  • -

    - -Breaks from the OSC specification -

    -
  • "char" data type not supported yet, you can use "string" in the meantime
  • -
  • It's possible to create an OSCValue from an NSString containing UTF8 characters, which VVOSC will try to send- and if the software receiving this data doesn't freak out, this allows you to UTF8 characters. In other words, VVOSC doesn't explicitly prevent the use of non-ASCII characters, so it's possible to use it to create incompatible OSC data!
  • -
  • The OSC specification describes a limited subset of regex to be used in wildcard/pattern matching for OSC dispatch. VVOSC's message dispatch is presently a POSIX regex engine simply because it was faster and easier to get going (it's built into the OS) than rolling my own. The specific engine used may change if message dispatch becomes a speed issue in the future; presumably, this ambiguity is why the OSC spec describes a specific and limited subset of regex!
  • -
  • The OSC spec describes the optional type characters [ and ] to delineate arrays and basic node-based structures for ad-hoc data types. Lacking any specific usage examples, this isn't supported yet- if someone wants to send me a specific example i can use to support this protocol properly, please let me know.
  • -
  • While VVOSC parses, stores, and allows you to set OSC time tags (and even create and pass time tags as values), it doesn't perform any delay or scheduling if it receives an OSC bundle with a time tag which is later than the current time. Parsed time tags are available to your applications as the 'timeTag' variable of a passed OSCMessage, which is stored as an NSDate (which, internally, is a double which basically represents 64-bit NTP time, as I understand it).
  • -

    - - -Sample code - -
    -// create an OSCManager- set myself up as its delegate
    -manager = [[OSCManager alloc] init];
    -[manager setDelegate:self];
    -
    -// create an input port for receiving OSC data
    -[manager createNewInputForPort:1234];
    -
    -// create an output so i can send OSC data to myself
    -outPort = [manager createNewOutputToAddress:@"127.0.0.1" atPort:1234];
    -
    -// make an OSC message
    -newMsg = [OSCMessage createWithAddress:@"/Address/Path/1"];
    -
    -// add a bunch arguments to the message
    -[newMsg addInt:12];
    -[newMsg addFloat:12.34];
    -[newMsg addColor:[NSColor colorWithDeviceRed:0.0 green:1.0 blue:0.0 alpha:1.0]];
    -[newMsg addBOOL:YES];
    -[newMsg addString:@"Hello World!"];
    -
    -// send the OSC message
    -[outPort sendThisMessage:newMsg];
    -
    - - -\endhtmlonly -*/ diff --git a/atemOSC.app/Contents/Frameworks/VVOSC.framework/Versions/A/Headers/lgpl-3.0.txt b/atemOSC.app/Contents/Frameworks/VVOSC.framework/Versions/A/Headers/lgpl-3.0.txt deleted file mode 100644 index 65c5ca8..0000000 --- a/atemOSC.app/Contents/Frameworks/VVOSC.framework/Versions/A/Headers/lgpl-3.0.txt +++ /dev/null @@ -1,165 +0,0 @@ - GNU LESSER GENERAL PUBLIC LICENSE - Version 3, 29 June 2007 - - Copyright (C) 2007 Free Software Foundation, Inc. - Everyone is permitted to copy and distribute verbatim copies - of this license document, but changing it is not allowed. - - - This version of the GNU Lesser General Public License incorporates -the terms and conditions of version 3 of the GNU General Public -License, supplemented by the additional permissions listed below. - - 0. Additional Definitions. - - As used herein, "this License" refers to version 3 of the GNU Lesser -General Public License, and the "GNU GPL" refers to version 3 of the GNU -General Public License. - - "The Library" refers to a covered work governed by this License, -other than an Application or a Combined Work as defined below. - - An "Application" is any work that makes use of an interface provided -by the Library, but which is not otherwise based on the Library. -Defining a subclass of a class defined by the Library is deemed a mode -of using an interface provided by the Library. - - A "Combined Work" is a work produced by combining or linking an -Application with the Library. The particular version of the Library -with which the Combined Work was made is also called the "Linked -Version". - - The "Minimal Corresponding Source" for a Combined Work means the -Corresponding Source for the Combined Work, excluding any source code -for portions of the Combined Work that, considered in isolation, are -based on the Application, and not on the Linked Version. - - The "Corresponding Application Code" for a Combined Work means the -object code and/or source code for the Application, including any data -and utility programs needed for reproducing the Combined Work from the -Application, but excluding the System Libraries of the Combined Work. - - 1. Exception to Section 3 of the GNU GPL. - - You may convey a covered work under sections 3 and 4 of this License -without being bound by section 3 of the GNU GPL. - - 2. Conveying Modified Versions. - - If you modify a copy of the Library, and, in your modifications, a -facility refers to a function or data to be supplied by an Application -that uses the facility (other than as an argument passed when the -facility is invoked), then you may convey a copy of the modified -version: - - a) under this License, provided that you make a good faith effort to - ensure that, in the event an Application does not supply the - function or data, the facility still operates, and performs - whatever part of its purpose remains meaningful, or - - b) under the GNU GPL, with none of the additional permissions of - this License applicable to that copy. - - 3. Object Code Incorporating Material from Library Header Files. - - The object code form of an Application may incorporate material from -a header file that is part of the Library. You may convey such object -code under terms of your choice, provided that, if the incorporated -material is not limited to numerical parameters, data structure -layouts and accessors, or small macros, inline functions and templates -(ten or fewer lines in length), you do both of the following: - - a) Give prominent notice with each copy of the object code that the - Library is used in it and that the Library and its use are - covered by this License. - - b) Accompany the object code with a copy of the GNU GPL and this license - document. - - 4. Combined Works. - - You may convey a Combined Work under terms of your choice that, -taken together, effectively do not restrict modification of the -portions of the Library contained in the Combined Work and reverse -engineering for debugging such modifications, if you also do each of -the following: - - a) Give prominent notice with each copy of the Combined Work that - the Library is used in it and that the Library and its use are - covered by this License. - - b) Accompany the Combined Work with a copy of the GNU GPL and this license - document. - - c) For a Combined Work that displays copyright notices during - execution, include the copyright notice for the Library among - these notices, as well as a reference directing the user to the - copies of the GNU GPL and this license document. - - d) Do one of the following: - - 0) Convey the Minimal Corresponding Source under the terms of this - License, and the Corresponding Application Code in a form - suitable for, and under terms that permit, the user to - recombine or relink the Application with a modified version of - the Linked Version to produce a modified Combined Work, in the - manner specified by section 6 of the GNU GPL for conveying - Corresponding Source. - - 1) Use a suitable shared library mechanism for linking with the - Library. A suitable mechanism is one that (a) uses at run time - a copy of the Library already present on the user's computer - system, and (b) will operate properly with a modified version - of the Library that is interface-compatible with the Linked - Version. - - e) Provide Installation Information, but only if you would otherwise - be required to provide such information under section 6 of the - GNU GPL, and only to the extent that such information is - necessary to install and execute a modified version of the - Combined Work produced by recombining or relinking the - Application with a modified version of the Linked Version. (If - you use option 4d0, the Installation Information must accompany - the Minimal Corresponding Source and Corresponding Application - Code. If you use option 4d1, you must provide the Installation - Information in the manner specified by section 6 of the GNU GPL - for conveying Corresponding Source.) - - 5. Combined Libraries. - - You may place library facilities that are a work based on the -Library side by side in a single library together with other library -facilities that are not Applications and are not covered by this -License, and convey such a combined library under terms of your -choice, if you do both of the following: - - a) Accompany the combined library with a copy of the same work based - on the Library, uncombined with any other library facilities, - conveyed under the terms of this License. - - b) Give prominent notice with the combined library that part of it - is a work based on the Library, and explaining where to find the - accompanying uncombined form of the same work. - - 6. Revised Versions of the GNU Lesser General Public License. - - The Free Software Foundation may publish revised and/or new versions -of the GNU Lesser General Public License from time to time. Such new -versions will be similar in spirit to the present version, but may -differ in detail to address new problems or concerns. - - Each version is given a distinguishing version number. If the -Library as you received it specifies that a certain numbered version -of the GNU Lesser General Public License "or any later version" -applies to it, you have the option of following the terms and -conditions either of that published version or of any later version -published by the Free Software Foundation. If the Library as you -received it does not specify a version number of the GNU Lesser -General Public License, you may choose any version of the GNU Lesser -General Public License ever published by the Free Software Foundation. - - If the Library as you received it specifies that a proxy can decide -whether future versions of the GNU Lesser General Public License shall -apply, that proxy's public statement of acceptance of any version is -permanent authorization for you to choose that version for the -Library. diff --git a/atemOSC.app/Contents/Frameworks/VVOSC.framework/Versions/A/Resources/Info.plist b/atemOSC.app/Contents/Frameworks/VVOSC.framework/Versions/A/Resources/Info.plist index ed0ff17..59cc03a 100644 --- a/atemOSC.app/Contents/Frameworks/VVOSC.framework/Versions/A/Resources/Info.plist +++ b/atemOSC.app/Contents/Frameworks/VVOSC.framework/Versions/A/Resources/Info.plist @@ -3,36 +3,42 @@ BuildMachineOSBuild - 11E53 + 19B88 CFBundleDevelopmentRegion English CFBundleExecutable VVOSC CFBundleGetInfoString - 156 + 175 CFBundleIdentifier - com.vidvox.VVOSC + com.yourcompany.VVOSC CFBundleInfoDictionaryVersion 6.0 CFBundlePackageType FMWK CFBundleSignature ???? + CFBundleSupportedPlatforms + + MacOSX + CFBundleVersion - 156 + 175 DTCompiler com.apple.compilers.llvm.clang.1_0 DTPlatformBuild - 4E2002 + 11C29 DTPlatformVersion GM DTSDKBuild - 11E53 + 19B90 DTSDKName - + macosx10.15 DTXcode - 0432 + 1130 DTXcodeBuild - 4E2002 + 11C29 + LSMinimumSystemVersion + 10.10 diff --git a/atemOSC.app/Contents/Frameworks/VVOSC.framework/Versions/A/VVOSC b/atemOSC.app/Contents/Frameworks/VVOSC.framework/Versions/A/VVOSC index f2043fe..aa82879 100755 Binary files a/atemOSC.app/Contents/Frameworks/VVOSC.framework/Versions/A/VVOSC and b/atemOSC.app/Contents/Frameworks/VVOSC.framework/Versions/A/VVOSC differ diff --git a/atemOSC.app/Contents/Frameworks/VVOSC.framework/Versions/A/_CodeSignature/CodeResources b/atemOSC.app/Contents/Frameworks/VVOSC.framework/Versions/A/_CodeSignature/CodeResources new file mode 100644 index 0000000..fcfbce9 --- /dev/null +++ b/atemOSC.app/Contents/Frameworks/VVOSC.framework/Versions/A/_CodeSignature/CodeResources @@ -0,0 +1,132 @@ + + + + + files + + Resources/Info.plist + + IsW4dK+rcFdi1JzfNodOnrc5F/Y= + + + files2 + + Resources/Info.plist + + hash + + IsW4dK+rcFdi1JzfNodOnrc5F/Y= + + hash2 + + RYrLPHhxjjDUYtKfdyUwNSb4fw5I1TVqQ8VgYW6JBNY= + + + + rules + + ^Resources/ + + ^Resources/.*\.lproj/ + + optional + + weight + 1000 + + ^Resources/.*\.lproj/locversion.plist$ + + omit + + weight + 1100 + + ^Resources/Base\.lproj/ + + weight + 1010 + + ^version.plist$ + + + rules2 + + .*\.dSYM($|/) + + weight + 11 + + ^(.*/)?\.DS_Store$ + + omit + + weight + 2000 + + ^(Frameworks|SharedFrameworks|PlugIns|Plug-ins|XPCServices|Helpers|MacOS|Library/(Automator|Spotlight|LoginItems))/ + + nested + + weight + 10 + + ^.* + + ^Info\.plist$ + + omit + + weight + 20 + + ^PkgInfo$ + + omit + + weight + 20 + + ^Resources/ + + weight + 20 + + ^Resources/.*\.lproj/ + + optional + + weight + 1000 + + ^Resources/.*\.lproj/locversion.plist$ + + omit + + weight + 1100 + + ^Resources/Base\.lproj/ + + weight + 1010 + + ^[^/]+$ + + nested + + weight + 10 + + ^embedded\.provisionprofile$ + + weight + 20 + + ^version\.plist$ + + weight + 20 + + + + diff --git a/atemOSC.app/Contents/Frameworks/VVOSC.framework/Versions/Current b/atemOSC.app/Contents/Frameworks/VVOSC.framework/Versions/Current new file mode 120000 index 0000000..8c7e5a6 --- /dev/null +++ b/atemOSC.app/Contents/Frameworks/VVOSC.framework/Versions/Current @@ -0,0 +1 @@ +A \ No newline at end of file diff --git a/atemOSC.app/Contents/Frameworks/VVOSC.framework/Versions/Current/Headers/OSCAddressSpace.h b/atemOSC.app/Contents/Frameworks/VVOSC.framework/Versions/Current/Headers/OSCAddressSpace.h deleted file mode 100644 index 966aa33..0000000 --- a/atemOSC.app/Contents/Frameworks/VVOSC.framework/Versions/Current/Headers/OSCAddressSpace.h +++ /dev/null @@ -1,77 +0,0 @@ - -#if IPHONE -#import -#else -#import -#endif -#import "OSCNode.h" - - - - -// OSCAddressSpace delegate protocol -@protocol OSCAddressSpaceDelegateProtocol -- (void) nodeRenamed:(OSCNode *)n; -- (void) dispatchReplyOrError:(OSCMessage *)m; // this method is called by nodes in the address space. the passed message is a reply or error in response to a query which should be sent out an output. -@end - - - - -// this is the main instance of OSCAddressSpace. it is auto-created when this class is initialized -extern id _mainAddressSpace; - - - - -/// OSCAddressSpace is a representation of the OSC address space described in the OSC spec. It is a subclass of OSCNode. This class is optional- it's not needed for basic OSC message sending/receiving. -/*! -There should only ever be one instance of OSCAddressSpace, and you shouldn't explicitly create it. Just call [OSCAddressSpace class] (or any other OSCAddressSpace method) and it will be automatically created. This main instance may be retrieved by the class method +[OSCAddressSpace mainAddressSpace] or by the class variable _mainAddressSpace. - -OSCAddressSpace is your application's main way of dealing with the OSC address space- if you need to dispatch a message, set, rename, or delete a node, you should do via the main instance of this class. -*/ -@interface OSCAddressSpace : OSCNode { - id delegate; -} - -/// Returns the main instance of the OSC address space (and creates it if necessary) -+ (id) mainAddressSpace; -+ (void) refreshMenu; -#if !IPHONE -+ (NSMenu *) makeMenuForNode:(OSCNode *)n withTarget:(id)t action:(SEL)a; -+ (NSMenu *) makeMenuForNode:(OSCNode *)n ofType:(NSIndexSet *)ts withTarget:(id)t action:(SEL)a; -#endif - -/// Renames 'before' to 'after'. Sub-nodes stay with their owners! Can also be though of as a "move". -- (void) renameAddress:(NSString *)before to:(NSString *)after; -- (void) renameAddressArray:(NSArray *)before toArray:(NSArray *)after; - -/// If 'n' is nil, the node at the passed address will be deleted (as will any of its sub-nodes) -- (void) setNode:(OSCNode *)n forAddress:(NSString *)a; -- (void) setNode:(OSCNode *)n forAddress:(NSString *)a createIfMissing:(BOOL)c; -- (void) setNode:(OSCNode *)n forAddressArray:(NSArray *)a; -- (void) setNode:(OSCNode *)n forAddressArray:(NSArray *)a createIfMissing:(BOOL)c; - -// this method is called whenever a node is added to another node -- (void) nodeRenamed:(OSCNode *)n; - -/// Unlike a normal OSCNode, this method finds the destination node and then dispatches the msg. If the destination is itself, it just calls the super. -- (void) dispatchMessage:(OSCMessage *)m; -// This method gets called by an OSCNode inside me (or by me), and you probably won't need to ever call this method. The passed message is a reply or error that needs to be sent back in response to a query. The passed OSCMessage contains the IP address and port of the destination. This method just passes the data on to the addres space's delegate- it does NOT actually send anything out, this is something you'll have to implement in the delegate. -- (void) _dispatchReplyOrError:(OSCMessage *)m; - -- (void) addDelegate:(id)d forPath:(NSString *)p; -- (void) removeDelegate:(id)d forPath:(NSString *)p; -/* -- (void) addQueryDelegate:(id)d forPath:(NSString *)p; -- (void) removeQueryDelegate:(id)d forPath:(NSString *)p; -*/ -@property (assign, readwrite) id delegate; - - -@end - - - - - diff --git a/atemOSC.app/Contents/Frameworks/VVOSC.framework/Versions/Current/Headers/OSCBundle.h b/atemOSC.app/Contents/Frameworks/VVOSC.framework/Versions/Current/Headers/OSCBundle.h deleted file mode 100644 index 857d688..0000000 --- a/atemOSC.app/Contents/Frameworks/VVOSC.framework/Versions/Current/Headers/OSCBundle.h +++ /dev/null @@ -1,46 +0,0 @@ - -#if IPHONE -#import -#else -#import -#endif - -#import "OSCMessage.h" - - - - -/// An OSCBundle is a "container" for multiple OSC messages or bundles (bundles may also be nested) -/*! -According to the OSC spec, an OSC bundle is basically a wrapper for multiple OSC messages (or other bundles). Instead of sending a bunch of individual messages, you can wrap them all into a bundle, and send the bundle (messages will still be sent to their individual address paths). OSCBundleÕs interface is correspondingly simple: you can create a bundle from some elements, or you can create a bundle and then add some elements (OSCMessages or OSCBundles) to it. - -OSC bundles also have a time stamp- by default, this will be set to immediate execution (0s except for a single 1 in the LSB). while timetag execution isn't widely supported, you may specify non-immediate time tags in the hopes that the software on the receiving end will execute the bundle in time. -*/ - - - - -@interface OSCBundle : NSObject { - NSMutableArray *elementArray; // array of messages or bundles - NSDate *timeTag; // nil by default, or the time at which the contents of this bundle should be dispatched -} - -+ (void) parseRawBuffer:(unsigned char *)b ofMaxLength:(int)l toInPort:(id)p inheritedTimeTag:(NSDate *)d fromAddr:(unsigned int)txAddr port:(unsigned short)txPort; -/// Creates and returns an auto-released bundle -+ (id) create; -/// Creates and returns an auto-released bundle with the single passed element -+ (id) createWithElement:(id)n; -/// Creates and returns an auto-released bundle with the array of passed elements -+ (id) createWithElementArray:(id)a; - -/// Adds the passed element to the bundle -- (void) addElement:(id)n; -/// Adds the array of passed elements to the bundle -- (void) addElementArray:(NSArray *)a; - -- (long) bufferLength; -- (void) writeToBuffer:(unsigned char *)b; - -@property (retain,readwrite) NSDate *timeTag; - -@end diff --git a/atemOSC.app/Contents/Frameworks/VVOSC.framework/Versions/Current/Headers/OSCConstants.h b/atemOSC.app/Contents/Frameworks/VVOSC.framework/Versions/Current/Headers/OSCConstants.h deleted file mode 100644 index 7261ae2..0000000 --- a/atemOSC.app/Contents/Frameworks/VVOSC.framework/Versions/Current/Headers/OSCConstants.h +++ /dev/null @@ -1,131 +0,0 @@ - -/*! -\file OSCConstants.h -\brief Constants and Macros used by one or more of the OSC classes in this framework -*/ - -/// OSCValueType -/*! -OSCValues have distinct types; these are used to describe the type of an OSCValue. -*/ -typedef enum { - OSCValInt = 1, //! -#else -#import -#endif - -#import -//#import -//#import -#import -#import -#import -#import "OSCPacket.h" -#import "OSCBundle.h" -#import "OSCMessage.h" -#import "OSCOutPort.h" - - - - -/// OSCInPort handles everything needed to receive OSC data on a given port -/*! -You should never create or destroy an instance of this class manually. OSCInPort instances should be created/destroyed by the OSCManager. - -Each OSCInPort is running in its own separate thread- so make sure anything called as a result of received OSC input is thread-safe! When OSCInPort receives data, it gets parsed and passed to the in port's delegate as a series of OSCMessages consisting of an address path and an OSCValue. By default, the inport's delegate is the manager which created it- and by default, managers pass this data on to *their* delegates (your objects/app). - -the documentation here only covers the basics, the header file for this class is small and heavily commented if you want to know more because you're heavily customizing OSCInPort. -*/ -@interface OSCInPort : NSObject { - BOOL deleted; // whether or not i'm deleted- ensures that socket gets closed - BOOL bound; // whether or not the socket is bound - OSSpinLock socketLock; - int sock; // socket file descriptor. remember, everything in unix is files! - struct sockaddr_in addr; // struct that describes *my* address (this is an in port) - unsigned short port; // the port number i'm receiving from - unsigned char buf[65506]; // the socket gets data and dumps it here immediately - - OSSpinLock scratchLock; - NSThread *thread; - //VVThreadLoop *threadLooper; - - NSString *portLabel; //! -#else -#import -#endif -#import "OSCAddressSpace.h" -#import "OSCZeroConfManager.h" -#import "OSCInPort.h" -#import "OSCOutPort.h" - - - - -/// Main VVOSC class- manages in & out port creation, zero configuration networking (bonjour/zeroconf) -/*! -The OSCManager will probably be the main class that you're working with: it creates/deletes inputs (which receive data) and outputs (which send data), passes any OSC data received to its delegate (your application), optionally handles distribution of all received OSC messages, and does other manager-ish things. You should only need one instance of OSCManager in your application. One of your objects should be OSCManager's delegate (see the "OSCDelegateProtocol" below) so you may receive OSC data. - -Incoming OSC data is initially received by an OSCInPort; fundamentally, in ports are running a loop which checks a socket for data received since the last loop. By default, the OSCInPort's delegate is the OSCManager which created it. Every time the loop runs, it passes the received data off to its delegate (the manager) as the raw address/value pairs in the order they're received. When the OSCManager receives data from its in port it immediately passes the received data to its delegate, which should respond to one of the following methods (referred to as the 'OSCDelegateProtocol'): - -\htmlonly -
    -@protocol OSCDelegateProtocol
    -- (void) receivedOSCMessage:(OSCMessage *)m;
    -@end -
    -\endhtmlonly - -...if you want to work with received OSC data, OSCManager's delegate must respond to this method! -*/ - - - - -@interface OSCManager : NSObject { - MutLockArray *inPortArray; // Array of OSCInPorts in a locking array for threadsafe access - MutLockArray *outPortArray; // Array of OSCOutPorts in a locking array for threadsafe access - - id delegate; //! -#else -#import -#endif -#import "OSCValue.h" -#import - - - - -/// Corresponds to an OSC message: contains zero or more values, and the address path the values have to get sent to. -/*! -According to the OSC spec, a message consists of an address path (where the message should be sent) and zero or more arguments. An OSCMessage must be created with an address path- once the OSCMessage exists, you may add as many arguments to it as you'd like. -*/ -@interface OSCMessage : NSObject { - NSString *address; //! 1 - - NSDate *timeTag; //! -#else -#import -#endif -#import "OSCMessage.h" -#import -#import -#import - - - - -@protocol OSCNodeDelegateProtocol -- (void) node:(id)n receivedOSCMessage:(id)msg; -- (void) nodeNameChanged:(id)node; -- (void) nodeDeleted:(id)node; -@end -/// An OSCNode's queryDelegate must respond to these methods, which are called when a query-type OSCMessage is dispatched to an OSCNode -@protocol OSCNodeQueryDelegateProtocol -- (NSMutableArray *) namespaceArrayForNode:(id)n; -- (NSString *) docStringForNode:(id)n; -- (NSString *) typeSignatureForNode:(id)n; -- (OSCValue *) currentValueForNode:(id)n; -- (NSString *) returnTypeStringForNode:(id)n; -@end - - - - -/// OSCNode describes a single destination for OSC addresses. The OSC address space is made up of many different nodes. This class is optional- it is not used for basic OSC message sending/receiving, and only gets used if you start working with OSCAddressSpace. -/*! -The OSC specification describes a slash-delineated address space- as messages are received, they are dispatched to the described address. An OSCNode represents a single unique destination in the OSC address space. OSCNodes may have subnodes and have a non-retaining reference to their parent node (unless they're top-level, in which case their parent node is nil). They retain a copy of the last message dispatched directly to this node for convenience. OSCNode instances have zero or more delegates- delegates are NOT retained, and are assumed to respond to all the methods in OSCNOdeDelegateProtocol. - -If you want to work with an instance of OSCNode, you need to acquire or work with it from the main OSCAddressSpace. Do not just start creating OSCNode instances willy-nilly; there's no point, they're only useful if they're part of an address space. - -Generally speaking, it's a good idea for each instance of OSCNode to have a discrete type, as this makes it easier to browse and filter the hierarchy of OSCNode instances that make up the OSC address space. Most of the documented methods here are simply for querying basic properties of the OSCNode instance or doing simple message dispatch. -*/ - - - - -@interface OSCNode : NSObject { - id addressSpace; // the class OSCAddressSpace is a subclass of OSCNode, and is essentially the "root" node. all OSCNodes have a pointer to the root node! - BOOL deleted; - - OSSpinLock nameLock; - NSString *nodeName; /// "local" name: name of the node at /a/b/c is "c" - NSString *fullName; /// "full" name: name of the node at /a/b/c is "/a/b/c" - MutLockArray *nodeContents; /// Contains OSCNode instances- this OSCNode's sub-nodes. type 'MutLockArray'- this should all be threadsafe... - OSCNode *parentNode; // my "parent" node (or nil). NOT retained! - OSCNodeType nodeType; /// What 'type' of node i am - BOOL hiddenInMenu; // NO by default. if YES, this node (and all its sub-nodes) will be omitted from menus! - - OSCMessage *lastReceivedMessage; /// The last message sent to this node is retained (the message is retained instead of the value because messages can have multiple values) - OSSpinLock lastReceivedMessageLock; - MutNRLockArray *delegateArray; // type 'MutNRLockArray'. contents are NOT retained! could be anything! - - BOOL autoQueryReply; // NO by default. if YES and the queryDelegate is nil or doesn't respond to one of the delegate methods or returns nil from one of the delegate methods, the OSCNode will try to automatically respond to the query - id queryDelegate; // nil by default, NOT retained; unlike "normal" delegates, an OSCNode has a single query delegate -} - -// only called by the address space to craft a formatted string for logging purposes -- (void) _logDescriptionToString:(NSMutableString *)s tabDepth:(int)d; - -+ (id) createWithName:(NSString *)n; -- (id) initWithName:(NSString *)n; -- (id) init; -- (void) prepareToBeDeleted; - -// convenience method so nodes may be sorted by name -- (NSComparisonResult) nodeNameCompare:(OSCNode *)comp; - -// "local" add/remove/find methods for working with my node contents -- (void) addLocalNode:(OSCNode *)n; -- (void) addLocalNodes:(NSArray *)n; -- (void) removeLocalNode:(OSCNode *)n; // this just removes the passed node from my 'nodeContents' array- doesn't assume that the passed node will be released! -- (void) deleteLocalNode:(OSCNode *)n; // calls 'prepareToBeDeleted' on the passed node- call this is if you want to make sure that the passed node will stop sending delegate messages/etc! -- (void) removeFromAddressSpace; // tries to remove me from the OSCAddressSpace singleton by setting my fullName to nil - -/// It's assumed that the passed name doesn't have any wildcards/regex. If the receiver contains a node with the identical name as the passed string, the node will be returned. This is not a "deep" search, it's restricted to the receiver's nodeContents array. -- (OSCNode *) findLocalNodeNamed:(NSString *)n; -/// Same as findLocalNodeNamed:, but if any of the interim nodes don't exist they will be created. -- (OSCNode *) findLocalNodeNamed:(NSString *)n createIfMissing:(BOOL)c; - -/// Compares the names of all the receiver's sub-nodes to the passed POSIX regex string, returns an array with all the nodes whose nodeNames match the regex. If there are no sub-nodes or none of the sub-nodes match the regex, returns nil. -- (NSMutableArray *) findLocalNodesMatchingPOSIXRegex:(NSString *)regex; -- (void) _addLocalNodesMatchingRegex:(NSString *)regex toMutArray:(NSMutableArray *)a; - - -/// Calls findNodeForAddress:createIfMissing:NO. -// these find methods do NOT work with regex! it is assumed that the passed string is NOT a regex algorithm! -- (OSCNode *) findNodeForAddress:(NSString *)p; -/// It's assumed that the passed address doesn't have any wildcards/regex (no checking is done). The receiver tries to locate the node at the passed address (relative to the receiver). If c is YES, any OSCNodes missing in the passed address are automatically created. If they have sub-nodes, the auto-created nodes' types are set to OSCNodeDirectory; if not, the auto-created nodes' types are OSCNodeTypeUnknown -- (OSCNode *) findNodeForAddress:(NSString *)p createIfMissing:(BOOL)c; -- (OSCNode *) findNodeForAddressArray:(NSArray *)a; -- (OSCNode *) findNodeForAddressArray:(NSArray *)a createIfMissing:(BOOL)c; -// these find methods work with regex! path components may be regex strings- this returns all the nodes that match every component in the passed address/address array! -- (NSMutableArray *) findNodesMatchingAddress:(NSString *)a; -- (NSMutableArray *) findNodesMatchingAddressArray:(NSArray *)a; - -// a node's delegate is informed of received osc messages or name changes (OSCNodeDelegateProtocol) -// NODE DELEGATES ARE __NOT__ RETAINED! -// NODE DELEGATES __MUST__ REMOVE THEMSELVES FROM THE DELEGATE ARRAY! -- (void) addDelegate:(id)d; -- (void) removeDelegate:(id)d; -- (void) informDelegatesOfNameChange; -- (void) addDelegatesFromNode:(OSCNode *)n; - -/// Sends the passed message to all of the node's delegates- it does NOT parse the address at all (it's assumed that the passed message's address points to this instance of OSCNode). If the passed message is a query, this tries to assemble a reply (either from the queryDelegate or automatically if autoQueryReply is enabled) which is sent to the main address space. -- (void) dispatchMessage:(OSCMessage *)m; - -@property (assign, readwrite) id addressSpace; -@property (assign, readwrite) NSString *nodeName; -- (void) _setNodeName:(NSString *)n; -@property (readonly) NSString *fullName; -@property (readonly) id nodeContents; -@property (assign, readwrite) OSCNode *parentNode; -@property (assign, readwrite) int nodeType; -@property (assign, readwrite) BOOL hiddenInMenu; -@property (readonly) OSCMessage *lastReceivedMessage; -@property (readonly) OSCValue *lastReceivedValue; -@property (readonly) id delegateArray; -//@property (readonly) id queryDelegateArray; -@property (assign,readwrite) BOOL autoQueryReply; -@property (assign,readwrite) id queryDelegate; - -@end diff --git a/atemOSC.app/Contents/Frameworks/VVOSC.framework/Versions/Current/Headers/OSCOutPort.h b/atemOSC.app/Contents/Frameworks/VVOSC.framework/Versions/Current/Headers/OSCOutPort.h deleted file mode 100644 index 091b593..0000000 --- a/atemOSC.app/Contents/Frameworks/VVOSC.framework/Versions/Current/Headers/OSCOutPort.h +++ /dev/null @@ -1,71 +0,0 @@ - -#if IPHONE -#import -#else -#import -#endif - - -#include - -#import "OSCPacket.h" -#import "OSCBundle.h" -#import "OSCMessage.h" - - - - -/// OSCOutPort handles everything needed to send OSC data to a given address -/*! -You should never create or destroy an instance of this class manually. OSCOutPort instances should be created/destroyed by the OSCManager. - -the documentation here only covers the basics, the header file for this class is small and heavily commented if you want to know more because you're heavily customizing OSCOutPort. -*/ -@interface OSCOutPort : NSObject { - BOOL deleted; - int sock; - struct sockaddr_in addr; - unsigned short port; //! -#else -#import -#endif - -#include -#import "OSCBundle.h" -#import "OSCMessage.h" - - - -/// Used to parse raw OSC data or to assemble raw OSC data from OSCMessages/OSCBundles -/*! -An OSC packet is the basic unit of transmitting OSC data- the OSCPacket class is mostly used internally to either parse received raw data or to assemble raw data from OSCMessages/OSCBundles for sending. -*/ - -@interface OSCPacket : NSObject { - long bufferLength; - unsigned char *payload; -} - -+ (void) parseRawBuffer:(unsigned char *)b ofMaxLength:(int)l toInPort:(id)p fromAddr:(unsigned int)txAddr port:(unsigned short)txPort; -/// Creates & returns an auto-released packet from either an OSCBundle or an OSCMessage -+ (id) createWithContent:(id)c; -- (id) initWithContent:(id)c; - -- (long) bufferLength; -- (unsigned char *) payload; - -@end diff --git a/atemOSC.app/Contents/Frameworks/VVOSC.framework/Versions/Current/Headers/OSCStringAdditions.h b/atemOSC.app/Contents/Frameworks/VVOSC.framework/Versions/Current/Headers/OSCStringAdditions.h deleted file mode 100644 index 48146c2..0000000 --- a/atemOSC.app/Contents/Frameworks/VVOSC.framework/Versions/Current/Headers/OSCStringAdditions.h +++ /dev/null @@ -1,49 +0,0 @@ - -#if IPHONE -#import -#else -#import -#endif -#import -#import - - - - -extern NSCharacterSet *_OSCStrAdditionsWildcardCharSet; -extern MutLockDict *_OSCStrPOSIXRegexDict; // key is the regex string, object is an OSCPOSIXRegExpHolder containing the compiled regex- which is threadsafe, and may be reused - - - - -@interface OSCPOSIXRegExpHolder : NSObject { - NSString *regexString; - regex_t *regex; -} - -+ (id) createWithString:(NSString *)n; -- (id) initWithString:(NSString *)n; -- (BOOL) evalAgainstString:(NSString *)n; -- (NSString *) regexString; - -@end - - - - -@interface NSString (OSCStringAdditions) - -+ (NSString *) stringWithBytes:(const void *)b length:(NSUInteger)l encoding:(NSStringEncoding)e; -+ (NSString *) stringFromRawIPAddress:(unsigned long)i; -- (NSString *) trimFirstAndLastSlashes; -- (NSString *) stringByDeletingFirstPathComponent; -- (NSString *) firstPathComponent; -- (NSString *) stringBySanitizingForOSCPath; -- (NSString *) stringByDeletingLastAndAddingFirstSlash; -- (BOOL) containsOSCWildCard; - -- (BOOL) predicateMatchAgainstRegex:(NSString *)r; -- (BOOL) posixMatchAgainstSlowRegex:(NSString *)r; -- (BOOL) posixMatchAgainstFastRegex:(NSString *)r; - -@end diff --git a/atemOSC.app/Contents/Frameworks/VVOSC.framework/Versions/Current/Headers/OSCValue.h b/atemOSC.app/Contents/Frameworks/VVOSC.framework/Versions/Current/Headers/OSCValue.h deleted file mode 100644 index fd0ea5e..0000000 --- a/atemOSC.app/Contents/Frameworks/VVOSC.framework/Versions/Current/Headers/OSCValue.h +++ /dev/null @@ -1,107 +0,0 @@ - -#if IPHONE -#import -#else -#import -#endif -#import "OSCConstants.h" - - - - -/// OSCValue encapsulates any value you can send or receive via OSC. It is NOT mutable at this time. -/*! -When you send or receive values via OSC, you'll be working with OSCValue objects in an OSCMessage. Internally, OSCValue isn't mutable, and it attempts to store its value in its native format (int for an int, float for a float) instead of relying on NSNumber. The exceptions to this are NSColor/UIColor and NSString. -*/ - - - - -@interface OSCValue : NSObject { - OSCValueType type; //! -#import -#else -#import -#endif -//#import -#import -#import -#import -#import -#include - - - -#if IPHONE -@interface OSCZeroConfDomain : NSObject { -#else -@interface OSCZeroConfDomain : NSObject { -#endif - NSString *domainString; - NSNetServiceBrowser *serviceBrowser; - - MutLockArray *servicesArray; - - id domainManager; -} - -+ (id) createWithDomain:(NSString *)d andDomainManager:(id)m; -- (id) initWithDomain:(NSString *)d andDomainManager:(id)m; - -// NSNetServiceBrowser delegate methods -- (void)netServiceBrowser:(NSNetServiceBrowser *)n didFindService:(NSNetService *)x moreComing:(BOOL)m; -- (void)netServiceBrowser:(NSNetServiceBrowser *)n didNotSearch:(NSDictionary *)err; -- (void)netServiceBrowser:(NSNetServiceBrowser *)n didRemoveService:(NSNetService *)s moreComing:(BOOL)m; - -// NSNetService delegate methods -- (void)netService:(NSNetService *)n didNotResolve:(NSDictionary *)err; -- (void)netServiceDidResolveAddress:(NSNetService *)n; - -@end diff --git a/atemOSC.app/Contents/Frameworks/VVOSC.framework/Versions/Current/Headers/OSCZeroConfManager.h b/atemOSC.app/Contents/Frameworks/VVOSC.framework/Versions/Current/Headers/OSCZeroConfManager.h deleted file mode 100644 index c1795ab..0000000 --- a/atemOSC.app/Contents/Frameworks/VVOSC.framework/Versions/Current/Headers/OSCZeroConfManager.h +++ /dev/null @@ -1,37 +0,0 @@ - -#if IPHONE -#import -#else -#import -#endif - -#import -#import "OSCZeroConfDomain.h" -#import - - - - -#if IPHONE -@interface OSCZeroConfManager : NSObject { -#else -@interface OSCZeroConfManager : NSObject { -#endif - NSNetServiceBrowser *domainBrowser; - - NSMutableDictionary *domainDict; - pthread_rwlock_t domainLock; - - id oscManager; -} - -- (id) initWithOSCManager:(id)m; - -- (void) serviceRemoved:(NSNetService *)s; -- (void) serviceResolved:(NSNetService *)s; - -// NSNetServiceBrowser delegate methods -- (void)netServiceBrowser:(NSNetServiceBrowser *)n didFindDomain:(NSString *)d moreComing:(BOOL)m; -- (void)netServiceBrowser:(NSNetServiceBrowser *)n didNotSearch:(NSDictionary *)err; - -@end diff --git a/atemOSC.app/Contents/Frameworks/VVOSC.framework/Versions/Current/Headers/VVOSC.h b/atemOSC.app/Contents/Frameworks/VVOSC.framework/Versions/Current/Headers/VVOSC.h deleted file mode 100644 index 47eeb3a..0000000 --- a/atemOSC.app/Contents/Frameworks/VVOSC.framework/Versions/Current/Headers/VVOSC.h +++ /dev/null @@ -1,121 +0,0 @@ - - -#import "OSCConstants.h" - -#import "OSCValue.h" -#import "OSCMessage.h" -#import "OSCBundle.h" -#import "OSCPacket.h" - -#import "OSCOutPort.h" -#import "OSCInPort.h" - -#import "OSCManager.h" -#import "OSCZeroConfManager.h" - -#import "OSCNode.h" -#import "OSCAddressSpace.h" - -#import "OSCStringAdditions.h" - - - - -/// Most common means of passing OSC data to your application. Delegates of OSCManager and OSCInPort should support this protocol. -/*! -When instances of OSCInPort and OSCManager receive OSC data, they pass it to their delegate by calling this method. If you want to receive OSC data, your OSCManager's delegate must respond to this method! -*/ -@protocol OSCDelegateProtocol -/// This method is called whenever your in port/manager receives an OSCMessage. -- (void) receivedOSCMessage:(OSCMessage *)m; -@end - - - - -/* - the following stuff is for doxygen -*/ - - -/*! -\mainpage - -\htmlonly - - - - -Introduction -

    -VVOSC is an Objective-c framework for assembling, sending, and receiving OSC (Open Sound Control) messages on OS X. A simple sample application (gui) which sends and receives OSC messages is also included to aid in the debugging of your software. There's also an SDK which allows you to develop iPhone applications which use VVOSC. All the source code is available on the project homepage: http://code.google.com/p/vvopensource -

    - - -Features and Capabilities -

    -

  • Includes a sample GUI app for debugging OSC applications and hardware that also demonstrates use of the framework
  • -
  • Packet parsing (client) + construction (server)
  • -
  • Creates bundles/nested bundles, safely parse bundles/nested bundles
  • -
  • Detects other OSC destinations via bonjour/zero-conf networking and automatically creates output ports so you can send data to them.
  • -
  • Input ports automagically advertise their presence via bonjour/zero-conf networking. This is as close to no-setup as it gets!
  • -
  • Supports the following data types: i (int32), f (float32), s/S (OSC-string), b (OSC blob), h (64-bit int), d (64-bit float/double), r (32-bit RGBA color), m (MIDI message), T (tru), F (false), N(nil), I (infinity), t (OSC-timetag)
  • -
  • Processing frequency defaults to 30hz, but may be adjusted dynamically well in excess of 100hz
  • -
  • Multithreaded- each input port runs on its own thread- and threadsafe.
  • -
  • Optional OSC address space classes (OSCNode & OSCAddressSpace) may be used to quickly create a simple OSC-based API for controlling software. Address space includes POSIX regex-based pattern matching engine for dispatching a single message to multiple nodes.
  • -
  • Built on a handful of small, easy-to-grok classes written specifically for OS X. Very easy to understand, modify, subclass, or extend.
  • -
  • Project includes targets that build and install an SDK for using VVOSC in iOS apps
  • -

    - -Breaks from the OSC specification -

    -
  • "char" data type not supported yet, you can use "string" in the meantime
  • -
  • It's possible to create an OSCValue from an NSString containing UTF8 characters, which VVOSC will try to send- and if the software receiving this data doesn't freak out, this allows you to UTF8 characters. In other words, VVOSC doesn't explicitly prevent the use of non-ASCII characters, so it's possible to use it to create incompatible OSC data!
  • -
  • The OSC specification describes a limited subset of regex to be used in wildcard/pattern matching for OSC dispatch. VVOSC's message dispatch is presently a POSIX regex engine simply because it was faster and easier to get going (it's built into the OS) than rolling my own. The specific engine used may change if message dispatch becomes a speed issue in the future; presumably, this ambiguity is why the OSC spec describes a specific and limited subset of regex!
  • -
  • The OSC spec describes the optional type characters [ and ] to delineate arrays and basic node-based structures for ad-hoc data types. Lacking any specific usage examples, this isn't supported yet- if someone wants to send me a specific example i can use to support this protocol properly, please let me know.
  • -
  • While VVOSC parses, stores, and allows you to set OSC time tags (and even create and pass time tags as values), it doesn't perform any delay or scheduling if it receives an OSC bundle with a time tag which is later than the current time. Parsed time tags are available to your applications as the 'timeTag' variable of a passed OSCMessage, which is stored as an NSDate (which, internally, is a double which basically represents 64-bit NTP time, as I understand it).
  • -

    - - -Sample code - -
    -// create an OSCManager- set myself up as its delegate
    -manager = [[OSCManager alloc] init];
    -[manager setDelegate:self];
    -
    -// create an input port for receiving OSC data
    -[manager createNewInputForPort:1234];
    -
    -// create an output so i can send OSC data to myself
    -outPort = [manager createNewOutputToAddress:@"127.0.0.1" atPort:1234];
    -
    -// make an OSC message
    -newMsg = [OSCMessage createWithAddress:@"/Address/Path/1"];
    -
    -// add a bunch arguments to the message
    -[newMsg addInt:12];
    -[newMsg addFloat:12.34];
    -[newMsg addColor:[NSColor colorWithDeviceRed:0.0 green:1.0 blue:0.0 alpha:1.0]];
    -[newMsg addBOOL:YES];
    -[newMsg addString:@"Hello World!"];
    -
    -// send the OSC message
    -[outPort sendThisMessage:newMsg];
    -
    - - -\endhtmlonly -*/ diff --git a/atemOSC.app/Contents/Frameworks/VVOSC.framework/Versions/Current/Headers/lgpl-3.0.txt b/atemOSC.app/Contents/Frameworks/VVOSC.framework/Versions/Current/Headers/lgpl-3.0.txt deleted file mode 100644 index 65c5ca8..0000000 --- a/atemOSC.app/Contents/Frameworks/VVOSC.framework/Versions/Current/Headers/lgpl-3.0.txt +++ /dev/null @@ -1,165 +0,0 @@ - GNU LESSER GENERAL PUBLIC LICENSE - Version 3, 29 June 2007 - - Copyright (C) 2007 Free Software Foundation, Inc. - Everyone is permitted to copy and distribute verbatim copies - of this license document, but changing it is not allowed. - - - This version of the GNU Lesser General Public License incorporates -the terms and conditions of version 3 of the GNU General Public -License, supplemented by the additional permissions listed below. - - 0. Additional Definitions. - - As used herein, "this License" refers to version 3 of the GNU Lesser -General Public License, and the "GNU GPL" refers to version 3 of the GNU -General Public License. - - "The Library" refers to a covered work governed by this License, -other than an Application or a Combined Work as defined below. - - An "Application" is any work that makes use of an interface provided -by the Library, but which is not otherwise based on the Library. -Defining a subclass of a class defined by the Library is deemed a mode -of using an interface provided by the Library. - - A "Combined Work" is a work produced by combining or linking an -Application with the Library. The particular version of the Library -with which the Combined Work was made is also called the "Linked -Version". - - The "Minimal Corresponding Source" for a Combined Work means the -Corresponding Source for the Combined Work, excluding any source code -for portions of the Combined Work that, considered in isolation, are -based on the Application, and not on the Linked Version. - - The "Corresponding Application Code" for a Combined Work means the -object code and/or source code for the Application, including any data -and utility programs needed for reproducing the Combined Work from the -Application, but excluding the System Libraries of the Combined Work. - - 1. Exception to Section 3 of the GNU GPL. - - You may convey a covered work under sections 3 and 4 of this License -without being bound by section 3 of the GNU GPL. - - 2. Conveying Modified Versions. - - If you modify a copy of the Library, and, in your modifications, a -facility refers to a function or data to be supplied by an Application -that uses the facility (other than as an argument passed when the -facility is invoked), then you may convey a copy of the modified -version: - - a) under this License, provided that you make a good faith effort to - ensure that, in the event an Application does not supply the - function or data, the facility still operates, and performs - whatever part of its purpose remains meaningful, or - - b) under the GNU GPL, with none of the additional permissions of - this License applicable to that copy. - - 3. Object Code Incorporating Material from Library Header Files. - - The object code form of an Application may incorporate material from -a header file that is part of the Library. You may convey such object -code under terms of your choice, provided that, if the incorporated -material is not limited to numerical parameters, data structure -layouts and accessors, or small macros, inline functions and templates -(ten or fewer lines in length), you do both of the following: - - a) Give prominent notice with each copy of the object code that the - Library is used in it and that the Library and its use are - covered by this License. - - b) Accompany the object code with a copy of the GNU GPL and this license - document. - - 4. Combined Works. - - You may convey a Combined Work under terms of your choice that, -taken together, effectively do not restrict modification of the -portions of the Library contained in the Combined Work and reverse -engineering for debugging such modifications, if you also do each of -the following: - - a) Give prominent notice with each copy of the Combined Work that - the Library is used in it and that the Library and its use are - covered by this License. - - b) Accompany the Combined Work with a copy of the GNU GPL and this license - document. - - c) For a Combined Work that displays copyright notices during - execution, include the copyright notice for the Library among - these notices, as well as a reference directing the user to the - copies of the GNU GPL and this license document. - - d) Do one of the following: - - 0) Convey the Minimal Corresponding Source under the terms of this - License, and the Corresponding Application Code in a form - suitable for, and under terms that permit, the user to - recombine or relink the Application with a modified version of - the Linked Version to produce a modified Combined Work, in the - manner specified by section 6 of the GNU GPL for conveying - Corresponding Source. - - 1) Use a suitable shared library mechanism for linking with the - Library. A suitable mechanism is one that (a) uses at run time - a copy of the Library already present on the user's computer - system, and (b) will operate properly with a modified version - of the Library that is interface-compatible with the Linked - Version. - - e) Provide Installation Information, but only if you would otherwise - be required to provide such information under section 6 of the - GNU GPL, and only to the extent that such information is - necessary to install and execute a modified version of the - Combined Work produced by recombining or relinking the - Application with a modified version of the Linked Version. (If - you use option 4d0, the Installation Information must accompany - the Minimal Corresponding Source and Corresponding Application - Code. If you use option 4d1, you must provide the Installation - Information in the manner specified by section 6 of the GNU GPL - for conveying Corresponding Source.) - - 5. Combined Libraries. - - You may place library facilities that are a work based on the -Library side by side in a single library together with other library -facilities that are not Applications and are not covered by this -License, and convey such a combined library under terms of your -choice, if you do both of the following: - - a) Accompany the combined library with a copy of the same work based - on the Library, uncombined with any other library facilities, - conveyed under the terms of this License. - - b) Give prominent notice with the combined library that part of it - is a work based on the Library, and explaining where to find the - accompanying uncombined form of the same work. - - 6. Revised Versions of the GNU Lesser General Public License. - - The Free Software Foundation may publish revised and/or new versions -of the GNU Lesser General Public License from time to time. Such new -versions will be similar in spirit to the present version, but may -differ in detail to address new problems or concerns. - - Each version is given a distinguishing version number. If the -Library as you received it specifies that a certain numbered version -of the GNU Lesser General Public License "or any later version" -applies to it, you have the option of following the terms and -conditions either of that published version or of any later version -published by the Free Software Foundation. If the Library as you -received it does not specify a version number of the GNU Lesser -General Public License, you may choose any version of the GNU Lesser -General Public License ever published by the Free Software Foundation. - - If the Library as you received it specifies that a proxy can decide -whether future versions of the GNU Lesser General Public License shall -apply, that proxy's public statement of acceptance of any version is -permanent authorization for you to choose that version for the -Library. diff --git a/atemOSC.app/Contents/Frameworks/VVOSC.framework/Versions/Current/Resources/Info.plist b/atemOSC.app/Contents/Frameworks/VVOSC.framework/Versions/Current/Resources/Info.plist deleted file mode 100644 index ed0ff17..0000000 --- a/atemOSC.app/Contents/Frameworks/VVOSC.framework/Versions/Current/Resources/Info.plist +++ /dev/null @@ -1,38 +0,0 @@ - - - - - BuildMachineOSBuild - 11E53 - CFBundleDevelopmentRegion - English - CFBundleExecutable - VVOSC - CFBundleGetInfoString - 156 - CFBundleIdentifier - com.vidvox.VVOSC - CFBundleInfoDictionaryVersion - 6.0 - CFBundlePackageType - FMWK - CFBundleSignature - ???? - CFBundleVersion - 156 - DTCompiler - com.apple.compilers.llvm.clang.1_0 - DTPlatformBuild - 4E2002 - DTPlatformVersion - GM - DTSDKBuild - 11E53 - DTSDKName - - DTXcode - 0432 - DTXcodeBuild - 4E2002 - - diff --git a/atemOSC.app/Contents/Frameworks/VVOSC.framework/Versions/Current/VVOSC b/atemOSC.app/Contents/Frameworks/VVOSC.framework/Versions/Current/VVOSC deleted file mode 100755 index f2043fe..0000000 Binary files a/atemOSC.app/Contents/Frameworks/VVOSC.framework/Versions/Current/VVOSC and /dev/null differ diff --git a/atemOSC.app/Contents/Info.plist b/atemOSC.app/Contents/Info.plist index 2c7fa78..52691dc 100644 --- a/atemOSC.app/Contents/Info.plist +++ b/atemOSC.app/Contents/Info.plist @@ -3,7 +3,7 @@ BuildMachineOSBuild - 18B75 + 19B88 CFBundleDevelopmentRegion English CFBundleExecutable @@ -20,8 +20,6 @@ atemOSC CFBundlePackageType APPL - CFBundleShortVersionString - 2.5.6 CFBundleSignature ???? CFBundleSupportedPlatforms @@ -33,17 +31,17 @@ DTCompiler com.apple.compilers.llvm.clang.1_0 DTPlatformBuild - 10B61 + 11C29 DTPlatformVersion GM DTSDKBuild - 18B71 + 19B90 DTSDKName - macosx10.14 + macosx10.15 DTXcode - 1010 + 1130 DTXcodeBuild - 10B61 + 11C29 LSMinimumSystemVersion 10.9 NSMainNibFile diff --git a/atemOSC.app/Contents/MacOS/atemOSC b/atemOSC.app/Contents/MacOS/atemOSC index 1eac488..429db61 100755 Binary files a/atemOSC.app/Contents/MacOS/atemOSC and b/atemOSC.app/Contents/MacOS/atemOSC differ diff --git a/atemOSC.app/Contents/Resources/AppIcon.icns b/atemOSC.app/Contents/Resources/AppIcon.icns index ec82b00..604868c 100644 Binary files a/atemOSC.app/Contents/Resources/AppIcon.icns and b/atemOSC.app/Contents/Resources/AppIcon.icns differ diff --git a/atemOSC.app/Contents/Resources/Assets.car b/atemOSC.app/Contents/Resources/Assets.car index 8353de6..25ca199 100644 Binary files a/atemOSC.app/Contents/Resources/Assets.car and b/atemOSC.app/Contents/Resources/Assets.car differ diff --git a/atemOSC.app/Contents/Resources/English.lproj/MainMenu.nib b/atemOSC.app/Contents/Resources/English.lproj/MainMenu.nib index d9a3421..7b8a191 100644 Binary files a/atemOSC.app/Contents/Resources/English.lproj/MainMenu.nib and b/atemOSC.app/Contents/Resources/English.lproj/MainMenu.nib differ diff --git a/atemOSC.app/Contents/_CodeSignature/CodeResources b/atemOSC.app/Contents/_CodeSignature/CodeResources new file mode 100644 index 0000000..cb79d42 --- /dev/null +++ b/atemOSC.app/Contents/_CodeSignature/CodeResources @@ -0,0 +1,224 @@ + + + + + files + + Resources/AppIcon.icns + + gxOhPEi0pYdszUPiwjAmipUor9o= + + Resources/Assets.car + + 9gmHOetLoTsB+b0r87t6MoQuORc= + + Resources/English.lproj/InfoPlist.strings + + hash + + MiLKDDnrUKr4EmuvhS5VQwxHGK8= + + optional + + + Resources/English.lproj/MainMenu.nib + + hash + + V+dzOHGDjeHhBzzBXteotCCe+gc= + + optional + + + Resources/atemOSC.icns + + jMl5mUcUs8D7h6NxT93qUFk4+68= + + + files2 + + Frameworks/VVBasics.framework + + cdhash + + n3+ahAsOMfbLU+FvA8mFDklLWvY= + + requirement + identifier "com.yourcompany.VVBasics" and anchor apple generic and certificate leaf[subject.CN] = "Apple Development: Ken Steffey (649CFX9WPE)" and certificate 1[field.1.2.840.113635.100.6.2.1] /* exists */ + + Frameworks/VVOSC.framework + + cdhash + + 4rqnrWBG8OshBChmyX5Yx8jesuA= + + requirement + identifier "com.yourcompany.VVOSC" and anchor apple generic and certificate leaf[subject.CN] = "Apple Development: Ken Steffey (649CFX9WPE)" and certificate 1[field.1.2.840.113635.100.6.2.1] /* exists */ + + Resources/AppIcon.icns + + hash + + gxOhPEi0pYdszUPiwjAmipUor9o= + + hash2 + + 08LeGDIOZRkfd+QQpf1f1TD+RjPEWczdkalQpTkF5uU= + + + Resources/Assets.car + + hash + + 9gmHOetLoTsB+b0r87t6MoQuORc= + + hash2 + + oxvdPooL+X1LHZZzaZyTDJ/kHpUx4C2RLtRvjbSEMvs= + + + Resources/English.lproj/InfoPlist.strings + + hash + + MiLKDDnrUKr4EmuvhS5VQwxHGK8= + + hash2 + + Oc8u4Ht7Mz58F50L9NeYpbcq9qTlhPUeZCcDu/pPyCg= + + optional + + + Resources/English.lproj/MainMenu.nib + + hash + + V+dzOHGDjeHhBzzBXteotCCe+gc= + + hash2 + + /zb8JN1gbA8IBmz7W6Z6gq5on6+sgO1ad+gqZMK+I/I= + + optional + + + Resources/atemOSC.icns + + hash + + jMl5mUcUs8D7h6NxT93qUFk4+68= + + hash2 + + 5POyQR0GgPSEIe9WFQOqRbjhaHhY0sgtifjXEZRT5Wg= + + + + rules + + ^Resources/ + + ^Resources/.*\.lproj/ + + optional + + weight + 1000 + + ^Resources/.*\.lproj/locversion.plist$ + + omit + + weight + 1100 + + ^Resources/Base\.lproj/ + + weight + 1010 + + ^version.plist$ + + + rules2 + + .*\.dSYM($|/) + + weight + 11 + + ^(.*/)?\.DS_Store$ + + omit + + weight + 2000 + + ^(Frameworks|SharedFrameworks|PlugIns|Plug-ins|XPCServices|Helpers|MacOS|Library/(Automator|Spotlight|LoginItems))/ + + nested + + weight + 10 + + ^.* + + ^Info\.plist$ + + omit + + weight + 20 + + ^PkgInfo$ + + omit + + weight + 20 + + ^Resources/ + + weight + 20 + + ^Resources/.*\.lproj/ + + optional + + weight + 1000 + + ^Resources/.*\.lproj/locversion.plist$ + + omit + + weight + 1100 + + ^Resources/Base\.lproj/ + + weight + 1010 + + ^[^/]+$ + + nested + + weight + 10 + + ^embedded\.provisionprofile$ + + weight + 20 + + ^version\.plist$ + + weight + 20 + + + +