If you need a detailed overview of differences between versions, ask for the
RCS log files. In this file you'll find only a very brief listing of major
changes or additions.

Before you submit any feature requests, please read the TODO file.


from 0.6.4 to 0.7.0 (2002-March-02)

Note that as of this release the database format is changed (due to a
bugfix and several extensions); it's recommended to delete all database
files from the nxtvepg directory before the next program start (expect
to see a few warnings, which you can ignore in this case). Then
start an EPG scan with the option "Refresh only" (this checkbox is
located below the EPG scan message window)

- Added a network connection between the acquisition daemon and the GUI.
  While connected, the browser receives updates for opened Nextview databases
  (i.e. all incoming EPG blocks are forwarded) and constant updates about
  the acquisition progress.
- Added compile-time option to use multi-threading for VBI acquisition
  instead of a separate process. The advantage is that the threads are only
  created when acquisition is enabled and not when connected to a daemon.
- Added support for wheel mouse in main and help windows,
  thanks to Serge Koenigsmann.
- xawtv popup is immediately removed when xawtv is terminated or iconified
- Fixed bug in status line statistics output: expired percentage did not
  reach 100% even after the database appeared empty because the total of
  "defective" blocks was erronously included in the quotient.
- Added scollbars to network list in network selection dialog and limited
  listbox height to 27 networks.
