 ------------------------ Release Apr. 02nd ---------------------------------
08.04.2000
 - new datatrack icon
 - updated German translation
 - started new ChangeLog file because the old one had gotten way too big
   to be handled comfortably,
   All the old ChangeLog entries have been moved to ChangeLog.until000402
09.04.2000
 - first attempts to define a corba interface in gtcorba.idl
 - defined Make rule to compile .idl files in Makefile.am and 
   extended gnome-config call to return orbit linking and include options
   in configure.in
 - pass datadir path to gnometoaster in DATADIR macro (plugin directory
   will be a subdirectory of it)
 - introduced tools menu for plugins
 - made orbit independent from Gnome as the plain gtk version should be 
   able to export a CORBA interface as well
11.04.2000
 - bugfix: corrected storage capacity of a normal 74 min. blank
 - display total and allocated playing time of a cd in fillstate bar
12.04.2000
 - display audiotrack size of a track in tracklists so they add up to
   the specified capacity
 - changed fillstate calc routines from sectors back to bytes
   to prevent future bugs in tracktype<->sectorsize lookups
13.04.2000
 - respect data already written on a medium in fillstate display
 - installed update client list in cdrom-drive database to inform interested
   clients about medium changes
 - use the update list above for fillstatebar updates
 - check fsedit_destarea path for existence to prevent a major percentage
   of configuration issues with first-time users
15.04.2000
 - made calc.c string-constant-capable. Now you can specify string-constants
   to a calc function within quotation marks (needed for regexp function)
 - implemented regexp() and strval() functions to be used in preferences
 - bugfix: calculate tracksize of a bootable cd's isotrack correctly
 - implemented configuration update handler for ts calculation
16.04.2000
 - bugfix: make gnometoaster compile without liborbit development
   environment installed
 - switched to extended regexps in regexp() to allow for substring
   returns. the result of the regexp() function is always the *first*
   substring obtained with the expression (that is the first thing in
   brackets :-)).Note that regexp() returns a *string*,
   that is a bunch of alphanumeric characters enclosed in quotation marks.
   To get a number,place the regexp() function within stringval() which
   returns the *first* occuring number in a string.
 ------------------------ Release Apr. 16th ---------------------------------
17.04.2000
 - make cd change detection thread exit before gnometoaster quits
   to make gnometoaster cooperate with gdb a bit better
 - bugfix: gnometoaster crashed while updating the fillstate bar when
   the cd recorder didn't have a representation in the drive list
 ------------------------ Release Apr. 17th ---------------------------------
18.04.2000
 - introduced phony DAO switch in record panel for a time when eventually
   there'll be disc at once support
 - added some configuration fields to recorder config for configuring cdrdao
21.04.2000
 - created cdrdao tocfile writer and introduced some switches indicating
   the state of the dao recording process
 - introduced a few "on dao" checks that should effectively no longer run
   cdrecord now (in other words - clicking record should effectively do
   *nothing* at all but displaying the recording progress bar ;-))
 - implemented call starting cdrdao if in dao mode -> dao should be complete
 - performed a first writing test in dao mode -> tracksizes need to become
   more accurate (exact to 1/75th of a second) -> pad data accordingly
 - pad all tracks to the tracksizes returned by tracks_tracksize()   
 - first "perfect" record -> that is not a single segfault and 
   everything looked almost perfect ;-)
24.04.2000
 - bugfix: reactivate waiting for data in tao mode (necessary for
   multisession writing)
 - installed protection mechanism refusing multisession writing in dao mode
   (or rather turning off dao mode automatically if one of the multisession
   features is requested)
25.04.2000
 - some basic definitions for cddb lookup
26.04.2000
 - don't display warning message if regexp couldn't be compiled/executed
   unless we're in debug mode
 - bugfix: also warn if fsedit destarea path is invalid in configfile
28.04.2000
 - some more work on the cddb lookup interface, activated cddb_init() and 
   cddb_destroy() in main.c
 - bugfix: don't start the recording process for zero-size tracks
02.05.2000
 - make the loss of the recording client fatal in any case
   (=> do not fixate, exit the recording process immediately to let the
   user decide how to continue)
 - implemented cddb server connect routines
 - successfully initiated test connection, worked out reconnect loops etc.
08.05.2000
 - moved connect procedure from commthread into an external function
 - defined a struct holding all data about a CD that are necessary
   to look it up in the cddb database
09.05.2000
 - implemented cddb query for disc
11.05.2000
 - made audio tracks with a compact disc as source medium lookup themselves
   using the cddb database functions.
 - first successfully completed lookup on a disc (only QUERY is currently
   implemented)
12.05.2000
 - completed cddb lookup support
 - made cddb server configurable
 ------------------------ Release May 12th ---------------------------------
13.05.2000
 - bugfix: do not read the whole source track if it was cut down.
   With *very* wrong tracksize results this might potentially have 
   caused a loss of streaming
 - bugfix: told padding loop that being endless wasn't one of it's
   intended properties
 ------------------------ Release May 13th ---------------------------------
