home *** CD-ROM | disk | FTP | other *** search
/ Amiga ISO Collection / AmigaUtilCD2.iso / Misc / EDG-CT1.DMS / in.adf / CT.run / Macros / FrameGrab_To_Still.rexx < prev    next >
Encoding:
OS/2 REXX Batch file  |  1995-10-09  |  3.9 KB  |  181 lines

  1. /*
  2.                         Control Tower Arexx Script
  3.                            Written By J.L. White
  4.                          (C)1995 Merlin's Software
  5. */
  6.  
  7. signal on error
  8. signal on syntax
  9. Options Results
  10.  
  11. Main:
  12. call OpenStuff()
  13. call Docs()
  14. call Routine()
  15. call CloseStuff()
  16. exit
  17. return
  18.  
  19. GetFile:
  20.     parse Arg Title, Path
  21.     Address FLY_1 SetString Path
  22.     Address FLY_1 GetFileNameNT Title
  23. return result
  24.  
  25.  
  26. GetPath:
  27.     parse Arg Title, Path
  28.     Address FLY_1 SetString Path
  29.     Address FLY_1 GetPathNameNT Title
  30. return result
  31.  
  32. GetText:
  33.     parse Arg Title, Text
  34.     Address FLY_1 SetString Text
  35.     Address FLY_1 GetStringNT Title
  36. return result
  37.  
  38.  
  39. OpenStuff:
  40.     address command "run CT:FLY"
  41.     do while (POS('FLY_1',SHOW('Ports')) = 0)
  42.         address command "wait 1"
  43.         end
  44.     TOASTERLIB="ToasterARexx.port"
  45.     call remlib('ToasterARexx.port')
  46.     call remlib('PROJECT_REXX_PORT')
  47.     call addlib('PROJECT_REXX_PORT' , 0)
  48.     call addlib(TOASTERLIB,0)
  49. return
  50.  
  51. CloseStuff:
  52.     Address FLY_1 Quit
  53.     call remlib('ToasterARexx.port')
  54.     call remlib('PROJECT_REXX_PORT')
  55.     exit
  56. return
  57.  
  58. YesOrNo: procedure
  59.     parse Arg Title,Yes,No
  60.     Address FLY_1 OK_TEXT Yes
  61.     Address FLY_1 CANCEL_TEXT No
  62.     Address FLY_1 AskYesNoNT Title
  63.     if result = "OK" then YesNo = 1
  64.     else YesNo = 0
  65. return YesNo
  66.  
  67. Info: 
  68.     parse Arg Title,Yes
  69.     Address FLY_1 OK_TEXT Yes
  70.     Address FLY_1 FYINT Title
  71. return
  72.  
  73. FindDrive:
  74.     address command "C:Info >RAM:FLY-List"
  75.     call open TempFile,"RAM:FLY-List",R
  76.     do until eof(TempFile)
  77.         line = readln(TempFile)
  78.         parse var line Drive" "Rest
  79.         if Drive = "FA0:" then 
  80.             Volume = word(Rest,7)":"
  81.     end
  82.     call close TempFile
  83.     address command "Delete >NIL: RAM:FLY-List"
  84. return Volume
  85.  
  86. GetFileName: procedure  
  87.    ARG CompleteName
  88.    c = lastpos("/",CompleteName)
  89.    if c = 0 then c = lastpos(":",CompleteName)
  90.    return substr(CompleteName, c + 1)
  91.  
  92.  
  93. GetPathName: procedure  
  94.    ARG CompleteName
  95.    c = lastpos(":",CompleteName)
  96.    if c = 0 then c = lastpos(":",CompleteName)
  97.    return left(CompleteName,c)
  98.  
  99. Docs:
  100. Answer = YesOrNo(" Do You Need Instructions?"," YES "," NO ")
  101. if Answer = 0 then return 
  102. Text = "
  103. This Macro will FrameGrab Incoming Video\
  104. from Input 1-4 & save the image as a Flyer\
  105. Still. It waits until the user clicks the\
  106. Click To FrameGrab Window or presses the\
  107. GPI trigger from Mouse Port 2. When you do,\
  108. it freezes the video and saves the Still."
  109. Answer = YesOrNo(Text," Continue "," Exit ")
  110. if Answer = 0 then call CloseStuff()
  111.  
  112. return
  113.  
  114.  
  115. Routine:
  116.     Address FLY_1 GetCompressionNT
  117.     Compression = result
  118.     Address FLY_1 GetInputNT
  119.     if result = 1 then do
  120.         Input = "M001"
  121.         Click = "575|330"
  122.         end
  123.     if result = 2 then do
  124.         Input = "M002"
  125.         Click = "610|330"
  126.         end
  127.     if result = 3 then do
  128.         Input = "M003"
  129.         Click = "637|330"
  130.         end
  131.     if result = 4 then do
  132.         Input = "M004"
  133.         Click = "670|330"
  134.         end
  135.     Type = YesOrNo(" Use Mouse Or GPI Trigger?"," MOUSE "," GPI ")
  136.     call Switcher(SGPI,POS)
  137.     Motion = YesOrNo(" Use Motion Removal?"," YES "," NO ")
  138.     DriveName = FindDrive()
  139.     Name = GetFile("Select Path & BaseName For Flyer Stills!   ",DriveName)
  140.     Base = GetFileName(Name)
  141.     if Base = "" then do
  142.         Address FLY_1 OK_TEXT " OK "
  143.         Title = "You Must Enter A Valid Path & Name For Stills!"
  144.         Address FLY_1 FYINT Title
  145.         Address FLY_1 Quit
  146.         exit
  147.         end
  148.     Num = GetText("Enter Number Of\Frames To Grab!","")
  149.     if Num = "" then do
  150.         Address FLY_1 Quit
  151.         exit
  152.         end
  153.     call Set_View(2)
  154.     do i = 1 to Num
  155.         call Switcher(Input)
  156.         if Type = 1 then do
  157.             Address FLY_1 WaitSW "Click Here To FrameGrab Video!"
  158.             end
  159.         else do
  160.             call Switcher(WAIT,GPI)
  161.             end
  162.         Address FLY_1 ClickMouse Click
  163.         call Switcher(MDV1)
  164.         if Motion = 1 then call Switcher(NOMO)
  165.         FileName = Name""right(i,3,'0')
  166.             call RecordAdd(FileName,4,6,Compression)
  167.         call MakeIcon(FileName,0,'STILL')
  168.         end
  169.     call Set_View(0)
  170.     Address FLY_1 FYINT "Frame Grabbing Is Complete!"
  171. return
  172.  
  173.  
  174. syntax:
  175. error:
  176.     Address FLY_1 OK_TEXT " OK "
  177.     Title = "An Error Was Found With This Macro On Line #"SIGL"!"
  178.     Address FLY_1 FYINT Title
  179.     Address FLY_1 Quit
  180. exit
  181.