home *** CD-ROM | disk | FTP | other *** search
/ Fresh Fish 2 / FFMCD02.bin / useful / os-include / clib / iffparse_protos.h < prev    next >
C/C++ Source or Header  |  1992-09-24  |  4KB  |  102 lines

  1. #ifndef  CLIB_IFFPARSE_PROTOS_H
  2. #define  CLIB_IFFPARSE_PROTOS_H
  3. /*
  4. **    $VER: iffparse_protos.h 39.1 (01.06.92)
  5. **    Includes Release 39.108
  6. **
  7. **    C prototypes. For use with 32 bit integers only.
  8. **
  9. **    (C) Copyright 1990-1992 Commodore-Amiga, Inc.
  10. **        All Rights Reserved
  11. */
  12. #ifndef  EXEC_TYPES_H
  13. #include <exec/types.h>
  14. #endif
  15. #ifndef  LIBRARIES_IFFPARSE_H
  16. #include <libraries/iffparse.h>
  17. #endif
  18. /*--- functions in V36 or higher (distributed as Release 2.0) ---*/
  19.  
  20. /* Basic functions */
  21.  
  22. struct IFFHandle *AllocIFF( void );
  23. LONG OpenIFF( struct IFFHandle *iff, long rwMode );
  24. LONG ParseIFF( struct IFFHandle *iff, long control );
  25. void CloseIFF( struct IFFHandle *iff );
  26. void FreeIFF( struct IFFHandle *iff );
  27.  
  28. /* Read/Write functions */
  29.  
  30. LONG ReadChunkBytes( struct IFFHandle *iff, APTR buf, long numBytes );
  31. LONG WriteChunkBytes( struct IFFHandle *iff, APTR buf, long numBytes );
  32. LONG ReadChunkRecords( struct IFFHandle *iff, APTR buf, long bytesPerRecord,
  33.     long numRecords );
  34. LONG WriteChunkRecords( struct IFFHandle *iff, APTR buf, long bytesPerRecord,
  35.     long numRecords );
  36.  
  37. /* Context entry/exit */
  38.  
  39. LONG PushChunk( struct IFFHandle *iff, long type, long id, long size );
  40. LONG PopChunk( struct IFFHandle *iff );
  41.  
  42. /* Low-level handler installation */
  43.  
  44. LONG EntryHandler( struct IFFHandle *iff, long type, long id, long position,
  45.     struct Hook *handler, APTR object );
  46. LONG ExitHandler( struct IFFHandle *iff, long type, long id, long position,
  47.     struct Hook *handler, APTR object );
  48.  
  49. /* Built-in chunk/property handlers */
  50.  
  51. LONG PropChunk( struct IFFHandle *iff, long type, long id );
  52. LONG PropChunks( struct IFFHandle *iff, LONG *propArray, long numPairs );
  53. LONG StopChunk( struct IFFHandle *iff, long type, long id );
  54. LONG StopChunks( struct IFFHandle *iff, LONG *propArray, long numPairs );
  55. LONG CollectionChunk( struct IFFHandle *iff, long type, long id );
  56. LONG CollectionChunks( struct IFFHandle *iff, LONG *propArray,
  57.     long numPairs );
  58. LONG StopOnExit( struct IFFHandle *iff, long type, long id );
  59.  
  60. /* Context utilities */
  61.  
  62. struct StoredProperty *FindProp( struct IFFHandle *iff, long type, long id );
  63. struct CollectionItem *FindCollection( struct IFFHandle *iff, long type,
  64.     long id );
  65. struct ContextNode *FindPropContext( struct IFFHandle *iff );
  66. struct ContextNode *CurrentChunk( struct IFFHandle *iff );
  67. struct ContextNode *ParentChunk( struct ContextNode *contextNode );
  68.  
  69. /* LocalContextItem support functions */
  70.  
  71. struct LocalContextItem *AllocLocalItem( long type, long id, long ident,
  72.     long dataSize );
  73. APTR LocalItemData( struct LocalContextItem *localItem );
  74. void SetLocalItemPurge( struct LocalContextItem *localItem,
  75.     struct Hook *purgeHook );
  76. void FreeLocalItem( struct LocalContextItem *localItem );
  77. struct LocalContextItem *FindLocalItem( struct IFFHandle *iff, long type,
  78.     long id, long ident );
  79. LONG StoreLocalItem( struct IFFHandle *iff, struct LocalContextItem *localItem,
  80.     long position );
  81. void StoreItemInContext( struct IFFHandle *iff,
  82.     struct LocalContextItem *localItem,
  83.     struct ContextNode *contextNode );
  84.  
  85. /* IFFHandle initialization */
  86.  
  87. void InitIFF( struct IFFHandle *iff, long flags, struct Hook *streamHook );
  88. void InitIFFasDOS( struct IFFHandle *iff );
  89. void InitIFFasClip( struct IFFHandle *iff );
  90.  
  91. /* Internal clipboard support */
  92.  
  93. struct ClipboardHandle *OpenClipboard( long unitNumber );
  94. void CloseClipboard( struct ClipboardHandle *clipHandle );
  95.  
  96. /* Miscellaneous */
  97.  
  98. LONG GoodID( long id );
  99. LONG GoodType( long type );
  100. STRPTR IDtoStr( long id, STRPTR buf );
  101. #endif     /* CLIB_IFFPARSE_PROTOS_H */
  102.