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.

Mandatory fixes for release 3.0.0:
- teletext limit overview date range (also for first page)
- ttx grabber: special rules for magenta dates on WDR
- update changelog 2.9.0 & 3.0; write release notes
- update WWW: news, provider list

Post-Nextview EPG:
- XMLTV service name: when merging teletext-only use "Merged teletext (%d networks)"
- bad error message when using "Load teletext EPG" and no files available yet
- daemon mode: ? make work independent of TV app & ttx grabber cfg. (e.g. windows)
- stats db histogram, merged db: show percentage of DBs updated during last 12-24 hours
- stats db histogram: add tool-tip to each pie of the chart (showing legend & percentage)
- stats timescale: "acq tail": highlight networks/time ranges acq is working for
- stats timescale: keep network names visible even when scrolling
- stats timescale: scroll to make "now" visible upon opening
- stats timescale: window position jumps to 0/0 screen coord upon DB updates
- stats acquisition/teletext: add overall acq. runtime (i.e. in addition to per-channel time)
- move USE_TTX_GRABBER to exclude all acqusition if not set -> use for WIN32?
- merge dialog, "configure" sub-menu: simplify to single list with
  "extended" selection (i.e. allow multiple selections)
- merge dialog: use multi-col table & display networks
- netname dialog: add warning that names should be changed in channels.conf?
- filter expired dialog: allow disabling expired filter entirely
- remove use of PDC theme table: create table from themes found in XMLTV
- change AI/OI/PI to hold original XMLTV info elements (i.e. reduce conversion)
- allow merge of different channel ID from different providers
- increase or remove merge provider limit of 64
- DVB TTX stream decoding issues: "Illegal line order", "Unknown data_unit_id"
- DVB: suppress TTX header change detection
- replace "now" acq phase with DVB EPG (EIT) except for analog TV cards
- mplayer, VLC & VDR plugin for EPG display
- teletext: use separate thread for post-processing (takes long time for 10 DBs)
- teletext: ? move TTX packet decoding into acq thread?
- teletext: use mtime delta to determine start channel of acq
- teletext acq stats: percentage cycle loaded (i.e. cycles done vs. max. sub-page count)
- teletext configuration dialog: allow channel-specific config of page range, exclusion & duration
- teletext emit XML encoding UTF-8
- netwop name config start: for after auto-config message, do not count names that were exactly the same
- port to WIN32: "Broadcast Driver Architecture" (filter graph)

Missing documentation:
- TV Tune config in context menu dialog
- WDM and source "none" in Win32 TV card config dialog
- german manual lacks filter list for -epgquery

Teletext grabber:
- improve TTX parser (-> failing parsertest pages)
- stats output:
  - describe errors (i.e. keep grabber's STDERR)  ? send to daemon ?
  - daemon send CNI or last processed DB to client (for stats popup only)
  ? stats popup show db stats of last processed XMLTV ?
    + channel ID & official name (e.g. ard.de - ARD)
    + number of newly captured pgrogrammes (# slots in overview)
      total number of available programmes (new & merged)
    + number of descriptions & unresolved TTX links
    + number of used overview pages
    + page range used for overview
    + sub-page depth of overview pages & descriptions
      percentag of multi-pages in overview and descriptions
- acq start: if last acq was aborted, continue seamless
  - determine age of XML files
  - determine delta between oldest and newest
    ? post-processing must "touch" files from channels with no reception ?
  - if age of newest is <2h and delta >2h (or acq cycle time?)
    -> mark newer ones done (or move them to the end?)
- passive acq mode for ttx grabber
  - start grabber after 30 sec (if in NOW phase), next after 2min (reuse data)
  ? stop grabbing after 2nd grabber start (don't waste CPU) ?
- ttxdecode: handle page range <800->800, i.e. split 700-799,000-099
- reduce parity errors during repeated reception
  - both during XMLTV merge and VBI packet reception
- check if all sub-pages are captured (on relevant pages only!)
  ? implement in nxtvepg or external post-processor ?
- make overview page range configurable?
- configure list of networks for ttx acq
- config dialog:
  - check if TV app is configured and channel table can be parsed
  - display channels which will be captured by name (e.g. "ARD - MTV")
  - configure database directory for generated XML output
    OR: use the same as for nextview EPG data
  ? separate channel list or at least channel count for Now/Next ?
- display EPG into in connected TV app, even if captured "late" from TTX

XMLTV import:
- get language from XMLTV input for SetUserLanguage(), "auto" mode
  for non-auto mode: pass language selection to XML parser;
  used by EpgSetup_GetDefaultLang(): pAiBlock->lang
- change max netwop count from 254 to dynamic? (high effort in epgfilter.h and epgdbmerge.c)
  more importantly: MAX_MERGED_DB_COUNT is currently limited to 63
- programmes with start time only should not be discarded
  automatically set stop time to start of subsequent programme
- extend PI struct to hold all XMLTV info fields?
- theme codes: build custom theme table from theme string in XML file (?)
  problem #1: storing filter shortcuts (must store theme name, not index)
  problem #2: building theme main categories/hierarchy (e.g. movie/show/news)

XICCC TODO:
- large data transfers
- free data after reception
- remove dead peers from permanent station update queue

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) (Jrk)
- 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 (anno 2006) 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)
- 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
- add note to acq config dlg: does not affect display db
- weekday scale for grid layout: additional column (Thierry)
- 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)
- free configuration of key and mouse bindings
- 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


"NetBox" aka "grid" 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:
- VPS: trigger check device access via remove cmd (upon xawtv start/exit)
optional:
- cmdline option -non-shared-dbdir: suck the complete db through the pipe
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:
- Tune-TV: warn if station name is not in .xawtv?
- Tune-TV: offer to start TV application if not running?
  may not work if app. requires command line options
- VPS empty/pause codes display

WIN32 port fixes:
- use TV app directory in shared memory for auto-configuration
- allow manual horizontal resizing for grid layout
- menubutton popups does not work when invoked for the 2nd time via
  ALT key binding (Thierry)
- save main window position in INI file (when manually changed; 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
- Tcl/Tk panic after desktop resolution 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

WDM:
- DLL must not depend on proprietary MS DLL
- frequency mapping
- clean interface declaration: API.txt vs. WDMDRV.h
  API version control
- device path query function
- exception handling: call AcqStop regardles of current thread?
- sometimes crash at end or abort of EPG scan
- SelectDevice fails after unload/reload of DLL

merged database fixes:
- fine control for provider merge
  (e.g. average editorial rating instead of first)

other required fixes:
- epgdbmerge.c: AI merge: design fixes (don't modify caller's CNI array)
- 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
- startup: if nxtvepg version is incompatible don't recommend prov selection

possible new features: (in order of decreasing priority)
- use Qt or GTK library instead of Tk to make GUI more pretty
  main problem: 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")
- highlight matching description text when using sub-string search filter
