home *** CD-ROM | disk | FTP | other *** search
/ Amiga ISO Collection / AmigaUtilCD1.iso / GFX / Painting / XiPaint3.2-Aminet11.lzx / XiPaint / Developer / OutputLib / libraries / vlab.h < prev    next >
Encoding:
C/C++ Source or Header  |  1993-12-10  |  6.3 KB  |  141 lines

  1. #ifndef VLAB_H
  2. #define VLAB_H 1
  3.  
  4. /* VLab - include. By Thomas Dorn from Macro Systems */
  5.  
  6. #define VMMODE_RETINA  1
  7.  
  8.  
  9. #ifndef EXEC_TYPES_H
  10. #include <exec/types.h>
  11. #endif
  12.  
  13. #ifndef EXEC_LIBRARIES_H
  14. #include <exec/libraries.h>
  15. #endif
  16.  
  17. /* ;--------------------------------------------------------------------------- */
  18. /* ; function offsets for Custom(); default value in []. */
  19.  
  20. #define VLREG_NOP            0      /* ;NOP */
  21. #define VLREG_LUMINANCE      1      /* ;luminance filter            0=OFF, 1=ON  [0] */
  22. #define VLREG_CHROMINANCE    2      /* ;chrominance filter          0=OFF, 1=ON  [1] */
  23. #define VLREG_VTR            3      /* ;timebase-correction         0=OFF, 1=ON  [0] */
  24. #define VLREG_PAL            4      /* ;PAL/NTSC switch             0=OFF, 1=ON  [1] */
  25. #define VLREG_VSC            5      /* ;VSync-correction            0=OFF, 1=ON  [1] */
  26. #define VLREG_WEIGHT         6      /* ;weight of FILTER and NOISE  0=OFF, 1=LIGHT, */
  27.                                 /* ;                            2=MEDIUM, 3=STRONG [1] */
  28. #define VLREG_FILTER         7      /* ;filter-frency            0=OFF, 1=LIGHT, */
  29.                                     /* ;                            2=MEDIUM, 3=STRONG [1] */
  30. #define VLREG_NOISE          8      /* ;noise-canceller             0=OFF, 1=LIGHT, */
  31.                                     /* ;                            2=MEDIUM, 3=STRONG [2] */
  32. #define VLREG_HUE            9      /* ;NTSC-color-correction       0..255       [0] */
  33. #define VLREG_FULLFRAME      10     /* ;frame select                0=OFF, 1=ON  [0] */
  34. #define VLREG_SLOWSCAN       11     /* ;slowscan switch             0=OFF, 1=ON  [0] */
  35. #define VLREG_INPUT          12     /* ;CVBS-input-select           0=lower, 1=upper [0] */
  36. #define VLREG_RESERVED13     13     /* ;reserved, do not use */
  37. #define VLREG_RESERVED14     14     /* ;reserved, do not use */
  38. #define VLREG_CCIR           15     /* auto convert to CCIR        0=OFF, 1=ON [1] */
  39. /* ;--------------------------------------------------------------------------- */
  40. /* ; Modes for YUVtoRGB() */
  41.  
  42. #define YUV411_TO_LORES       0
  43. #define YUV411_TO_HIRES       1
  44. #define YUV211_TO_LORES       2     /* ; new in v4 of vlab.library */
  45.  
  46. /* ; the following names are obsolete, use the new names above */
  47.  
  48. #define RGB_LORES             YUV411_TO_LORES    /* ; OBSOLETE */
  49. #define RGB_HIRES             YUV411_TO_HIRES    /* ; OBSOLETE */
  50. /* ;--------------------------------------------------------------------------- */
  51. /* ; Modes for VLab_DeInterlace() */
  52. #define DIM_EVEN        0
  53. #define DIM_ODD         1
  54. #define DIM_MIX         2
  55. #define DIM_SET         3
  56.  
  57.  
  58. /* ;--------------------------------------------------------------------------- */
  59. /* ; the public-part of vlab.library */
  60.  
  61. struct VLabBase
  62. {
  63.     struct Library xvy;
  64.     short    vlb_MaxWidth;       /* ; max. width */
  65.     short    vlb_MaxHeightPAL;   /* ; max. PAL-height */
  66.     short    vlb_MaxHeightNTSC;  /* ; max. NTSC-height */
  67.     short    vlb_InputsPerBoard; /* ; number of inputs on the VLab-board */
  68.     short    vlb_RatioYUV;       /* ; number of Y-pixels for one UV-pixel */
  69.     ULONG    vlb_HardInfo;       /* ;NULL, if there is no VLab hardware */
  70.                                /* ;Non-NULL if there is a hardware. Do */
  71.                                /* ;not assume any special value, it may */
  72.                                /* ;change in the future! (v6) */
  73.                                /* ;always NULL in v6, fixed in v7 */
  74.  
  75.     WORD    vlb_DIVal_Y;        /* ;use these values as a default for */
  76.     WORD    vlb_DIVal_U;        /* ;  VLab_DeInterlace() */
  77.     WORD    vlb_DIVal_V;        /* ; */
  78.     WORD    vlb_DIVal_R;        /* ; */
  79.     WORD    vlb_DIVal_G;        /* ; */
  80.     WORD    vlb_DIVal_B;        /* ; */
  81.  
  82. };
  83.  
  84. /* ; subsequent fields in the library base are VLAB PRIVATE */
  85. /* ;--------------------------------------------------------------------------- */
  86. #define VLERR_OK              0   /* ; no error, everything OK */
  87. #define VLERR_ADDRESS         1   /* ; you passed an illegal buffer-address to VLab_Scan() */
  88. #define VLERR_NOHARD          2   /* ; hardware not found        (*) */
  89. #define VLERR_CLIP            3   /* ; you passed an illegal clip-definition to VLab_Scan() */
  90. #define VLERR_NOVIDEO         4   /* ; no video signal found     (*) */
  91. #define VLERR_SCAN            5   /* ; error during scan         (*) */
  92. #define VLERR_CUSTOM          6   /* ; illegal register or value */
  93. #define VLERR_INIT            7   /* ; error while sending the new value to the hardware */
  94. #define VLERR_NOMEM           8   /* ; not enough memory available  (*)  (v6) */
  95.  
  96. /* ; (*) Please notify the user with a reasonable text if one of the */
  97. /* ;     marked errors occured! */
  98.  
  99. /* ;--------------------------------------------------------------------------- */
  100.  
  101.  
  102.  
  103. #define VLAB_LIB_VERSION  7                  /* ;the current version of vlab.library */
  104.  
  105. /* ; Modes for VLab_DeInterlace() */
  106. #define DIM_FRAME1    0
  107. #define DIM_FRAME2    1
  108. #define DIM_MIX       2
  109.  
  110. /* ; suggested values for deinterlacing various data types */
  111. #define DIVAL_Y       10
  112. #define DIVAL_U       30
  113. #define DIVAL_V       30
  114. #define DIVAL_R       20
  115. #define DIVAL_G       10
  116. #define DIVAL_B       40
  117.  
  118.  
  119. /* ;--------------------------------------------------------------------------- */
  120. /* ; Modes for VLab_Convert */
  121. #define CM_CCIR_Y      0
  122. #define CM_CCIR_UV     1
  123. /* ;--------------------------------------------------------------------------- */
  124. /* ; Modes for VLab_Monitor */
  125. #define VMMODE_RETINA_8    equ   0  /* ; Dest is an 8 bit Retina screen. */
  126. #define VMMODE_RETINA_24   equ   1  /* ; Dest is a 24 bit Retina screen. */
  127. #define VMMODE_MEMORY_8    equ   2  /* ; Dest is 8 Bit Amiga memory. */
  128. #define VMMODE_MEMORY_RGB  equ   3  /* ; Dest is 24 Bit Amiga memory. */
  129. #define VMMODE_MEMORY_RGBA equ   4  /* ; Dest is 32 Bit Amiga memory. */
  130. #define VMMODE_MEMORY_GB_R equ   5  /* ; For VDPaint only, do NOT use. */
  131. /* ;--------------------------------------------------------------------------- */
  132. /* ; special default values for VLab_DeInterlace(): */
  133. #define DIDVAL_Y         -1
  134. #define DIDVAL_U         -2
  135. #define DIDVAL_V         -3
  136. #define DIDVAL_R         -4
  137. #define DIDVAL_G         -5
  138. #define DIDVAL_B         -6
  139. /* ;--------------------------------------------------------------------------- */
  140. /* ; function offsets for Custom(); default value in []. */
  141.