home *** CD-ROM | disk | FTP | other *** search
/ Amiga ISO Collection / AmigaUtilCD1.iso / GFX / Converter / IMAFX26.lha / imagefx2 / rexx / ToasterGrab.ifx < prev    next >
Encoding:
Text File  |  1994-11-04  |  2.0 KB  |  108 lines

  1. /*
  2.  * $VER: ToasterGrab 2.0.0 (22.7.94)
  3.  *
  4.  * Arexx program for the ImageFX 2.0 image processing system.
  5.  * Written by Thomas Krehbiel
  6.  *
  7.  * Grab a frame from the Video Toaster frame buffer.
  8.  *
  9.  */
  10.  
  11. OPTIONS RESULTS
  12.  
  13. toastport   = 'ToasterARexx.port'
  14. fsdev       = 'RAM:'
  15. fspath      = fsdev||'FrameStore'
  16. fsname      = 'TempIFX'
  17. fsnum       = 998
  18. fsfullname  = fspath||'/'fsnum||'.FS.'||fsname
  19.  
  20. GetMain
  21. IF rc = 0 THEN DO
  22.    RequestResponse 'Current buffer will be destroyed.'
  23.    IF rc ~= 0 THEN EXIT
  24.    END
  25.  
  26. IF (~SHOW('L', toastport)) THEN
  27.     ADDLIB(toastport, -1)
  28.  
  29. IF ~SHOW('P', toastport) THEN DO
  30.    RequestNotify 'Switcher is not running.'
  31.    EXIT
  32.    END
  33.  
  34. IF ~EXISTS(fspath) THEN
  35.    ADDRESS COMMAND 'Makedir' fspath
  36.  
  37. RequestThree '"Select FrameBuffer To Grab:"' 'DV1' 'DV2' 'Cancel'
  38. IF rc ~= 0 THEN EXIT
  39.  
  40. Switcher(TOSW)
  41. SELECT
  42.    WHEN result = 'DV1' THEN DO
  43.       Switcher(MDV1)
  44.       Switcher(PDV1)
  45.       END
  46.    WHEN result = 'DV2' THEN DO
  47.       Switcher(MDV2)
  48.       Switcher(PDV2)
  49.       END
  50.    OTHERWISE
  51.       NOP
  52.    END
  53.  
  54. oldfsdev = Switcher(FSNM)
  55. IF oldfspath = 'RAM:' THEN
  56.    Switcher(FSBD)
  57. ELSE DO
  58.    IF Switcher(FSDV, fsdev) ~= SWITCHER THEN DO
  59.       Switcher(TOWB)
  60.       ScreenToFront
  61.       RequestNotify 'Could not change FrameStore device.'
  62.       CALL Abort
  63.       END
  64.    END
  65.  
  66. i = Switcher(FMXI, fsnum)
  67. IF i = 1 THEN DO
  68.    Switcher(TOWB)
  69.    ScreenToFront
  70.    RequestResponse 'FrameStore' fsnum 'already exists.  Delete it?'
  71.    IF rc ~= 0 THEN CALL Abort
  72.  
  73.    IF Switcher(FMDL, fsnum) ~= SWITCHER THEN DO
  74.       Switcher(TOWB)
  75.       ScreenToFront
  76.       RequestNotify 'Could not delete FrameStore' fsnum
  77.       CALL Abort
  78.       END
  79.  
  80.    END
  81.  
  82. IF Switcher(FMSV, fsnum, fsname) ~= SWITCHER THEN DO
  83.    Switcher(TOWB)
  84.    ScreenToFront
  85.    RequestNotify 'Could not save temporary file.'
  86.    CALL Abort
  87.    END
  88.  
  89. Switcher(TOWB)
  90. ScreenToFront
  91.  
  92. LoadBufferAs 'FrameStore' fsfullname
  93. IF rc ~= 0 THEN DO
  94.    CALL Abort
  95.    END
  96.  
  97. /* fall through */
  98.  
  99. Abort:
  100.  
  101.    IF EXISTS(fsfullname) THEN
  102.       ADDRESS COMMAND 'Delete' fsfullname
  103.  
  104.    IF oldfsdev ~= 'OLDFSDEV' THEN
  105.       Switcher(FSDV, oldfsdev)
  106.  
  107.    EXIT
  108.