REM >adfs::4.$.work.ivcontrol.GS_Digit

REM {LIBRARY TITLE   GenesisDigitize }
REM {LIBRARY VERSION 0.01            }
REM {LIBRARY INFO    GS_Digitize     }

REMTYPE = EXTENDED}

REM{NEWHEAP}

REM{NOESCAPECHECK}
REM{NOSTACKCHECK}
REM{NOZEROLOCALS}
REM{NOARRAYCHECK}
REM{ALIGNEDPLING}
REM{NOTRAPS}
REM{SYSCONSTONLY}

REM{NOCOMPILE}
DEF PROCdigitize_grab
REM{COMPILE}

DEF LIBRARY PROCdigitize_grab
LOCAL f%
 SYS "XVdig_Grab",0 TO ;f% : REM novideo%=f%AND1
ENDPROC

REM{NOCOMPILE}
DEF PROCdigitize_render(x0%, y0%, x1%, y1%)
REM{COMPILE}

DEF LIBRARY PROCdigitize_render(x0%, y0%, x1%, y1%)
  MOVE x0%,y0%
  MOVE x1%,y1%
  SYS "XVdig_Scale",&8C,0,0,1279,1023
ENDPROC

REM{NOCOMPILE}
DEF PROCdigitize_init
REM{COMPILE}

DEF LIBRARY PROCdigitize_init
LOCAL ctable%, dma%, a%,d%,factor, conp0%, conp1%, cons0%, cons1%

DIM ctable% 64
REM contrast values
conp0% = 0
conp1% = 63
cons0% = 0
cons1% = 63

SYS "XVdig_Tables",10,ctable%
REM SYS "XVdig_DMAThreshold" TO ,,dma%

factor= (cons1%-cons0%)/(conp1%-conp0%+.001)
FOR a% = 0 TO 63
  d%=cons0%+(a%-conp0%)*factor+1
  IF cons0%<cons1% THEN
    IF d%>cons1% d%=cons1%
    IF d%<cons0% d%=cons0%
  ELSE
    IF d%>cons0% d%=cons0%
    IF d%<cons1% d%=cons1%
  ENDIF
  IF d%<0 THEN
    d%=0
  ELSE
    IF d%>63 THEN d%=63
  ENDIF
  ctable%?a%=d%
NEXT
SYS "XVdig_Tables",10,ctable%

ENDPROC
