Subversion Repositories filter_foundry

Rev

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

  1. /*
  2. http://visca.com/ffactory/archives/7-99/msg00011.html
  3.  
  4. Hi Dave,
  5.  
  6. Here's my reverse-engineered version of the Filter Factory PARM
  7. resource block.  Is this what you need?  It seems to be good for
  8. most known (PC) versions of FF.  You can use the Win32 FindResource
  9. API to locate the PARM resource.  E-mail me privately if you need
  10. more details.
  11.  
  12. Cheers,
  13. -Alex Hunter
  14. alex@afh.com
  15. FilterMeister Developer
  16. */
  17.  
  18. #define PARM_SIZE 8296
  19. #define PARM_SIG 7272 // don't know WHERE this value comes from...but it's in valid FF resources
  20.  
  21. #ifdef Rez
  22.  
  23. type 'PARM' {
  24.         longint = PARM_SIG; // cbSize;    //size of this structure
  25.         longint FilterFactory,standaloneFilter; // nVersion;  //0=original FF, 1=standalone filter
  26.         array[8] { longint; }; // val[8];    //initial values of controls
  27.         longint noParameters,parametersDialog; // popDialog; //true if need to pop a parameter dialog
  28.         longint; // unknown1;
  29.         longint; // unknown2;
  30.         longint; // unknown3;
  31.         array[4] { longint; }; // map_used[4];   //true if map(n) is used
  32.         array[8] { longint; }; // ctl_used[8];   //true if ctl(n) is used
  33.         pstring[251];    //Category name
  34.         // Michael Johannhanwahr's protect flag...
  35.         longint notProtected,isProtected; // iProtected;            // == 1 means protected
  36.         pstring[255];       //Filter title
  37.         pstring[255];   //Copyright info
  38.         pstring[255];      //Filter author(s)
  39.         array[4] { pstring[255]; };      //4 map labels
  40.         array[8] { pstring[255]; };      //8 control labels
  41.         array[4] { cstring[1024]; }; //4 channel formulas
  42. };
  43.  
  44. #else
  45.  
  46. /* N.B. under Windows, the strings are all C strings (!) */
  47.  
  48. typedef struct {   //structure of FF PARM resource
  49.      long cbSize;    //size of this structure
  50.      long nVersion;  //0=original FF, 1=standalone filter
  51.      long val[8];    //initial values of controls
  52.      long popDialog; //true if need to pop a parameter dialog
  53.      long unknown1;
  54.      long unknown2;
  55.      long unknown3;
  56.      long map_used[4];   //true if map(n) is used
  57.      long ctl_used[8];   //true if ctl(n) is used
  58.      unsigned char category[252];    //Category name
  59.      // Michael Johannhanwahr's protect flag...
  60.      long iProtected;            // == 1 means protected
  61.      unsigned char title[256];       //Filter title
  62.      unsigned char copyright[256];   //Copyright info
  63.      unsigned char author[256];      //Filter author(s)
  64.      unsigned char map[4][256];      //4 map labels
  65.      unsigned char ctl[8][256];      //8 control labels
  66.      char formula[4][1024]; //4 channel formulas
  67.  } PARM_T;
  68.  
  69. #endif
  70.