summaryrefslogtreecommitdiff
path: root/common/quicktime_win32/CGDataConsumer.h
diff options
context:
space:
mode:
Diffstat (limited to 'common/quicktime_win32/CGDataConsumer.h')
-rw-r--r--common/quicktime_win32/CGDataConsumer.h140
1 files changed, 140 insertions, 0 deletions
diff --git a/common/quicktime_win32/CGDataConsumer.h b/common/quicktime_win32/CGDataConsumer.h
new file mode 100644
index 0000000..2b713fd
--- /dev/null
+++ b/common/quicktime_win32/CGDataConsumer.h
@@ -0,0 +1,140 @@
+/*
+ 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_ */
+