source-engine/common/quicktime_win32/CGDataConsumer.h

141 lines
3.3 KiB
C
Raw Normal View History

2020-04-22 16:56:21 +00:00
/*
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 <CGBase.h>
#endif
#ifndef __CFURL__
#include <CFURL.h>
#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_ */