14.05.2000
 - bugfix: align precached tracks to sector boundaries
15.05.2000
 - bugfix: fixed several memory leaks in cddb.c that could render gnometoaster
   almost unusable within minutes when cddb lookups didn't yield valid results
16.05.2000
 - use getpwuid() and getuid() instead of cuserid() to identify the user
   running gnometoaster for portability reasons
 - applied BSD patches by Will Andrews <andrews@technologist.com>
 - changed -lpthread to -pthread in configure.in to meet the requirements
   of the freeBSD port.
17.05.2000
 - added /debian directory provided by Wichert Akkerman <wichert@cistron.nl>
 - implemented cddb cache
 - bugfix: don't end up in an endless loop in cache retrieval function
 ------------------------ Release May 19th ---------------------------------
03.06.2000
 - make gnometoaster compile on linux 2.0.x systems 
   without modifications [Scott Heavner <sdh@po.cwru.edu>]
 - bugfix: make gnometoaster compile without 
   pthreads again [Scott Heavner <sdh@po.cwru.edu>]
04.06.2000
 - removed the -a option from the default mkisofs call to meet the
   requirements of recent mkisofs versions
22.06.2000
 - finally started designing new drive setup which should solve most
   configuration issues
 - converted drive handling to new drivelist style. Implemented
   config file loader based on the code used for the filetype registry
23.06.2000
 - created struct-independent forms generator for easy input form handling
 - drive list now uses the forms generator in forms.c for the drive setup
 - implemented storage function for new drive list
 - switched to new cd recorder configuration scheme, implemented
   configuration update handlers and adapted all parts of gnometoaster
   to use the new drive setup to reference the cd writer
 - had a few successful testruns with the new drivelist
   interfaces. Among the tested things are: filesystem creation,
   multisession incl. session linking, dao recording of mp3 files,
   cd blanking.
24.06.2000
 - created config lines for autodetect call
 - implemented drive autodetect function
27.06.2000
 - don't enter two drives with the same scsiid into the drive list 
   when performing auto detection
 - extended virtualdir definition to contain an additional field char *source,
   a feature required for the complete virtualization of the isofs engine.
 - gave the isotrack definition a virtual dir field which will later contain
   layout informations about the iso filesystem to be created.
03.07.2000
 - use /etc/fstab to determine mountpoint
09.07.2000
 - do not execute esc sequences when writing varman vars
 - bugfix: "disarm" esc sequences in defaultconfig entry describing
   regexp function to get mount point
15.07.2000
 - bugfix: made dummy recording in dao mode work
 - bugfix: properly deinitialize preview player on exit (unlink track currently
   playing so's if the preview player was it's last user the track
   gets deleted correctly)
 - implemented internal mp3 tracksize calculation functionality now available
   using the special var $mp3size in the tracksize calculation alghoritm
 - bugfix: changed mpg123 call to automatically dublicate the channel
   of a mono mp3
 - bugfix: don't add requests that have been cancelled again if they couldn't
   be performed correctly
 - bugfix: honour update_disable flag in non-threaded mode as well
   (cddrives.c)
21.07.2000
 - bugfix: rewrote padding functionality to cooperate with gtk_main() 
   while padding a track. This fixes a bug where Gnometoaster didn't process
   stderr of cdrdao, blocking cdrdao's input pipe, thus creating a loss
   of streaming error.
   Also, the progress display is now correct for padded tracks
 - bugfix: don't stop reading from source if less then BUFSIZE bytes
   could be read. Way for 0 or -1 instead.
 - bugfix: also stop preview player if error occurred reading the sound clip.
   Tests show that Gnometoaster now seems reliable again
23.07.2000
 - Gnometoaster is now using pthread mutexes instead of semaphores.
   This might fix those segfault problems reported by various users
   (untested, will someone please check this out ?)
 - removed dircache.c/h, which was buggy and pretty useless anyway
 - bugfix: fixed a bug where the always_precache_recorder_tracks function
   still used the old drive setup scheme and caused a segfault on newly
   installed systems
24.07.2000
 - bugfix: fixed a memory hole in drive setup dialog (forms.c)
28.07.2000
 - cleaned up cdromlow.c, replaced all those FreeBSD compatibility 
   #ifdefs by a few macros which makes the code much more readable
 - bugfix: introduced error checking in cdromlow functions
 - bugfix: no longer check drive status when building the cddb code as this
   has been causing segfaults on some systems for reasons I don't understand
29.07.2000
 - first definitions of a filesystem abstraction layer
 - completed vfs definitions
 - implemented some basic vfs_unixtree definitions with the final goal to make
   the standard filesystem accessible over the vfs abstraction layer
