This file contains a list of possible changes that are planned for the
future.  No promises are made as to when I'll get to implement them.
Your feedback is always welcome, so feel free to mail me if you want to
boost any item's priority, find more points that need to be fixed or if
you have ideas for additional features.


Reminders TODO:
- acq: update event timer for PI starting in +15 - minimal pre-offset
- fuzzy matching (for PI w/o PIL) to catch shifted start times
Possible future reminder options:
- allow to edit programme's reminder title (e.g. to add notes)?
  problem: disables possibility of fuzzy match on titles
- after manual repeat: remove single PI for shortcuts? (needs extra flag)
- state in reminder list: display min/hours/days until next event?
  (cumbersome since it requires to be updated every minute)
- snooze (i.e. repeat) for user-confirmed commands?
- include clock in reminder popup?
- allow to specify format (attribute selection) for reminder event popup and
  optionally include "short info" window in popups (i.e. description) (Jörk)
- use VPS/PDC to detect actual programme's start time
  problem: only possible while TV display switched off or on the same channel
  unless the user has multiple cards; even then coord. with acq. is required
- don't suppress outdated message for new reminder if it's the last one? (Peter)
- pass reminders to external scheduler immediately upon creation (Steffen)
  note: probably also pass removals and changes to external scheduler
- simplify use of shortcuts in reminders (e.g. combine shortcut creation
  with reminder addition in "Add reminder for filter" menu entry)

Recently suggested fixes & changes:
- TV app shm: resend info for same channel (req. by zoomin)
  also: add more EPG info to shared memory; add video norm to shm
  also: synchronize timer list with ZoomOut
  also: slicer type selection or better slicer in K!TV
  also: display reminders in K!TV (esp. in fullscreen mode; Denis Witt)
- single click on short-info size slider: resize by one line
- start time search: abs. stop time val "23:10" excludes titles starting at 23:10
- improve text search: keywords (google style AND), parity-safe/fuzzy
- parity-safe short/long info redundancy removal
- series filter based on title instead of provider-supplied series codes
  possibly allow manually maintained series list (i.e.title/CNIs couples)
- allow provider channel names at the -prov command line arg
- HTML dump: allow to specify which column to use for hyperlink?
- new PI column type which displays full weekday name (Thierry)
- WIN32: save main window position in INI file (when manually changed; Thierry)
- graying out filtered programmes instead of removing them
- marking attributes which match current filter in the description window,
  esp. for text search (Volker Moell)
- allow multiple, non-continguous selections in shortcut & networks listbox
  without use of the keyboard (like in -selectmode multiple)
  (suggested via discussion forum by "Philippe")
- optionally hide short-info window -> display with double-click
- sort networks in merged provider database by default in the user-configured
  order of the merged providers; when adding a new provider to an merge
  config, append new networks to the merged db's network list
- add note to acq config dlg: does not affect display db
- M6 Nextview: derive theme codes from description
- timescale bug: when acq running in daemon for non-UI database, display is
  cleared but not refilled after zoom +/-
- weekday scale for grid layout: additional column (Thierry)
- import data from XMLTV files (e.g. from internet sources; 2003-11-1 in forum)
- split network prefilter into 2 parts: excluded and unlisted: latter ones are
  still part of filter menus and used for reminder shortcut matches
- add flag to shortcuts which enables "auto-selection" after filter reset: will
  allow pre-filtering for other criteria than networks (e.g. remove all sports)
- delayed rc/ini save after shortcut tree changes (e.g. folder open/close)
- vertical scrollbar for timescale window (forum 2003-12-31)
- option to ask before quitting nxtvepg with "X" window title bar button
  or to send to systray instead (forum 2004-01-16)
- bayesian filter to highlight programmes (forum 2004-03-20)
- allow user to override provider's network CNIs (e.g. to allow to merge
  different providers' data for MTV, RBB and SW3; suggested by Jörk)
- free configuration of key and mouse bindings
- allow to select XML DTD version via command line
- save system encoding setting at the time of rc writing into rc file
  so that correct conversion is used during reload
- add "Help" button to error popup messages
- epgdbfil.c: clean solution for text search string length limit


VBI slicer:
- vbidecode: handle interlaced data and non-symmetric start lines
- libzvbi: don't skip frames after channel change, already done by lib
- support for VBI proxy daemon (as part of libzvbi support)

New "NetBox" layout: open issues/known problems:
- refresh may leave excessive gaps between items
- special marker row between different days?
- changing column count/width by resizing outer window?
- possible additional formatting options:
  + wrap text (e.g. for title, or even description)
  + align text: left/center/right

Acquisition daemon:
- make concurrent updates of shared rc file safe (e.g. daemon writes provider
  list in follow ui mode) or use a different rc for acq parameters; currently
  data can be lost
