diff options
| author | FluorescentCIAAfricanAmerican <[email protected]> | 2020-04-22 12:56:21 -0400 |
|---|---|---|
| committer | FluorescentCIAAfricanAmerican <[email protected]> | 2020-04-22 12:56:21 -0400 |
| commit | 3bf9df6b2785fa6d951086978a3e66f49427166a (patch) | |
| tree | 2c0f1f0c63c4832882bc93814ebd2c2b1c6224e5 /common/quicktime_win32/CGDataProvider.h | |
| download | archived-source-engine-2018-hl2-src-master.tar.xz archived-source-engine-2018-hl2-src-master.zip | |
Diffstat (limited to 'common/quicktime_win32/CGDataProvider.h')
| -rw-r--r-- | common/quicktime_win32/CGDataProvider.h | 203 |
1 files changed, 203 insertions, 0 deletions
diff --git a/common/quicktime_win32/CGDataProvider.h b/common/quicktime_win32/CGDataProvider.h new file mode 100644 index 0000000..0f0fa65 --- /dev/null +++ b/common/quicktime_win32/CGDataProvider.h @@ -0,0 +1,203 @@ +/* + File: CGDataProvider.h + + Contains: CoreGraphics data provider + + 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 CGDATAPROVIDER_H_ +#define CGDATAPROVIDER_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 CGDataProvider* CGDataProviderRef; +typedef CALLBACK_API_C( size_t , CGGetBytesProcPtr )(void *info, void *buffer, size_t count); +typedef CALLBACK_API_C( void , CGSkipBytesProcPtr )(void *info, size_t count); +typedef CALLBACK_API_C( void , CGRewindProcPtr )(void * info); +typedef CALLBACK_API_C( void , CGReleaseProviderProcPtr )(void * info); +/* Callbacks for sequentially accessing data. + * `getBytes' is called to copy `count' bytes from the provider's data to + * `buffer'. It should return the number of bytes copied, or 0 if there's + * no more data. + * `skipBytes' is called to skip ahead in the provider's data by `count' bytes. + * `rewind' is called to rewind the provider to the beginning of the data. + * `releaseProvider', if non-NULL, is called when the provider is freed. */ +struct CGDataProviderCallbacks { + CGGetBytesProcPtr getBytes; + CGSkipBytesProcPtr skipBytes; + CGRewindProcPtr rewind; + CGReleaseProviderProcPtr releaseProvider; +}; +typedef struct CGDataProviderCallbacks CGDataProviderCallbacks; +typedef CALLBACK_API_C( void *, CGGetBytePointerProcPtr )(void * info); +typedef CALLBACK_API_C( void , CGReleaseByteProcPtr )(void *info, const void *pointer); +typedef CALLBACK_API_C( size_t , CGGetBytesDirectProcPtr )(void *info, void *buffer, size_t offset, size_t count); +/* Callbacks for directly accessing data. + * `getBytePointer', if non-NULL, is called to return a pointer to the + * provider's entire block of data. + * `releaseBytePointer', if non-NULL, is called to release a pointer to + * the provider's entire block of data. + * `getBytes', if non-NULL, is called to copy `count' bytes at offset + * `offset' from the provider's data to `buffer'. It should return the + * number of bytes copied, or 0 if there's no more data. + * `releaseProvider', if non-NULL, is called when the provider is freed. + * At least one of `getBytePointer' or `getBytes' must be non-NULL. */ +struct CGDataProviderDirectAccessCallbacks { + CGGetBytePointerProcPtr getBytePointer; + CGReleaseByteProcPtr releaseBytePointer; + CGGetBytesDirectProcPtr getBytes; + CGReleaseProviderProcPtr releaseProvider; +}; +typedef struct CGDataProviderDirectAccessCallbacks CGDataProviderDirectAccessCallbacks; +typedef CALLBACK_API_C( void , CGReleaseDataProcPtr )(void *info, const void *data, size_t size); +/* Create a sequential-access data provider using `callbacks' to provide + * the data. `info' is passed to each of the callback functions. */ +/* + * CGDataProviderCreate() + * + * Availability: + * Non-Carbon CFM: not available + * CarbonLib: not available + * Mac OS X: in version 10.0 and later + */ +EXTERN_API_C( CGDataProviderRef ) +CGDataProviderCreate( + void * info, + const CGDataProviderCallbacks * callbacks); + + +/* Create a direct-access data provider using `callbacks' to supply `size' + * bytes of data. `info' is passed to each of the callback functions. */ +/* + * CGDataProviderCreateDirectAccess() + * + * Availability: + * Non-Carbon CFM: not available + * CarbonLib: not available + * Mac OS X: in version 10.0 and later + */ +EXTERN_API_C( CGDataProviderRef ) +CGDataProviderCreateDirectAccess( + void * info, + size_t size, + const CGDataProviderDirectAccessCallbacks * callbacks); + + +/* Create a direct-access data provider using `data', an array of `size' + * bytes. `releaseData' is called when the data provider is freed, and is + * passed `info' as its first argument. */ +/* + * CGDataProviderCreateWithData() + * + * Availability: + * Non-Carbon CFM: not available + * CarbonLib: not available + * Mac OS X: in version 10.0 and later + */ +EXTERN_API_C( CGDataProviderRef ) +CGDataProviderCreateWithData( + void * info, + const void * data, + size_t size, + CGReleaseDataProcPtr releaseData); + + +/* Create a data provider using `url'. */ +/* + * CGDataProviderCreateWithURL() + * + * Availability: + * Non-Carbon CFM: not available + * CarbonLib: not available + * Mac OS X: in version 10.0 and later + */ +EXTERN_API_C( CGDataProviderRef ) +CGDataProviderCreateWithURL(CFURLRef url); + + +/* Increment the retain count of `provider' and return it. All data + * providers are created with an initial retain count of 1. */ +/* + * CGDataProviderRetain() + * + * Availability: + * Non-Carbon CFM: not available + * CarbonLib: not available + * Mac OS X: in version 10.0 and later + */ +EXTERN_API_C( CGDataProviderRef ) +CGDataProviderRetain(CGDataProviderRef provider); + + +/* Decrement the retain count of `provider'. If the retain count reaches + * 0, then free `provider' and any associated resources. */ +/* + * CGDataProviderRelease() + * + * Availability: + * Non-Carbon CFM: not available + * CarbonLib: not available + * Mac OS X: in version 10.0 and later + */ +EXTERN_API_C( void ) +CGDataProviderRelease(CGDataProviderRef provider); + + + +#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 /* CGDATAPROVIDER_H_ */ + |