/* File: CGDataConsumer.h Contains: CoreGraphics data consumer Version: QuickTime 7.3 Copyright: (c) 2007 (c) 2000-2001 by Apple Computer, Inc., all rights reserved. Bugs?: For bug reports, consult the following page on the World Wide Web: http://developer.apple.com/bugreporter/ */ #ifndef CGDATACONSUMER_H_ #define CGDATACONSUMER_H_ #ifndef __CGBASE__ #include #endif #ifndef __CFURL__ #include #endif #if PRAGMA_ONCE #pragma once #endif #ifdef __cplusplus extern "C" { #endif #if PRAGMA_IMPORT #pragma import on #endif #if PRAGMA_STRUCT_ALIGN #pragma options align=mac68k #elif PRAGMA_STRUCT_PACKPUSH #pragma pack(push, 2) #elif PRAGMA_STRUCT_PACK #pragma pack(2) #endif typedef struct CGDataConsumer* CGDataConsumerRef; typedef CALLBACK_API_C( size_t , CGPutBytesProcPtr )(void *info, const void *buffer, size_t count); typedef CALLBACK_API_C( void , CGReleaseConsumerProcPtr )(void * info); /* Callbacks for accessing data. * `putBytes' copies `count' bytes from `buffer' to the consumer, and * returns the number of bytes copied. It should return 0 if no more data * can be written to the consumer. * `releaseConsumer', if non-NULL, is called when the consumer is freed. */ struct CGDataConsumerCallbacks { CGPutBytesProcPtr putBytes; CGReleaseConsumerProcPtr releaseConsumer; }; typedef struct CGDataConsumerCallbacks CGDataConsumerCallbacks; /* Create a data consumer using `callbacks' to handle the data. `info' is * passed to each of the callback functions. */ /* * CGDataConsumerCreate() * * Availability: * Non-Carbon CFM: not available * CarbonLib: not available * Mac OS X: in version 10.0 and later */ EXTERN_API_C( CGDataConsumerRef ) CGDataConsumerCreate( void * info, const CGDataConsumerCallbacks * callbacks); /* Create a data consumer which writes data to `url'. */ /* * CGDataConsumerCreateWithURL() * * Availability: * Non-Carbon CFM: not available * CarbonLib: not available * Mac OS X: in version 10.0 and later */ EXTERN_API_C( CGDataConsumerRef ) CGDataConsumerCreateWithURL(CFURLRef url); /* Increment the retain count of `consumer' and return it. All data * consumers are created with an initial retain count of 1. */ /* * CGDataConsumerRetain() * * Availability: * Non-Carbon CFM: not available * CarbonLib: not available * Mac OS X: in version 10.0 and later */ EXTERN_API_C( CGDataConsumerRef ) CGDataConsumerRetain(CGDataConsumerRef consumer); /* Decrement the retain count of `consumer'. If the retain count reaches * 0, then release it and any associated resources. */ /* * CGDataConsumerRelease() * * Availability: * Non-Carbon CFM: not available * CarbonLib: not available * Mac OS X: in version 10.0 and later */ EXTERN_API_C( void ) CGDataConsumerRelease(CGDataConsumerRef consumer); #if PRAGMA_STRUCT_ALIGN #pragma options align=reset #elif PRAGMA_STRUCT_PACKPUSH #pragma pack(pop) #elif PRAGMA_STRUCT_PACK #pragma pack() #endif #ifdef PRAGMA_IMPORT_OFF #pragma import off #elif PRAGMA_IMPORT #pragma import reset #endif #ifdef __cplusplus } #endif #endif /* CGDATACONSUMER_H_ */