/* File: QTKitDefines.h Copyright: (c)2004-2012 by Apple Inc., all rights reserved. */ #ifndef AVAILABLE_MAC_OS_X_VERSION_10_7_AND_LATER #define AVAILABLE_MAC_OS_X_VERSION_10_7_AND_LATER WEAK_IMPORT_ATTRIBUTE #endif #ifndef AVAILABLE_MAC_OS_X_VERSION_10_6_AND_LATER #define AVAILABLE_MAC_OS_X_VERSION_10_6_AND_LATER WEAK_IMPORT_ATTRIBUTE #endif #ifndef AVAILABLE_MAC_OS_X_VERSION_10_5_AND_LATER #define AVAILABLE_MAC_OS_X_VERSION_10_5_AND_LATER WEAK_IMPORT_ATTRIBUTE #endif #ifndef AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_5 #define AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_5 AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER #endif #ifndef AVAILABLE_MAC_OS_X_VERSION_10_1_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_5 #define AVAILABLE_MAC_OS_X_VERSION_10_1_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_5 AVAILABLE_MAC_OS_X_VERSION_10_1_AND_LATER #endif #ifndef AVAILABLE_MAC_OS_X_VERSION_10_2_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_5 #define AVAILABLE_MAC_OS_X_VERSION_10_2_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_5 AVAILABLE_MAC_OS_X_VERSION_10_2_AND_LATER #endif #ifndef AVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_5 #define AVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_5 AVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER #endif #ifndef AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_5 #define AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_5 AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER #endif #ifndef AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_6 #define AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_6 AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER #endif #ifndef MAC_OS_X_VERSION_10_4 #define MAC_OS_X_VERSION_10_4 1040 #else #undef MAC_OS_X_VERSION_10_4 #define MAC_OS_X_VERSION_10_4 1040 #endif #ifndef MAC_OS_X_VERSION_10_5 #define MAC_OS_X_VERSION_10_5 1050 #else #undef MAC_OS_X_VERSION_10_5 #define MAC_OS_X_VERSION_10_5 1050 #endif #ifndef MAC_OS_X_VERSION_10_6 #define MAC_OS_X_VERSION_10_6 1060 #else #undef MAC_OS_X_VERSION_10_6 #define MAC_OS_X_VERSION_10_6 1060 #endif #ifndef MAC_OS_X_VERSION_10_7 #define MAC_OS_X_VERSION_10_7 1070 #else #undef MAC_OS_X_VERSION_10_7 #define MAC_OS_X_VERSION_10_7 1070 #endif /* QTKit Availability Macros These macros allow applications to target specific versions of QTKit independently of the OS on which the application is built. To target one or more versions of QTKit, you can use the QTKIT_VERSION_MIN_REQUIRED and the QTKIT_VERSION_MAX_ALLOWED macros in a way that is analagous to MAC_OS_X_VERSION_MIN_REQUIRED and MAC_OS_X_VERSION_MAX_ALLOWED as described in /usr/include/AvailabilityMacros.h. By default, the macros are configured to weak-link to symbols as necessary for the application to run on all target versions of Max OS X. IMPORTANT: These macros only properly expose or restrict the available API at compile and link time. Since QTKit is released for multiple versions of Mac OS X, some of which may not have a given version installed by default, applications must also verify whether or not an API exists at run time. It is recommended that applications do this by checking which version of QuickTime is installed. Such a check also allows applications to ensure they are running against the latest version of QTKit in which an API is supported. For example, applications targeting APIs introduced for QTKit 7.2 should make sure they are running against QuickTime 7.2.1 or later, which is the first release for which the QuickTime 7.2 SDK is supported. One way to check the QuickTime version is use the NSBundle API. For example, to ensure that an application is running on a version of QTKit that targetVersion or later, it can call if ([[[[NSBundle bundleWithIdentifier:@"com.apple.QTKit"] infoDictionary] objectForKey:(NSString *)kCFBundleVersionKey] doubleValue] >= targetVersion) { // Do something only available on targetVersion or later } */ #define QTKIT_VERSION_7_0 70000 #define QTKIT_VERSION_7_2 70200 #define QTKIT_VERSION_7_6_3 70603 #define QTKIT_VERSION_7_6_6 70606 #define QTKIT_VERSION_7_7 70700 #ifndef QTKIT_VERSION_MIN_REQUIRED #if MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_7 #define QTKIT_VERSION_MIN_REQUIRED QTKIT_VERSION_7_7 #elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_6 #define QTKIT_VERSION_MIN_REQUIRED QTKIT_VERSION_7_6_3 #elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_5 #define QTKIT_VERSION_MIN_REQUIRED QTKIT_VERSION_7_2 #else #define QTKIT_VERSION_MIN_REQUIRED QTKIT_VERSION_7_0 #endif #endif #ifndef QTKIT_VERSION_MAX_ALLOWED #define QTKIT_VERSION_MAX_ALLOWED QTKIT_VERSION_7_7 #endif // error on bad values #if QTKIT_VERSION_MAX_ALLOWED < QTKIT_VERSION_MIN_REQUIRED #error QTKIT_VERSION_MAX_ALLOWED must be >= QTKIT_VERSION_MIN_REQUIRED #endif #if QTKIT_VERSION_MIN_REQUIRED < QTKIT_VERSION_7_0 #error QTKIT_VERSION_MIN_REQUIRED must be >= QTKIT_VERSION_7_0 #endif /* * AVAILABLE_QTKIT_VERSION_7_0_AND_LATER * * Used on declarations introduced in QTKit 7.0 */ #if MAC_OS_X_VERSION_MIN_REQUIRED < MAC_OS_X_VERSION_10_4 /* QTKit 7.0 or later is not installed on all versions of Mac OS prior to 10.4 */ #define AVAILABLE_QTKIT_VERSION_7_0_AND_LATER WEAK_IMPORT_ATTRIBUTE #else #define AVAILABLE_QTKIT_VERSION_7_0_AND_LATER #endif /* * AVAILABLE_QTKIT_VERSION_7_2_AND_LATER * * Used on declarations introduced in QTKit 7.2 */ #if QTKIT_VERSION_MAX_ALLOWED < QTKIT_VERSION_7_2 #define AVAILABLE_QTKIT_VERSION_7_2_AND_LATER UNAVAILABLE_ATTRIBUTE #elif (QTKIT_VERSION_MIN_REQUIRED < QTKIT_VERSION_7_2) || (MAC_OS_X_VERSION_MIN_REQUIRED < MAC_OS_X_VERSION_10_5) /* QTKit 7.2 or later is not installed on all versions of Mac OS prior to 10.5 */ #define AVAILABLE_QTKIT_VERSION_7_2_AND_LATER WEAK_IMPORT_ATTRIBUTE #else #define AVAILABLE_QTKIT_VERSION_7_2_AND_LATER #endif /* * AVAILABLE_QTKIT_VERSION_7_0_AND_LATER_BUT_DEPRECATED_IN_QTKIT_VERSION_7_2 * * Used on declarations introduced in QTKit 7.0, * but later deprecated in QTKit 7.2 */ #if QTKIT_VERSION_MIN_REQUIRED >= QTKIT_VERSION_7_2 #define AVAILABLE_QTKIT_VERSION_7_0_AND_LATER_BUT_DEPRECATED_IN_QTKIT_VERSION_7_2 DEPRECATED_ATTRIBUTE #else #define AVAILABLE_QTKIT_VERSION_7_0_AND_LATER_BUT_DEPRECATED_IN_QTKIT_VERSION_7_2 AVAILABLE_QTKIT_VERSION_7_0_AND_LATER #endif /* * AVAILABLE_QTKIT_VERSION_7_6_3_AND_LATER * * Used on declarations introduced in QTKit 7.5.7 */ #if QTKIT_VERSION_MAX_ALLOWED < QTKIT_VERSION_7_6_3 #define AVAILABLE_QTKIT_VERSION_7_6_3_AND_LATER UNAVAILABLE_ATTRIBUTE #elif (QTKIT_VERSION_MIN_REQUIRED < QTKIT_VERSION_7_6_3) || (MAC_OS_X_VERSION_MIN_REQUIRED < MAC_OS_X_VERSION_10_6) /* QTKit 7.5.7 or later is not installed on all versions of Mac OS prior to 10.6 */ #define AVAILABLE_QTKIT_VERSION_7_6_3_AND_LATER WEAK_IMPORT_ATTRIBUTE #else #define AVAILABLE_QTKIT_VERSION_7_6_3_AND_LATER #endif /* * AVAILABLE_QTKIT_VERSION_7_6_6_AND_LATER * * Used on declarations introduced in QTKit 7.6.6 */ #if QTKIT_VERSION_MAX_ALLOWED < QTKIT_VERSION_7_6_6 #define AVAILABLE_QTKIT_VERSION_7_6_6_AND_LATER UNAVAILABLE_ATTRIBUTE #elif (QTKIT_VERSION_MIN_REQUIRED < QTKIT_VERSION_7_6_6) || (MAC_OS_X_VERSION_MIN_REQUIRED < MAC_OS_X_VERSION_10_6) #define AVAILABLE_QTKIT_VERSION_7_6_6_AND_LATER WEAK_IMPORT_ATTRIBUTE #else #define AVAILABLE_QTKIT_VERSION_7_6_6_AND_LATER #endif /* * AVAILABLE_QTKIT_VERSION_7_7_AND_LATER * * Used on declarations introduced in QTKit 7.7 */ #if QTKIT_VERSION_MAX_ALLOWED < QTKIT_VERSION_7_7 #define AVAILABLE_QTKIT_VERSION_7_7_AND_LATER UNAVAILABLE_ATTRIBUTE #elif (QTKIT_VERSION_MIN_REQUIRED < QTKIT_VERSION_7_7) || (MAC_OS_X_VERSION_MIN_REQUIRED < MAC_OS_X_VERSION_10_7) #define AVAILABLE_QTKIT_VERSION_7_7_AND_LATER WEAK_IMPORT_ATTRIBUTE #else #define AVAILABLE_QTKIT_VERSION_7_7_AND_LATER #endif /* * AVAILABLE_QTKIT_VERSION_7_0_AND_LATER_BUT_DEPRECATED_IN_QTKIT_VERSION_7_6_3 * * Used on declarations introduced in QTKit 7.2, * but later deprecated in QTKit 7.5.7 */ #if QTKIT_VERSION_MIN_REQUIRED >= QTKIT_VERSION_7_6_3 #define AVAILABLE_QTKIT_VERSION_7_0_AND_LATER_BUT_DEPRECATED_IN_QTKIT_VERSION_7_6_3 DEPRECATED_ATTRIBUTE #else #define AVAILABLE_QTKIT_VERSION_7_0_AND_LATER_BUT_DEPRECATED_IN_QTKIT_VERSION_7_6_3 AVAILABLE_QTKIT_VERSION_7_0_AND_LATER #endif /* * AVAILABLE_QTKIT_VERSION_7_2_AND_LATER_BUT_DEPRECATED_IN_QTKIT_VERSION_7_6_3 * * Used on declarations introduced in QTKit 7.2, * but later deprecated in QTKit 7.5.7 */ #if QTKIT_VERSION_MIN_REQUIRED >= QTKIT_VERSION_7_6_3 #define AVAILABLE_QTKIT_VERSION_7_2_AND_LATER_BUT_DEPRECATED_IN_QTKIT_VERSION_7_6_3 DEPRECATED_ATTRIBUTE #else #define AVAILABLE_QTKIT_VERSION_7_2_AND_LATER_BUT_DEPRECATED_IN_QTKIT_VERSION_7_6_3 AVAILABLE_QTKIT_VERSION_7_2_AND_LATER #endif /* * AVAILABLE_QTKIT_VERSION_7_2_AND_LATER_BUT_DEPRECATED_IN_QTKIT_VERSION_7_7 * * Used on declarations introduced in QTKit 7.2, * but later deprecated in QTKit 7.7 */ #if QTKIT_VERSION_MIN_REQUIRED >= QTKIT_VERSION_7_7 #define AVAILABLE_QTKIT_VERSION_7_2_AND_LATER_BUT_DEPRECATED_IN_QTKIT_VERSION_7_7 DEPRECATED_ATTRIBUTE #else #define AVAILABLE_QTKIT_VERSION_7_2_AND_LATER_BUT_DEPRECATED_IN_QTKIT_VERSION_7_7 AVAILABLE_QTKIT_VERSION_7_2_AND_LATER #endif #ifdef __cplusplus #define QTKIT_EXTERN extern "C" #else #define QTKIT_EXTERN extern #endif #define QTKIT_HIDDEN __attribute__((visibility("hidden"))) #ifdef __OBJC__ #import #endif /* __OBJC__ */ #if __LP64__ // constants and data types defined in the 32-bit QuickTime headers that may be required for some QTKit APIs // from QuickTimeComponents.h enum { kQTFileTypeAIFF = 'AIFF', kQTFileTypeAIFC = 'AIFC', kQTFileTypeDVC = 'dvc!', kQTFileTypeMIDI = 'Midi', kQTFileTypePicture = 'PICT', kQTFileTypeMovie = 'MooV', kQTFileTypeText = 'TEXT', kQTFileTypeWave = 'WAVE', kQTFileTypeSystemSevenSound = 'sfil', kQTFileTypeMuLaw = 'ULAW', kQTFileTypeAVI = 'VfW ', kQTFileTypeSoundDesignerII = 'Sd2f', kQTFileTypeAudioCDTrack = 'trak', kQTFileTypePICS = 'PICS', kQTFileTypeGIF = 'GIFf', kQTFileTypePNG = 'PNGf', kQTFileTypeTIFF = 'TIFF', kQTFileTypePhotoShop = '8BPS', kQTFileTypeSGIImage = '.SGI', kQTFileTypeBMP = 'BMPf', kQTFileTypeJPEG = 'JPEG', kQTFileTypeJFIF = 'JPEG', kQTFileTypeMacPaint = 'PNTG', kQTFileTypeTargaImage = 'TPIC', kQTFileTypeQuickDrawGXPicture = 'qdgx', kQTFileTypeQuickTimeImage = 'qtif', kQTFileType3DMF = '3DMF', kQTFileTypeFLC = 'FLC ', kQTFileTypeFlash = 'SWFL', kQTFileTypeFlashPix = 'FPix', kQTFileTypeMP4 = 'mpg4', kQTFileTypePDF = 'PDF ', kQTFileType3GPP = '3gpp', kQTFileTypeAMR = 'amr ', kQTFileTypeSDV = 'sdv ', kQTFileType3GP2 = '3gp2', kQTFileTypeAMC = 'amc ', kQTFileTypeJPEG2000 = 'jp2 ' }; // from ImageCompression.h enum { codecLosslessQuality = 0x00000400, codecMaxQuality = 0x000003FF, codecMinQuality = 0x00000000, codecLowQuality = 0x00000100, codecNormalQuality = 0x00000200, codecHighQuality = 0x00000300 }; enum { graphicsModeStraightAlpha = 256, graphicsModePreWhiteAlpha = 257, graphicsModePreBlackAlpha = 258, graphicsModeComposition = 259, graphicsModeStraightAlphaBlend = 260, graphicsModePreMulColorAlpha = 261, graphicsModePerComponentAlpha = 272 }; #endif /* __LP64__ */