Coriander, (c) 2000-2002 Damien Douxchamps <douxchamps@ieee.org>

	
Changes in version 0.22:

   Jan 23, 2002, by Damien Douxchamps
   - created some new macros for configure.in. The script now detects SDL
     properly, and also checks for libraw1394 and libdc1394.
	
   Jan 2, 2002, by Damien Douxchamps
   - removed individual string size, replaced by STRING_SIZE.
	
   Dec 31, by Damien Douxchamps
   - connected the trigger count widget.
   - changed the iso channel numbering policy: we now set
     iso_channel=node_id. This prevents serveral occurences of
     Coriander to mess with each other.
   - removed last GDK stuff in main.c
	
   Dec 29, by Damien Douxchamps
   - updated the real_audience preference: it should be a set of
     flags, not a single value.
   - node number and vendor added in camera name within the camera menu.

   Dec 28, by Damien Douxchamps
   - Added "keep aspect ratio" option for SDL resize
   - Moved some code from UpdatePrefs*Frames to BuildPrefs*Frame to
     avoid lockups
	
   Dec 25, by Damien Douxchamps
   - removed Xv and GDK display methods and associated controls

Changes in version 0.21:
   
   Dec 24, by Damien Douxchamps
   - SDL #ifdef debugged by Mark Hessman
   - screen can be resized in SDL.
   - added some keybindings to the SDL display:
     >: double size
     <: half size
     n: normal size
     f: toggle fullscreen mode
   - WARNING: due to the flexibility, stability, functionalities,
     performance (MMX optimized!) and ease of use of SDL, further
     versions of coriander will ONLY use it for display. This should
     not be a major issue because:
     - SDL nicely integrates overlay like Xv (for those who used Xv)
     - GDK display does not work on multithreaded programs anyway.
       Those who could not even use GDK will thus enjoy SDL.
     - SDL is available on every major platform.
     Coriander 0.21 is thus the last version to use Xv and GDK
     explicitely.

Changes in version 0.20:

    Dec 21, by Damien Douxchamps
    - A lot of debugging...
    - first implementation of an SDL display. No fullscreen or other
      fancy things: just a display. The rest will come later. 
    - added the name of the camera as porthole window title
	
    Dec 19, by Damien Douxchamps
    - Some compilation problems with gcc 2.91 cleaned after some input
      from Rick Philbrick.
	
    Dec 16, by Damien Douxchamps
    - changed all ranges look: replaced (radio-) buttons by a
      option_menu. A lot of code was updated.
    - moved the zoom, focus, tilt and pan functions to the main window
      notebook (a tab has been added). This will allow SDL display (in
      a distant future) and also multi-display (several cams and
      several displays handled by a single coriander program).
    - removed a lot of unsused callbacks.
    - added a period function to display and real threads, make the
      ones of save and ftp functionnal. Every image service can now run
      with its own framerate. The latter is a multiple of the receive
      service framerate (= camera framerate): 1/1, 1/2, 1/3, 1/4,... 
    - removed immediate/periodic modes because immmediate is the same
      as a period of 1.
	
    Dec 14, by Damien Douxchamps
    - make Real preference dialogs available only if Real is available
	
    Dec 14, by Damien Douxchamps
    - added a Real streaming service. This is not yet tested.
	
    Nov 26, by Damien Douxchamps:
    - added handle release and thread cleanup at the end of main.c
	
    Nov 20, by Damien Douxchamps:
    - added some #ifdef HAVE_FTPLIB to avoid compilation problems.
	
    Nov 12, by Damien Douxchamps:
    - updated the thread mechanism to allow multi-camera. Yeah, that
      feature had disappeared...
    - new small procedure to allow cameras to use different channels.
      This allows the use of several cameras threads at the same
      time. There is no support for multi-display at this time (i.e.
      running several coriander on several cams on one linux box).
    - change of formats and fps now works.
    - did some more cleanup of the code.

Changes in version 0.19b:

    Nov 26, by Damien Douxchamps:
    - new layout using "notebook" widget
	
Changes in version 0.19:

    Nov 6, by Damien Douxchamps:
    - MASSIVE code update/cleanup for threads. A little bit beta, but
      probably worth a try... I have designed a new structure as image
      pipe: images walk along this pipe and are successively used by
      different processes (threads). These threads currently are:
	iso: produces images at the beginning of the pipe (server)
	display: displays images on the screen (client)
	save: saves an image to a local file (client)
	ftp: sends an image on a ftp site (client)
	(a Real streaming client will be added in the future)
      About 30% of the code has been changed: you bet there'll be bugs
      lurking around! Please send some feedback about those... :*)
    - FTP is now working.
    - Due to the massive change in threads, some features have been moved
      to the preferences window. The capture window is now rather small...
	
    Oct 29, by Damien Douxchamps:
    - little cleanup/update of threads
    - first implementation of the preferences window. Use of a config
      file (~/.coriander).
    - removed unused items in menus like file saving.
	
