home *** CD-ROM | disk | FTP | other *** search
- /*
- Visual FX
- For
- Image FX
- SetUp Script
- Written By J.L. White
-
- (C)1997 Merlin's Software
-
- */
-
- parse arg Num Frames
- options results
- address "IMAGEFX.1"
- ReDraw On
- Quotes = '22'X
-
- RequestResponse "Do You Need Instructions?"
- if rc = 0 then do
- call Docs()
- end
-
- if exists("libs:flyer.library") then do
- if (POS('PROJECT_REXX_PORT',SHOW('Ports')) =0) then do
- RequestNotify 'Flyer Must Be Running First!'
- exit
- end
- call OpenFlyStuff()
-
-
- Gadget.1 = 'D/132/22/120/Base Image Type/4/FLYER CLIP/FLYER STILL/FRAME/SEQUENCE'
- ComplexRequest '"Visual FX SetUp Options"' 1 Gadget 270 60
- if rc ~= 0 then do
- call CloseStuff()
- exit 0
- end
- else do
- IAType = RESULT.1
- end
-
- call GetA()
- end
- else do
- Gadget.1 = 'D/132/22/120/Base Image Type/2/FRAME/SEQUENCE'
- ComplexRequest '"Visual FX SetUp Options"' 1 Gadget 270 60
- if rc ~= 0 then do
- call CloseStuff()
- exit 0
- end
- else do
- IAType = RESULT.1+2
- end
-
- call GetA()
- end
-
-
-
- RequestNumber '"Enter Number Of Layers To Add!"' 1
- CompTotal = result
-
- do i = 1 to CompTotal
-
-
- if exists("libs:flyer.library") then do
-
- Gadget.1 = 'D/127/22/120/Layer #'right(i,2,'0')' Type/4/FLYER CLIP/FLYER STILL/FRAME/SEQUENCE'
- ComplexRequest '"Visual FX SetUp Options"' 1 Gadget 270 60
- if rc ~= 0 then do
- call CloseStuff()
- exit 0
- end
- else do
- IAType.i = RESULT.1
- end
-
- call GetALL()
- end
- else do
- if i = 1 then DriveName = "RAM:"
- else DriveName = GetPathName(PicName.i-1)
- Gadget.1 = 'D/127/22/120/Layer #'right(i,2,'0')' Type/2/FRAME/SEQUENCE'
- ComplexRequest '"Visual FX SetUp Options"' 1 Gadget 270 60
- if rc ~= 0 then do
- call CloseStuff()
- exit 0
- end
- else do
- IAType.i = RESULT.1+2
- end
-
- call GetALL()
- end
-
- NumA = 1
- NumB = 100
- NumC = 50
- RequestSlider '"Enter Amount To Blend Image!"' NumA NumB NumC
- Blend.i = result
-
-
- Gadget.1 = ' Select Entry Mode! '
- Gadget.2 = ' ON From Start '
- Gadget.3 = ' Fade In '
- ListRequest 3 Gadget
- InType.i = 0
- if result = 2 then InType.i = 0
- if result = 3 then InType.i = 1
-
- FadeIn.i = 0
- if InType.i = 1 then do
- FNum = ((End-Start)+1)%4
- if FNum > 30 then FNum = 30
- RequestSlider '"Enter Amount Of Frames To Fade In!"' 1 (End-Start)+1 FNum
- FadeIn.i = Result
- end
-
-
- Gadget.1 = ' Select Exit Mode! '
- Gadget.2 = ' ON To End '
- Gadget.3 = ' Fade Out '
- ListRequest 3 Gadget
- OutType.i = 0
- if result = 2 then OutType.i = 0
- if result = 3 then OutType.i = 1
-
- FadeOut.i = 0
- if OutType.i = 1 then do
- FNum = ((End-Start)+1)%4
- if FNum > 30 then FNum = 30
- RequestSlider '"Enter Amount Of Frames To Fade Out!"' 1 (End-Start)+1 FNum
- FadeOut.i = Result
- end
-
-
- end
-
- call open TempFile,"VFXIFX:TempDrawer/"strip(Num),W
- call writeln TempFile,PicAName
- call writeln TempFile,Start
- call writeln TempFile,End
- call writeln TempFile,IAType
- call writeln TempFile,CompTotal
- do i = 1 to CompTotal
- call writeln TempFile,PicName.i
- call writeln TempFile,Start.i
- call writeln TempFile,End.i
- call writeln TempFile,IAType.i
- call writeln TempFile,Blend.i
- call writeln TempFile,InType.i
- call writeln TempFile,OutType.i
- call writeln TempFile,FadeIn.i
- call writeln TempFile,FadeOut.i
- end
-
- call close TempFile
-
- ActiveColor 1
-
- if FlyOn = 1 then
- call CloseStuff()
-
-
- exit
-
-
-
- GetFile:
- parse Arg Title, Path
- Address FLY_1 SetString Path
- Address FLY_1 GetFileNameNT Title
- return result
-
- GetFileName: procedure
- ARG CompleteName
- c = lastpos("/",CompleteName)
- if c = 0 then c = lastpos(":",CompleteName)
- return substr(CompleteName, c + 1)
-
- GetPathName: procedure
- ARG CompleteName
- c = lastpos("/",CompleteName)
- if c = 0 then c = lastpos(":",CompleteName)
- return left(CompleteName,c)
-
-
- GetA:
- if IAType = 0 then do
- call Switcher(TOSW)
- PicAName = GetFile("Select Flyer Clip For ImageA! ",DriveName)
- Name = GetFileName(PicAName)
- if Name = "" then do
- Address FLY_1 OK_TEXT " OK "
- Title = "You Must Enter A Valid Clip Name To Use!"
- Address FLY_1 FYINT Title
- Address FLY_1 Quit
- call Switcher(TOWB)
- exit
- end
- Address FLY_1 SetFileName PicAName
- Address FLY_1 GetClipLength PicAName
- End = result
- Start = 0
- Address FLY_1 Program "5"
- Address FLY_1 StartNum Start
- Address FLY_1 EndNum End
- Address FLY_1 CurrentNum "0"
- Address FLY_1 GetTimeNT "Select A Range Of Frames To Process!"
- Start = word(result,1)*2
- End = word(result,2)*2
- Start = Start + 1
- End = End +2
- call addlib('PROJECT_REXX_PORT' , 0)
- call addlib(TOASTERLIB,0)
- call Switcher(TOWB)
- address command "C:Wait 1"
- ScreenToFront
- end
- if IAType = 1 then do
- RequestFile '"Select Flyer Still For ImageA!"' DriveName ' '
- PicAName = result
- Name = GetFileName(PicAName)
- if Name = "" then do
- Title = "You Must Enter A Valid Name To Use!"
- RequestNotify Title
- if FlyOn = 1 then Address FLY_1 Quit
- exit
- end
- RequestNumber '"Enter Number Of Frames To Process!"' Frames
- End = result
- Start = 1
- end
- if IAType = 2 then do
- RequestFile '"Select FileName For ImageA!"' 'SYS:' ' '
- PicAName = result
- Name = GetFileName(PicAName)
- if Name = "" then do
- Title = "You Must Enter A Valid Name To Use!"
- RequestNotify Title
- if FlyOn = 1 then Address FLY_1 Quit
- exit
- end
- RequestNumber '"Enter Number Of Frames To Process!"' Frames
- End = result
- Start = 1
- end
- if IAType = 3 then do
- RequestFile '"Select BaseName For ImageA! "' 'SYS:' ' '
- PicAName = result
- Name = GetFileName(PicAName)
- if Name = "" then do
- Title = "You Must Enter A Valid Name To Use!"
- RequestNotify Title
- if FlyOn = 1 then Address FLY_1 Quit
- exit
- end
- RequestNumber '"Enter Number Of Frames To Process!"' Frames
- End = result
- Start = 1
- end
- return
-
-
-
- GetAll:
- if IAType.i = 0 then do
- call Switcher(TOSW)
- PicName.i = GetFile("Select Flyer Clip For Image #"i+1" ",DriveName)
- Name = GetFileName(PicName.i)
- if Name = "" then do
- Address FLY_1 OK_TEXT " OK "
- Title = "You Must Enter A Valid Clip Name To Use!"
- Address FLY_1 FYINT Title
- Address FLY_1 Quit
- call Switcher(TOWB)
- exit
- end
- Address FLY_1 SetFileName PicName.i
- Address FLY_1 GetClipLength PicName.i
- End.i = result
- Start.i = 0
- Address FLY_1 Program "5"
- Address FLY_1 StartNum Start.i
- Address FLY_1 EndNum End.i
- Address FLY_1 CurrentNum "-1"
- Address FLY_1 GetTimeNT "Select Frame To Start With For Image #"i+1" "
- Start.i = word(result,1)*2
- End.i = word(result,2)*2
- Start.i = Start.i + 1
- End.i = End.i +2
-
- call addlib('PROJECT_REXX_PORT' , 0)
- call addlib(TOASTERLIB,0)
- call Switcher(TOWB)
- address command "C:Wait 1"
- ScreenToFront
- end
- if IAType.i = 1 then do
- Title = Quotes"Select Flyer Still For Image #"i+1" "Quotes
- RequestFile Title DriveName ' '
- PicName.i = result
- Name = GetFileName(PicName.i)
- if Name = "" then do
- Title = "You Must Enter A Valid Name To Use!"
- RequestNotify Title
- if FlyOn = 1 then Address FLY_1 Quit
- exit
- end
- End.i = 1
- Start.i = 1
- end
- if IAType.i = 2 then do
- if i = 1 then DriveName = "SYS:"
- Title = Quotes"Select FileName For Image #"i+1" "Quotes
- RequestFile Title DriveName ' '
- PicName.i = result
- Name = GetFileName(PicName.i)
- if Name = "" then do
- Title = "You Must Enter A Valid Name To Use!"
- RequestNotify Title
- if FlyOn = 1 then Address FLY_1 Quit
- exit
- end
- End.i = 1
- Start.i = 1
- end
- if IAType.i = 3 then do
- if i = 1 then DriveName = "SYS:"
- Title = Quotes"Select BaseName For Image #"i+1" "Quotes
- RequestFile Title DriveName ' '
- PicName.i = result
- Name = GetFileName(PicName.i)
- if Name = "" then do
- Title = "You Must Enter A Valid Name To Use!"
- RequestNotify Title
- if FlyOn = 1 then Address FLY_1 Quit
- exit
- end
- RequestNumber '"Enter Number Of Frames To Process!"' (End-Start)+1
- End.i = result
- Start.i = 1
- end
- return
-
- CloseStuff:
- Address FLY_1 Quit
- call remlib('ToasterARexx.port')
- call remlib('PROJECT_REXX_PORT')
- return
-
-
- OpenFlyStuff:
- FlyOn = 1
- address command "run VFXIFX:FLY"
- do while (POS('FLY_1',SHOW('Ports')) = 0)
- address command "wait 1"
- end
- TOASTERLIB="ToasterARexx.port"
- call remlib('ToasterARexx.port')
- call remlib('PROJECT_REXX_PORT')
- call addlib('PROJECT_REXX_PORT' , 0)
- call addlib(TOASTERLIB,0)
- DriveName = FindDrive()
- return
-
-
- FindDrive:
- address command "C:Info >RAM:DriveList"
- call open TempFile,"RAM:DriveList",R
- do until eof(TempFile)
- line = readln(TempFile)
- parse var line Drive" "Rest
- if Drive = "FA0:" then
- FlyVolume = word(Rest,7)":"
- end
- call close TempFile
- address command "Delete >NIL: RAM:DriveList"
- return FlyVolume
-
-
-
- LoadA:
- if IAType = 0 then do
- LoadBuffer PicAName Force Start
- end
- if IAType = 1 then do
- LoadBuffer PicAName Force 1
- end
- if IAType = 2 then do
- LoadBuffer PicAName Force
- end
- if IAType = 3 then do
- LoadBuffer PicAName""right(Start,3,'0') Force
- end
- return
-
-
-
-
- Docs:
-
- text1 = '"This effect takes an image, sequence, or clip then"'
- text2 = '"composites as many layers of other images, sequences"'
- text3 = '"or clips as you desire, on top of the base image."'
- text4 = '" "'
- text5 = '"It asks you for the number of frames for the base"'
- text6 = '"image, then allows you to select the amount of blend"'
- text7 = '"to use on each layer you add. You also have the option"'
- text8 = '"to fade each layer In & Out for a user defined length."'
-
- Gadget.1 = 'TEXT LE=10 TE=4 LB='text1' '
- Gadget.2 = 'TEXT LE=10 TE=14 LB='text2' '
- Gadget.3 = 'TEXT LE=10 TE=24 LB='text3' '
- Gadget.4 = 'TEXT LE=10 TE=34 LB='text4' '
- Gadget.5 = 'TEXT LE=10 TE=44 LB='text5' '
- Gadget.6 = 'TEXT LE=10 TE=54 LB='text6' '
- Gadget.7 = 'TEXT LE=10 TE=64 LB='text7' '
- Gadget.8 = 'TEXT LE=10 TE=74 LB='text8' '
- Gadget.9 = 'END'
- NewComplexRequest '"Instructions For Effect #08"' Gadget 400 86
-
-
- return
-
-
-