home *** CD-ROM | disk | FTP | other *** search
/ Amiga ISO Collection / AmigaUtilCD1.iso / GFX / ADPro251-3.DMS / ADPro251-3.adf / FREDScripts.lha / FREDOperators / AdjustBalancing.fred next >
Encoding:
Text File  |  1994-01-31  |  6.9 KB  |  311 lines

  1. /*
  2. ** AdjustBalancing.fred
  3. **
  4. ** $VER: AdjustBalancing.fred 1.2.0 (23.10.93)
  5. **
  6. ** This program can be run from an InvokeADPro list to run the raw image
  7. ** data through the Balancing settings defined in the pre script or to
  8. ** display the current Balancing settings and ask the user if they should
  9. ** be changed.
  10. **
  11. ** Clips Imported:
  12. **    FREDGlobalModify    -    ~0 if operation is global
  13. **                    0 if it should be frame-specific
  14. **    FREDRedLevel        -    Red component value
  15. **    FREDGreenLevel        -    Green component value
  16. **    FREDBlueLevel        -    Blue component value
  17. **    FREDBrightnessLevel    -    Brightness component value
  18. **    FREDContrastLevel    -    Contrast component value
  19. **    FREDGammaLevel        -    Gamma component value
  20. **
  21. ** Clips Exported:
  22. **    FREDRedLevel        -    Red component value
  23. **    FREDGreenLevel        -    Green component value
  24. **    FREDBlueLevel           -    Blue component value
  25. **    FREDBrightnessLevel    -    Brightness component value
  26. **    FREDContrastLevel    -    Contrast component value
  27. **    FREDGammaLevel          -    Gamma component value
  28. **
  29. ** NOTE: Clip names are case sensitive.
  30. **
  31. ** This script requires FRED v1.4.0 (or higher) to run.  Also required is
  32. ** ADPro v2.5.0 (or higher).
  33. **
  34. ** Copyright © 1992-1993 ASDG, Incorporated
  35. ** All Rights Reserved
  36. **
  37. ** GAMMA ARexx command changed in ADPRO 2.0.4
  38. ** The new range is -50 to 50, not 0 to 100
  39. ** updated this script Monday 26-Jul-93, joe porkka (After ADPRO 2.3)
  40. */
  41.  
  42.  
  43. ADDRESS "ADPro"
  44. OPTIONS RESULTS
  45.  
  46. PARSE ARG FrameNum FrameFName Length LoadFlag FirstCallSeq FirstCallCell
  47.  
  48. NL = '0A'X
  49. SQ = '27'X
  50. DQ = '22'X
  51. TRUE  = 1
  52. FALSE = 0
  53.  
  54.  
  55. /*
  56. ** Get the required clips.  Error if any are missing.
  57. */
  58.  
  59. GlobalModify = GETCLIP( "FREDGlobalModify" )
  60. IF (GlobalModify = "") THEN DO
  61.     ADPRO_TO_FRONT
  62.     OKAY1 "Required clip, FREDGlobalModify," || NL ||,
  63.         "is not specified."
  64.     SCREEN_TO_FRONT "FRED"
  65.     EXIT 10
  66. END
  67.  
  68. IF (GlobalModify ~= 0) THEN DO
  69.     RedLevel = GETCLIP( "FREDRedLevel" )
  70.     IF (RedLevel = "") THEN DO
  71.         ADPRO_TO_FRONT
  72.         OKAY1 "Required clip, FREDRedLevel," || NL ||,
  73.             "is not specified."
  74.         SCREEN_TO_FRONT "FRED"
  75.         EXIT 10
  76.     END
  77.  
  78.     GreenLevel = GETCLIP( "FREDGreenLevel" )
  79.     IF (GreenLevel = "") THEN DO
  80.         ADPRO_TO_FRONT
  81.         OKAY1 "Required clip, FREDGreenLevel," || NL ||,
  82.             "is not specified."
  83.         SCREEN_TO_FRONT "FRED"
  84.         EXIT 10
  85.     END
  86.  
  87.     BlueLevel = GETCLIP( "FREDBlueLevel" )
  88.     IF (BlueLevel = "") THEN DO
  89.         ADPRO_TO_FRONT
  90.         OKAY1 "Required clip, FREDBlueLevel," || NL ||,
  91.             "is not specified."
  92.         SCREEN_TO_FRONT "FRED"
  93.         EXIT 10
  94.     END
  95.  
  96.     BrightnessLevel = GETCLIP( "FREDBrightnessLevel" )
  97.     IF (BrightnessLevel = "") THEN DO
  98.         ADPRO_TO_FRONT
  99.         OKAY1 "Required clip, FREDBrightnessLevel," || NL ||,
  100.             "is not specified."
  101.         SCREEN_TO_FRONT "FRED"
  102.         EXIT 10
  103.     END
  104.  
  105.     ContrastLevel = GETCLIP( "FREDContrastLevel" )
  106.     IF (ContrastLevel = "") THEN DO
  107.         ADPRO_TO_FRONT
  108.         OKAY1 "Required clip, FREDContrastLevel," || NL ||,
  109.             "is not specified."
  110.         SCREEN_TO_FRONT "FRED"
  111.         EXIT 10
  112.     END
  113.  
  114.     GammaLevel = GETCLIP( "FREDGammaLevel" )
  115.     IF (GammaLevel = "") THEN DO
  116.         ADPRO_TO_FRONT
  117.         OKAY1 "Required clip, FREDGammaLevel," || NL ||,
  118.             "is not specified."
  119.         SCREEN_TO_FRONT "FRED"
  120.         EXIT 10
  121.     END
  122. END
  123.  
  124.  
  125. /*
  126. ** See what type of data is loaded in ADPro/MorphPlus.
  127. */
  128.  
  129. CALL "FREDSCRIPTS:FREDFunctions/CheckForRawImageData" TRUE
  130. IF (RESULT ~= 0) THEN
  131.     EXIT 10
  132.  
  133.  
  134. /*
  135. ** Run the raw image data through the defined balancing settings.
  136. ** Note that this script will create new rendered data.
  137. */
  138.  
  139. IF (GlobalModify = 0) THEN DO
  140.     RED
  141.     RedLevel = ADPRO_RESULT
  142.     IF (RC ~= 0) THEN DO
  143.         ADPRO_TO_FRONT
  144.         OKAY1 "Could not retrieve red level."
  145.         SCREEN_TO_FRONT "FRED"
  146.         EXIT 10
  147.     END
  148.  
  149.     GREEN
  150.     GreenLevel = ADPRO_RESULT
  151.     IF (RC ~= 0) THEN DO
  152.         ADPRO_TO_FRONT
  153.         OKAY1 "Could not retrieve green level."
  154.         SCREEN_TO_FRONT "FRED"
  155.         EXIT 10
  156.     END
  157.  
  158.     BLUE
  159.     BlueLevel = ADPRO_RESULT
  160.     IF (RC ~= 0) THEN DO
  161.         ADPRO_TO_FRONT
  162.         OKAY1 "Could not retrieve blue level."
  163.         SCREEN_TO_FRONT "FRED"
  164.         EXIT 10
  165.     END
  166.  
  167.     BRIGHTNESS
  168.     BrightnessLevel = ADPRO_RESULT
  169.     IF (RC ~= 0) THEN DO
  170.         ADPRO_TO_FRONT
  171.         OKAY1 "Could not retrieve brightness level."
  172.         SCREEN_TO_FRONT "FRED"
  173.         EXIT 10
  174.     END
  175.  
  176.     CONTRAST
  177.     ContrastLevel = ADPRO_RESULT
  178.     IF (RC ~= 0) THEN DO
  179.         ADPRO_TO_FRONT
  180.         OKAY1 "Could not retrieve contrast level."
  181.         SCREEN_TO_FRONT "FRED"
  182.         EXIT 10
  183.     END
  184.  
  185.     GAMMA
  186.     GammaLevel = ADPRO_RESULT
  187.     IF (RC ~= 0) THEN DO
  188.         ADPRO_TO_FRONT
  189.         OKAY1 "Could not retrieve gamma level."
  190.         SCREEN_TO_FRONT "FRED"
  191.         EXIT 10
  192.     END
  193.  
  194.     text = "Frame# " || FrameNum || NL ||,
  195.         '"'FrameFName'"' || NL || NL ||,
  196.         "Current Balancing Levels:" || NL ||,
  197.         "  Red        = " || RedLevel || NL ||,
  198.         "  Green      = " || GreenLevel || NL ||,
  199.         "  Blue       = " || BlueLevel || NL ||,
  200.         "  Brightness = " || BrightnessLevel || NL ||,
  201.         "  Contrast   = " || ContrastLevel || NL ||,
  202.         "  Gamma      = " || GammaLevel
  203.  
  204.     ADPRO_TO_FRONT
  205.  
  206.     OKAYN '"AdjustBalancing.fred"' '"'text'"' '"Adjust Levels|Keep Current Levels|Cancel"'
  207.     IF (RC = 0) THEN DO
  208.         SCREEN_TO_FRONT "FRED"
  209.         EXIT 10
  210.     END
  211.     ELSE IF (RC = 1) THEN DO
  212.         CALL "FREDSCRIPTS:FREDFunctions/GetANumber" '"New Red level"' RedLevel (-50) 50 TRUE
  213.         IF (RESULT = ((-50)-1)) THEN
  214.             EXIT 10
  215.         RedLevel = RESULT
  216.  
  217.         CALL "FREDSCRIPTS:FREDFunctions/GetANumber" '"New Green level"' GreenLevel (-50) 50 TRUE
  218.         IF (RESULT = ((-50)-1)) THEN
  219.             EXIT 10
  220.         GreenLevel = RESULT
  221.  
  222.         CALL "FREDSCRIPTS:FREDFunctions/GetANumber" '"New Blue level"' BlueLevel (-50) 50 TRUE
  223.         IF (RESULT = ((-50)-1)) THEN
  224.             EXIT 10
  225.         BlueLevel = RESULT
  226.  
  227.         CALL "FREDSCRIPTS:FREDFunctions/GetANumber" '"New Brightness level"' BrightnessLevel (-50) 50 TRUE
  228.         IF (RESULT = ((-50)-1)) THEN
  229.             EXIT 10
  230.         BrightnessLevel = RESULT
  231.  
  232.         CALL "FREDSCRIPTS:FREDFunctions/GetANumber" '"New Contrast level"' ContrastLevel (-50) 50 TRUE
  233.         IF (RESULT = ((-50)-1)) THEN
  234.             EXIT 10
  235.         ContrastLevel = RESULT
  236.  
  237.         CALL "FREDSCRIPTS:FREDFunctions/GetANumber" '"New Gamma level"' GammaLevel (-50) 50 TRUE    /* GammaLevel 0 100 -- Pre ADPro 2.0.4 */
  238.         IF (RESULT = ((-50)-1)) THEN
  239.             EXIT 10
  240.         GammaLevel = RESULT
  241.  
  242.         CreateRendered = 1
  243.     END
  244.     ELSE IF (RC = 2) THEN
  245.         CreateRendered = 0
  246.  
  247.     SCREEN_TO_FRONT "FRED"
  248. END
  249. ELSE IF (GlobalModify = 1) THEN
  250.     CreateRendered = 1
  251.  
  252. IF (CreateRendered = 1) THEN DO
  253.     RED RedLevel
  254.     IF (RC ~= 0) THEN DO
  255.         ADPRO_TO_FRONT
  256.         OKAY1 "Could not set red level."
  257.         SCREEN_TO_FRONT "FRED"
  258.         EXIT 10
  259.     END
  260.  
  261.     GREEN GreenLevel
  262.     IF (RC ~= 0) THEN DO
  263.         ADPRO_TO_FRONT
  264.         OKAY1 "Could not set green level."
  265.         SCREEN_TO_FRONT "FRED"
  266.         EXIT 10
  267.     END
  268.  
  269.     BLUE BlueLevel
  270.     IF (RC ~= 0) THEN DO
  271.         ADPRO_TO_FRONT
  272.         OKAY1 "Could not set blue level."
  273.         SCREEN_TO_FRONT "FRED"
  274.         EXIT 10
  275.     END
  276.  
  277.     BRIGHTNESS BrightnessLevel
  278.     IF (RC ~= 0) THEN DO
  279.         ADPRO_TO_FRONT
  280.         OKAY1 "Could not set brightness level."
  281.         SCREEN_TO_FRONT "FRED"
  282.         EXIT 10
  283.     END
  284.  
  285.     CONTRAST ContrastLevel
  286.     IF (RC ~= 0) THEN DO
  287.         ADPRO_TO_FRONT
  288.         OKAY1 "Could not set contrast level."
  289.         SCREEN_TO_FRONT "FRED"
  290.         EXIT 10
  291.     END
  292.  
  293.     GAMMA GammaLevel
  294.     IF (RC ~= 0) THEN DO
  295.         ADPRO_TO_FRONT
  296.         OKAY1 "Could not set gamma level."
  297.         SCREEN_TO_FRONT "FRED"
  298.         EXIT 10
  299.     END
  300.  
  301.     EXECUTE
  302.     IF (RC ~= 0) THEN DO
  303.         ADPRO_TO_FRONT
  304.         OKAY1 "Could not create rendered data."
  305.         SCREEN_TO_FRONT "FRED"
  306.         EXIT 10
  307.     END
  308. END
  309.  
  310. EXIT 0
  311.