Changes in version 0.18:

    Oct 26, by Damien Douxchamps:
    I did a large change concerning the capture and display: ISO receive
    and display threads have been changed from GTK threads to pthreads.
    This improves performances and avoid the locking bug of the external
    trigger function. A quick explaination: GTK thread are NOT real
    threads: if you use 'top' you will only see one process, even if
    several of these threads make Coriander. Real threads, on the other
    hand, will create multiple processes sharing the same memory space.
    It's better because 1) if a thread locks itself (e.g. waiting for a
    frame to come after a trigger), it will not lock the whole program
    and 2) several functions can be done at the same time (e.g. making
    continuous adjustments with sliders does not block the display). I
    noticed some better performance in general using pthreads, but it
    should be extensively tested. This version 0.18 is thus a little beta,
    as those who will probe the code will notice.
    - massive update of threads. The capture thread should be upgraded; it
      will come with the next version.
    
    Sept 26, by Damien Douxchamps:
    - corrected a bug concerning the camera select frame: table 9 was missing.
    - cleaned the ISO button callbacks and added proper button activation.
    - 'About' pixmap update, added a menu icon
	
    Sept 25, by Damien Douxchamps:
    - I removed some unfinalized things that were not making Coriander look
      professional
    - removed the feature locking frame in commander window, as well as the
      associated 'framework' code. It was let untouched for too long...
    - same thing for the slave-camera locking feature (commander window)
    - moved the ISO control into the space left by the feature locking int the
      commander window. That should make setup easier by avoiding systematic
      pop-up of the now-large capture window.
	
Changes in version 0.17:

    Sept 24, by Damien Douxchamps:
    - in an attempt to use radio buttons in the format selection menu, I
      changed the format/mode menu building procedure. Some parts have been
      left commented out, waiting for Glade to support menu-radio buttons
      in a better way. Some definitions have been created in definitions.c.
    - changed the compilation order in src/Makefile.am: definitions and tools
      have been moved 'up'.
    - removed the 'BuildFormat7Ranges' prompt to stdout.
    - removed BuildFormat7Ranges.c file from CVS
    - created UpdateFTPFrame in update_frame.c from Dan's code. Added label
      shading to field shading in order to make things clearer. The function
      has been added in the UpdateCaptureFrame window.
    - some cosmetic UI changes in FTP frame
    - updated version info to 0.17, README and AUTHORS
	
    Sept 18, by Dan Dennedy:
    - interface.c: bugfix the porthole window not scaling smoothly by adding
      a GtkAlignmentWidget
    - interface.c: remove the incomplete accelerator for video overlay 
      toggle button that was introduced yesterday.
    - callbacks.c: removed the on_camera_scope_size_allocate and
      on_camera_scape_size_request event handlers due to fix above.
    - capture.c: bugfix some dc1394_setup_catpure calls using the wrong
      handle introduced 2 days ago.

    Sept 17, by Dan Dennedy:
    - capture.c: optimize re-use of porthole buffer when capturing.
    - capture.c: increased counter capacity to limit of unsigned long
      and changed file format to include 10-digit number.
    - capture.c: apply speed detection code to a few more calls to
      dc1394_setup_capture.
    - capture.c, ftp: do not issue chdir if path is empty string.
    - tools.c: added MessageBox()
    - callbacks.c: enabling FTP without FtpLib invokes MessageBox.
    - added menu accelerators (see src/interface.mods)
    - removed international support from build

    Sept 16, by Dan Dennedy:
    - capture.c: bugfix major memory leak in multi-capture
    - capture.c: bugfix capture failing with video1394 loaded 
      and porthole not open
    - capture.c: factor out some code to a convert_to_yuv()
      function to achieve symmetry with convert_to_rgb()
    - added different capture frequencies: immediate (as fast
      as possible) and periodic (every X secs)
    - added different capture mode: sequentially nubmer file or
      continually overwrite same file
    - added ftp client option to capture based upon FtpLib, which
      is detected with autoconf and handled appropriately.
    - tools.c: added MainStatus()
	
Changes in version 0.17-pre1, July 25, 2001:

    - true error handling: data not used when an error is detected.
    - Bug fix: added "gdk_rgb_init();" in IsoStartThread() (capture.c)
      Thanks to John B. Burchett and Dan Dennedy.
    - due to the lack of updates I have removed the Japanese translation
      files (besides, I've failed to integrate these for some time)
    - Corrected some format7 code thanks to Olaf Ronneberger: in
      BuildFormat7ColorMenu and GetFormat7Capabilities, index like
      (0x1 << i) must be changed to (0x1 << (31-i)) (total: 2 occurences)
	
Changes in version 0.16, June 25, 2001:

    - added first Status window implementation. Enabled status window
      menu item in update_menus.c:line 42.
    - removed 250 lines in callbacks.c by creating ChangeModeAndFormat
      function in tools.c
    - added a notice in the 'no camera found' warning window for those
      who don't understand why their DV cameras are not detected (this
      should people from sending stop tons of emails)
    - moved iso_check/resume functions to tools.c
    - added a checkbox in the test pattern menu item.
    - repaired capture button enable when iso restart is clicked.
    - added maximal speed detection for devices on the bus: no more
      hard-typed SPEED_400!!!
    - first implementation of the status bar of the main window. This bar
      is currently only for error reporting.
	
