
               IFND      VLAB_I
VLAB_I         SET       1
;---------------------------------------------------------------------------
             IFND        EXEC_TYPES_I
               INCLUDE   "exec/types.i"
             ENDC

             IFND        EXEC_LIBRARIES_I
               INCLUDE   "exec/libraries.i"
             ENDC
;---------------------------------------------------------------------------
VLAB_LIB_VERSION  equ    7                  ;the current version of vlab.library
;---------------------------------------------------------------------------
; Modes for VLab_Convert
CM_CCIR_Y      equ       0
CM_CCIR_UV     equ       1
;---------------------------------------------------------------------------
; Modes for VLab_Monitor
VMMODE_RETINA_8    equ   0  ; Dest is an 8 bit Retina screen.
VMMODE_RETINA_24   equ   1  ; Dest is a 24 bit Retina screen.
VMMODE_MEMORY_8    equ   2  ; Dest is 8 Bit Amiga memory.
VMMODE_MEMORY_RGB  equ   3  ; Dest is 24 Bit Amiga memory.
VMMODE_MEMORY_RGBA equ   4  ; Dest is 32 Bit Amiga memory.
VMMODE_MEMORY_GB_R equ   5  ; For VDPaint only, do NOT use.
;---------------------------------------------------------------------------
; special default values for VLab_DeInterlace() (v7):
DIDVAL_Y       equ       -1
DIDVAL_U       equ       -2
DIDVAL_V       equ       -3
DIDVAL_R       equ       -4
DIDVAL_G       equ       -5
DIDVAL_B       equ       -6
;---------------------------------------------------------------------------
; function offsets for Custom(); default value in [].

VLREG_NOP          EQU  0      ;NOP
VLREG_LUMINANCE    EQU  1      ;luminance filter            0=OFF, 1=ON  [0]
VLREG_CHROMINANCE  EQU  2      ;chrominance filter          0=OFF, 1=ON  [1]
VLREG_VTR          EQU  3      ;timebase-correction         0=OFF, 1=ON  [0]
VLREG_PAL          EQU  4      ;PAL/NTSC switch             0=OFF, 1=ON  [1]
VLREG_VSC          EQU  5      ;VSync-correction            0=OFF, 1=ON  [1]
VLREG_WEIGHT       EQU  6      ;weight of FILTER and NOISE  0=OFF, 1=LIGHT,
                               ;                            2=MEDIUM, 3=STRONG [1]
VLREG_FILTER       EQU  7      ;filter-frequency            0=OFF, 1=LIGHT,
                               ;                            2=MEDIUM, 3=STRONG [1]
VLREG_NOISE        EQU  8      ;noise-canceller             0=OFF, 1=LIGHT,
                               ;                            2=MEDIUM, 3=STRONG [2]
VLREG_HUE          EQU  9      ;NTSC-color-correction       0..255       [0]
VLREG_FULLFRAME    EQU  10     ;frame select                0=OFF, 1=ON  [0]
VLREG_SLOWSCAN     EQU  11     ;slowscan switch             0=OFF, 1=ON  [0]
VLREG_INPUT        EQU  12     ;CVBS-input-select           0=lower, 1=upper [0]
VLREG_RESERVED13   EQU  13     ;reserved, do not use
VLREG_RESERVED14   EQU  14     ;reserved, do not use
VLREG_CCIR         EQU  15     ;auto convert to CCIR        0=OFF, 1=ON [1]
                               ;  private, do not use
;---------------------------------------------------------------------------
; Modes for YUVtoRGB()

YUV411_TO_LORES   equ    0
YUV411_TO_HIRES   equ    1
YUV211_TO_LORES   equ    2     ; new in (v4) of vlab.library

; the following names are obsolete, use the new names above

RGB_LORES      equ       YUV411_TO_LORES    ; OBSOLETE
RGB_HIRES      equ       YUV411_TO_HIRES    ; OBSOLETE
;---------------------------------------------------------------------------
; Modes for VLab_DeInterlace()
DIM_EVEN       equ       0
DIM_ODD        equ       1
DIM_MIX        equ       2
DIM_SET        equ       3
;---------------------------------------------------------------------------
; the public-part of vlab.library

    STRUCTURE __VLabBase,LIB_SIZE

    WORD    vlb_MaxWidth       ; max. width

    WORD    vlb_MaxHeightPAL   ; max. PAL-height
    WORD    vlb_MaxHeightNTSC  ; max. NTSC-height

    WORD    vlb_InputsPerBoard ; number of inputs on the VLab-board
    WORD    vlb_RatioYUV       ; number of Y-pixels for one UV-pixel

    ULONG   vlb_HardInfo       ;NULL, if there is no VLab hardware
                               ;Non-NULL if there is a hardware. Do
                               ;not assume any special value, it may
                               ;change in the future! (v6)
                               ;always NULL in (v6), fixed in (v7)

    STRUCT  vlb_Reserved,12    ;reserved, do NOT use

    LABEL   vlb_SIZE           ; you should never use this

; subsequent fields in the library base are VLAB PRIVATE
;---------------------------------------------------------------------------
VLERR_OK       equ       0   ; no error, everything OK
VLERR_ADDRESS  equ       1   ; you passed an illegal buffer-address to VLab_Scan()
VLERR_NOHARD   equ       2   ; hardware not found           (*)
VLERR_CLIP     equ       3   ; you passed an illegal clip-definition to VLab_Scan()
VLERR_NOVIDEO  equ       4   ; no video signal found        (*)
VLERR_SCAN     equ       5   ; error during scan            (*)
VLERR_CUSTOM   equ       6   ; illegal register or value
VLERR_INIT     equ       7   ; error while sending the new value to the hardware

VLERR_NOMEM    equ       8   ; not enough memory available  (*)  (v6)

; (*) Please notify the user with a reasonable text if one of the
;     marked errors occured!

;---------------------------------------------------------------------------

               ENDC      ; VLAB_I