- when dump is aborted, keep the old modification time on client-side
- VPS: trigger check device access via remove cmd (upon xawtv start/exit)
- limit queue max length on server side (e.g. when bandwidth too low
  or client hangs)
- client-side db mgmt during dump state: lock merge & PI listbox?
optional:
- cmdline option -non-shared-dbdir: suck the complete db through the pipe
- avoid copying memory each forwarded EPG block for each connected client
win32 port:
- install daemon as a service, possibly with helper app. in the systray
  to check acquisition status.
- add support for named pipes as alternative to TCP/IP
- TV app interaction, at least to free the driver and use TV app for acq

xawtv TV app interaction:
- add option for TV app connections via socket, to allow the daemon serving
  EPG data to TV apps (note: connection must be routed through to GUI to
  allow changing the channel and following TV channel changes)
- Tune-TV: warn if station name is not in .xawtv?
- Tune-TV: offer to start xawtv if not running?
  may not work if xawtv requires command line options
- VPS empty/pause codes display

WIN32 port fixes:
- support for Secam/PAL multi-norm TV tuners
  SECAM support for wintvcfg.c channel table parsers
- use TV app directory in shm for auto-configuration
- dump stream feature: must use window or file instead of stdout
  note: output to stdout works when started inside a GNU/Cygwin bash
- need to debug source of main window crash in Windows MessageBox()
- better workaround for dynamic menus (e.g. "Navigate" filer menu) needed
- allow manual horizontal resizing for grid layout
- menubutton popups does not work when invoked for the 2nd time via
  ALT key binding (Thierry)
- start with main window maximized when requested in Windows shortcut properties
  (requested by Thierry; I've no idea how to query these properties though)
- systray popup menu should close by any mouse click outside of it
- support for WDM drivers (esp. for capture chips not supported by dsdrv)
- Tcl/Tk panic after desktop resulution change (e.g. to start fullscreen game)
  Tk panic in color palette handling, leads to program abort
  possibly use WM_DISPLAYCHANGE to restart
- catch WM_POWERBROADCAST, PBT_APMRESUMESUSPEND to catch power mode changes

merged database fixes:
- fine control for provider merge
  (e.g. average editorial rating instead of first)
- database statistics popup: need some estimation for % of completeness
- merged database: block index handling (for statistics)
- more intelligent redundancy check for merged descriptions:
  break up into substrings at any non-alnum except space

other required fixes:
- epgdbmerge.c: AI merge: design fixes (don't modify caller's CNI array)
- advance ranges of expired PI in timescale popup every minute
- TI & LI (subtitle and language information blocks): implement output methods
  and search filters
- merge db: remove expired PI from db every minute
- automatically show expired PI in the database when still running
  (according to VPS/PDC) when following TV channel changes
- netwop name config: counts names to "automatic selection"
  even if there was just one provider (or just one with that netwop)
  note: no xawtv sync is done, so it must only appear if there's more than one provider
- during very bad reception acq restarts every 2-4 secs
  due to ttx page header decoding error (falsely detected channel change)
- AdvanceCyclePhase: limit number of tries to update provider (first "if")
- improve streams decoder hamming error handling: assemble AI block
  from multiple instances if neccessary
- add decoding error statistics to epgdbacq (e.g. # of dropped packets & blocks)
- fix: external mode & tuner input source -> nonsense as status output
- fix: obsolete series codes can not be deleted, because only series which
  have an instance in the db are listed in the series menu
- fix: series filter uses netwop index; in a merged db when the netwop
  selection is changed the indices change -> shortcuts with series useless
  must use CNI instead of netwop index in shortcuts
- startup: if nxtvepg version is incompatible don't recommend prov selection
- allow to set input source via /dev/vbi (bttv version >= 0.7.5x)
- cmd line option "predatory": in this mode the tuner is set via /dev/vbi
  regardless of other /dev/video users
- provider-specific shortcuts: are listed only for one provider
  mandatory when shortcut includes series or sortcrit filter
- navigation: disable leafs with zero PI / display number of matches

possible new features: (in order of decreasing priority)
- series management based on titles only, across all networks
- use GTK library instead of Tk to make GUI more pretty
  main problem: much filter shortcut and configuration is implemented in Tcl
- allow acquisition from multiple TV cards and remote daemons
- export database content to mysql server (with updates during acquisition)
- dialogs, menus and help texts in German and French
- wish list: maintain list of search filters that are applied each time new
  data has been acquired; notify the user when a matching programme is found
  for the first time. This can be used for a list of favourite movies or actors
- links to Internet Movie Database from titles and actor's names
  main difficulties: finding out the original title from the national AKA
  and fuzzy-matching actor's names in the description
- provider selection: display db age & fill percentage
  save stats and start time of 1st PI in db header
- wizard for initial configuration (esp. in Windows; suggested by "zoomin")

