home *** CD-ROM | disk | FTP | other *** search
/ Club Amiga de Montreal - CAM / CAM_CD_1.iso / files / 487.lha / FileID_v1.30 / fi_iff.h < prev    next >
Text File  |  1991-03-11  |  8KB  |  253 lines

  1. /**************************************************
  2.  *
  3.  * fi_IFF.h
  4.  *
  5.  *   IFF file manipulation code header file
  6.  *
  7.  *    Copyright(c), 1990, 1991 Lloyd B. Eldred
  8.  *                           & Fredrick R Homan
  9.  **************************************************/
  10. typedef unsigned char UBYTE;     /* 8 bits unsigned */
  11. typedef unsigned short UWORD;    /* 16 bits unsigned */
  12. typedef short WORD;         /* 16 bits signed */
  13. typedef long LONG;               /* 32 bits signed */
  14. typedef unsigned long ULONG;
  15. typedef struct {
  16.    UWORD w,h;
  17.    WORD x,y;
  18.    UBYTE nPlanes;
  19.    UBYTE masking;
  20.    UBYTE compression;
  21.    UBYTE pad1;
  22.    UWORD transparentColor;
  23.    UBYTE xAspect, yAspect;
  24.    WORD pageWidth, pageHeight;
  25. } BitMapHeader;
  26.  
  27. #define GIF 1
  28. #define IFF 2
  29. #define ANIM 3
  30. #define HIRES 0x8000
  31. #define LACE 0x4
  32. #define HAM 0x800
  33. #define HALFBRITE 0x80
  34. #define TRUE 1
  35. #define FALSE 0
  36. #define is_odd(number) (number & 0x1)
  37.  
  38. #define MakeID(a,b,c,d) ( (LONG)(a)<<24L | (LONG)(b)<<16L | (c)<<8 | (d))
  39.  
  40. /*****************************************************************/
  41. /*    IFF Groups                                                 */
  42. /*****************************************************************/
  43.  
  44. #define ID_FORM MakeID('F','O','R','M')
  45. #define ID_PROP MakeID('P','R','O','P')
  46. #define ID_LIST MakeID('L','I','S','T')
  47. #define ID_CAT  MakeID('C','A','T',' ')
  48.  
  49. void IFF_FORM(FILE *,LONG);
  50. void IFF_PROP(FILE *,LONG);
  51. void IFF_LIST(FILE *,LONG);
  52. void IFF_CAT(FILE *,LONG);
  53.  
  54. /***************************************************************/ 
  55. /* FORM type handling                                          */
  56. /***************************************************************/
  57.  
  58. #define ID_ILBM MakeID('I','L','B','M')
  59. #define ID_ANIM MakeID('A','N','I','M')
  60. #define ID_SMUS MakeID('S','M','U','S')
  61. #define ID_8SVX MakeID('8','S','V','X')
  62. #define ID_ANBM MakeID('A','N','B','M')
  63. #define ID_ACBM MakeID('A','C','B','M')
  64.  
  65. void IFF_ILBM(FILE *,LONG);
  66. void IFF_ANIM(FILE *,LONG);
  67. void IFF_SMUS(FILE *,LONG);
  68. void IFF_8SVX(FILE *,LONG);
  69. void IFF_ANBM(FILE *,LONG);
  70. void IFF_ACBM(FILE *,LONG);
  71.  
  72. /*************************************************************/ 
  73. /* Chunks that can appear anywhere                           */
  74. /*************************************************************/
  75.  
  76. #define ID_NAME MakeID('N','A','M','E')
  77. #define ID_copyright MakeID('(','c',')',' ')
  78. #define ID_AUTH MakeID('A','U','T','H')
  79. #define ID_ANNO MakeID('A','N','N','O')
  80.  
  81. void IFF_NAME(FILE *,LONG);
  82. void IFF_copyright(FILE *,LONG);
  83. void IFF_AUTH(FILE *,LONG);
  84. void IFF_ANNO(FILE *,LONG);
  85.  
  86. /*************************************************************/ 
  87. /* Chunks that are generally ILBM (pic) Chunks               */
  88. /*************************************************************/
  89.  
  90. #define ID_BMHD MakeID('B','M','H','D')
  91. #define ID_CAMG MakeID('C','A','M','G')
  92. #define ID_CMAP MakeID('C','M','A','P')
  93. #define ID_GRAB MakeID('G','R','A','B')
  94. #define ID_DEST MakeID('D','E','S','T')
  95. #define ID_SPRT MakeID('S','P','R','T')
  96. #define ID_BODY MakeID('B','O','D','Y')
  97. #define ID_CRNG MakeID('C','R','N','G')
  98. #define ID_CCRT MakeID('C','C','R','T')
  99. #define ID_DPPS MakeID('D','P','P','S')
  100. #define ID_DPPV MakeID('D','P','P','V')
  101. #define ID_DGVW MakeID('D','G','V','W')
  102. #define ID_BHSM MakeID('B','H','S','M')
  103. #define ID_BHCP MakeID('B','H','C','P')
  104. #define ID_BHBA MakeID('B','H','B','A')
  105. #define ID_ABIT MakeID('A','B','I','T')
  106.     
  107. void IFF_BMHD(FILE *,LONG,BitMapHeader *);
  108. long IFF_CAMG(FILE *,LONG);
  109. void IFF_CMAP(FILE *,LONG);
  110. void IFF_GRAB(FILE *,LONG);
  111. void IFF_DEST(FILE *,LONG);
  112. void IFF_SPRT(FILE *,LONG);
  113. void IFF_BODY(FILE *,LONG);
  114. void IFF_CRNG(FILE *,LONG);
  115. void IFF_CCRT(FILE *,LONG);
  116. void IFF_DPPS(FILE *,LONG);
  117. void IFF_DPPV(FILE *,LONG);
  118. void IFF_DGVW(FILE *,LONG);
  119. void IFF_BHSM(FILE *,LONG);
  120. void IFF_BHCP(FILE *,LONG);
  121. void IFF_BHBA(FILE *,LONG);
  122. void IFF_ABIT(FILE *,LONG);
  123.  
  124. /************************************************************/
  125. /* Useful chunks for SMUS files                             */
  126. /************************************************************/
  127. #define ID_SHDR MakeID('S','H','D','R')
  128. #define ID_INS1 MakeID('I','N','S','1')
  129. #define ID_INST MakeID('I','N','S','T')
  130. #define ID_TRAK MakeID('T','R','A','K')
  131. #define ID_IRev MakeID('I','R','e','v')
  132. #define ID_BIAS MakeID('B','I','A','A')
  133. #define ID_SNX1 MakeID('S','N','X','1')
  134.  
  135. void IFF_SHDR(FILE *,LONG);
  136. void IFF_INS1(FILE *,LONG);
  137. void IFF_INST(FILE *,LONG);
  138. void IFF_TRAK(FILE *,LONG);
  139. void IFF_IRev(FILE *,LONG);
  140. void IFF_BIAS(FILE *,LONG);
  141. void IFF_SNX1(FILE *,LONG);
  142.  
  143. /************************************************************/
  144. /* Useful chunks for 8SVX Sampled sounds                    */
  145. /************************************************************/
  146.  
  147. #define ID_VHDR MakeID('V','H','D','R')
  148. #define ID_ATAK MakeID('A','T','A','K')
  149. #define ID_RLSE MakeID('R','L','S','E')
  150. #define ID_CHAN MakeID('C','H','A','N')
  151. #define ID_PAN  MakeID('P','A','N',' ')
  152.  
  153. void IFF_VHDR(FILE *,LONG);
  154. void IFF_ATAK(FILE *,LONG);
  155. void IFF_RLSE(FILE *,LONG);
  156. void IFF_CHAN(FILE *,LONG);
  157. void IFF_PAN(FILE *,LONG);
  158.  
  159. /************************************************************/
  160. /* Useful chunks for non-picture files (headers in general) */
  161. /************************************************************/
  162.  
  163. #define ID_ANHD MakeID('A','N','H','D')
  164. #define ID_DLTA MakeID('D','L','T','A')
  165. #define ID_FSQN MakeID('F','S','Q','N')
  166.  
  167. void IFF_ANHD(FILE *,LONG);
  168. void IFF_DLTA(FILE *,LONG);
  169. void IFF_FSQN(FILE *,LONG);
  170.  
  171. /*************************************************************/
  172. /*    Miscellaneous IFF utility functions                    */
  173. /*************************************************************/
  174.  
  175. void IFF_ID(FILE *, char *);
  176. LONG IFF_size(FILE *);
  177. void IFF_GotoEnd(FILE *, LONG);
  178.  
  179. /***********************************************************/
  180. /* IFF2.c headers                                          */
  181. /***********************************************************/
  182.  
  183. #define ID_FTXT MakeID('F','T','X','T')
  184. #define ID_CHRS MakeID('C','H','R','S')
  185. #define ID_FONS MakeID('F','O','N','S')
  186. #define ID_AIFF MakeID('A','I','F','F')
  187. #define ID_BANK MakeID('B','A','N','K')
  188. #define ID_HEAD MakeID('H','E','A','D')
  189. #define ID_MIDI MakeID('M','I','D','I')
  190. #define ID_PGTB MakeID('P','G','T','B')
  191. #define ID_SYTH MakeID('S','Y','T','H')
  192. #define ID_WORD MakeID('W','O','R','D')
  193. #define ID_C100 MakeID('C','1','0','0')
  194. #define ID_PDEF MakeID('P','D','E','F')
  195. #define ID_SHAK MakeID('S','H','A','K')
  196. #define ID_VDEO MakeID('V','D','E','O')
  197. #define ID_SAMP MakeID('S','A','M','P')
  198. #define ID_TDDD MakeID('T','D','D','D')
  199. #define ID_SC3D MakeID('S','C','3','D')
  200. #define ID_TEXT MakeID('T','E','X','T')
  201. #define ID_FNTR MakeID('F','N','T','R')
  202. #define ID_FNTV MakeID('F','N','T','V')
  203. #define ID_GSCR MakeID('G','S','C','R')
  204. #define ID_PICS MakeID('P','I','C','S')
  205. #define ID_PLBM MakeID('P','L','B','M')
  206. #define ID_USCR MakeID('U','S','C','R')
  207. #define ID_UVOX MakeID('U','V','O','X')
  208. #define ID_CLIP MakeID('C','L','I','P')
  209. #define ID_ARC  MakeID('A','R','C',' ')
  210. #define ID_ATXT MakeID('A','T','X','T')
  211. #define ID_PTXT MakeID('P','T','X','T')
  212. #define ID_RGBX MakeID('R','G','B','X')
  213. #define ID_CDAT MakeID('C','D','A','T')
  214. #define ID_MSMP MakeID('M','S','M','P')
  215. #define ID_FIGR MakeID('F','I','G','R')
  216. #define ID_MOVI MakeID('M','O','V','I')
  217.  
  218. void IFF_FTXT(FILE *,LONG);
  219. void IFF_CHRS(FILE *,LONG);
  220. void IFF_FONS(FILE *,LONG);
  221. void IFF_AIFF(FILE *,LONG);
  222. void IFF_BANK(FILE *,LONG);
  223. void IFF_HEAD(FILE *,LONG);
  224. void IFF_MIDI(FILE *,LONG);
  225. void IFF_PGTB(FILE *,LONG);
  226. void IFF_SYTH(FILE *,LONG);
  227. void IFF_WORD(FILE *,LONG);
  228. void IFF_C100(FILE *,LONG);
  229. void IFF_PDEF(FILE *,LONG);
  230. void IFF_SHAK(FILE *,LONG);
  231. void IFF_VDEO(FILE *,LONG);
  232. void IFF_SAMP(FILE *,LONG);
  233. void IFF_TDDD(FILE *,LONG);
  234. void IFF_SC3D(FILE *,LONG);
  235. void IFF_TEXT(FILE *,LONG);
  236. void IFF_FNTR(FILE *,LONG);
  237. void IFF_FNTV(FILE *,LONG);
  238. void IFF_GSCR(FILE *,LONG);
  239. void IFF_PICS(FILE *,LONG);
  240. void IFF_PLBM(FILE *,LONG);
  241. void IFF_USCR(FILE *,LONG);
  242. void IFF_UVOX(FILE *,LONG);
  243. void IFF_CLIP(FILE *,LONG);
  244. void IFF_ARC(FILE *,LONG);
  245. void IFF_ATXT(FILE *,LONG);
  246. void IFF_PTXT(FILE *,LONG);
  247. void IFF_RGBX(FILE *,LONG);
  248. void IFF_CDAT(FILE *,LONG);
  249. void IFF_MSMP(FILE *,LONG);
  250. void IFF_FIGR(FILE *,LONG);
  251. void IFF_MOVI(FILE *,LONG);
  252.  
  253.