Subversion Repositories filter_foundry

Rev

Rev 210 | Rev 334 | Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | RSS feed

  1. /* Copyright 1993 - 1999 Adobe Systems Incorporated                */
  2. /* All Rights Reserved.                                            */
  3.  
  4. #include <stddef.h>                             // Standard definitions.
  5. //#include <Types.h>                            // Standard types.
  6.  
  7. #include "PITypes.h"                    // Photoshop types.
  8. #include "PIGeneral.h"                  // Photoshop general routines.
  9. #include "PIActions.h"                  // Photoshop scripting.
  10. #include "PIAbout.h"                    // AboutRecord structure.
  11. #include "PIFormat.h"                   // AboutRecord structure.
  12. //#include "PIDefines.h"                        // Plug-in definitions.
  13. //#include "FileUtilities.h"            // Simple file utilities.
  14.  
  15. Boolean HostDescriptorAvailable (PIDescriptorParameters *procs,
  16.                                                                  Boolean *outNewerVersion);
  17. OSErr HostCloseReader (PIDescriptorParameters *procs,
  18.                                            HandleProcs *hProcs,
  19.                                            PIReadDescriptor *token);
  20. OSErr   HostCloseWriter(PIDescriptorParameters *procs,
  21.                                                 HandleProcs *hProcs,
  22.                                                 PIWriteDescriptor *token);
  23. OSErr put_cstring(PIWriteDescriptor token,DescriptorKeyID key,char *s);
  24. char *get_cstring(PIReadDescriptor token);
  25.  
  26. enum ScriptingShowDialog {
  27.         SCR_NO_SCRIPT,
  28.         SCR_SHOW_DIALOG,
  29.         SCR_HIDE_DIALOG
  30. };
  31.  
  32. enum ScriptingShowDialog ReadScriptParamsOnRead(void);
  33. OSErr WriteScriptParamsOnRead(void);
  34.  
  35. OSType getAeteKey(char c, PARM_T *parm);
  36.  
  37. //-------------------------------------------------------------------------------
  38. //      PIDescriptorParameters -- Macro definitions
  39. //-------------------------------------------------------------------------------
  40.  
  41. #define NULLID          0 // for ID routines needing null terminator
  42.  
  43. #define DescParams      gpb->descriptorParameters
  44.  
  45. #define Reader          DescParams->readDescriptorProcs
  46.  
  47. #define Writer          DescParams->writeDescriptorProcs
  48.  
  49. #define PlayInfo        DescParams->playInfo
  50.  
  51. #define RecordInfo      DescParams->recordInfo
  52.  
  53. #define PlayDialog() \
  54.         HostPlayDialog (DescParams)
  55.  
  56. #define DescriptorAvailable(outNewerVersion) \
  57.         HostDescriptorAvailable(DescParams, outNewerVersion)
  58.  
  59. #define WarnDescriptorAvailable() \
  60.         WarnHostDescriptorAvailable(DescParams, hDllInstance)
  61.  
  62. #define OpenReadDesc(desc, array) \
  63.         Reader->openReadDescriptorProc(desc, array)
  64.  
  65. #define OpenReader(array) \
  66.         OpenReadDesc(DescParams->descriptor, array)
  67.        
  68. #define CloseReadDesc(token) \
  69.         Reader->closeReadDescriptorProc(token)
  70.  
  71. #define CloseReader(token) \
  72.         HostCloseReader(DescParams, gpb->handleProcs, token)
  73.        
  74. #define OpenWriter() \
  75.         Writer->openWriteDescriptorProc()
  76.  
  77. #define CloseWriteDesc(token, handle) \
  78.         Writer->closeWriteDescriptorProc(token, handle)
  79.  
  80. #define CloseWriter(token) \
  81.         HostCloseWriter(DescParams, gpb->handleProcs, token)
  82.  
  83. // These Macros simplify access to all the basic Get and Put routines:
  84.  
  85. #define PIGetKey(token, key, type, flags) \
  86.         Reader->getKeyProc(token, key, type, flags)
  87.        
  88. #define PIGetEnum(token, value) \
  89.         Reader->getEnumeratedProc(token, value)
  90.                                
  91. #define PIPutEnum(token, key, type, value) \
  92.         Writer->putEnumeratedProc(token, key, type, value)
  93.        
  94. #define PIGetInt(token, value) \
  95.         Reader->getIntegerProc(token, value)
  96.  
  97. #define PIGetPinInt(token, min, max, value) \
  98.         Reader->getPinnedIntegerProc(token, min, max, value)
  99.  
  100. #define PIPutInt(token, key, value) \
  101.         Writer->putIntegerProc(token, key, value)
  102.        
  103. #define PIGetFloat(token, value) \
  104.         Reader->getFloatProc(token, value)
  105.        
  106. #define PIGetPinFloat(token, min, max, value) \
  107.         Reader->getPinnedFloatProc(token, min, max, value)
  108.  
  109. #define PIPutFloat(token, key, value) \
  110.         Writer->putFloatProc(token, key, value)
  111.        
  112. #define PIGetUnitFloat(token, unit, value) \
  113.         Reader->getUnitFloatProc(token, unit, value)
  114.  
  115. #define PIGetPinUnitFloat(token, min, max, unit, value) \
  116.         Reader->getPinnedUnitFloatProc(token, min, max, unit, value)
  117.  
  118. #define PIPutUnitFloat(token, key, unit, value) \
  119.         Writer->putUnitFloatProc(token, key, unit, value)
  120.        
  121. #define PIGetBool(token, value) \
  122.         Reader->getBooleanProc(token, value)
  123.  
  124. #define PIPutBool(token, key, value) \
  125.         Writer->putBooleanProc(token, key, value)
  126.  
  127. #define PIGetText(token, value) \
  128.         Reader->getTextProc(token, value)
  129.        
  130. #define PIPutText(token, key, value) \
  131.         Writer->putTextProc(token, key, value)
  132.        
  133. #define PIGetAlias(token, value) \
  134.         Reader->getAliasProc(token, value)
  135.        
  136. #define PIPutAlias(token, key, value) \
  137.         Writer->putAliasProc(token, key, value)
  138.  
  139. #define PIGetEnum(token, value) \
  140.         Reader->getEnumeratedProc(token, value)
  141.  
  142. #define PIPutEnum(token, key, type, value) \
  143.         Writer->putEnumeratedProc(token, key, type, value)
  144.  
  145. #define PIGetClass(token, value) \
  146.         Reader->getClassProc(token, value)
  147.        
  148. #define PIPutClass(token, key, value) \
  149.         Writer->putClassProc(token, key, value)
  150.        
  151. #define PIGetRef(token, value) \
  152.         Reader->getSimpleReferenceProc(token,value)
  153.        
  154. #define PIPutRef(token, key, value) \
  155.         Writer->putSimpleReferenceProc(token, key, value)
  156.        
  157. #define PIGetObj(token, type, value) \
  158.         Reader->getObjectProc(token, type, value)
  159.  
  160. #define PIPutObj(token, key, type, value) \
  161.         HostPutObj(DescParams, gpb->handleProcs, token, key, type, value)
  162.  
  163. #define PIPutObjProc(token, key, type, value) \
  164.         Writer->putObjectProc(token, key, type, value)
  165.        
  166. #define PIGetCount(token, value) \
  167.         Reader->getCountProc(token, value)
  168.        
  169. #define PIPutCount(token, key, value) \
  170.         Writer->putCountProc(token, key, value)
  171.        
  172. #define PIGetStr(token, value) \
  173.         Reader->getStringProc(token, value)
  174.        
  175. #define PIPutStr(token, key, value) \
  176.         Writer->putStringProc(token, key, value)
  177.