Changes in version 0.15, May 23, 2001:

    - added Dan's patch for capture & overlay
    - added Marcus Lim code for test pattern display
	
Changes in version 0.14, May 16, 2001:

    - fixes several bugs related to multi-camera support.
    - removed cameras dc1394_init in main()
    - added an overlay enable button for the used for whom the overlay
      does not work well.
	
Changes in version 0.13, May 8, 2001:

    - Heavy code cleanup & bug fixes for overlay and capture. Thanks Dan!
    - some more bug fixes for multiple camera support. Note that overlay
      does not work with multiple cameras.
	
Changes in version 0.12, April 25, 2001:

    - added Japanese language support
    - upgraded for compatibility with latest libdc1394
    - added some more format6 and format7 preliminary stuff
    - some more bug fixes
	
Changes in version 0.11, March 29, 2001:

    - Code update from Dan Dennedy for video overlay: much better threads
      handeling.
    - First Format_6 window prototype
    - single/multi frame capture added by Dan Dennedy
          
Changes in version 0.10, March 19, 2001:

    - MASSIVE code update, cleanup and beautification. Functions of
      different kinds are defined: update and build. These operate on
      different objects: ranges, menus, frames and windows. This looks
      more and more like C++... Build functions all end up by the
      associated update function. Apart from that, build functions include
      the building of their 'sons'.
    - Addition of a video overlay in the porthole window. Many thanks to
      Dan Dennedy!! :-)
    - first implementation of Format_7 controls
	
Changes in version 0.09, Feb. 08, 2001:

    - changed several functions prototype to ...(void) instead of ...().
      This implied several changes to the callbacks.c file.
    - added configure to the sources to try solving a compatibility
      problem
    - corrected a window-size problem (Format_7 window)
	
Changes in version 0.08, Jan. 13, 2001:

    - iso flow control added in capture window: start/stop/restart
    - changed layout of main window
    - added the 'value' parameter for the external trigger ('count').
      Trigger is now 99.9% completed (only testing remains)
    - added a little logo on the main window
    - replaced global feature & camera structures by global pointers to
      these structures
    - introduced the camera selector menu
    - main.c now downloads data of all DC on the bus in a big structure.
    - changed all 'vboxes' that contained dynamic menus to 'tables' because
      it allows correct positioning of dynamicaly created widgets.
    - introduced a new structure: dc1394_misc_info
    - check that all 'set' commands also set the 3 global camera structures
    - finished vectorization and multi-camera switching
    - option menus are now coherent with the camera setup even at boot.
    - framerate menu check that current framerate is available for 
      format/mode. If not available, it switches to the nearest, preferably
      lowest framerate available
    - changed several constant index/boundaries and use instead DC1394
      definitions (like NUM_FRAMERATES,...)
	
Changes in version 0.07, Jan. 08, 2001:

    - intoduced Format_7 window
    - fixed a bug in auto/man mode: each one issued a callback at
      each state change so I removed the callbacks of AUTO mode and
      generalized the MAN mode callback.
    - iso flow is interrupted before fps/format/mode change and retored
      after the change. This avoids hangups in other programs using the
      iso flow.
    - update ranges when exiting from auto mode (ONLY WORKING FOR WHITEBAL
      when using DFW-VL500 bacause it seems this camera does not update all
      its registers in auto mode !)
    - removed disable of iris/gain/shutter during auto exposure (it was
      meaningless)

Changes in version 0.06, Jan. 04, 2001:

    - corrected trigger features: now 99.9% operational
    - corrected load/save memory feature: now 100% operational
    - uses new functions of libdc1394 for trigger, memory and Format_7
    - simplified fps menu generation & update
    - changed some functions names (Build-)
    - use of the dc1394_feature_set structure throughout the program
      as an information repository (synch'd w/ camera)
    - clearly dinstinguish ACTIVATE (at boot or camera select) and
      UPDATE (changing values)
    - DO NOT set any control in update functions (this yields a callback,
      then an update, thus a callback,... == infinite loop!)
    - auto exposure disables iris, gain and shutter
    - callback functions data as pointers to avoid warnings

Changes in version 0.05, Jan. 02, 2001:

    - ( first official release )
    - introduced the "Coriander" name (_that_ was a difficult change!)
    - improved 0.02 in many ways
    - temperature settings
    - capture settings
    - OP auto: momentary disable the command while working
    - auto mode: disable range value (it should be updated regularly)
    - dynamic option menus for fps and trigger mode
    - new 'About' window (Gnome default look)

Changes in version 0.02, Dec. 29, 2000:

    - first signal connections for scale widgets
	
Changes in version 0.01, Dec. 27, 2000:

    - first alpha version, still a lot of stuff missing...

	
