nxtvepg manual

This is the manual page for release 2.8.0 of the nxtvepg software package.


NAME

nxtvepg - Receiving, Browsing and Analyzing Nextview EPG data


SYNOPSIS

nxtvepg [ options ] [ database ]

nxtvepgd [ daemon options ] [ database ]


DESCRIPTION

nxtvepg is an X11 and Win32 application to receive, analyze and browse TV programme schedules transmitted on top of Teletext as defined by the European Telecommunications Standards Institute (ETSI) in ETS 300 707: ``Protocol for a TV Guide using electronic data transmission''.

nxtvepgd is a stripped-down version of nxtvepg which only performs data acquisition as a background daemon process.

The Nextview EPG standard was developed for use in TV sets, but the data can be received and used in a PC, too - provided you have a Teletext capable TV tuner card and are lucky enough to have a content provider in your country.

nxtvepg enables you to obtain free TV programme listings for all of the major networks in Germany, Austria, France, Belgium and Switzerland. Currently Nextview EPG is transmitted by the following TV networks (note that each of these EPGs cover not only the provider's programme but also that of many other networks):

For up-to-date information check the nxtvepg homepage in the Internet (see the About popup in the Help menu). If you don't receive any of the channels listed above, you can only use the demo mode as described with the -demo command line option.

Since version 2.8.0 nxtvepg also allows to extract EPG data from teletext or import from external XMLTV sources. Note when importing data you need to take care to respect copyright, same as when exporting data. In particular, the German law does not permit ``Web scraping'', i.e. extraction of programme information from Internet sources without prior permission of the content provider.


OPTIONS

Summary of command line options:

-display display

UNIX only: The display on which the user interface will be placed, for example localhost:0.0. Default: taken from environment variable DISPLAY. For more info see the X manual page section Display Names

-tvdisplay display

UNIX only: The display on which the TV application window is searched, e.g. on a remote host or different screen on a station with multiple monitors. Default: same as the main window's display.

-geometry geometry

Specifies the position of the main window, e.g. -geometry -0+0 to put the main window in the upper right corner of the visible screen. The size of the window cannot be changed.

-iconic

Start with the main window iconified (i.e. minimized).

For M$ Windows users this option may be esp. helpful when nxtvepg is started from inside the Auto start group and Hide on minimize is enabled: nxtvepg then will start almost invisibly in the background, only with an icon in the system tray of the task bar (see also CONFIGURATION: Show/Hide).

-rcfile path

Specify an alternate configuration file. Default: on UNIX $HOME/.nxtvepgrc, on Windows nxtvepg.ini in the current directory.

-dbdir directory

Specify an alternate directory for the databases. Default: On UNIX /usr/tmp/nxtvdb, on Windows the current directory. Note that the database management is not equipped for concurrent writing, so if you have more than one TV tuner card in your system or network, relocate the directory into the users' homes.

If you're using an acquisition daemon, the browser must be configured to use the same directory as the daemon. If the daemon is running on a different host, you need to mount the remote directory, e.g. via NFS.

-card index

Specify which TV card hardware to use, if you have more than card. Default: index 0. On Linux the given index is appended to the device names, i.e. /dev/vbi and /dev/video (see also FILES). On Windows index ``n'' means the n-th card found while scanning the PCI bus for cards with a supported capture chip (e.g. Brooktree Bt878, Bt878A, Bt848, Bt849, Philips SAA7134, Conexant 23881). If you have more than one TV card with the same chip, the order between those is undefined, but still constant (i.e. the order is determined by the driver, not nxtvepg)

-dvbpid number

UNIX only. Also only available when nxtvepg was configured at compile time (i.e. in the Makefile) to use the ZVBI library (http://zapping.sf.net/) for acquisition.

This option enables data acquisition from a DVB device. The channel must be tuned with an external application. The PID is the identifier of the data stream which contains Nextview EPG data. The PID also must be determined by external means. DVB support is still experimental and not officially supported. In particular, the EPG scan and acquisition modes which would require channel changing are not supported.

-provider CNI

Select a provider by its hexadecimal CNI (Country and Network Identifier), e.g. -provider d92 for Kabel1. You can find out the provider's CNI during a provider scan or from the database file names. Use keyword merged to dump a merged database (or use code FF as required by earlier versions of nxtvepg.) Note before you can use a merged database you have to configure it, see MERGED DATABASES. Default if this option is omitted: the last provider selected during the previous session.

-noacq

Start with acquisition disabled. The acquisition can still be started later from the Control menu (see CONTROL: Enable acquisition).

-daemon

Start without graphical user interface and silently perform acquisition ``in the background.'' This option is implied when running nxtvepgd. (The daemon-only executable is slightly more efficient since it's smaller and uses less libraries than the GUI executable and hence needs less memory.)

If no other options are given the same provider and acquisition mode as configured with the GUI will be used. If the -provider option is given acquisition will work for this provider only (note the difference to non-daemon mode, where that option selects the browser database). The -daemon option cannot be combined with the -noacq or -demo options.

The daemon always creates a named socket in the /tmp directory (UNIX only) plus optionally a TCP/IP socket to allow connects by browser processes. While connected, the browser receives updates for opened Nextview databases and reports about the acquisition progress; if left unconnected, the browser listing might be incomplete or outdated.

It's important to note that the browser must use the same -dbdir directory, because the daemon forwards only deltas to the database files stored in that directory. For more details see CONFIGURATION: Client/Server.

UNIX warning: for security reasons it's depreciated to run the daemon with root privileges, because nxtvepg has not been reviewed yet for possible exploits. If you want to start the daemon already during system startup, you should use su(1). Also note that you'll probably need to specify -rcfile because the $HOME environment variable might not be (correctly) defined. Example:

   su nobody -c "/usr/local/bin/nxtvepg -daemon \
                 -rcfile /usr/local/etc/nxtvepgrc"

For terminating the daemon process, see the -daemonstop option below. Alternatively you can stop the daemon via the graphical user interface by disabling enable acquisition in the control menu.

-daemonstop

With this option, a background acquisition process is searched and terminated if found; then the program exits. Note you need permission to send signals to the daemon process to be able to stop it (i.e. it must run with the same user ID). This option is meant to allow controlling acquisition by scripts which start and stop acquisition automatically after a given time.

Note if the daemon is running on the same host and uid, it can also be stopped by deselecting Enable acquisition in the Control menu while being connected to the daemon. For more details see CONTROL and FILES.

-nodetach

UNIX only: In daemon mode this option prevents the process actually making itself a daemon, i.e. it doesn't fork and stays connected to the terminal. Also all log messages starting with level warning are sent to standard error out (e.g. configuration errors that lead to an immediate exit). This mode is intended for debugging purposes only.

-acqpassive

In daemon mode this option overrides the acquisition mode setting in the configuration file and forces acquisition into passive mode (see ACQUISITION MODES). The configuration file is not changed, so that you can use different acquisition strategies for daemon and GUI.

-acqonce phase

In daemon mode this option will automatically stop acquisition and terminate the daemon after the given phase has been completed for all providers. Phases are the same as defined in ACQUISITION MODES, i.e. now, near and full. Note it's not useful to use this option in acquisition mode follow-ui because acquisition restarts after each provider change. This option is only useful with a fixed list of providers.

If you want to run another program from inside a script after nxtvepg has finished, use the -nodetach option (UNIX only) Then the shell which is processing the script will usually wait for nxtvepg to terminate before starting the next command. On Windows there's no simple way to achieve this (because non-console applications are always run in the background), so you need to use a script language which supports instructions which wait until a running program (namely nxtvepg) has finished.

-dump mode

When started with this argument, nxtvepg will only export the entire programme database, then exit. This argument must be combined with -provider to specify which database shall be exported.

To export the database in XML format, use keyword xml as mode. In this case the last mode (i.e. XMLTV DTD version) which was used via the main menu is used. To export the database in another mode, use xml5, xml5ltz or xml6. For more details see CONTROL: Export as XMLTV.

To export programme data into a HTML document, use keyword html as mode. The same options as configured in the HTML export dialog are applied. For details see CONTROL: Export as HTML. The number of exported programmes can be limited by adding a number after the keyword, separated by a colon (e.g. -dump html:50.) The format of the programme list is currently not configurable though.

To export the database into a plain text file (e.g. for import into an SQL database) three mode keywords are supported: pi to dump programmes (i.e. the complete TV schedules), ai to dump the provider's network table, pdc to dump the PDC theme categories table. For more details see CONTROL: Export as text.

For debugging purposes there's also a mode raw which prints all data in the database in a format which is closely related to the internal data structures. This output should not be used for data export. For more details see CONTROL: Dump raw database.

The output is written to stdout unless you redirect it into a file or pipe it into another program. See also option -outfile

-outfile path

This option allows to redirect output from -dump or any other modes which print to stdout by default. It also works in normal operation modes, but the created file will be empty. nxtvepg will abort if the specified file already exists to avoid inadvertantly overwriting other files. If you're using the option inside a script or batch file you should add a command to remove the target file before invoking nxtvepg.

This option is especially helpful for M$ Windows users, since output written to stdout is discarded by the operating system because nxtvepg is not a ``console application''. This means for exmaple, if output of the above -dump mode is not to be discarded, you must either use this option or redirect output as explained below.

Note: instead of using this option you can also redirect output with the ``>'' or ``|'' operators in UNIX shells or under M$ Windows at the MS-DOS command prompt. For example you could use either of the following:

  nxtvepg -dump ai -prov d92 > networks.txt
  nxtvepg -dump ai -prov d92 | more

to write the network table of provider Kabel1 (CNI 0xd92) into a file named networks.txt, or pipe it to the paging program ``more'' respectively.

-remctrl command

Windows only: This option can be used to remote control an other, previously started GUI instance of nxtvepg, i.e. to send the given command to the other process and then exit.

The following commands are available: quit to terminate the other nxtvepg process; iconify to minimize the window; deiconify to undo a previous minimization; raise to deiconify the other window and to bring it to the top (in case it's obscured by other windows); acqon to start acquisition; acqoff to stop acquisition.

-clock mode

When started with this argument, nxtvepg will acquire the current date and time from teletext and then terminate. To specify from which channel to acquire date and time use the -prov option option. (If you want to use a channel which is not an Nextview EPG provider, you'd have to use an external application to tune the channel before you invoke nxtvepg; with the exception of Linux' v4lctl setstation command this mode is unsupported though and may not work, depending on the external application you're using it with.)

Important restriction: nxtvepg is able to retrieve the clock only from channels where the so-called teletext packet 8/30/1 is transmitted, which contains date, time and local time zone offset in a binary format. nxtvepg will never attempt to retrieve times from teletext header lines. All Nextview EPG providers transmit packet 8/30/1, and a few other networks do too (e.g. ARD and ZDF in Germany.)

With mode print the date and time will be read and printed. The output is written to stdout unless you redirect it into a file or pipe it into another program. See option -outfile for details.

With mode set the time is set as system time, provided the calling user has the necessary priviliges (e.g. you'd need to be root on UNIX; since it's depreciated to run nxtvepg with root priviliges, it's recommended to first print the time into a file and then pass it to date).

UNIX users should also note that the set mode does not update the battery powered hardware clock (aka Real Time Clock RTC), so the correction will probably be lost with the next reboot. To update your RTC, call hwclock --systohc or your operating system's equivalent after nxtvepg. Some Linux distributions automatically take care of this during shutdown.

-provscan country

When started with this argument nxtvepg will start scanning all TV channels in the given country's frequency band for Nextview EPG providers. Countries are specified by their top-level Internet domain names (e.g. de, at, ch, fr, be) When the scan is finished, nxtvepg updates the provider list stored in the configuration file and terminates itself. The scan is performed in the same way as described in GETTING STARTED: Search for Nextview providers and CONFIGURATION: Provider scan, just without the graphical user interface.

During the scan nxtvepg reports progress to stdout unless you redirect it into a file or pipe it into another program. See option -outfile for details.

-demo path

Load database given by path and enter demo mode. In this mode all entries of the database are shifted into the presence, i.e. just far enough so that none are expired. Hence the entries' dates and times are not for real and acquisition or database reselection is not possible.

-help

List all available command line options.

After the options you can add a database filename. If it's a regular nxtvepg database, this is equivalent to specifying options -dbdir and -provider (if such options are provided, they are silently overridden in this case.) If it's a nxtvepg database, but the file name does not have the format as defined in FILES, it's assumed to be a demo database and loaded just as with the -demo option. Last but not least, it's also possible to name an XML file with XMLTV data.

This is particularily useful for users of graphical file managers (like the Windows Explorer) who can just drag and drop a database file onto the executable. When used on Windows systems the working directory is set to the one that contains the executable, because the Explorer seems to set it to the user's desktop root, so that none of the DLLs and drivers are found.

Note to Windows users: all these options - unless otherwise noted - are available in the Win32 version too. You can supply the options either from a ``MS-DOS'' command prompt or batch file, or by appending them to the executable in a shortcut definition.


GETTING STARTED

Before you can start reading in TV programme schedules (called acquisition from here on), you have to do just a few configurations. Which ones depends on your setup and will be described in this chapter. As long as your browser window contains no data, there's also a recommendation how to get to data in the browser window, highlighted by a yellow background.

This manual describes all features of nxtvepg in detail. You do not have to read all of it at once to operate the software. However it's recommended to skim at least through BASIC BROWSING, DATA ACQUISITION and FILTERING.

TV card Setup on M$ Windows

Windows users first have to configure the driver for their TV card in the ``TV card input'' dialog via the Configure menu (for additional information see also CONFIGURATION: TV card input). UNIX users can skip this section.

First you need to decide which driver to use: For TV cards with Brooktree Bt8x8 or Philips SAA713x capture chips, the dsdrv driver should be preferred. For TV cards with Conexant CX2388x capture chips the WDM drivers should be preferred. Generally, the internal driver is more reliable as it is optimized for teletext data acquisition while the vendors' WDM drivers usually are optimized for video and sometimes don't support teletext at all. On the other hand, the dsdrv driver doesn't support all TV cards and sometimes there are conflicts when a WDM driver is installed for the same card (see also description of option ``Stop conflicting WDM drivers...'')

By default nxtvepg doesn't include support for WDM. The reason for this separation is that the use of WDM is still experimental. Hence you need to obtain a separate package with an interface library (VBIAcqWDMDrv.dll) You should unpack the contents of this package into the same directory as the nxtvepg executable. If you don't have the library you'll see an error message stating ``Failed to load WDM interface library'' when switching to a WDM source.

If you chose to use a WDM driver, you can skip the next chapter and continue with the video input configuration.

Note if both WDM and dsdrv drivers fail to work with nxtvepg, a third option may be to run nxtvepg in parallel to K!TV. In this case the capturing is done inside of the TV application and teletext data is simply forwarded via shared memory to nxtvepg.

Dsdrv driver configuration on M$ Windows

To start driver configuration, press the Configure card button in the middle of the ``TV card input'' dialog window, which will open another dialog. If this button is disabled, this means no supported TV capture chips were found in your system. (You'll also see an error message popup stating ``PCI scan failed''; see also the README file for more details on driver error messages.) In this case your only option is to use the WDM driver (see the previous chapter.)

First press the Autodetect button to the right of the dialog window; this will read certain parameter values from non-volatile memory on your card (EEPROM) to determine the manufacturer and model. Optimally this will allow to derive all required parameters automatically. If this succeeds, all your card's parameters will be set and you're done and can close the configuration dialog with Ok. If you wish you can still override automatically derived values (e.g. tuner type) with the options described below.

If you get a message that says the card, but not the tuner, could be determined you can skip the next paragraphs and continue with the manual tuner selection.

If your card type could not be automatically determined, search and select your card type in the listbox at the left and then press the Pick from list button or double click on the listbox entry. Note: The card list is identical to the DScaler TV application (also very similar to K!TV); the same is true for the tuner list. Hence if you're unsure, the easiest way is to look up your configuration in DScaler and just copy it here.

For certain card types, the card is queried for the tuner type after manual card selection. If this fails, you'll get a message and have to select the tuner manually.

To configure a tuner type, open the tuner selection popup menu by clicking on the Configure button and select one of the entries. For many cards the tuner type is printed on the outside of the retail packaging. Yet a better way is to read the tuner type from the metal shielding box on the card itself.

Some hints for figuring out your settings: For many cards the selected card type is not relevant to nxtvepg (i.e. only tuner and for Bt878 cards the PLL). Hence if you don't find your card in the list don't worry, just use any PAL or SECAM card entry in the list and set the other parameters manually. To check your configuration start an EPG scan. Before you do so you must leave the configuration sub-menu with OK so that the changes are applied. For your convenience, you can open the card configuration dialog with a button in the EPG scan dialog window.

Hints for tuner selection: If you live in Germany, Austria or Switzerland you probably have a PAL tuner, in France it's one of the SECAM types. If you select the wrong tuner, you can have either no reception at all (the EPG scan will just run through and suggest to check your antenna) all or no reception just on a few channels.

For cards built around a Brooktree chip (Bt878 et.al.) the type of PLL initialization also needs to be set. This setting is directly tied to your card selection, hence usually you will not need to set it manually. Usually the correct value for PLL initialization with PAL and SECAM cards is either No init or 28 MHz. (If you select the wrong value you have no reception at all.)

Video input configuration

Before nxtvepg can start acquiring EPG data, it must be told if the video feed is provided by your TV card's internal TV tuner (if you're connected to your city's TV cable network or a terrestrial antenna) or an external source (usually satellite receivers connected via Composite or S-Video cable). This can be configured in the TV card input dialog in the Configure menu (for more in-depth information see also CONFIGURATION: TV card input).

By default nxtvepg assumes input via TV tuner. This is the preferred mode of operation, since nxtvepg can change channels between multiple Nextview providers, while with an external source you have to switch channels manually (see also DATA ACQUISITION). If you're living in France you should tell nxtvepg to use the French channel table (which implies using the Secam TV norm instead of PAL B/G/I); this information is required for the next step: the EPG scan.

If you cannot use the TV tuner but have instead connected a satellite receiver through the Composite or S-Video input, select the respective setting in the video input drop-down menu. Then close the dialog with Ok and open the aquisition mode configuration dialog from the same menu. There you should change to the external mode: in this mode nxtvepg will switch to the configured video input channel during startup of acquisition, but afterwards expect you to tune in a Nextview provider's channel at the external video source. To load all provider's inventories in the way the EPG scan does, you have to tune in all provider channels (for a list see the intro of this manual or the Internet homepage) and wait until the status line changes from ``starting up'' to ``working on''.

Note that you can also connect your satellite receiver via antenna cable. However this variant is highly depreciated, because the signal is often degraded so much that nxtvepg is not able to decode the EPG data stream any more. But if you still want to go that route, you'd keep the tuner as input source and start an EPG scan to find the channel your receiver is transmitting its signal on. Make sure to disable the Use .xawtv option in the provider scan dialog, unless your satellite receiver's channel (i.e. the frequency onto which the satellite signal is modulated) is defined as an input channel in xawtv. Before you start the EPG scan you need to tune in a Nextview provider's channel. The scan will only find that one provider. If you want to load all providers you have to continue manually as described above. For an acquisition mode it's recommended to stay with Follow browser database. Although nxtvepg will not be able to actually ``follow'' your provider selection with the acquisition since it can't switch the TV channel at your external input, this mode will tell nxtvepg to set the TV tuner onto your receiver's channel (see also ACQUISITION MODES for more details.)

Search for Nextview providers (EPG scan)

This section only applies if you chose to use your TV card's internal tuner. In this case the next step to get started is to run a provider scan from the Configure menu. During the scan all TV channels are checked for Nextview transmissions and a list of Nextview providers is built from the result.

You can speed up the scan by using a TV application's channel table; in this case the scan is limited to TV frequencies defined in the TV app's channel table. This mode is enabled with the Use TV app freq. table checkbutton. This button will be disabled until you've selected a TV application in the TV app. interaction dialog described in the next chapter. You can open this dialog by pressing the button at the bottom of the EPG scan dialog window.

At the end of the scan there's a short summary which tells you how many providers have been found. If there were any, you can close the dialog window and open the provider selection dialog from the Configure menu and select you favorite one. Then wait a little while the provider's TV channel is tuned and data being loaded.

If the provider scan does not find any or not all Nextview provider channels (possibly due to weak reception - this is a very simple scan that does not attempt any fine-tuning) enable the Slow button and try again. If this does not help, you can still add the missing providers manually. set the acquisition mode to external or passive (UNIX only). Then use an external application to tune the channel (Windows users have to stop acquisition first; then start the TV application; then tune the channel; then quit the other application; finally start acquisition again).

In external mode nxtvepg will not touch the tuner and wait infinitly for Nextview reception on the current channel. On Windows (and Linux with bttv drivers version 0.7.50 and earlier) this method has the disadvantage that no channel number or frequency will be known for this provider so you have to tune the provider's channel manually whenever you start acquisition.

Acquisition of a complete database takes about 20 minutes. However programmes that are nearer in the future are available much faster, since they are transmitted more often. The currently running and directly following programmes of all networks are usually available after about 2-3 minutes max.

Configuring a TV application

nxtvepg can cooperate in the following ways with TV applications:

The first one is a passive feature, i.e. only nxtvepg needs to be adapted to the respective TV applications. The second one however requires cooperation of both sides. For this reason the number of TV applications for which the passive features are supported will always be much larger. On Windows the interaction features are currently only supported by K!TV.

On UNIX xawtv, xdtv (former xawdecode), zapping and tvtime are supported currently. All the features listed above do work with any of them.

On Windows several freeware TV applications are supported for the passive features; you must select which one you're using. If you've loaded TV card settings from a TV app in the TV card input dialog, then the TV app type and path is already configured. Else, or if you want to use a different app as source for the channel table, open the TV app. interaction dialog (see also CONFIGURATION: TV application interaction).

Regarding the second feature, i.e. the ``active'' one: You can check if nxtvepg is able to interact with a specific TV application by starting both, and then opening the TV application interaction dialog in the Configure menu. The connection status is indicated in the middle of the dialog window. On Windows nxtvepg should already display an error message when it's started while an unsupported TV application is running, complaining ``Capturing is already enabled in the TV card'' or another driver error message. Only with cooperating TV apps nxtvepg is able to automatically free the card when the TV app is started (TV viewing is always given priority over EPG data acquisition.)

Important: On Windows you must not run nxtvepg with acquisition enabled at the same time as a TV application. If you ever accidentially do that, immediately terminate both applications. When two applications access the TV card hardware at the same time, the resulting conflicts can crash your system.

After setting up the TV app type and path, you should open the Network name configuration dialog to synchronize network names between nxtvepg and the TV app. Even if interaction is not possible, it may still be a good idea to have the same network names in both applications. See CONFIGURATION: Network names for details.


BASIC BROWSING

The browser mainly consists of two windows: the upper one contains a list of programme titles, sorted by start time. All currently running programmes (or rather: all programmes that should be running according to their start time) are marked by a light blue background color. One line in the list is selected by a cursor; the lower window contains the attributes and description for this selected title. The amount of information available here depends entirely on the content provider.

The basic browsing of programme information works very straight-forward. You can either use the mouse or the keyboard cursor keys:

With the mouse, you can click on any title to select it and display its description in the lower window. Use the scrollbar to the left to scroll the listing forward to programmes farer in the future, or the weekday scale on the right to jump to a specific time and date.

With the keyboard, use the Cursor up/down keys to select any title. For fast scrolling use the page up/down keys. With the Home key you always get back to the first title. With TAB and SHIFT-TAB you can move the keyboard input focus to other input elements, e.g. to the network and shortcut lists; to apply a selected theme or shortcut as filter press the Space key. The first 10 shortcuts can also be enabled directly from the main window with the digit keys 1-9 and 0. Control-C in the main window opens the context menu; Control-F opens the text search dialog; the Escape key is equivalent to the Reset button. The menus can be accessed by pressing the ALT key together with the underlined character in the respective menu button.

You can restrict the programme selection in many ways to make it easier to find what interests you. For example, you can restrict the list to programmes of a certain network; or you can restrict the list to movies only. This process is called filtering and explained in detail below, see FILTERING. For the most common filter options there's a list of Shortcuts at the left of the main window. Note you can freely modify this list, see FILTER SHORTCUTS.

Since version 2.5.0 nxtvepg offers two different layouts for the TV schedules: By default programmes of all channels are combined in a single list sorted by start time, i.e. one big table. Alternatively programmes can be separated so that each network has it's own column. This format is very similar to most paper-based TV magazines. In this layout you can scroll both vertically by start-time and horizontally by networks.

When you resize the main window vertically the difference in height will be added to the info text window at the bottom. You can adjust the proportions between program listbox and the info text with the ``panning'' button in-between, i.e. by dragging the button you can resize the programme list.

nxtvepg can interact with TV applications (e.g. xawtv on UNIX; requires initial setup, see GETTING STARTED) to provide a connection in both directions: Firstly you'll find a Tune-TV button in the main window below the clock. When you press it, the network of the currently selected programme will be tuned in the TV application. This also works with a double-click on the programme or pressing the Return key. By clicking the right mouse button above the Tune-TV button you can also pop up a small menu which offers basic TV controls. Secondly, when you change the channel in the TV application, the cursor in the nxtvepg main window will automatically jump onto the programme currently running on that network. You can manually trigger this reaction by pressing ``i'' on your keyboard. For more details see CONFIGURATION: TV application interaction

At the bottom of the window there is a status line which informs you about the state of the browser database and background acquisition. It's basically a very dense summary of the Statistics popups from the Control menu and is especially useful to warn you about the database age or stalled acquisition.

Note: For most providers it holds true that programme content descriptions (i.e. the texts in the lower nxtvepg window) are available only for currently running programmes and those whose start time is very close. This time span for full coverage can be as short as 2 hours, or 3 titles per network. As a consequence you should enable data acquisition as often as possible; consider running the acquisition daemon permanently in the background. For details on the acquisition process see the following chapter.


DATA ACQUISITION

As long as acquisition is enabled, programme titles are constantly being acquired or updated in the background. You will notice that all incoming programme information is instantly inserted to the programme listing. Every effort is taken to not alter the cursor position or title selection, except if the cursor is on the very first item - then the cursor stays on top.

By default, the acquisition always works for the provider whose database you have loaded into the browser. Therefore, upon program start or whenever you switch providers, the TV tuner is set onto the frequency of the provider's TV channel. Please note that this mode is only possible after a provider scan, because that's the only way to find out the frequencies. Check out ACQUISITION MODES for more sophisticated acquisition strategies.

If you do not choose the TV tuner as input (e.g. if you choose an external source via the Composite or S-Video input sockets), or if the TV tuner is kept busy by another application (UNIX only, e.g. if you watch TV) data is still being acquired, but it's no longer possible to automatically change the TV channel. Hence you are resposible for selecting the channel of the provider who's database you want to load or refresh. If a transmission belonging to a different provider than the one selected in the browser is detected, a second database is automatically opened in the background to store the incoming data.

The transmitted database is constantly in change: Elapsed titles are removed, new titles appended, and the titles closest to the current time updated with an increased amount of description. (The reason that the complete description is not transmitted for all titles is simply that the size of the database has to be reduced - it shall be transmitted in 20 minutes maximum.) So you should start the acquisition as often as possible, about every 2-3 hours, at least a couple of minutes before you browse.

You can monitor the progress of acquisition with the timescale and database statistics windows from the Control menu. See STATISTICS for details.


ACQUISITION MODES

The acquisition mode configuration dialog enables you to control for which providers data is collected, and in which order. It's mainly intended for users who use more than one provider's database, i.e. in a merged database, or want to optimize startup time. If you're happy with a single provider or don't want to browse immediately after program start, you should keep the default, which is loading data always for the provider selected in the browser.

Passive

UNIX only: In this mode the software never accesses the video device and never changes the input channel or tuner frequency. It's useful if you want to set up the source with command line tools like v4lctl. If you're using applications which keep the video device busy (e.g. a TV application) you don't need this mode, because when nxtvepg detects an unsolicited channel change, it automatically switches to the passive mode for as long as the video device remains busy.

Please note: when nxtvepg does not control the input channel, it can not automatically take care of updating your databases. Even if the browser database should be completely empty, no data will appear until you tune in the provider's channel manually with an external application. Because of this, passive mode is depreciated.

External

This is the recommended mode for Composite or S-Video input sources. Only the input source will be set; the tuner is not touched. Hence the provider channel has to be selected either externally (e.g. in a satellite receiver connected to the Composite or S-Video input sockets) or by a different application (e.g. TV application, UNIX only), just like in passive mode.

On Windows systems this mode can be used if your tuner is not known to nxtvepg, i.e. if the EPG scan does not find any channels with all of the available tuner types. In this case tune in the provider channel with a TV application; then quit this application and start nxtvepg. When you view the acquisition statistics from the Control menu, the VPS/PDC code of the tuned channel should appear in the lower half of the window.

Follow-UI

This is the default mode: the acquisition always works for the provider you have selected for the browser (i.e. user interface). If you change the provider in the browser window, acquisition follows by tuning the new channel. Of course this requires to have performed an EPG scan at least once, so that the tuner frequencies of all providers are known. When you use a merged database in the browser, acquisition works on each of the merged providers, one after another, just like in the mode described next.

Manually selected

This mode enables you to manually select for which providers the acquisition should work. If you select more than one provider, they are loaded one after another, in your specified order. Warning: if you choose a provider for the browser that's not on the list, no data will be loaded into the browser, even if it's completely empty.

Since transmission errors have to be considered, it's not attempted to load every single block of a provider before acquisitions switches to the next. Instead a statistical criterium was defined, that regards the variance in coverage of all networks contained in the database, and the slope of that variance.

Cyclic: Now - Near - All

Like the previous mode, this one enables you to specify a list of providers to load data for. However they are not just loaded completely one after another. Instead, a 3-staged round-robin is implemented. In the first stage, only Now data is loaded, i.e. the currently running and next 2-3 programmes. When this has been completed for all providers, the next stage begins, which loads Near data, i.e. all programmes running in the next 12-24 hours. When that was completed, the final stage loads the outstanding blocks for all providers. See below for an explanation what this mode is good for.

Cyclic: Now - All

This is the same as the previous mode, except that the Near stage is skipped.

Cyclic: Near - All

This is the same as the mode before the previous one, except that the Now stage is skipped.

Which mode is best for you depends on how you use the browser. As said above, if you're mainly using a single provider, stick with the Follow-UI mode. If you use a merged database, data is automatically loaded for all contained providers. However if you switch manually between multiple providers, you should choose one of the manual acquisition modes.

The Cyclic modes enables you to optimize startup time. While in standard manual mode, the first database is loaded completely before the next one is started, in Cyclic modes you can specify to load only Now data of all providers first. Hence already after a couple minutes you'll have updated Now information for all providers. If you require more look-ahead than the next 2-3 programmes, e.g. the complete evening, use a Cyclic mode that starts with the Near stage.

If you use manual acquisition together with a merged browser database, make sure to put the same provider at top in both lists, i.e. acquisition should always start for the ``master database'' of the merge.

Please note that the time until all databases are complete is longer in the cyclic modes than in standard manual mode. In general, the time used for the Now and Next stages just adds to the time to complete the database.

Also note that the cyclic modes depend on the transmission cycles of the providers. Firstly this means that the time ranges covered by the cycle stages may differ between providers. Secondly, the cycle times may vary. In the worst case the Near cycle runs as long as the cycle for the complete database (e.g. the German provider RTL2). In this case you don't win anything by selecting a mode that contains a Near stage.


STATISTICS

There are currently three ways to obtain information about the state of the databases and the acquisition process: the first and most obvious is the status line at the bottom of the main window (only if enabled, see CONFIGURATION). The second one are the timescale popup windows, which visualize for each TV network the time ranges which are covered with TV programme data. The third one are the database statistics popup windows which offer technical details about the database, e.g. which percentage of entries is already loaded etc., both in textual form and as charts.

The latter two windows are available separately for the browser and acquisition databases. (By default both are the same databases, but you can configure background acquisition on multiple databases, see ACQUISITION MODES). All types of statistics are regularily updated while acquisition is running. While connected to an acquisition daemon, all statistics output refers to the acquisition running in the daemon (see CONTROL: Connect to acq. daemon)

Status line

The status line separately summarizes the state of the browser database (unless it's a merged database) and the acquisition process. Since there's not much room only the most relevant information is included there, i.e. the kind of information presented depends on the current state.

For the browser database you'll normally just see the name of the content provider network and a percentage that describes how many of the blocks (i.e. TV programmes) in the provider database already have been received.

If more than 10% of the blocks in the database lie in the past, you'll additionally see a note about this percentage of expired blocks. Note that a 100% loaded database may appear completely empty when all blocks are expired. As soon as you start acquisition the fill percentage will drop to 0 because a new inventory will have been loaded which no longer contains the expired blocks.

When acquisition for the browser database stopped more than 60 minutes ago, a note is added to the status line. In this case it may be advisable to start acquisition for this database to load descriptions for programmes that are now included in the ``Near'' time range (see DATA ACQUISITION).

If acquisition is currently not active you'll see a note about that, often together with a reason, e.g. ``no reception'' when you've manually tuned a station that doesn't transmit Nextview.

Else you'll see the name of the content provider network and a percentage that describes the progress of acquisition. Note that this percentage may be different from the overall fill percentage given with the browser database, as it also reflects blocks that have to be reloaded due to version changes.

Additionally there may be a note about the current mode of acquisition, like the current phase for cyclic acquisition modes or ``forced passive'' when nxtvepg is not able to change the channel, maybe due to a TV application running in parallel. See ACQUISITION MODES for details.

Timescale popup windows

You can monitor the progress of acquisition with the timescale windows which can be opened from the Control menu. There's one window for the browser database, and one for the acquisition database. The acquisition window is updated whenenever new EPG blocks are received.

The timescale windows have one scale for each network covered by the selected provider. The left end of the scales refers to the start time of the oldest TV programme in the database. Depending on how long ago the database was updated and the current expiry removal delay (see FILTERING: Expired Programmes Display), some or all TV programmes may lie in the past. The exact dates are printed in the date scale at the top of the window, the current time is additionally marked with a small arrow labeled ``now''.

Ranges that are covered by programmes of the respective network in the database are marked in shades of red or blue, uncovered ranges are left black. The different colors reflect the stream in which the data was received, or an error status; the shades age and version. Stream numbers are directly connected with the cycle phases mentioned in ACQUISITION MODES; besides this the difference is not relevant during normal operation.

red:

PI blocks received in stream 1, i.e. cycle phase 'Near'.

blue:

PI blocks received in stream 2, i.e. cycle phase 'All'.

dark red or blue:

PI blocks from an earlier database version.

orange:

expired PI blocks from stream 1 or an earlier database version.

cyan:

expired PI blocks from stream 2 and the current database version.

yellow:

invalid PI blocks (overlapping or zero run-time, block number not in the range given in inventory, etc.)

gray:

missing PI blocks. Note that the range can only be roughly estimated, as the time range a block covers is not known until the actual block is available.

black:

time range which is not covered by the provider.

Programmes for which description texts are currently available are additionally marked by an increased height of the scale in the covered time range. For short-info the area is extended towards the top, for long-info towards the bottom (the distinction between short and long info is only related to the Nextview transmission specification and does not neccessarily relate to the length of the description texts; also note that for the merged database there's no distinction between short and long info because all texts are concatenated into one.)

In front of the scales there are 5 separate boxes, which refer to the first 5 programmes (PI blocks) in the inventory (AI block). They have two purposes: firstly, during acquisition you can see when the 'Now' cycle phase is complete; secondly you can check if the data from the Now cycle is expired (marked orange). If all 5 are orange, it's time to update the database.

Database statistics

There are two popup windows available from the Control menu which contain statistical information about the browser database and the acquisition database and progress. The window is horizontally divided in two parts: the upper part lists static information; the lower part lists dynamic info and is available only while acquisition is active.

The acquisition statistics are updated every time a new AI block (inventory which lists all covered networks and block counts per network; usually transmitted every 10 seconds) is received.

Last AI update:

The (local) time when the last inventory block was received. Since this block has to be transmitted on a regular basis it tells you when acquisition was active for this database.

Database version:

The version number is incremented by the provider every day or after content changes. A version change forces a complete reload of the database.

Blocks in AI:

How many blocks are transmitted in total. This number is taken from the provider's AI block, i.e. the inventory. Additionally listed separately for stream 1 and 2 (swo).

Block count db:

How many blocks are in the local database. At maximum this can be the number of blocks given in the AI block.

Current version:

How many blocks are in the local database and have the latest version.

Filled:

Percentage of blocks in the database in respect to the total given in the AI block, i.e. ``Block count db'' divided by ``Blocks in AI''. The second percentage in the line only reflects blocks of the current version and hence the degree of completeness of acquisition.

Expired stream:

Number of programme blocks which have a stop time that's in the past but are still registered in the provider's inventory (AI). When acquisition is stopped, this number can be large. During acquisition expired programmes are usually stripped by the provider with the start of every cycle, i.e. usually every 20-25 minutes. The percentage given here is in respect to the actual number of blocks in the local database (all versions), not the AI.

Expired total:

Total number and percentage of expired blocks in the database. This value depends on the expire ``cut-off time'' configured by the user, i.e. on how long expired blocks are kept until they are removed from the database. Normally such blocks disappear from the programme list, but this can be changed with the expire time filter in the Filter menu (see also FILTERING).

Defective blocks:

Number of blocks with invalid or overlapping start time. These blocks do not show up in the browser (as it would be impossible to handle if there is more than one ``now'' entry for a network). The percentage given here is in respect to the actual number of blocks in the local database (all versions), not the AI.

The pie chart on the left on the window visualizes these numbers. The circle represents 100% of the blocks listed in AI. It's divided in stream 1 (red) and stream 2 (blue). The shaded segments represent the blocks that are still missing in the local database. The yellow segments the percentage of expired and/or defective blocks.

When you interpret those values, please remember that blocks may be appended to the transmission cycle when programmes have expired (in a slight violation of the Nextview standard this is done even without changing the database version). So you might see from time to time that the fill percentages take a step back down during acquisition. Also note that expired PI are not accessible from the user interface, however they are included in the database dump from the Control menu.

Acquisition statistics

Acq. runtime:

How long the acquisition has been continuously running for this database. This timer is reset upon provider or database version changes or when an external channel change is detected.

Channel VPS/PDC:

The VPS/PDC code that has last been received on the currently tuned channel. Usually this will be the same as the provider CNI given in the database statistics, but you might see different values here when you manually tune in a different channel with an external application.

If a valid VPS/PDC code (Programme Identification Label, PIL) was received together with the CNI it is appended after the CNI in decoded format (i.e. DD.MM HH:MM with day, month, hour and minute). Note: the VPS/PDC codes are used to uniquely identify the current programme on a given network. You can display the codes for all programmes in the database (if you enable them in CONFIGURATION: Select attributes) or pass them to external applications (see CONFIGURATION: Context menu configuration)

TTX data rate:

The rate at which teletext data lines are received on the current channel in baud, i.e. bits per second. Each teletext line counts as 45 bytes.

EPG data rate:

Same as TTX data rate, however only teletext lines that belong to the page which transmits Nextview are counted.

EPG page rate:

The per second average of received teletext pages with carry Nextview data. Many provider transmit one page per second during the day and up to 1.5 or 2 pages per second during the night.

AI recv. count:

The number of AI blocks received since acquisition start. As long as this counter remains at zero, no data is added to the database (because the AI block is mandatory to identify the provider.)

AI min/avg/max:

The minimum, average and maximum distance between reception of AI blocks. The average should usually be 10 seconds. The maximum should not be much higher or else an EPG scan might have a hard time finding this provider; also the acquisition start-up time would be higher because at first an AI block must be awaited.

PI rx repetition:

The average of the number of times each block in the AI was received since start of the acquisition. Divided in Now, stream 1 and stream 2. This value is used by acquisition control in the termination criterium for acquisition phases, if the acquisition mode is cyclic.

Decoder quality:

Reception and loss statistics: Count of received EPG teletext pages and count of complete EPG pages missing in the sequence. Count of received teletext packets (usually 23 per page) and missing packets. Note: page and packet loss is usually caused by decoding errors in packet and page headers (which carry a 50% redundancy so this is a strong indication of weak signal quality) or when a TV application running in parallel interferes with capture configuration (i.e. when not all required lines in VBI can be received)

Next is the number of received and dropped blocks. Blocks are usually assembled from data received in several teletext packets and have to be dropped if packets or pages in-between are missing. Blocks may also be dropped due to decoding or check-sum errors (above note regarding these errors applies here too)

The final line lists the number of decoded text characters (e.g. programme titles and descriptions) and how many decoding errors were detected. Forward error protection used for text is pretty weak, so you may see errors here even with relatively good signal quality. With bad signal quality the actual error rate might be higher then displayed, since the protection cannot detect double-bit errors.

Acq mode:

The current acquisition mode as configured by the user, or forced passive if nxtvepg failed to switch the channel.

Network variance:

The variance of block coverage across all networks. This value is used by acquisition control in the termination criterium for acquisition phases, if the acquisition mode is cyclic. It's calculated by separately counting the number of blocks in the database for each network; then for each network calculating the percentage of available blocks in regard to expected blocks; then calculating the average and finally variance of these percentages.

The diagram at the left displays a history of fill percentages for stream 1 and 2; the meaning of the colors is the same as in the timescale windows.


MERGED DATABASES

If you compare databases of different Nextview providers, you will often find that each has one or more nice features, or covers networks, that the others lack. Instead of changing back and forth between several providers all the time, database merging allows to select and combine features or networks from several original databases into one newly created database.

When you select the Merge providers entry from the Configure menu, you will get a dialog with two listboxes: the left one contains a list of all currently available databases. The right one is the list of databases you want to merge. You can add, delete or reorder the entries is this list. When you're done with your selection, press Ok to start the merge and switch the browser to the new database.

By ordering providers in your selection, you assign priorities which are important for conflict resolution. A conflict occurs when programme start and stop times differ between providers. The likelyhood of such conflicts depends on the quality of your providers; theoretically they should never happen except if there are late program changes. In reality, conflicts are not that unlikely, particularily for programmes early in the morning. You should put the most reliable provider in the first position, because conflicting programmes from providers further down will be rejected, i.e. not added to the merged database.

The Configure button in the dialog gives you fine-control over the priority of providers during the merge of all distinct programme attributes. You can even completely remove a provider for an attribute, e.g. if they transmit false data (e.g. the Sound attribute was at some time handled wrong by the former German provider 3Sat: they did swap stereo and surround). An exception is the title, where you must not delete any providers.

Attributes that cannot be merged, e.g. editorial rating, are fetched from the first database in the list that contains the attribute for a given programme. An exception are sorting criteria and series, where only the first provider in the list is queried (i.e. even if the first provider does not have a sorting criterion for a given programme, the further databases are not searched) because these types of attributes cannot be mixed between providers (see also FILTERING).

Note: If you use a manual or cyclic acquisition mode, you should take care to include all providers of your merged database in the same order. Else, program changes will not appear in your database until the provider with highest priority is loaded. If you stay with the default Follow-UI, acquisition control will automatically cycle across all merged providers in the correct order.


NAVIGATE

The Navigate menu contains a tree of filtering options, that's transmitted by the selected provider together with the programme data. Filtering enables to restrict the listing of programme information to those titles matching the selected menu entry.

The extent and content of this menu depends entirely on the provider. Unfortunately most providers supply only a very limited menu, so you'll probably want to define your own filters, as described in the next two chapters.

Any filter selection can always be undone by the Reset menu entry or the reset button in the main window.

On Windows this menu is en entry inside of the Filter menu for technical reasons (the concept of danamically created menu hierarchies seems to be foreign to Windows, so a popup menu has to be used for the Navigate menu).


FILTERING

Similar to Navigate, this menu allows to control which of the programmes in the database are presented in the listing. However here, you are not limited to a preselection of filter options. There's a filter for every kind of attributes that can be attached to a program, e.g. it's network, start time, theme descriptors, and so on.

Filters can be undone either singularily by selecting the same filter menu entry again, or globally by clicking on the Reset button.

You can combine as many filters as you want to build a complex filter. If you combine two filters of different types, only programmes that match both attributes will be listed (logical AND). If you choose more than one filter of the same type, all programmes that match either attribute will be listed (logical OR). Note some filter types also support multiple ``classes'' which allow logical AND within a category; this is explained in more detail in the filter types list below.

Examples: If you want to get all programmes listed for either network A OR B, simply select both networks in the filter list. If you want to see all movies scheduled on A, i.e. all programmes which run on network A AND are flagged as movies, select network A and theme ``movie - general''.

Filter Types

The following filter types are available:

Theme categories

Restrict the listing to programmes that have any of the given theme categories attached to them (logical OR). The Nextview standard contains a list of 76 predefined themes, which are structured into 11 main categories and subcategories. A programme can have up to 7 theme descriptors attached.

If you want to restrict the listing to programmes that have more than one of the given themes (logical AND) you need to specify them in different theme classes. For example: to get a listing of all programmes which are both Sci-Fi and Comedy, select theme category Sci-Fi, then switch to a different theme class, and select theme category Comedy. The actual class numbers do not matter, you just need to use two different ones (i.e. you can use either #1 and #2 or #5 and #6 etc.)

Series

Restrict the listing to programmes that belong to any of the selected series. A series code always implies a network specification (even if the same programme is transmitted on different networks).

Note: This filter type is only available for providers that assign series codes; also not all series may have a code assigned. For other ones you can use text search among programme titles.

When series and theme or likewise series and text searches are combined, programmes which match either of both filter types are listed. This is an exception from the general rule of combining different filters with a logical AND.

Networks

Restrict the listing to programmes of one or more given networks. The filter is disabled when all checkbuttons are deactivated.

You can also add a network filter listbox to the main window by enabling one of the Show networks checkbuttons in the Show/Hide sub-menu of the Configuration menu (see CONFIGURATION: Show/Hide). Also note that selection, order and names of networks are all configurable, in particular you can permanently suppress uninteresting networks from the list.

Text search

Restrict the listing to programmes who's title or description (or either if both options are enabled) contain one of the given character sequences. If you enable the match complete text option, an exact match will be required, i.e. a search for ``heute'' will not match on ``heute journal'' (intended for title-only searches, as started from the context menu). If you enable option match case, character case is relevant, i.e. a search for ``heute'' will not match on ``Heute Abend''.

You can search for more than one text at the same time; you'll get all programmes that contain any of the given texts (logical OR). The listbox above the text entry field lists all currently active texts. You can double click on the options in the list to toggle them between ``yes'' and ``no'' (i.e. option enabled or disabled). The entries also have small context menus which allow to remove single texts or toggle options.

Press Click here to open... to open a small dialog which allows to swiftly add a large list of texts (e.g. a list of your favorite movie titles.) You can paste text for example from a text editor into the dialog or load them directly from a file. Each line in the text fields will be added as a separate search when you press OK and all new entries will have the same options. Blanks at the beginning or end of lines are automatically removed and lines starting with # are skipped when loading from a file.

A history of the last 50 searches (manually entered ones only) including options, are stored and available in the drop-down menu below the search text entry field (opened with the arrow button at the left or one of the up/down cursor keys) and the last 10 searches are also available in the Title column header menu in the programme list (the latter in ``single list'' layout only).

Note: use of this search filter type is depreciated for permanent series searches saved in shortcuts if your provider supports series identifiers (see above). In this case should use those instead because the numerical identifiers have a better protection against transmission errors. A text search can fail due to a single erronous character.

Features

Restrict the listing to programmes that match all given attributes (logical AND), i.e. sound format, picture format, analog/digital, encrypted yes/no, live/new/repeat and subtitles yes/no.

If you want to allow more than one value of the same attribute (e.g. picture format wide OR Pal+) you have to put them into different feature classes (e.g. first select format wide, then set filter class to 2, then select format PAL+)

Parental Rating

Restrict the listing to programmes that are suitable for children of the given age or elder, e.g. when you select 14, you get all programmes that are recommended for chilren of age 0 to 14.

Note you can use inverse searches (see below) to find programmes which are recommended only for children above a certain age. For example, if you invert a parental search with age 14, you'll get all programmes that are recommended for children of age 16 or older.

Editorial Rating

Restrict the listing to programmes that are rated (by the content provider) to have at least the given quality. The range of rating values is 1 to 7.

Note that some providers do not use all values, e.g. only 1, 3, 5 (thumb down, middle, thumb up.) For that reason only the first provider's ratings are used when merging databases (see also MERGED DATABASES)

Start time

Restrict the listing to programmes whose start time lies in the interval and whose start falls onto the given date or weekday.

Following options are available: If you enable Start at current time the interval start is fixed to the actual time when the filter is set and the value given as stop time is interpreted as duration, i.e. it's added to the interval start. If you enable Stop at end of day the interval end is fixed to 23:59 of the same day.

For the date you can chose between the following modes: Ignore date: the filter allows programmes that start on any day (in the time window given above). Relative date: allow only programmes that start N days from today, i.e. for zero: today, for 1: tomorrow etc. Weekday: allow programmes starting at the given day of the week (the scale runs from Saturday until Friday.) Day of month: allow only programmes starting the Nth day of any month (the scale runs from 1 to 31.)

Note that the main intention of this filter is to support time restrictions in the provider's navigation menus (see NAVIGATE) or shortcuts. For manual navigation there are more practical alternatives, e.g. the weekday scale and drop-down menus in the main browser window above the time and date columns (not available in grid layout.)

Program index

Restrict the listing to programmes who's index is in the given range. The currently running programme of each network is given index zero, the following programme of each network index one etc. The three most important combinations are available as radio buttons: now (range 0-0), next (range 1-1) and now or next (range 0-1).

For merged databases only indices 0 and 1 are supported.

Duration

Restrict the listing to programmes whose duration (i.e. difference between start and stop time) lies in the given range. When the maxium is set to zero, the filter is switched off.

You can specify the time values either by use of the scales or by entering a value in the format MM:HH into the text fields and pressing the Return key.

Expired Programmes Display

Unlike all other filter options this one is used to enlarge the set of matching programmes. It allows to include expired programmes (i.e. those with a stop time in the past) into the list; they will be marked with a yellow background (you can change that color, see .Xdefaults and nxtvepg.ad in FILES.) With the sliders you can set how many days plus hours to shift the expire time threshold. By default the threshold is zero so that expired programmes immediately disappear from the list.

Note you cannot add more programmes than are stored in the database; usually programmes are removed after 4 hours. There's a second tab called Configure in the dialog which allows to change the delay after which expired programmes are automatically removed. Press the Update button to set the new value. If it's lower than before, programmes will immediately be removed from the database; this operation cannot be undone (unless the progammes are still registered in the provider inventory, which may be the case if you haven't updated the database in a long time. In this case you may get a confusing warning that programmes are about to be removed although they won't.)

Sorting Criteria

Restrict the listing to programmes that have any of the given sorting criteria attached to them; every programme can have 0..7 sorting criteria attached to it. They work very much like theme descriptors however their meaning is not predefined by the Nextview standard. The content provider can use arbitrary numbers to represent an attribute. Attributes usually are themes that are not in the predefined catalog, e.g. current events like the Olympic Games, but could also be not content related at all. The meaning of these numbers is usually defined by the provider's navigation menus (see NAVIGATE).

Equivalently to themes, you can assign sorting criteria in different classes to implement a logical AND, i.e. only programmes that have at least one of the sorting criteria specified in every used class will match. Example: to get all programmes that have 0x01 attached plus either 0x10 or 0x11, specify sorting criterion 0x01 in class #1 and 0x10 and 0x11 in class #2. Note that the dialog displays all values in hexadecimal format, i.e. with digits 0-9 followed by a-f.

The Load all used button in the sorting criteria filter dialog fills the selection listbox with a list of all codes that are actually used in the current database. This allows a quick overview which filter criteria will produce any matches.

VPS/PDC

Restrict the listing to programmes that have a valid VPS/PDC start time label attached (VPS/PDC allow to start a video recording at the exact time a programme starts even when delayed; the labels are broadcasted currently in Germany, Austria, Switzerland and England). Additionally you can filter for programmes with a label which differs from the actual start time; these are usually programmes whose start time changed or which were scheduled later (usually the VPS/PDC label then is the actual start time minus one minute)

Note that the interpretation of two filter types depends on the provider: sorting criterion and series. That's because those are just arbitrary numbers which only have a meaning in the context of the provider's navigation menu.

Hint: the filter menu can also be used to examine the filter options that are invoked by the entries in the Navigate menu.

Inverting filters

Near the end of the filter menu there's the Invert sub-menu which allows to invert the outcome of filtering. There are two levels of inversion: global and individual.

When you select global inversion, you'll get exactly the programmes that otherwise would have been filtered out (except for programmes which are permanently filtered out by your network and air-time selection). In other words, all programmes which match your current filter setting are removed from the list. Note: due to the way filter shortcuts are merged when more than one is selected at the same time, it's in most cases not recommended to use global invert for filter shortcuts unless you change the combination rule (see FILTER SHORTCUTS: Shortcut combination modes.)

The invert menu also allows to individually negate certain filter types (there are also invert buttons in some filter sub-menus which have the same function). The logic of combining flters is the same as without inverting, i.e. there's a logical OR between filters of the same type (e.g. network A OR network B) and a logical AND between different filter types (e.g. network A AND theme category movie).

Example 1: If you want all programmes which are neither categorized as sports nor as children's programmes, select theme filters sport and children's and then invert the current theme filter (usually class #1; you can equivalently use the global invert if themes are the only filter).

For the theme and sorting criterion filters it's possible to invert only parts of the selection, so that you can require that a programme has a certain attribute and at the same time require that it doesn't have another attribute.

Example 2: If you want all programmes which are movies but NOT adult movies, select theme category Movie, switch the theme class to 2, select theme adult and then invert theme class 2.

Note: although the Feature filter offers the use of different classes so support a logical OR, the inversion is not based on classes. This is due to the fact that there's a logical OR between feature classes (in contrast to the logical AND between theme classes).


FILTER SHORTCUTS

There's a number of predefined filter options in the main window below the clock. These shortcuts enable you to invoke filters by a single click of the mouse. You can freely add, change or remove entries in this list.

When you want to add a shortcut, first set the filters up in the way you want to save them, i.e. either choose existing shortcuts or select an entry from the Navigate menu and/or add filters from the main or context menus. When you have found an interesting selection, invoke Add filter shortcut from the shortcuts menu.

This will open the shortcut edit dialog (which will be described in detail below) with your new shortcut at the start of the list at the left. You should change the shortcut label in the field at the top right; by default it's just ``new shortcut''. The label will be displayed in the shortcut list in the main window. When you're done press Save, or Abort if you've changed your mind and don't want to add this shortcut after all. If you want to define multiple shortcuts you can leave the Edit dialog open and save just once when you're done with all changes.

You can invoke several shortcuts in parallel by moving the mouse with the left button pressed or by pressing the CTRL or SHIFT keys when selecting in the main winddow's shortcut listbox. See the chapter below for possible side-effects when combining shortcuts.

The shortcut list has a small context menu which shows when you click with the right mouse button into the shortcut list. If offers faster access to the same commands which are available in the main menu plus a Delete command; the shortcut above which you press the mouse button is pre-selected for the chosen operation.

When you Update a shortcut and your current filter setting contains different filters than the previously stored setting, you'll be asked if the filter mask should be automatically adapted (e.g. if your filter previously searched for theme category 'movie' but your current filter consists of a text search). See below for more details on filter masks; unless you have manually edited this shortcut's mask before, you can safely press ``Yes''.

Editing Filter Shortcuts

To change names and/or organisation of your shortcuts, open the edit dialog (e.g. via the main menu.) On the left of the dialog window there's a list of all your shortcuts. In the middle there's a row of command buttons which operate on the shortcut selected at the left (explained below). At the right there's an editable field with shortcut name, a read-only display of the filter settings currently assigned to the shortcut, and popup menus to change the filter's mask and combination rules (also explained in detail below.)

The buttons with up/down arrows will move the selected shortcut up or down. The buttons with arrows pointing to the upper left and lower right are used to move a shortcut entry out of or into a sub-folder respectively.

The Delete button removes the selected shortcut from the list (the deletion won't affect the main window until you press Save, so you can leave the dialog with Abort to undo the operation.)

The Invoke button will apply the shortcut's filter setting to the main window just as selecting the shortcut in the main window's list. You can then change the filter settings via the filter menus. Use the Update button to assign the main window's filter settings to the edited shortcut.

You should be careful with the update button since it's easy to overwrite the wrong shortcut. If you notice such a mistake, you can undo the change either by leaving the edit dialog with the Abort button or selecting the respecting shortcut in the main window and assigning the original settings via Update.

Filter Masks

When you deselect a shortcut, either by selecting another shortcut or clicking on it a second time with CTRL held down, all it's filters will automatically be undone. Hence when you have two themes shortcuts, e.g. ``Movies'' and ``Sports'', and select first Movies, then Sports, you'll see only sports programmes afterwards. However if you had selected theme movies manually, e.g. by the context menu explained in the next chapter, the movies filter might remain set, so that you'd get all programmes of theme movies OR sports. Since that is usually not what one expects, a filter mask has been introduced to the shortcut setting.

The filter mask is defined in the shortcuts dialog with a checkbutton for each filter category. By default, the mask is enabled for every filter category you've included in the shortcut filter setting. When you invoke the shortcut from the main window later, all filters of the given categories will be cleared (masked out) before the shortcut filters are added. To return to the above example: if the ``Sports'' shortcut is defined with a themes mask, the manually set movies filter would be cleared before the theme filter is set to sports.

The masking can also be enabled when no filter of that category has been chosen. This can be used to define undo shortcuts. E.g. choose the mask 'Themes' if you want a shortcut that allows to clear all theme-related filters at once. Or enabled all masks for a Reset button (the only difference to the pre-defined Reset button would be that the cursor does not jump to the first Now programme.)

Shortcut combination modes

By default when combining multiple shortcuts, all filters of all selected shortcuts are simply thrown together (i.e. ``merged'') and then processed as if they belonged all to one shortcut. The same combination rules apply as described in FILTERING.

For example, if one shortcut searches for movies, another one subtitles, the combination will search for programmes which are movies AND have subtitles. Also, if you have one shortcut which filters for movies and one that filters for your favorite series, the combination will filter for all programmes which are either movies OR among your favorite series.

For such simple shortcuts which consist of a single filter type this behavior is usually intuitive. When combining complex filters the result of merging however might not match your expecations. For example, if you have a shortcut ``movies on network A'' and one ``series on network B'' merging would result in ``either movies or series on either network A or B'', i.e. the list would also include movies on network B.

Hence the shortcut edit dialog has a Combination rule option where you can change the mode into OR or AND. If you put a shortcut into this mode, it's filters will be handled separately from all others.

The only drawback is that the shortcut's filters will not be editable via the filter menus. If you ever want to change the filter settings without creating them from scratch, use the Invoke and Update buttons in the edit dialog (see FILTER SHORTCUTS: Editing Filter Shortcuts.)

Shortcut update dialog

When you select the Shortcut Update command in the main menu, there will be a small dialog with a list of all shortcuts. The filter settings of the shortcut you select in this list will be overwritten with the currently active filter setting once you press the Update button. You can also use the Update & Edit button to jump directly into the filter edit dialog (see further above in this chapter)

Note that while the shortcut edit dialog window is open, updates (as well as deletions or additions) will only affect the temporary list in the edit dialog window until you press the it's Save button. Also the list offered for shortcut updates consists of the shortcuts as they are defined in the temporary list. This allows to test your changes before you commit them.

Note that a faster way to change a single shortcut is to use the context menu, since it allows to skip this intermediate dialog.


COMPOSITE ATTRIBUTES

By default the TV schedule contains for each programme ``basic'' attributes like its date, starting time, title, TV network in a pre-defined textual format. By using composite attributes you can customize the TV schedule according to your personal preferences. For example you could (1) alter the display format of pre-defined attributes (e.g. use colors for highlighting), (2) add new attributes, for example with images as markers for favorite programmes and/or (3) compact display by combining several attributes into one.

Composite attributes replace single attributes in the display (e.g. only the theme category column.) Newly created composite attributes will be appended to the list of pre-defined attributes. You can then configure your programme list as a mixture of pre-defined and composite attributes (see CONFIGURATION: Select attributes)

Composite attributes are created and edited via the Attribute composition dialog in the Configure menu (see CONFIGURATION: Attribute composition)

The ``heart'' of attribute composition is a list of filter shortcuts and reminder groups, which you build as a subset of your personal filter shortcuts and/or reminder groups (see also FILTER SHORTCUTS and REMINDERS.)

Whenever nxtvepg displays a composite attribute in the browser, it matches the programme's actual attributes (e.g. theme categories or assigned reminders) against the shortcuts and reminder groups associated which the respective composite attribute, in the given order (top to bottom in the dialog's list - so order is important). If a match is found, the text, image or attribute which was assigned to that specific shortcut match is displayed in the column with the format specified for this match. If none match (and there's no *no match* entry, see below), nothing is displayed in place of the composite attribute.

Note in this context matching means that a shortcut's filters are tried against the TV programme, i.e. a programme ``matches'' a filter when it would remain displayed when you enable that filter shortcut in the main window. A reminder group is considered matching when the respective TV show is programmed as a reminder in that group (or matches a shortcut which is assigned to the given reminder group - but let's ignore that for now to avoid confusion.)

Example: to create a personalized version of the Editorial rating (ER) column, you could create three shortcuts: one with the ER filter set to ``>=6'', one with ``>=4'' and one with ``>=2''; then you'd create a new user-defined column and insert the three shortcuts in this order; to the first shortcut match you'd assign the text ``great'', to the second ``ok'' and to the third ``bad''. As a result you'd have a column where the numerical ratings are replaced with your texts.

There is also a special entry at the end of the dialog's shortcut list called *no match*. It acts as a catch-all (i.e. wildcard) if none of the shortcuts in the column matches the current programme entry. In the above example this would be all programmes with an ER below 2 or without a rating.

The catch-all is particularily useful to overlay standard columns with alternate texts for selected programmes. To stay with the ER example, you could define a column with two shortcut entries: ``>=6'' and ``*no-match*''. To the ``>=6'' shortcut match you could assign an image marker; to all other the ``ER'' attribute. Hence programmes with an ER >=6 (i.e. all ``great'' programmes) would have an image displayed and hence clearly stand out from all other programmes, which get the regular content of the ER column (i.e. the numerical rating or an empty column for unrated programmes).

You can also use this machanism to combine several columns into one, to keep the listing compact. For example you can combine the ER column with the theme column, so that for movies with ER >= 6 the text ``great movie'' is displayed, for all others the regular theme description.


REMINDERS

Reminders allow to mark TV shows which interest you and have nxtvepg mark them in the programme list and display a message or execute an external command when they start. You can select either individual programmes in the programme list or complete filter shortcuts, e.g. for TV series.

To set a new reminder simply select it with the cursor in the programme list and choose Add reminder for selected title from the Reminder menu. The same command is also available in the context menu, i.e. by clicking on the selected title with the right mouse button. To remove the reminder, simply select the title again and choose Remove reminder for selected title.

By default nxtvepg will display a message popup for every reminded programmme 5 minutes before and directly at the start time. You can change this in the Configure reminder groups... dialog described in a separate chapter below.

If you want to set a reminder for an entire series, you need to create a filter shortcut first which matches the series (either by searching by series ID or by title). To reduce the overhead you can create a shortcut which matches all your favorite series and set a reminder for this collection. To assign a reminder to the shortcut use the Edit reminder list described in the next chapter.

Note you can add a single reminder for entries which already match a shortcut reminders. This allows to assign an additional, specific action for that TV show (if you use different groups.) Additionally you can suppress handling of reminders for individual shows; this option if offered in the Reminder and context menus when applicable. This option may help to get around excessively complex or restrictive shortcut filters.

By default nxtvepg has (in the single list layout) a column titled Mark which contains a red dot for all programmes which have a reminder registered, i.e. both single programmes and those which match shortcuts with associated reminders. You can also set a filter which will display only programmes with reminders in the proramme list by selecting Show reminder matches from the Reminder menu.

Edit reminder list

Opens a list of all reminders. Single programmes and shortcuts are listed in separate ``tabs''; switch between them by clicking on the buttons at the top.

The single programmes list is sorted by start time and network. When you double-click on a reminder, the respective network will be filtered for in the programme list and the cursor jumps onto the programme (if it's present in the current database.) To delete a reminder click on the Delete button or press the delete key on your keyboard. You can also select the reminder's ``group'' (see below) either by selecting a group in the popup menu from the Set group menubutton or by clicking with the right mousebutton into the group column.

The list will normally not contain reminders for programmes which are already expired. You can use the Display popup menu at the right to change that. You can also include ``suppressed'' reminders, i.e. entries which where created via the respective entry in the main menu to supress shortcut matches; those will appear with the virtual suppress group in the list.

When you switch to the Shortcuts tab, you'll see a list of all shortcuts for which you have added reminders. The first time you open the dialog it will be empty. You can add shortcuts by selecting them from the popup menu at the right. Equivalently to single programmes you can change the group or delete the reminders again. All changes to the lists are immediately saved and the markers in the programme list updated.

All changes you make in this dialog take effect immediately.

Reminder group configuration

Opens a configuration dialog for reminder groups. Every reminder is assigned to exactly one group which determines which actions are executed at the programmes' start time. Having groups allows to change actions (and especially: disable them if you're not in the mood to watch TV) easily without having to edit every single reminder. When you create a new reminder with the simple ``add reminder'' menu command it will be assigned to group zero.

By default nxtvepg has only one group which pops up a message 5 minutes before and directly at the start time. You can change this by selecting the group in the list at the left and then modifying the parameters at the right. Or create a new reminder by clicking New. You can also change ordering of groups (only available for your convenience; except for group zero ordering is not relevant.) The Show buttons sets a filter for the programme list so that only programmes matching reminders in the same group as the currently selected shortcut are displayed.

At the top of the parameter input section is the Label entry field. It allows to give the group a name, which is then used in the reminder lists and in reminder confirmation messages. Below is a checkbutton called Disable all group events. When enabled all actions for that group are suppressed, i.e. you'll get no popup messages and scripts are not executed. The programmes are still marked in the listbox though.

Further below is an entry field where you can give a list of comma separated values which define at which offsets reminder messages are displayed; offsets are substracted from the start time, i.e. when you enter ``5'' a message will appear 5 minutes before the programme's nominal start time. You can use negative values (e.g. ``-5'') if you want reminders to appear later than the start time. In addition you can set start times for commands. Commands are silently executed in the background, unless you enable Ask before executing script.

Note configuration changes (including group additions or deletions) are not applied before you leave the dialog with OK.

Reminder Messages

Once the nominal start time of a ``reminded'' programme (minus the configured time offset) is reached, a message window will appear. If there's more than one message triggered at the same time, or if you leave the window open and reminders for additional programmes are triggered, they will all be collected in this window; in this case there's a cursor which determines to which reminders the controls explained below apply. When you press Ok all messages are marked as ``done'' and will not appear again. With a double-click or the Tune-TV button you can switch the channel of a connected TV application to the selected programme, just as in the main programme list.

For message windows there's several buttons which allow to control further reminder processing. Suppress will prevent any subsequent messages for the programme. (Note that this is not the same as suppressing reminders in the main menu, since here you supress only messages but the programme remains marked as reminder). Repeat allows to schedule additional reminder messages at arbitrary time offsets. Note that messages configured for the group are suppressed until the manual repetition but will re-appear afterwards.


CONTEXT MENU

A quick way to select and deselect filters is by using the context menu, which opens when clicking with the right mouse button onto a programme entry in the main browser window.

This menu consists of several parts, separated by horizontal lines, which depend on the currently selected programme and hence are not always present.

Undo currently selected filters

The first section holds entries which allow disable currently selected filters either one by one or globally (reset). See also FILTERING: Filter Types

Add new filters

The second section offers a number of possible new filter options, which depend on the currently selected title and the already selected filters. The offered filter types include: themes and network of the selected programme title, it's series code, repeat or original transmission suppression (only in cunjunction with series or title text filters) and last but not least the title text.

The title text and series filters allow to check very quickly for repeats of a programme. These filter options are included only if there is a match, i.e. if there's another programme with the same title or series code respectively.

Add reminder

This menu entry will add a reminder for the currently selected programme. The reminder will have the default reminder group. To create reminders in different groups use Add reminder into group in the reminder main menu (see also REMINDERS)

User-defined entries

The optional fourth section is empty by default, but can be used to invoke user-defined external commands on the selected programme. More precisely, you can execute any command with properties of the selected programme (like title or start time) on its command line. The user commands can be added via the Configure menu (see CONFIGURATION: Context menu configuration).


CONTROL

Summary of commands available from the Control menu:

Enable acquisition

Toggles acquisition on or off. When you start the browser, acquisition is automatically enabled (although failure to do so is silently ignored). You can suppress automatic start with the -noacq command line switch. Switching off acquisition allows other applications (e.g. a teletext decoder) to use the TV card while you browse the database, if you have only one TV card.

You will get an error message if the device is already busy by a different application (there are some applications which cooperate well with nxtvepg, but if in doubt you should quit all other video related applications before starting acquisition) or if you don't have permission to access the device (UNIX, see also FILES) or to start the driver (Windows). If you're experiencing problems that might be hardware or Operating System related, test with a TV application or teletext decoder first, because these usually allow for easier debugging (e.g. due to the visible TV image). See also GETTING STARTED.

UNIX: When acquisition is switched off, the /dev/vbi device is freed. Acquisition can also been switched on and off automatically (i.e. from a shell script) by sending signal HUP (e.g. with the kill(1) command) to any of the nxtvepg processes or threads. If you're using a daemon for acquisition (see the next command) you have to send the signal to one of the daemon processes/threads. To simplify this, the pid of the process which needs to be signalled is stored in /tmp/.vbi.pid while the device is in use.

Connect to acq. daemon

Connect to or disconnect from an acquisition daemon, running in the background on the same host, or somewhere else in the network. The address of the daemon and other parameters are configured in the Client/Server menu (see CONFIGURATION: Client/Server). By default the daemon is started on the local host. The main advantage of using the daemon is that you can keep running acquisition permanently in the background, even if you terminate the browser, or on UNIX even the X11 server (i.e. the windowing system). On M$ Windows the daemon is terminated when you log off.

If you attempt to connect, but no daemon is running, you'll be offered the option to automatically start the daemon and retry the connect, provided you have configured server hostname localhost. The daemon will be started with the same database directory and rcfile as the browser.

Note that disconnecting from the daemon or terminating the browser does not stop the acquisition and hence does not free the device. If that's what you want, choose the Enable acquisition command instead, which terminates the daemon. Of course this option only is available if your daemon is running on the same host and with the same user id as the browser process.

Dump stream

UNIX only: The contents of all incoming Nextview blocks are dumped to stdout in a free text format. This is mainly intended for developers, but it may also help to debug reception problems, because in the dump you'll find any block that could be decoded without hamming errors, even before an inventory block (AI) has been received. This may help if you have very bad reception, because it may take a long time until a error-free copy of the usually large AI block is received.

When connected to a acquisition daemon, blocks are only dumped if they are new to the database or their content changed (because only those are forwarded by the daemon to the client.)

Dump raw database

Open a dialog that allows to dump all blocks in the database to stdout (UNIX only) or into the named file in a raw text format, which is actually the same as with the Dump stream command. This feature is mainly intended for developers. To understand all the infos in the text dump, you'll have to look at the source in epgui/epgtxtdump.c in the nxtvepg source package.

The array of checkbuttons allows to control which kind of blocks will be written. The programme information blocks (PI) do contain the actual programme descriptions; Defective PI contains those PI which were not accepted into the database because of inconsistencies like a zero or overlapping running time. For an explanation of the other block types please see the ETSI specification 707.

You can also export the database in this format via the command line by using option -dump raw. In this case the options last used in the dialog are effective.

Note that the data can also be exported directly from the command line by using -dump raw (see OPTIONS)

Export as text

Open a dialog that allows to export the complete database into a text file. Each line in the file will represent one item in the database. The item's different fields are separated by TAB characters; the line is terminated by a single new-line character (no line feed character, even on Windows). In some cases missing values are represented by \N which is the MySQL NULL identifier (currently only used for the VPS/PDC field).

The generated text file can be loaded directly into a relational database. It's not formatted for viewing in a regular text editor. Networks and themes are represented as numerical indices into the network and themes table respectively. Hence these tables are required in addition to the programme table. To load them into a database, you need to export them into different files.

For MySQL you could create the following tables:

   CREATE TABLE PI (
      netwop smallint(2) unsigned NOT NULL,
      Dstart date NOT NULL,
      Hstart time NOT NULL,
      Hstop time NOT NULL,
      vpspdc_pil datetime,
      prat tinyint(2) unsigned,
      erat tinyint(2) unsigned,
      sound enum("mono","2-chan","stereo","surround"),
      is_wide BOOL,
      is_palplus BOOL,
      is_digital BOOL,
      is_encrypted BOOL,
      is_live BOOL,
      is_repeat BOOL,
      is_subtitled BOOL,
      theme_0 tinyint(3) unsigned,
      theme_1 tinyint(3) unsigned,
      theme_2 tinyint(3) unsigned,
      theme_3 tinyint(3) unsigned,
      theme_4 tinyint(3) unsigned,
      theme_5 tinyint(3) unsigned,
      theme_6 tinyint(3) unsigned,
      title varchar(40) NOT NULL,
      descr text,
      PRIMARY KEY (netwop, Dstart, Hstart)
   );
   CREATE TABLE AI (
      netwop_idx smallint(2) unsigned NOT NULL,
      cni smallint(5) unsigned,
      lto_mins smallint(5),
      daycount smallint(5) unsigned,
      alphabet smallint(5) unsigned,
      addinfo smallint(5) unsigned,
      name text,
      UNIQUE netwop_idx (netwop_idx)
   );
   CREATE TABLE pdc_themes (
      theme_idx smallint(3) unsigned NOT NULL,
      cat_idx smallint(3) unsigned,
      name_eng text,
      name_ger text,
      name_fra text,
      UNIQUE theme_idx (theme_idx)
   );

Note that the database can also be exported directly from the command line by using -dump pi, -dump ai or -dump pdc (see OPTIONS)

Export as XMLTV

Open a dialog that allows to export the complete database in XML format, as defined by the xmltv.dtd version 0.5 (see xmltv project on http://sourceforge.net/) The generated file contains both the channel table and the complete TV schedule, including any networks you might have suppressed from the listing inside nxtvepg.

Hint: If you want to restrict the amount of exported data, configure a merged database. This is possible even for a single provider. This way you can exclude certain networks or attributes, e.g. to omit theme categories from the output (see the ``Configure'' sub-menu in the merge configuration dialog.)

Some TV applcations are known to not parse XMLTV timestamps correctly. As a work-around for such buggy applications, there's an option which allows to export dates and times in local time instead of UTC (also known as Greenwhich Mean Time or GMT.) If all programme data appears shifted by one or two hours in your TV app's schedule, try this option.

Note that the database can also be exported directly from the command line by using the -dump xml switch (see OPTIONS).

Export as HTML

Opens a dialog that allows to export the complete database or selected programmes into a file in HTML format (Hypertext Markup Language) which can then be loaded into a WWW browser, e.g. Netscape or Opera. This is particularily useful if you want to print out TV descriptions.

At the top of the dialog window you have to enter the output file name; if you don't include an extension, .html is automatically appended. Click on the little folder button to the right for a file selection dialog. Press the Export button to create the HTML document and Dismiss to close the dialog window.

By default the checkbutton All matching programmes, but max ... is enabled. In this mode all programmes that match current filter setting will be exported, but only up the given number of programmes. It's recommended to limit the number of programmes because else very large HTML documents are created which may take a long time to load into your Web browser.

Use mode Selected programme only to export only the programme which is currently selected in the main window. In combination with the Append to file mode this allows to incrementally build a document with exactly your programmes of interest.

In the box below there are three radio buttons with which you can select the output format. If you choose Write titles you'll get a table in the same configuration as in the programme title list in the main window. If you want to have different column types, you can build a separate column configuration by selection Different columns than main window and then pressing the Configure button to select which column types to display.

If you select Write descriptions you'll get for each exported programme a feature summary and description, similiar to the info in the lower part of the main window.

If you select Write titles and descriptions you'll get the title table on top and all descriptions separately below. In this mode you can select Add hyperlinks to titles to add hyperlinks from titles in the table to the descriptions.

The look of the generated document is almost entirely determined by use of an internal CSS stylesheet. If you don't like the look you can override it with your own stylesheet. Save it to a file named nxtvhtml.css and put it in the same directory as the generated HTML file. For more information on HTML and style sheets see http://www.w3.org/. If your column configuration contains images (see COMPOSITE ATTRIBUTES), you have to put them into a subdirectory called images; also your browser has to support the PNG image format.

View statistics/timescales

The following four commands are used to open windows with statistics about the databases and acquisition progress. See STATISTICS for details.

View timescales

Toggles the timescale window for the browser database. The window reflects for each network included in the selected database, which time ranges are covered by programme information. If acquisition is working on the database, you can watch how more and more of the scales get covered. See also STATISTICS: Status line

View statistics

Toggles the browser database statist