A note about adding menus and IP functions to the source of IMPROV.

You need to change the source in the following places:

  1. Choose an enumerated type and add it to E_IPLOP in xfqcam.h
  2. Code the function and add it to improc.c and the function prototype to improc.h
  3. Add a "wrapper" call to the function via the switch in the ProcessImage function in xdemo.c
  4. Add the menu information (name, enum and args) to the menParamInfo[] array in xfqcam.c

How the menus are created and the display updated

  Basically menus are constructed from the menParamInfo[] array of MenuItemDetails structures in xfqcam.c. Each entry in the array contains the name (as it appears in the menu and browser underneath the images), the enumerated value (from xfqcam.h) and the number of arguments.
  Menu popup headings are marked with the number of args "-1". Underneath each heading in the array are the functions to appear in that popup. Beware of the order -- the order listed is the appearance order. Have a look at the source. It is rather self explanatory.
  A linked list by the enumerated value of each heading is created at runtime to generate and update the browser info. This allows for function names such as Show(x,y) to be printed with the actual parameters being passed, such as Show(0.5,0.38).

Compiling

  You may need to tweak some of the includes to get ximprov to compile. In particular you may need to check the location of forms.h on your system. Also, the _QCConfig.quickcam_port variable in qcam.c will need to be set to the correct parallel port address.
  You will need to have the xforms library 0.88 or later.