03.08.2000
 - bugfix: accept non-first-track datatracks (e.g. cd plus) and calculate
   their tracksizes etc. correctly. this is a first step towards multiple
   data track functionality to be implemented later
 - don't retry failed cddb lookups all the time. Introduced a timeout 
   for each entry to make sure this doesn't eat all cpu time or a lot
   of bandwidth
 - bugfix: don't kill update thread before entering the recording phase,
   disable it only
04.08.2000
 - bugfix: tell the main thread timout handler not to exit on cddrives_update
   ==-1 but to use the newly introduced exit request var instead
 - bugfix: don't let the cddb code
   end up in an endless loop if one or more tracks couldn't
   get looked up correctly
09.08.2000
 - started to rework the recording process for multithreading
 - made Gnometoaster compile with threaded writing, now entering
   bugfixing mode
 - made record high-level control mutex non-blocking in record.c
 - decreased update interval
10.08.2000
 - bugfix: detect unexpected recording client exits again
11.08.2000
 - don't calculate the tracksize beforehand in stdfiletrack.c but wait until
   it is actually needed. This speeds up the preview player significantly
 - bugfix: initialize the "source" field of the virtualdir class correctly
 - automatically make date of last run of ./configure the package date
13.08.2000
 - added Hungarian translation file by narancs1@externet.hu
 - bugfix: made non-pthreaded version work again
 - updated German documentation
 - updated FAQ
 ------------------------ Release Aug. 13th ---------------------------------
14.08.2000
 - store pointer to thread info structure in state struct of a
   copy_write operation in record.c
 - bugfix: don't free state struct while it is still needed by the 
   calling function in record.c
 - bugfix: make sure copy thread does no longer access state once
   state->trackdone is true
 - bugfix: make sure thread has exited when state->trackdone is set 
   even if we're facing a fatal error.
   Implementation of a "Stop" button could go a similar way.
 - extended list of accepted drag and drop types. Don't know if this will
   affect Gnometoaster's interoperability yet though.
 - added use scsi interface for dae checkbox to drive setup. 
   This is not used yet, though.
 - implemented usage of the new drive setup entry and added config
   file update handler
 - tracklist display is now automatically updating on medium changes
15.08.2000
 - corrected text typo and updated German translation
 ------------------------ Release Aug. 21st ---------------------------------
21.08.2000
 - defined configuration menu and struct entries for track->file conversion
 - modified forms.c so's now a NULL pointer can be passed instead of 
   an updatehandler list for forms that don't need to apply updates
   immediately
23.08.2000
 - updated japanese documentation (Takeshi Aihana <takeshi@turbolinux.co.jp>)
24.08.2000
 - started defining and implementing a streamcopy class to be used for
    * recording
    * previewing
    * file copying
    * file encoding
   and whatever else there is that requires copying of streams
 - completed implementing streamcopy.h/streamcopy.c
 - started rewriting record.c to use the new streamcopy functions
 - finished rewriting record.c based on streamcopy functions
 - introduced stop button to the recording progress dialog
 - use threaded copying for track precaching
 - made preview player use streamcopy
26.08.2000
 - implemented encoding capabilities
27.08.2000
 - reimplemented drag and drop selection handler in fileman.c to be more
   generic and esp. to allow asynchronous data processing (that is:
   dnd event will be finished immediately with all action to be taken
   treated as a pending task).
   This will enable use to display a progress bar for single-file precaching
   and takes care of synchronizing multiple encoding tasks.
 - modified trackedit.c to make use of the new dnd selection handling code
28.08.2000
 - installed updatehandler entering encoder informations for .wav and .mp3
   into the filetype registry
 - display drive model instead of device name
 - bugfix: do not call cddrives_drives.contentchange from drivelist
   change update handler. This made some code in cdsource.c
   access a drive info struct that was no longer present if the drive
   removed from the drivelist was currently in display.
   The situation was rather unique: although cdsource.c together with
   source.c cooperate very tightly to stay up-to-date about the current
   drivelist and react on eventual changes immediately through the
   update slot provided by cddrives.c, there was the loophole that
   some routine in cddrives.c called the second slot of cddrives,
   cddrives_drives.contentchange proposing that once a drive disappears,
   it's content changes as well. So while the drive structure for the just
   removed drive had already been destroyed, source.c had not yet been noti-
   fied about this as cddrives.c's internal update handlers are called
   earlier in the queue. With one of these calling the .contentchange
   updatehandlers our little problem was perfect. The drivelist
   display doesn't know about the changes to the drivelist yet
   => there are still update handlers installed for a no longer present
   drive and boom that's it.
   Bugfix -> the cddrives_drives.update event is no longer cascaded
   into a cddrives_drives.contentchange event.
29.08.2000
 - fixed compilation in non-pthreads mode
 ------------------------ Release Aug. 29th ---------------------------------
29.08.2000
 - bugfix: fixed wrong sox call for track->wav conversion
 - bugfix: play nice with plain gtk in configupdate.c
 ------------------------ Release Aug. 29th Bugfix --------------------------
 
   
   
 
   
