Team Fortress 2 Source Code as on 22/4/2020
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

190 lines
4.1 KiB

  1. /*
  2. File: ICADevice.h
  3. Contains: Low level Image Capture device definitions.
  4. Version: QuickTime 7.3
  5. Copyright: (c) 2007 (c) 2000-2001 by Apple Computer, Inc., all rights reserved.
  6. Bugs?: For bug reports, consult the following page on
  7. the World Wide Web:
  8. http://developer.apple.com/bugreporter/
  9. */
  10. #ifndef __ICADEVICE__
  11. #define __ICADEVICE__
  12. #ifndef __ICAAPPLICATION__
  13. #include <ICAApplication.h>
  14. #endif
  15. #if PRAGMA_ONCE
  16. #pragma once
  17. #endif
  18. #ifdef __cplusplus
  19. extern "C" {
  20. #endif
  21. #if PRAGMA_IMPORT
  22. #pragma import on
  23. #endif
  24. #if PRAGMA_STRUCT_ALIGN
  25. #pragma options align=mac68k
  26. #elif PRAGMA_STRUCT_PACKPUSH
  27. #pragma pack(push, 2)
  28. #elif PRAGMA_STRUCT_PACK
  29. #pragma pack(2)
  30. #endif
  31. /*
  32. --------------- Completion Procs ---------------
  33. */
  34. /*
  35. NOTE: the parameter for the completion proc (ICDHeader*) has to be casted to the appropriate type
  36. e.g. (ICD_BuildObjectChildrenPB*), ...
  37. */
  38. typedef struct ICDHeader ICDHeader;
  39. typedef CALLBACK_API_C( void , ICDCompletion )(ICDHeader * pb);
  40. /*
  41. --------------- ICDHeader ---------------
  42. */
  43. struct ICDHeader {
  44. OSErr err; /* --> */
  45. UInt32 refcon; /* <-- */
  46. };
  47. /*
  48. --------------- Object parameter blocks ---------------
  49. */
  50. struct ICD_NewObjectPB {
  51. ICDHeader header;
  52. ICAObject parentObject; /* <-- */
  53. ICAObjectInfo objectInfo; /* <-- */
  54. ICAObject object; /* --> */
  55. };
  56. typedef struct ICD_NewObjectPB ICD_NewObjectPB;
  57. struct ICD_DisposeObjectPB {
  58. ICDHeader header;
  59. ICAObject object; /* <-- */
  60. };
  61. typedef struct ICD_DisposeObjectPB ICD_DisposeObjectPB;
  62. /*
  63. --------------- Property parameter blocks ---------------
  64. */
  65. struct ICD_NewPropertyPB {
  66. ICDHeader header;
  67. ICAObject object; /* <-- */
  68. ICAPropertyInfo propertyInfo; /* <-- */
  69. ICAProperty property; /* --> */
  70. };
  71. typedef struct ICD_NewPropertyPB ICD_NewPropertyPB;
  72. struct ICD_DisposePropertyPB {
  73. ICDHeader header;
  74. ICAProperty property; /* <-- */
  75. };
  76. typedef struct ICD_DisposePropertyPB ICD_DisposePropertyPB;
  77. /*
  78. NOTE: for all APIs - pass NULL as completion parameter to make a synchronous call
  79. */
  80. /*
  81. --------------- Object utilities for device libraries ---------------
  82. */
  83. /*
  84. * ICDNewObject()
  85. *
  86. * Availability:
  87. * Non-Carbon CFM: in ImageCaptureLib 1.0 and later
  88. * CarbonLib: in CarbonLib 1.1 and later
  89. * Mac OS X: in version 10.0 and later
  90. */
  91. EXTERN_API( OSErr )
  92. ICDNewObject(
  93. ICD_NewObjectPB * pb,
  94. ICDCompletion completion); /* can be NULL */
  95. /*
  96. * ICDDisposeObject()
  97. *
  98. * Availability:
  99. * Non-Carbon CFM: in ImageCaptureLib 1.0 and later
  100. * CarbonLib: in CarbonLib 1.1 and later
  101. * Mac OS X: in version 10.0 and later
  102. */
  103. EXTERN_API( OSErr )
  104. ICDDisposeObject(
  105. ICD_DisposeObjectPB * pb,
  106. ICDCompletion completion); /* can be NULL */
  107. /*
  108. * ICDNewProperty()
  109. *
  110. * Availability:
  111. * Non-Carbon CFM: in ImageCaptureLib 1.0 and later
  112. * CarbonLib: in CarbonLib 1.1 and later
  113. * Mac OS X: in version 10.0 and later
  114. */
  115. EXTERN_API( OSErr )
  116. ICDNewProperty(
  117. ICD_NewPropertyPB * pb,
  118. ICDCompletion completion); /* can be NULL */
  119. /*
  120. * ICDDisposeProperty()
  121. *
  122. * Availability:
  123. * Non-Carbon CFM: in ImageCaptureLib 1.0 and later
  124. * CarbonLib: in CarbonLib 1.1 and later
  125. * Mac OS X: in version 10.0 and later
  126. */
  127. EXTERN_API( OSErr )
  128. ICDDisposeProperty(
  129. ICD_DisposePropertyPB * pb,
  130. ICDCompletion completion); /* can be NULL */
  131. #if PRAGMA_STRUCT_ALIGN
  132. #pragma options align=reset
  133. #elif PRAGMA_STRUCT_PACKPUSH
  134. #pragma pack(pop)
  135. #elif PRAGMA_STRUCT_PACK
  136. #pragma pack()
  137. #endif
  138. #ifdef PRAGMA_IMPORT_OFF
  139. #pragma import off
  140. #elif PRAGMA_IMPORT
  141. #pragma import reset
  142. #endif
  143. #ifdef __cplusplus
  144. }
  145. #endif
  146. #endif /* __ICADEVICE__ */