home *** CD-ROM | disk | FTP | other *** search
/ Resource Library: Multimedia / Resource Library: Multimedia.iso / space / software / unix / xanm2297.taz / xanm2297 / xanim.h < prev    next >
Encoding:
C/C++ Source or Header  |  1992-08-04  |  5.7 KB  |  280 lines

  1.  
  2. /*
  3.  * xanim.h
  4.  *
  5.  * Copyright (C) 1990,1991,1992 by Mark Podlipec. 
  6.  * All rights reserved.
  7.  *
  8.  * This software may be freely copied, modified and redistributed
  9.  * without fee provided that this copyright notice is preserved 
  10.  * intact on all copies and modified copies.
  11.  * 
  12.  * There is no warranty or other guarantee of fitness of this software.
  13.  * It is provided solely "as is". The author(s) disclaim(s) all
  14.  * responsibility and liability with respect to this software's usage
  15.  * or its effect upon hardware or computer systems.
  16.  *
  17.  */
  18. #include <sys/types.h>
  19. #include <stdio.h>
  20. #include <X11/Xos.h>
  21. #include <memory.h>
  22. #include "mytypes.h"
  23. #include <X11/Xlib.h>
  24.  
  25. #ifndef MIN
  26. #define MIN(x,y)    ( ((x)>(y))?(y):(x) )
  27. #endif
  28.  
  29. #ifndef MAX
  30. #define MAX(x,y)    ( ((x)>(y))?(x):(y) )
  31. #endif
  32.  
  33. /* Read xanim.readme at the end for more info on this line */
  34. #define HZ 100
  35.  
  36. #define MS_PER_60HZ 17
  37.  
  38. /* X11 variables
  39.  */ 
  40. #define MONOCHROME    0
  41. #define GRAY_SCALE    1
  42. #define STATIC_COLOR  2
  43. #define PSEUDO_COLOR  3
  44. #define TRUE_COLOR    4
  45.  
  46. extern int x11_depth;
  47. extern int x11_class;
  48. extern int x11_bytes_pixel;
  49. extern int x11_bitmap_unit;
  50. extern int x11_bit_order;
  51. extern int x11_cmap_flag;
  52. extern int x11_cmap_size;
  53. extern int x11_display_type;
  54. extern int x11_red_mask;
  55. extern int x11_green_mask;
  56. extern int x11_blue_mask;
  57. extern int x11_red_shift;
  58. extern int x11_green_shift;
  59. extern int x11_blue_shift;
  60. extern int x11_red_size;
  61. extern int x11_green_size;
  62. extern int x11_blue_size;
  63. extern int x11_black;
  64. extern int x11_white;
  65. extern int x11_verbose_flag;
  66.  
  67. #define X11_MSB  1
  68. #define X11_LSB  0
  69.  
  70. extern int anim_holdoff;
  71. extern int anim_status;
  72. #define XA_RUN_NEXT    0
  73. #define XA_RUN_PREV    1
  74. #define XA_STEP_NEXT   2
  75. #define XA_STEP_PREV   3
  76. #define XA_FILE_NEXT   4
  77. #define XA_FILE_PREV   5
  78. #define XA_STOP_NEXT   6
  79. #define XA_STOP_PREV   7
  80. #define XA_UNSTARTED   8
  81.  
  82. extern int anim_type;
  83. #define UNKNOWN_ANIM  0
  84. #define IFF_ANIM      1
  85. #define FLI_ANIM      2
  86. #define GIF_ANIM      3
  87. #define TXT_ANIM      4
  88. #define FADE_ANIM     5
  89. #define DL_ANIM       6
  90. #define JPG_ANIM      7
  91.  
  92. typedef struct ACTION_STRUCT
  93. {
  94.  int type;      /* type of action */
  95.  int time;      /* # of jiffies (1/60th sec) */
  96.  UBYTE *data;    /* data */
  97. } ACTION;
  98.  
  99. extern ACTION action[];
  100. extern int action_cnt;
  101. extern int action_start;
  102.  
  103. typedef struct ANIM_HDR_STRUCT
  104. {
  105.  int file_num;
  106.  int anim_type;
  107.  int imagex;
  108.  int imagey;
  109.  int imagec;
  110.  int imaged;
  111.  int anim_flags;
  112.  int loop_num;
  113.  int loop_frame;
  114.  int last_frame;
  115.  int *frame_lst;          /* array of ints which index to actions */
  116.  struct ANIM_HDR_STRUCT *next_file;
  117.  struct ANIM_HDR_STRUCT *prev_file;
  118. } ANIM_HDR;
  119.  
  120. typedef struct
  121. {
  122.  int cmap_size;
  123.  UBYTE data[4];
  124. } CMAP_HDR;
  125.  
  126. #define ANIM_HAM   0x00000001
  127. #define ANIM_LACE  0x00000002
  128. #define ANIM_CYCLE 0x00000004
  129. #define ANIM_DOUBL 0x00000008
  130. #define ANIM_IFF   0x01000000
  131. #define ANIM_DEBUG 0x00010000
  132. #define ANIM_NOLOP 0x00020000
  133. #define ANIM_CYCON 0x00040000
  134.  
  135. typedef struct
  136. {
  137.  int imagex;
  138.  int imagey;
  139.  int xoff;
  140.  int yoff;
  141. } SIZE_HDR;
  142.  
  143. typedef struct
  144.  int xpos;
  145.  int ypos;
  146.  int xsize;
  147.  int ysize;
  148.  XImage *image;
  149. } ACT_IMAGE_HDR;
  150.  
  151. typedef struct
  152.  int xpos;
  153.  int ypos;
  154.  int xsize;
  155.  int ysize;
  156.  Pixmap pixmap;
  157. } ACT_PIXMAP_HDR;
  158.  
  159. typedef struct
  160.  int xpos;
  161.  int ypos;
  162.  int xsize;
  163.  int ysize;
  164.  int pk_size;
  165.  UBYTE data[4]; 
  166. } ACT_PACKED_HDR;
  167.  
  168. typedef struct
  169.  int xpos;
  170.  int ypos;
  171.  int xsize;
  172.  int ysize;
  173.  XImage *image;
  174.  UBYTE *clip_ptr;
  175. } ACT_CLIP_HDR;
  176.  
  177. #define ACT_NOP         0x0000
  178. #define ACT_DELAY       0x0001
  179. #define ACT_IMAGE       0x0002
  180. #define ACT_CMAP        0x0003
  181. #define ACT_SIZE        0x0004
  182. #define ACT_FADE        0x0005
  183. #define ACT_CLIP        0x0006
  184. #define ACT_PIXMAP      0x0007
  185. #define ACT_PACKED      0x0008
  186. #define ACT_FLI_LC7     0x1007
  187. #define ACT_FLI_COLOR   0x100b
  188. #define ACT_FLI_LC      0x100c
  189. #define ACT_FLI_BLACK   0x100d
  190. #define ACT_FLI_BRUN    0x100f
  191. #define ACT_FLI_COPY    0x1010
  192. #define ACT_IFF_BODY    0x2000
  193. #define ACT_IFF_DLTA0   0x2100
  194. #define ACT_IFF_DLTA1   0x2101
  195. #define ACT_IFF_DLTA2   0x2102
  196. #define ACT_IFF_DLTA3   0x2103
  197. #define ACT_IFF_DLTA4   0x2104
  198. #define ACT_IFF_DLTA5   0x2105
  199. #define ACT_IFF_DLTAJ   0x2149
  200. #define ACT_IFF_DLTAl   0x216c
  201. #define ACT_IFF_HMAP    0x2200
  202. #define ACT_IFF_CRNG    0x2201
  203.  
  204.  
  205. /* flags */
  206. extern int verbose;
  207. extern int debug;
  208. extern int ham_flag;
  209. extern int cycle_flag;
  210. extern int anim_flags;
  211. extern int jiffy_flag;
  212. extern int cycle_on_flag;
  213. extern int cycle_wait;
  214. extern int buff_flag;
  215. extern int pack_flag;
  216. extern int optimize_flag;
  217. extern int pixmap_flag;
  218. extern int dither_flag;
  219. extern int anm_map_flag;
  220.  
  221. #define DEBUG_LEVEL1   if (debug >= 1) 
  222. #define DEBUG_LEVEL2   if (debug >= 2) 
  223. #define DEBUG_LEVEL3   if (debug >= 3) 
  224. #define DEBUG_LEVEL4   if (debug >= 4) 
  225. #define DEBUG_LEVEL5   if (debug >= 5) 
  226.  
  227. /* variables */
  228. extern int imagex;
  229. extern int imagey;
  230. extern int imagec;
  231. extern int imaged;
  232. extern int disp_y;
  233.  
  234. #define CMAP_SIZE 256
  235. #define HMAP_SIZE 16
  236. typedef struct
  237. {
  238.  UBYTE red,green,blue,pad;
  239.  ULONG map;
  240. } ColorReg;
  241. extern ColorReg *cmap;
  242. extern ColorReg ham_map[16];
  243.  
  244. /* CMAP function flags for ACT_Setup_CMAP */
  245. #define CMAP_DIRECT        0x000000
  246. #define CMAP_ALLOW_REMAP    0x000001
  247.  
  248. extern int cmap_luma_sort;
  249. extern int cmap_try_to_1st;
  250. extern int cmap_map_to_1st;
  251.  
  252. typedef struct
  253. {
  254.  WORD pad1;
  255.  WORD rate;
  256.  WORD active;
  257.  UBYTE low,high;
  258. } CRNG_HDR;
  259. #define CRNG_HDR_SIZE 8
  260.  
  261. /* Range flags values */
  262. #define CRNG_ACTIVE  1
  263. #define CRNG_REVERSE 2
  264. #define CRNG_INTERVAL   (16384*16)
  265.  
  266. extern void TheEnd();
  267. extern void TheEnd1();
  268. extern ULONG GetWord();
  269. extern ULONG GetHalfWord();
  270. extern void ShowAnimation();
  271. extern void ShowAction();
  272. extern void Cycle_It();
  273. extern ULONG X11_Get_True_Color();
  274. extern ULONG X11_Get_Line_Size();
  275. #define X11_Get_Monochrome(r,g,b) (((ULONG)(r)*11 + (ULONG)(g)*16 + (ULONG)(b)*5) >> 5)
  276.