- Added field with official network description in network name config dialog
  to avoid confusion in case different stations have similar logos
  (e.g. there's "ntv" in Turkey and "n-tv" in Germany)
- Added network name output during EPG scan (e.g. "ARD" instead of "0x0DC1")
  generally improved diagnostic output (summary at the end)
- The timescales windows now show all blocks in the database; they used
  to start with the current time, omitting all expired blocks.
  That was confusing esp. in case all blocks were expired, because the
  status line said "100% complete" but no blocks were displayed.
- Added "acquisition tail" to timescales: the most recently updated ranges
  are marked with a white bar which fades to the background color over time
- Added callback to timescale windows: mouse click on a scale now filters
  the slected netwop in the main window and jumps to the given time
- Fixed bug in database structure which holds navigation menu entries
  (a fixed length array was too short and caused memory overwrites)
- Both acquisition and EPG scan now extract channel frequecies from both
  databases and rc/ini file, so that in case of loss of either databases
  or rc/ini file they still can be recovered.
- Fixed bug which let the browser hang in wait(2) after the process group
  was delivered a STOP signal (i.e. CTRL-Z in the controlling terminal)
- Made dialog windows which display lists resizable, e.g. netwop selection
- Bugfix in database merge (yes, yet another one): the merged netwop table
  could contain uninitialized entries, if the user network selection contained
  networks that were included in none of the merged databases (e.g. remains
  of a previous merge with different providers)
- Implemented "Index" filters for merged database; due to technical
  limitations currently only "now" & "next" searches are supported; others
  will return empty lists.  Thanks to Mathias Homann for prompting this fix.

Thanks to Jan Schuster for alpha testing and much useful feedback
and to Mario Kemper for beta testing and adaptions for NetBSD.


from 0.6.3 to 0.6.4 (2001-November-06)
- bugfix database merge: merging used to produce only empty databases, because
  zero networks were loaded (the user was forced to manually add networks via
  the network selection dialog.) This bug was introduced in version 0.6.2.
  Thanks to Mathias Homann and Jan Schubert for reporting this nasty bug.
- bugfix xawtv popup: percentage was displayed as 10000% for programmes
  running later than the announced stop time (on channels with VPS/PDC).
  Thanks to Ulrich Mueller for the bug report & fix.

from 0.6.2 to 0.6.3 (2001-September-16)
All of these changes are available in the UNIX version only:
- added daemon mode to allow background acquisition without GUI.
  added new cmd line opts -daemon and -acqpassive
- signal HUP can now be used to toggle acquisition on and off (with GUI only;
  the daemon terminates when acquisition is disabled). Before the signal
  used to disable acquisition only.
- fix: catch death of acquisition slave process (i.e. after deadly signal)
  and mark acquisition as disabled in the master process.

from 0.6.1 to 0.6.2 (2001-September-07)
- the merged database now only contains those networks that were selected by
  the user in the network configuration dialog, and in the same order.
  The first change reduces memory and CPU consumption; the second ensures
  that programmes with identical start time are presented in order of your
  network preference (particularily useful e.g. at 20:15 in Germany)
- fixed daylight saving time handling for Linux: got rid of mktime() in
  Julian date to UNIX epoch conversion for incoming PI blocks, so the LTO is
  out of the equation. Before the fix, all blocks that were acquired before
  a DST change appeared shifted by one hour after the DST had changed.
- fixed "program index" filter: index calculation was broken since an
  internal change in the database in release 0.5.1
- fixed Navigate menu: due to a bug the "expire time" filter was undone so
  that expired TV programmes showed up in the listing and could not be removed
  even by pressing the Reset button.
- improved acquisition strategies for multiple databases in "manual" and
  "cyclic" modes by adding a new phase which is entered after one pass over
  all databases. 
- fixed several possible acquisition cycle "hangups" (i.e. acquisition never
  switched to the following provider) which could occur in abnormal situations,
  e.g. when a provider did not transmit all blocks that were listed in his AI
  inventory, or when the AI was completely empty. Also added a global timeout
  of 30 minutes for all acquisition phases.
- added documentation for main window status line in chapter STATISTICS.
  Added "?" button to database statistics popup to link to the new description.
- improved timescale popup ("control" menu): time ranges with missing PI blocks
  (TV programmes) are now marked gray. Note that the ranges can only be
  estimated, as the time range a block covers is not known until the actual
  block is available.  This is useful when a provider enlarges the preview
  range for selected networks only; now you can see which these are.
- improved timescale popup ("control" menu): upon provider or version change
  the old content is no longer destroyed before the new one is filled in
  so that the popup doesn't flash as much anymore.
- timescales popup: removed restriction that only one time scale popup window
  could be opened per database, i.e. the acq time scale popup now remains open
  even when the acquisition works on the browser database.
- new item in acq statistics output: added "PI rx repetition", i.e. how often
  each block in both streams have been received in average since start of
  acquisition.
- fixed bug in database statistics popup: when the popup remained open for
  a long time it ate up a lot of CPU, because the refresh every 10 secs
  did not correctly delete the previous content.
- added transmission error handling for AI block (as already done for PI):
  check if a new block is a equivalent; if yes refuse it if the string segment
  (service and network names) has more parity errors than the previous copy.

from 0.6.0 to 0.6.1 (2001-August-30)
- fixed bug in GUI: when programme listbox column headers were disabled,
  the main window was much too wide (calculated width as pixels, but applied
  as if millimeters). Thanks to Peter Suetterlin for the bug report.
- fixed bug in block management which allowed for PI blocks to remain in the
  database although the valid network block range was declared void in the AI.
  This could result in fill percentages > 100 in the statistic output.

from 0.5.2 to 0.6.0 (2001-August-25)
- possibility to add references to external applications to the context
  popup menu in the browser listbox, e.g. to program an alarm timer for the
  selected TV show in your favourite scheduler.
- new dialog in the control menu to dump the complete programme list or
  selected descriptions into a file in HTML format, from where they can be
  loaded by any WWW browser. This may be of interest for people who want to
  print out TV schedules.
- added option Match full to the text search dialog to allow exact
  title matches, e.g. a search for "heute" will no longer match on
  "heute journal" when full match is enabled.
- alphabetically sorted series list in the filter menu.
- internal change only: separated the EPG scan cleanly from the acq control
  state machine.
- added RPM spec which allows to install directly from the source tarball
- bugfix Windows-95: the browser listbox cursor always followed movements of
  the mouse pointer, even when no button was pressed.
- bugfix in epgblock.c for Power-PC platform; thanks to Gerd Knorr.

from 0.5.1 to 0.5.2 (2001-June-14)
- bugfix programme listbox: the network filter did not follow xawtv channel
  changes. Thanks to Werner Renhardt (werner at kangaroo.at)
- bugfix cyclic acquisition (bug was introduced in 0.5.1): expired programmes
  were not counted for acquisition statistics, hence sometimes the acq engine
  did not detect when the database was complete and did not move on to the
  next provider.

from 0.5.0 to 0.5.1 (June/5/2001)
- monitor the _XAWTV_STATION property on the xawtv window and VPS/PDC (during
  EPG acquisition) to detect channel changes (new source module epgui/xawtv.c;
  communication with xawtv is now done directly via X11 calls, and no longer
  uses the xawtv-remote utility)
- after a channel change, optionally set the programme listing's cursor on
  the programme currently running on this channel and/or display the programme
  title and running time information inside xawtv, either in a popup, as
  overlay (requires xfree4 and the XVideo extension) or window title message.
- improved handling of the network name configuration dialog by addition of
  a "Closest match in xawtv" button.
- fix: during refresh, the cursor now remains on the same start time and network
- fix: short info text view is no longer set to line 1.0 during every update
- fix: possible crash due to reference to freed memory when acq timescale
  popup was open & bad reception (block discarded due to parity errors)
- fix: in cyclic or follow-ui acquisition modes when acquisition was forced
  passive on a non-provider channel (e.g. by a busy video device) acq control
  did not automatically switch to active when the device was freed.
- fix: network name configuration: name selection from the provider listbox
  was handled incorrectly for networks which were not covered by all providers,
  so that another than the selected name was actually used.
- added support for multi-network channel names (e.g. [Arte / Kinderkanal])
  to network name configuration: split xawtv station names around '/' and
  use all resulting segments for matching with Nextview network names.
- added support for Turkish charset in national option table; 6 characters
  which are not in latin-1 are replaced by their ASCII counterparts.
- fixed two memory leaks in the EPG scan and wrong handling of the EPG MIP
  entry, which slowed down the scan on several channels.
- changed Makefile.win32 to use gcc/mingw32 for compilation. The supplied
  Tcl/Tk libraries are compiled with gcc too (on NT using cygwin)

from 0.4.5 to 0.5.0 (Apr. 2001)
- main window is now vertically resizable. The proportions of program listbox
  and info text can be adjusted with a "panning" button (slider)
- added "Tune TV" button in the main window to remote control xawtv (UNIX only)
- added network name configuration dialog to sync names with .xawtv
  and to allow consistant network naming across all providers
- use channel assignments in .xawtv rc file to speed up EPG scan (UNIX only)
- added "Update filter shortcut" dialog to the filter menu to simplify changing
  existing shortcuts
- made handling of filter shortcut dialog fool-proof
- added filter settings description to the shortcut configuration dialog.
  Removed the filter combination checkboxes (were disabled anyway)
- added acquisition mode "external" for Composite/S-Video input source (or
  unknown win32 tuner types)  Win32: suppressed obsolete acq mode "passive".
- fixed command line option -rcfile for Win32: backslash chars in path vanished
- restructured software to simplify reuse as library in other projects

from 0.4.4 to 0.4.5 (Mar. 2001)
- fixed bug in NetBSD daylight saving time handling, due to which programmes
  were shifted by 60 minutes. Thanks to Mario Kemper for the patch.
- fixed bug in Tcl proc LoadRc, due to which rc reload failed.
  Thanks to Dan Lindstroem for the patch (Dan.Lindstroem@t-online.de)

from 0.4.3 to 0.4.4 (Feb. 2001)
- please note my new email address: tomzo at nefkom.net
- fixed severe bug in database reload (reference to freed block;
  curiously this led to crashes under Windows only)
- fixed compatibility with old bttv driver versions (versions <= 0.6.x produced
  error "VIDIOCSCHAN: operation not supported" during TV channel changes)
- added detection of lost VBI frames (Linux, for debugging/optimization only)
- added frequency table for France; minor fixes in Western Europe table;
  tables can be selected via the TV card input popup
- updated tuner type table for Windows Bt8x8 driver -> support for new tuners
- implemented hyperlinks in help pages for references between chapters

from 0.4.pre2 to 0.4.3 (Feb. 2001)
- fixed various glitches in acquisition mode handling and warnings
- added warning when acq mode is forced passive due to non-tuner input source
- finally added chapter about merged databases to documentation
- split off EPG scan sources from epgacqctl.c into separate module epgscan.c
- temp workaround for merged db statistics: supress unsupported categories
- improved presentation of merged descriptions: suppress redundant text
- added transmission error handling: do not replace equivalent block with a
  copy with more parity errors (in the string segment)
- introduced EPG scan options "Slow" and "Refresh" for bad reception or
  database loss, respectively
- added OI header and message to provider selection popup
- network selection popup: added possibility to copy CNI order and suppression
  between providers
- added infos to README about Windows driver installation; thanks to Mario.
- browser listbox format now configurable: now columns can be freely selected
  from 16 attribute types, including title, time, date, theme, ratings, etc.
- added browser listbox column header buttons with drop-down menus
- fixed substring search with latin-1 chars: did not work due to new internal
  encoding in Tcl 8.3 (UTF8)
- fixed dynamic menus on Win32 (e.g. context menu, series menu, Navigate):
  Windows does not generate unmap event, hence the menu content always
  remained the same, regardless of PI selection or even provider changes
- fixed program crash on Win32 while error MessageBox was displayed via Tcl:
  crashed when the mouse was moved from the desktop directly into the main win

from 0.4.pre1 to 0.4.pre2 (Jan. 2001)
- Added status line below browser window for db coverage and acq status
- Statistics windows now available separately for browser and acq databases.
  Added pie chart in addition to history diagram.
- Acquisition statistics are now updated even while no EPG reception, to
  allow analysis of reception trouble. Added output of VPS/PDC CNI.
- NetBSD: patch from Mario to fix possible hangup of VBI slave after an
  external /dev/video application is terminated.
- Windows Bt8x8 driver: added PLL init for 35MHz; Improved driver start on NT;
  Fixed blue screen during shutdown and crashes: exceptions and the shutdown
  message are now catched and the driver stopped before the program exits;
  Disabled registry hack for legal reasons.

from 0.4.pre0 to 0.4.pre1 (Jan. 2001)
- presentation of descriptions of merged databases improved
  by adding a separator image (horizontal line) between the texts.
- added support for Net/Free/OpenBSD Unix in btdrv4linux by Mario Kemper
- described Windows installation in more depth and length in the README file
- compatibility with Windows driver version 4.00
- updated registry hack for Windows Bt8x8 driver 4.31 and later
- command line can take database path as last argument
  This is intended for Windows, to be able to drag and drop a database file
  onto the executable, but can generally be used to set -dbdir and -provider
- added warning messages for database reload errors or missing frequencies

from 0.3.4 to 0.4.pre0 (Dec. 2000)
- added possibility to merge several provider databases into one
- cyclic acquisition between several databases
- added TV input configuration popup
- added Help button to all popups
  order of Help, Abort, Ok identical in all popups
- port to M$ Windows (in new module epgvbi/btdrv4win.c)

from 0.3.3 to 0.3.4 (Nov. 2000)
- added -demo cmd line option for users without live Nextview reception

from 0.3.2 to 0.3.3 (Oct. 2000)
- fixed bug in context menu: arbitrary themes could get listed (pifilter.c)
- fixed possible heap corruption in string conversion (epgblock.c)

from 0.3.1 to 0.3.2 (Oct. 2000)
- fixed bug (SIGSEGV) in CreateContextMenu()
- fixed bug in epgui.tcl, proc DeleteSortCritSelection: deletion failed
- added -c to install in Makefile for NetBSD compatibility
- added credits to manpage

from 0.02a to 0.3.1 (Sep./Oct. 2000)
- added netwop, start time & sorting criterion filters to menus & shortcuts
- fixed bugs in shortcut selection: series were not set in the menu checkbuttons
  and series filter not disabled in filter context after deselection
- automatic shortcut deselection when it's filters are manually undone
- timescale windows are reloaded after AI version changed and
  not closed anymore upon provider change
- created manual page & help menu
- added install rule to Makefile and added installations instructions to README
- changed default for db directory to /usr/tmp/nxtvepg; added option -dbdir
- added command line option -card for alternate vbi & video devices
  (needed when there's more than one TV card)
- added context menu, invoked by right mouse button: allows quick filter
  selection, depending on currently selected title
- show copyright & helpful message if no provider known or db empty
- added programme title & feature summary to short-info field
- fixed LTO (GMT offset) computation during daylight saving time

from 0.01a to 0.02a
- added rc/ini file to save filter shortcuts and other config options
- added netwop configuration for general exclusion of non-receptable
  netwops and for personalized network ordering
- added command line options (UNIX only)
- added shortcut add&edit popup and implemented "merge" mode
- added EPG scan and "active acquisition mode"; the tuner is set
  to the chanel of the selected ui db, if possible (UNIX only)
- maintain list of "obsolete" PI, i.e. PI that could not be added
  to the db or are expired. This now allows to generate an exact
  statistic on how many blocks on the range given in AI were
  acquired.

