Very basic information on some of the settings used in the program.

Homepage:   www.majority.nl
E-mail:     m.majoor@majority.nl


Version V0.08 and higher now use the Pico script language. There are some
support programs you can use to debug scripts:
GoPico.exe   - a Pico script editor/executor. This is the original GoPico
               program which has been recompiled to have the additional
               functionality of the Pico script for using the SAA7146A and/or
               Flexcop universal drivers.
Pico.exe     - a command line Pico script executor.
               Usage:
                 Pico ScriptFile Parameter1 Parameter2 Parameter3 .....

Please read the PicoScrip.pdf file for all the information on this script.
Note that the GoPico.hlp file is the original help file of the original
GoPico program and does not contain the additions made to the scripting language.

The following script functions are used by MajorDVB:
HardwareInfo       - identifies which card is being used
                     called at startup of the application
HardwareSelectCard - select a specific card
                     called at startup of the application
HardwareVersion    - gives version information
                     called at startup of the application
TransponderPower   - gives a percentage indication of the 'power' of the signal
                     called at intervals
TransponderNoise   - gives a percentage indication of the carrier-signal ratio of the signal
                     called at intervals
TransponderStatus  - gives the status of the signal (e.g. locked)
                     called at intervals
TransponderSet     - sets the tuner to a given transponder (e.g. freq/polarity)
                     called when the transponder changes
TransponderInfo    - get the current transponder settings
                     called after <TransponderSet>
                     informative only (the script might have changed for tuning purposes)
TunerCommand       - gives a manual VDR command
                     called when a manual command is activated
CardIdentify       - gives information about an installed card or possible scripts
                     called when hardware setup form used
CardInit           - initializes the card
                     called when application starts (called when set as master only)
CardClose          - called when application terminates (e.g. can be used to power
                     down the card)

The following scripts are also called but are (to be) defined by the user. These
scripts typically reside in 'Tuner.pico', but the user is free to place them in
any script he or she likes. All these script function require a text input parameter
and a text output parameter.
These script functions also have a related INI setting (see INI section for more
on these).
Start              - called after startup of script (after CardInit is optionally
                     called)
                     In the INI file there is a definion (no setup through application
                     yet!)
                     which is send as input text parameter. The output text parameter
                     is displayed in the log.
Debug              - gives debug information
                     called at intervals if enabled through INI setting (no setup
                     through application yet!)
User               - a user defined script function
                     called when a user defined button in the application is pressed
                     The application has a special field for user defined buttons,
                     which will call the script when they are activated.

Note: In the script there is a variable 'Options' (in 'support.pico') which might
      affect some behaviour. For instance it either allows finetuning to be performed,
      or not, when tuning to a new channel.


The application expect some basic settings in the initial script file (typically
Scripts\Tuner.pico). This file is being used/changed by the setup part of the
application. You can also modify this file manually. This file is typically the
only file which needs modification to create a setup for another card or satellite
(DiSEqC) configuration.


Important: Setting the wrong hardware settings might lock up the tuner.
           Only a power down will revert from this situation (resetting the
           system will typically not resolve this).
           This happens for instance with a Terratec 1200 DVB-S card (which has a
           SU1278 tuner)
           FYI: this happens because the charge pump current for the synthesizer
                is set differently than for the BSRU6. When the SU1278 is set
                to the charge pump settings used for a BSRU6 then the tuner locks.


Additional requirements:
 . Installed (and working) SAA7146A.SYS V2.0 driver (SAA7146A generic driver)
   or FLEXCOP.SYS driver (FLEXCOP/B2C2 generic driver).
 . DirectX 9.0


  Most problems at the beginning are due to an incorrect setup of DirectX
  and the required 'graphs' for DirectX.

  It is essential that the correct DirectX is installed (V9.0) and that
  USRC.AX (which is the same as that from the WinSTB project) is correctly
  registered with:
     regsvr32 usrc.ax
  NOTE: Registration of usrc.ax is no longer required from build 20041212 onwards.
        When usrc.ax has not been registered it is automatically registered.
        The only requirement is that usrc.ax is in the applications directory.

  Note: If you happen to find files by the name of 'log.log' then be advised
        that these are generated by the 'usrc.ax' filter. The application
        removes this file explicitly in its own directory.
        Hint: If you edit 'usrc.ax' and replace the 'log.log' text by null
              ($00) then no file will be generated....

  The applications does not take any limitations of the file system into account.
  Make sure you use the NTFS file system or any other file system that does not limit
  the filesize if you plan to record very large files, or set one of the applications
  settings to generate smaller sized files.


Freezing and crashing problems:
  If you are experiencing freezing and crashing problem then the following note from Nosmo King
  might resolve this. Although it's focus is on WinSTB it also applies to MajorDVB (and other
  non-TechnoTrend driver based software):
  "After a long struggle, I've managed to get WinSTB running nicely with a WinTV nova card.
   For others with Freezing and Crashing problems, this may be useful.
   1 - Uninstall the Technotrend TV/Data app.
   2 - Remove all instances of Technotrend from the registry, in particular, the network card. (Use find, then find again).
   3 - Install drivers etc. as per the various readme's.
  "

Note that freezing/crashing problems are typically not 'created' by the application itself, but by
a plugin or DirectShow. So if you are experiencing these problems try excluding as much as
'variables' as you can to determine which part is actually causing the problem.


General notes / issues:
- In older versions of MajorDVB the identification name of a favourite HAD TO MATCH with a transponder
  otherwise no tuning takes place!!
  Note: This has been 'corrected' in newer versions were an unknown transponder is added to the
        internal list when it is selected. This even allows you to operate without any transponder list,
        just favourites.
  Note  'Scan all' uses the internal transponder list for frequencies to scan. If no transponder list is
        used then the internal list only has the transponders of the last 'visited' favourites. Thus
        only those frequnecies will be scanned in such a case.
  Eg. a favourite is identified in it's file by:
    1_12344_H_27500_12345=0160, 0080, 0032, 1004, 0128, 1281, ...
  were 1_12344_H_27500_12345 is the identification.
  This is then converted into a transponder 'identification',
    1, 12344, H, 27500
  which is then searched for in the transponder list. If not found this entry will be added to the
  internal transponder list (which initially contains the transponder lists as set in the INI file).

- When a, Windows, error is generated but the application continues to operate
  normally (eg. updating) then the error is most likely due to a DirectShow
  error (eg. one of the plugins). One 'notorious' one is the audio driver used
  by the CyberLink codec. It is advised to replace the audio codec for another.

- For HDTV broadcast you need a *fast* video codec. The Cyberlink video codec
  is faster than the InterVideo and Elecard codecs. Since the Cyberlink audio
  codec can generate an error it is advised to use another audio codec.
  Note: The is based on the Cyberlink PowerDVD V4.0 codecs, not the V5.0 codecs.
        The V5.0 codecs don't generate a HDTV picture at all and will generate
        an error when another channel is selected (these problems might be due
        to other codecs that interfere so individual situations can be
        different).

- If the application is started but no window is being displayed then it means
  that the DirectShow part is not completed yet. It has been observed that when
  NERO MEDIAPLAYER has been installed that most DirectShow graphs don't want to
  start up as usually. This has been traced back to the rendering of the video
  which is in an endless loop. A provision has been made to not render the video
  and audio, so that the application can start up (see INI file for more details).
  Note that it has been observed that when rendering has been set off, that ending
  the application might result in a runtime error (thought to be related to the
  DirectShow as well).
  Note: Another possibility is a 'DirectShow Start error' error. The 'offending'
        filter in such cases is 'NeAudio.ax' (Nero Digital Audio Decoder).
  Note: Uninstalling the media player does not necessarily remove the installed
        codecs!
  Note: Installing Nero Burning Rom also installs some codecs which might give
        problems. These codecs don't show up in the used graph but *are* used!


'Transponder display'
  When enabled, instead of using previously stored settings, realtime program
  information is used.

'Lists'
  Selects different 'favourite' lists (stored settings).
  A special list is the 'transponder list', which always operates in realtime
  mode (program information is updated except when 'Process PIDs' is disabled).

'Program'
  Shows the current selected transponder or program.

'Scan all'
  Will scan all transponders and stores the results in the currently active
  'favourite' list. Typically used when the 'Lists' is set to 'Transponder list'
  which will store the result in a new file.
  Only visible when 'Transponder list' active or 'Transponder display'.

'Scan'
  Will scan the current transponder only and stores the results in the currently active
  'favourite' list. When the 'Lists' is set to 'Transponder list' the results are
  stored in a new file.
  Only visible when 'Transponder list' active or 'Transponder display'.

'Update'
  Adds or updates the current program information to the currently selected 'favourite'
  list. Typically used when the program information has been updated or changed
  (eg. 'Update program information' or by switching to 'Transponder display' and
  selecting other PIDs).

'ScrScan'
  Scans the current favourite list for being scrambled or not. Every program will
  be selected automatically and after a fixed timeout (4 seconds) the status is
  determined and saved.
  The scanning starts from the current favourite index (this to allow a partial scan or to
  continue an interrupted scan).
  Note: If you want to do a complete 'rscan' then make sure that all programs marked
        as scrambled are included too (check Menu/Settings/Scrambled).

'Disable'/'Enable'
  Marks the current program as being enabled / disabled.
  With Menu/Settings/Disabled disabled programs can be allowed or not.
  Note that the list is not updated immediately.
  Also not that the displayed text is the action carried out. 'Disable' means
  that the program will be marked 'disabled' (thus it is currently 'enabled').

'Scram'/'Unscr'
  Marks the current program as being scambled / unscrambled.
  With Menu/Settings/Scrambled scrambled programs can be allowed or not.
  Note that the list is not updated immediately.
  Also not that the displayed text is the action carried out. 'Unscr' means
  that the program will be marked 'unscrambled' (thus it is currently 'scrambled').

'Delete'
  Removes the current program information from the currently selected 'favourite' list.

'DirectShow'
  Enables DirectShow. Video and audio can be individually enabled/disabled. This does
  not affect recordings.
  It also shows available DirectShow graphs. Note that the selection is not retained,
  but only temporarily. The startup graph, if any, is selected through the DirectShow
  Options.
  Note: When the application generates the graph itself it creates, besides the normal
        'Audio' and 'Video' pin on the MPEG2 demultiplexer, also an 'AudioAC3' pin on it.
        This is of type 'MEDIASUBTYPE_DOLBY_AC3' and is used for AC3 audio.
        If a preset graph is used one should add this pin manually (ATSC Audio (AC3))
        to the MPEG2 demultiplexer, otherwise only the normal audio channel is available.

  Note on AC3: Getting AC3 on the S/PDIF output is not always as straightforward
               as might be expected. There are typically two things which has to be set
               correct. First there is the audio driver. This has to have S/PDIF enabled.
               Important: some hardware has the option of having the 'common' audio also
               be routed to the S/PDIF output. In such cases it might be that the S/PDIF
               output can no longer be used for special 'formats' like AC3. The S/PDIF
               setting then has to be set to 'digital output only' (or simular).
               Secondly, there is the AC3 filter of some DirectShow filter. This also
               needs to have the S/PDIF option enabled.

'Process PIDs'
  Enables the runtime processing of information. Typically used when
  'transponder' mode is on. When disabled the data stream is not processed
  (no update of information).

'Video'
  Enables the video (only when DirectShow is enabled) for viewing purposes.
  This does not affect recordings.

'Audio'
  Enables the audio (only when DirectShow is enabled) for viewing purposes.
  This does not affect recordings.

'Video PID'
'Audio PID'
'Teletext PID'
'Subtitle PID'
'PMT PID'
'PCR PID'
'ECM PID'
  These are the detected/selected identifiers for the different program information
  'streams'.

  Note: the 'Subtitle PID' has not been tested. Some programs use the 'Teletext PID'
        to carry subtitle information (on a specific page). These kind of subtitling
        can be handled by the (included) Teletext plugin.
        When this Teletext is included in the recording then, with the appropriate
        software (like DS.JAR), these subtitles can be extracted from the stream.
  With the 'Manual' checkbox there you can force using manual entered PIDs.


Snapshot/Screenshots
-------------------------------------------------------------------------------
The application has the ability to take a snapshot of the video screen and save
this as a bitmap (.BMP) file. Use the snapshot ('camera') button for this.
The filename and destination are the same as is used for recordings. This
means that the recording subdirectory is the destination and the filename is
date and time based, or prefix and time based (prefix in the input field on the
main screen).
Note that the method of generating a screenshot depends on the DirectShow mode.
Without an active VMR windowless mode the display is temporarily paused to make
the screenshot. With an active VMR windowless mode this pausing is not necessary
Be aware that the generates files are not processed in any way and are therefore
relative large in size (8MB for a HDTV screenshot).


Recording
-------------------------------------------------------------------------------
Right to the PID comboboxes there are, typically, two checkboxes.
When the left one is checked then the PID-type is included in the recording,
otherwise it will not.
If the right one is checked then all PIDs of the same PID-type are included in the recording,
otherwise only the current selected one will be used (note: make sure the left checkbox has
been cheched otherwise none will be recorded). Some PID-types only have one possible
PID, so checking the right checkbox will force an update of the PID instead of using the
current PID.
Important: Although the PIDs might get updated, the currently selected PIDs are still in effect.
           The PIDs are only updated for recording purposes, not for other purposes, like
           decryption. Eg. if the current decryption PID (ECM) is incorrect then no decryption
           will take place at all.

Typically a recording includes the following 'streams':
- video
- audio
- PMT

'Individual files'
  It is possible to create single files for each PID-'stream' instead of a single file with all the
  selected PID streams inside it. This is done by checking the 'Individual files' checkbox.
  Using individual files is typically *not* a good idea, except in individual cases.
  Most post-professing software requires all information to be contained in a single file.

'Raw data'
  When checked the data is recorded in its unprocessed format (not decrypted).
  The checkbox right to the 'raw data' checkbox can be checked to disable the (decryption) processing during
  recording. Typically the processing still continues when 'raw data' is selected (to be able to
  watch it simultaneously). If a program is only recorded, and not being watched, then this decryption
  can be completely shut off when 'raw data' is being recorded.

'Transponder'
  When checked the whole transponder data stream is being recorded. This will always be a single
  file and the data will always be in raw format. No watching is possible. Note that, since the raw
  data is being recorded, manual processing afterwards (like decrypting encrypted channels) is
  typically needed.
  Note: Since all data is being recorded the resulting file will become huge. It will take about
        3 Gb for each 10 minutes of recording (this varies amongst transponders).
        This implies that the file system should support very large files, eg. use NTFS.
  Note: You can use the 'Process recorded data ..' from the menu for later playback or other
        processing (decryption).

'Default'
  Will set the recording settings to their defaults. Note that these defaults are by themself defined
  in the INI file ('RecordDefault').

'Update program information'
  Forces an update of the information of the currently selected program. Only works when 'Process PIDs' is
  enabled.

'Reinitialize DirectShow'
  Forces a re-initialization of DirectShow. Typically used when the screen format displayed is incorrect.



Menu
-------------------------------------------------------------------------------
'Exit'
  Exits application.

'Utilities'
 'Process recorded data TS file' / 'Cancel ..'
   This will open a previously recorded TS file and uses it as if it was received from the satellite.
   This can be used to do some off-line watching or off-line recording. Typically used to do off-line
   decryption when a full transponder has been (raw) recorded.
   Note: By default an implicit minimum delay between packets of 20 ms is used to allow time to
         change the program and such. Without delay processing the file would be too fast if no video
         display for the current selected channel is active.
   During processing a track bar is shown which can be moved if required. Note that the
   'reaction' time of the DirectX video/audio is somewhat delayed because of internal buffering
   of DirectX.

   Note: It is typically required to change the service to select the correct program in
         the recorded stream !!!
   Note: It is typically required to record PID 0 too, when you plan to do off-line processing.

 'Set process delay to xx ms'
   Sets the delay for processing to xx ms.
   Note: Initial delay is always 20 ms, independed of this setting.


'Plugins'
  Shows the MultiDec plugins.
  MultiDec plugins are to be placed in the specific subdirectories. At startup these subdirectories
  are scanned for plugins.
  Besides the main applications directiry, each subdirectory starting with 'MDPLUGINS' is scanned.
  This means that 'MDPLUGINS1' and 'MDPLUGINS2' are also valid subdirectories.
  You can place each plugin in a separate subdirectory this way.
  The order showing in the menu is the order in which the plugins were detected, loaded and the order
  in which they receive their data. The plugin subdirectories and plugins in a sibdirectory
  are sorted alphabetically.
  If a plugin allows for it, this way a plugin can be used multiple times in the application by
  creating separate subdirectories for each instance of the plugin.
  Note: Although plugins are placed in those subdirectories, some plugins requirte that specific files
        are present in the 'root' directory (the applications directory).

'DirectShow'
  Contains DirectShow options.
  . Active filters    - Shows the currently active filters (if they have properties you can
                        change them)
  . Graphs            - Shows/initiates a new graph. Note that this is not a setting which is
                        retained (use Options to select the graph to use for the application)
  . Options           - All the DirectShow options
  . Re-initialize     - (Re)initializes DirectShow

'Setup'
  Allows changing settings.
  . Card              - Hardware settings (some settings change the Pico script)
  . DiSEqC / LNB      - DiSEqC and LNB settings (some settings change the Pico script)
  . Files             - Transponder and favourite lists
  . Miscellaneous     - All other settings
  . Remote control    - Remote control key definition (for 'onboard' remote only)

Full screen mode
  The application uses a fixed video size for its display. It is possible to switch to full screen
  mode by pressing the center blue button, ESC key or double-clicking on the video.
  To change back from full screen mode use Alt-Tab, Esc, use a cursor key or double-click.



Post-processing
-------------------------------------------------------------------------------
Post processing can be done with, among others, the following software:
.  PVAstrumento         can extract the video and audio parts from the recorded stream
.  DS.JAR / Project X   a Java based processing package
                        Also allows selection of (part of) the stream to be processed.
                        Can additionally handle Teletext / Subtitles and much more.



Pseudo Pip (Picture In Picture)
-------------------------------------------------------------------------------
See comments on 'AllowSlave' in INI file section.



Parameter passing
-------------------------------------------------------------------------------
MajorDVB allows parameters to be passed on the commandine. The format of these parameters is:
  MajorDVB parameter1=value1 parameter2=values2 ....

The following parameters are currently supported:
Setup                     Initiates the hardware setup dialog.
DirectShowGraph           Defines the DirectShow graph to use
Favourite                 Favourite list to use (order as set in INI file)
Program                   Program to use from active favourite list
StartRecording            Time for starting a recording    (HH or HH:MM or HH:MM:SS) (*)
StartRecordingIfExpired   Set to 'yes' or '1' will start the recording immediately
                          if <StartRecording> time is already expired when started
                          (max. 2 hours, so starting recording time is maximum 22
                           hours in the future)
StopRecording             Time for stopping a recording    (HH or HH:MM or HH:MM:SS) (*)
Shutdown                  Time for shutting down the PC    (HH or HH:MM or HH:MM:SS) (*)
Exit                      Time for exiting the application (HH or HH:MM or HH:MM:SS) (*)
ExitAfterRecording        Set to 'yes' or '1' will exit the application after the scheduled
                          recording stops
ShutdownAfterRecording    Set to 'yes' or '1' will shutdown the PC after the scheduled
                          recording stops
FullScreen                Set to 'yes' or '1' will initiate full screen mode

Example:
  MajorDVB StartRecording=17:10:00 StopRecording=18:00 ExitAfterRecording=Yes

(*) These times are corrected with the <TimeCorrectionParameter> setting in the INI file



'Remote' control
-------------------------------------------------------------------------------
All remote control commands are also available as Windows messages. This means that an external
application can send these commands to MajorDVB.
The following information applies to this messaging:
Message-identifier: $0401 (WM_USER+1)
WParam:             Remote control command (4 characters)

The available commands are (see INI file for possible explanations on the command):
  Remote control equivalent      WParam    Hex ASCII codes     WParamHex   WParamDecimal
     0                           '0   '    $30 $20 $20 $20     $20202030    538976304
     1                           '1   '    $31 $20 $20 $20     $20202031    538976305
     2                           '2   '    $32 $20 $20 $20     $20202032    538976306
     3                           '3   '    $33 $20 $20 $20     $20202033    538976307
     4                           '4   '    $34 $20 $20 $20     $20202034    538976308
     5                           '5   '    $35 $20 $20 $20     $20202035    538976309
     6                           '6   '    $36 $20 $20 $20     $20202036    538976310
     7                           '7   '    $37 $20 $20 $20     $20202037    538976311
     8                           '8   '    $38 $20 $20 $20     $20202038    538976312
     9                           '9   '    $39 $20 $20 $20     $20202039    538976313
     pp                          'PP  '    $50 $50 $20 $20     $20205050    538988624
     record                      'RECO'    $52 $45 $43 $4F     $4F434552   1329808722
     recordon                    'REON'    $52 $45 $4F $4E     $4E4F4552   1313817938
     recordoff                   'REOF'    $52 $45 $4F $46     $464F4552   1179600210
     up                          'UP  '    $55 $50 $20 $20     $20205055    538988629
     down                        'DOWN'    $44 $4F $57 $4E     $4E574F44   1314344772
     left                        'LEFT'    $4C $45 $46 $54     $5446454C   1413891404
     right                       'RIGH'    $52 $49 $47 $48     $48474952   1212631378
     reinit                      'REIN'    $52 $45 $49 $4E     $4E494552   1313424722
     update                      'UPDA'    $55 $50 $44 $41     $41445055   1094996053
     epg                         'EPG '    $45 $50 $47 $20     $20475045    541544517
     epgshort                    'EPGS'    $45 $50 $47 $53     $53475045   1397182533
     epgcurrent                  'EPGC'    $45 $50 $47 $43     $43475045   1128747077
     video                       'VIDE'    $56 $49 $44 $45     $45444956   1162103126
     audio                       'AUDI'    $41 $55 $44 $49     $49445541   1229215041
     pid                         'PIDS'    $50 $49 $44 $53     $53444950   1396984144
     directshow                  'DIRE'    $44 $49 $52 $45     $45524944   1163020612
     transponder                 'TRAN'    $54 $52 $41 $4E     $4E415254   1312903764
     shutdown                    'SHUT'    $53 $48 $55 $54     $54554853   1414875219
     exit                        'EXIT'    $45 $58 $49 $54     $54495845   1414092869
     fullscreen                  'FULL'    $46 $55 $4C $4C     $4C4C5546   1280070982
     fullscreenon                'FUON'    $46 $55 $4F $4E     $4E4F5546   1313822022
     fullscreenoff               'FUOF'    $46 $55 $4F $46     $464F5546   1179604294
     mute                        'MUTE'    $4D $55 $54 $45     $4554554D   1163154765
     muteon                      'MUON'    $4D $55 $4F $4E     $4E4F554D   1313822029
     muteoff                     'MUOF'    $4D $55 $4F $46     $464F554D   1179604301
     volumeup                    'VOLU'    $56 $4F $4C $55     $554C4F56   1431064406
     volumedown                  'VOLD'    $56 $4F $4C $44     $444C4F56   1145851734
     language                    'LANG'    $4C $41 $4E $47     $474E414C   1196310860
     disable / enable            'DISA'    $44 $49 $53 $41     $41534944   1095977284
     scramble / unscramble       'SCRA'    $53 $43 $52 $41     $41524353   1095910227
     snapshot                    'SNAP'    $53 $4E $41 $50     $50414E53   1346457171



Girder
-------------------------------------------------------------------------------
Girder is an application which allows that different kind of input devices (eg. remote
controls) to control Windows operations. Below is a small guide on how you can make Girder
work with MajorDVB. All references here are with respect to the Girder application.

  1. From 'File'/'Settings' select 'Plugins'. Check/activate the 'SendMessage' plugin.
  2. Back to the command 'pane'. When you have selected a command you should be able
     to select the 'SendMessage' plugin from the 'Plugins' tab. With the plugin selected
     press the 'Target' button. In the 'Settings' panel, check the 'Executable' checkbox
     and fill in 'MajorDvb.exe' in the editbox to the right of it. Press 'Ok'.
  3. With the 'Settings' button of 'SendMessage' activated we are now going to define
     the actual message to be send. Fill in '1025' as the 'Message Number'. We now have
     to fill the correct remote control code in the 'wParam' editbox. The 'lParam' field
     in not used by MajorDVB (atleast not yet).
     The value to enter under 'wParam' is the remote control code. See the remote control
     codes above for the correct value (use the value in the WParamDecimal table). Thus, for
     the 'fullscreen' code you would enter '1280070982' for wParam.



Key codes
-------------------------------------------------------------------------------
There are some keys which have a specific meaning when pressed. The keys, and there functions
which correspond with remote control functions if they exist, are:
  x, X, ESC        fullscreen
  l, L             left
  r, R             right
  u, U             up
  d, D             down
  m, M             mute
  a, A             language
  o, O             disable/enable
  s, S             scramble/unscramble
  c, C             camera (snapshot)
  +                volumeup
  -                volumedown
  0..9             0..9 program number
  space            pp (previous program)

Note: Depends on active control of application. If an input field is selected then
      the input goes to the input field!



MyHTPC
-------------------------------------------------------------------------------
Using the parameter passing here above you can use, for example, MyHTPC as a
Multimedia frontend.
In the MyHTPC subdirectory you will find two files which are to be copied to the
MyHTPC directory. The first line in the file 'MajorDVB.cfg' should be changed so it
has the correct path to MajorDVB. Please read the notes in the same .cfg file for
some remarks on other things to do. The .wsc file is the plugin/script which calls
MajorDVB (using MajorDVB.cfg for the path).



File formats
-------------------------------------------------------------------------------
MajorDVB uses two 'native' file formats. These are the transponder list and the favourite list.
These files are all in ASCII and be manually edited if required.
The layout of these is as follows:
  * Favourite files:
      Satellite_Frequency_Polarity_SymbolRate_FEC_ProgramIndex=
        VideoPID, AudioPID, TeletextPID, PmtPID, PcrPID, EcmPID, SubtitlePID, Options, Program name

    were
      Options: $0001 == Disabled
      Options: $0002 == Scrambled channel

  * Transponder files:
      Satellite, Frequency, Polarity, SymbolRate, FEC (or QAM)
    or
      Frequency, Polarity, SymbolRate, FEC (or QAM)
    or
      Satellite, FileName
    or
      FileName
    or
      Satellite,        <- note the comma

    OR
      The file format as used by TechnoTrend INI files ([DVB] section is read).
      For example;
        [DVB]
        0=70
        1=10772,H,22000,56
        2=10788,V,22000,56
        3=10818,V,22000,56

      Only the relevant information is used, using the current satellite number.

    When a file is used then the satellite number is automatically increased.
    Comments are allowed (everything after a ';' is being discarded).
    All files (except for the initial file, typically 'TRANSPONDER.LST',
    as set in MajorDVB.ini) are to be located in the TRANSPONDERS subdirectory.

    Examples:
      1, 10877, V, 22000        ; Satellite 1
      2, 12558, V, 27500        ; Satellite 2
      13213, H, 22000           ; Uses last set satellite
      SAT1.LST                  ; Uses last set satellite (increased when processing file done)
      SAT2.LST                  ; Uses last set satellite (increased when processing file done)
      1, 0192.INI               ; Satellite 1
      2, 0130.INI               ; Satellite 2

  Note: If the AudioPID number is followed by a '*' then it indicates an AC3 audio channel.
        eg. '0125*' indicates that PID number 0125 is an AC3 channel. This is only of importance
        when watching a program for the correct selection of the audio output.
        The frequency is in MHz, but does not need to be an integer value.



DiSEqC
-------------------------------------------------------------------------------
The DiSEqC/satellite settings are defined in the SCRIPT file. The same approach as used
in the Linux application 'VDR' has been adopted.
  Format:   satellite slof polarization lof [command]
                |       |        |       |      |
                |       |        |       |     'DiSEqC' command (optional)
                |       |        |      Local Oscillator Frequency
                |       |        |      which is subtracted from the transponder
                |       |        |      frequency to get to the tuner frequency
                |       |       H/V polarization
                |      Switch frequency
                |      The first entry with a 'slof' greater than the
                |      actual transponder frequency will be used
               Satellite identifier (number - as used in favourites/transponder setup)
             The optional [command] is made up of the following
               t         Tone off (22 kHz)
               T         Tone on  (22 kHz)
               v         Voltage low (13V)
               V         Voltage high (18V)
               A         Mini A (burst A)
               B         Mini B (burst B)
               Wxx       Wait xx milliseconds
               [xx ..]   Hex code sequence (max 6), eg [E0 10 38 F0]
           Example:
           1  11700 V  9750  t v W15 [E0 10 38 F0] W15 A W15 t
Notes:
  . Polarity is typically controlled by the 13/18V voltage
    (13V == vertical, 18V == horizontal)
    Low/High band selection is typically controlled by the 22 kHz signal
    (no 22 kHz == low band, 22 kHz == high band)
  . Per satellite there are almost always 4 entries because
    of the polarity and band selection.
  . Because the DiSEqC/burst mechanism uses the 22 kHz tone a minimum delay of
    15 ms before/after it should be observed to differentiate the mechanism
    from the continuous tone itself.

Examples:
  Full DiSEqC sequence (DiSEqC V1.0):
  1  11700 V  9750  t v W15 [E0 10 38 F0] W15 A W15 t
  1  99999 V 10600  t v W15 [E0 10 38 F1] W15 A W15 T
  1  11700 H  9750  t V W15 [E0 10 38 F2] W15 A W15 t
  1  99999 H 10600  t V W15 [E0 10 38 F3] W15 A W15 T

  2  11700 V  9750  t v W15 [E0 10 38 F4] W15 B W15 t
  2  99999 V 10600  t v W15 [E0 10 38 F5] W15 B W15 T
  2  11700 H  9750  t V W15 [E0 10 38 F6] W15 B W15 t
  2  99999 H 10600  t V W15 [E0 10 38 F7] W15 B W15 T

  Optimized for mini DiSEqC (aka toneburst):
  1  11700 V  9750  t v W15 A W15 t
  1  99999 V 10600  t v W15 A W15 T
  1  11700 H  9750  t V W15 A W15 t
  1  99999 H 10600  t V W15 A W15 T

  2  11700 V  9750  t v W15 B W15 t
  2  99999 V 10600  t v W15 B W15 T
  2  11700 H  9750  t V W15 B W15 t
  2  99999 H 10600  t V W15 B W15 T

  Optimized for full DiSEqC:
  1  11700 V  9750  [E0 10 38 F0]
  1  99999 V 10600  [E0 10 38 F1]
  1  11700 H  9750  [E0 10 38 F2]
  1  99999 H 10600  [E0 10 38 F3]

  2  11700 V  9750  [E0 10 38 F4]
  2  99999 V 10600  [E0 10 38 F5]
  2  11700 H  9750  [E0 10 38 F6]
  2  99999 H 10600  [E0 10 38 F7]


For DVB-C/T use the following settings:
  1 99999 V 00000
  1 99999 H 00000


General note on DiSEqC devices:
  Some DiSEqC devices support different levels of DiSEqC, but will switch
  to a specific state if a certain command is detected. Sometimes this can
  only be reverted by means of removing the LNB power. For a monoblock this
  might be removing power from all connections.



Scheduled recordings
-------------------------------------------------------------------------------
A scheduled recording is added to the list (of scheduled recordings) by
clicking on the EPG time. Another way is using the '(+)' button (above the
manual recording button on the screen). With the '(+)' button the current
program with the times in the start and stop time boxes is added to the list.
With the '(?)' button the list can be edited. When an active recoring is removed
from the list it will be stopped once the edit screen is closed.
Please note that editing occurs in the bottom part of the edit window. Select
the item to be edited in the top part and then edit in the bottom part.

Note: At the moment a program is added to the list the current PIDs (streams
      to be recorded) are determined. This is NOT done when recording starts
      because PID information is only maintained for the current program.

Scheduled recordings are indicated by means of the green blinking record
button. The record button is still used for manual recordings, so pressing
it will start/stop a manual recording (and not a scheduled recording which
can be stopped by removing it from the recording list).

The scheduled recording will switch to that program about 30 seconds prior
to the recording time. If you want to only switch to another program (and
not start a recording) then make the start and stop time identical. The 30
second is still effective so a start/stop time of 17:30:00 will switch at
17:29:30 to the program.
Keep in mind that switching does not take place when a recording has already
started.

If a recording is added for which the start time has already passed, then
recording starts immediately.

Overlapped recordings are possible if programs are from the same transponder.
This is typically only for interest for FTA channels because decoding of a program
is done on the current program only.
Note: If you need to record programs on the same transponder which each need
      special processing (eg. a plugin) then you have to start multiple
      instances of the application instead. See 'AllowSlave' in INI section.

Items are checked for duplicates and are removed if they have expired.
Checking is done on overlapping recordings (on different transponders) and a
warning is issued when this is detected. Note that the 30 second 'switching' time
is also taken into account.
Since no transponder change takes place during an active recording, having overlapped
recordings MUST be addressed, otherwise invalid data will be recorded.



INI file
-------------------------------------------------------------------------------
Because the INI file no longer needs to be maintained manually (they are all
accessible through the menu), the comments in the INI file might become on the
wrong places or might be removed all together. Because of this possibility all
settings, with their comment, are here below.
Note that the examples do not necessarily indicate valid settings.

[UDP]
;   Note: These settings are only available through the INI file (not from
;         the application)
;   The data send to DirectShow can also be send through an UDP network connection.
;   Address=   sets the address of the receiver. Use '127.0.0.1' if the data should
;              stay at the same computer.
;              If this setting is left empty then no connection is established (default).
;   Port=      the port used for the connection. Typically '1234'.
;   Packets=   the number of packets used for buffering. When this buffer is full,
;              then the buffer is passed on for transmission. Note that a large
;              buffer is still being send using smaller sized chunks (this is the way
;              networking operates). Only when the buffer is too small, performance
;              will decrease because of the not optimal chunks being transmitted.
;
;   Hint: You can 'DirectShowOff=No' to disable video/audio by MajorDVB itself.
;         The UDP connection will still receive the data.
;         Using 'DirectShowSendAll=Yes' will pass on all received data through
;         the UDP connection.
;         One application particularly suited for receiving the UDP data is
;         the VLC media player. Select 'Open network stream..' and press OK (the
;         setting 'udp://@' is then used, which should work).
;         Alternatively use the following network stream for opening:
;             udp/ts://@127.0.0.1:1234
;         '127.0.0.1' is the address of the PC were MajorDVB is run (127.0.0.1 if
;         UDP data stays at the same computer). '1234' is the port number were
;         MajorDVB is sending the UDP data to.
;         Example:
;           PC1: 'MajorDVB' PC, IP address 192.168.1.64
;           PC2: 'VLC'      PC, IP address 192.168.1.32
;           MajorDVB: INI -> Address=192.168.1.32, Port=1234
;           VLC     : Open network stream: udp/ts://@192.168.1.64:1234
;   Note: Since the UDP data is send through the network connection (even when
;         the data stays at the same computer!), any firewall may block data traffic.
;         You have to set the firewall correctly, so it allows passing on the data
Address=127.0.0.1
Port=1234
Packets=50

[Transponder]
;   TransponderFile
;   Defines the file which has the list (or references to) all the transponders
;   If the file contains references to other files then these are read from
;   the TRANSPONDER subdirectory
;   You can operate without using any transponder list. The application then
;   builds up a list internally when a favourite is selected.
TransponderFile=

;   FecFromTransponder
;   If set to 'Yes' the FEC as in the transponder files is used (instead of 'auto')
FecFromTransponder=No


[FavouriteFiles]
;   Each definition has the filename and the descriptive name for
;   the list of favourites
SomeList.lst="Some list"

[Script]
;   Script
;   The script has the functions the application uses to control the hardware.
;   Leave this entry empty to use the default setting (which is
;   the 'Scripts\Tuner.Pico' file in the application directory).
;   Note that without a starting '\' the applications directory will be used as
;   the starting directory.
;Script=

;   UserDefinedX
;   The 'UserDefined0'..'UserDefined9' are user defined functions which are called
;   using the 10 available buttons in the application. Each of the user defined
;   buttons, if defined here, will call a script function 'User' in the script.
;   Format of a definition is: UserDefineX="Display string", "Script parameter"
;   Here the "Display string" is the text as displayed in the button in the
;   application. The "Script parameter" is the input parameter of to the script
;   function. The 'User' script function should return a text as it's result.
;   This text is then displayed in the application if the text is not an empty string.
UserDefined0=
UserDefined1=
UserDefined2=
UserDefined3=
UserDefined4=
UserDefined5=
UserDefined6=
UserDefined7=
UserDefined8=
UserDefined9=

;   Start
;   Defines a string which is send to the script (using the 'Start' function call
;   in the script).
;   This function is called after initialization of the script is done (and after
;   CardInit might have been called). The result of the 'StartDebug' function is
;   also a string and is displayed in the log.
Start=

;   Debug
;   Defines a string which is send to the script (using the 'Debug' function call
;   in the script). Without a definition no script debugging function is called.
;   This debug function is called at 1 second intervals, with the string as input
;   parameter. The result of the 'Debug' function is also a string and is displayed
;   in the caption of the application.
Debug=

[Hardware]
;   ThreadPriority
;   The following values apply (from low to high priority):
;   Lowest, Low, Normal, Default, High, Highest, realtime
ThreadPriority=Normal

;   Device
;   Sets the device number (card) to use (-1, 0..9).
;   If multiple cards are present in the system this number sets the card to use.
;   A value of -1 uses the first available card.
;   Note that the order of the cards is handled by the system.
;   Hint: Using an invalid value will inhibit the use of the hardware.
Device=-1

;   RPS0Program
;   Defines the RPS0 program to use. The application has two RPS programs running.
;   One of these programs (RPS1) is the one responsible for transfering of data
;   from the card to the application.
;   The other program, RPS0, can be used for different tasks. By default this task
;   is the remote control (available on some cards only).
;   If required this RPS0 program can be set to do other tasks. Currently the
;   following tasks can be used (some experimental!):
;     RPS0Program=-2    -> disabled the RPS0 task
;     RPS0Program=-1    -> default, remote control task
;     RPS0Program=0     -> output simulated VSYNC signal on GPIO0  (**!!)
;     RPS0Program=1     -> output simulated VSYNC signal on GPIO1  (**!!)
;     RPS0Program=2     -> output simulated VSYNC signal on GPIO2  (**!!)
;     RPS0Program=3     -> output simulated VSYNC signal on GPIO3  (**!!)
;                          (**!!) important: make sure this GPIO line is not used for
;                                            other purposes by your card
RPS0Program=-1

[Debug]
;   FreezeTimeout
;   The time, in seconds, before an exception is generated if
;   the application does not seem to respond.
FreezeTimeout=30

;   AutoContinueOnException
;   'Yes' will continue the application when an exception is detected
;   'No'  will show an exception dialog when an exception is detected
AutoContinueOnException=No

;   AllowSlave
;   'Yes' will allow slave operation
;   'No'  will force master mode
;   Note: Slave mode is typically used to enable two (or more)
;         instances of the application to run at the same time.
;         This would allow multiple reception of programs (of the
;         same transponder), thereby having two (or more) video's.
;         To make this work properly note the following:
;         . the second instance of the application should run in it's
;           own subdirectory, so make a copy of the original applications
;           directory
;         . sometimes using the same video codecs for both applications
;           might only generate a black picture
;         . set 'AllowSlave=Yes' for the second instance
;         . only programs on the same transponder can be shown at
;           the same time
AllowSlave=No

;   LogLevel
;   The log file 'Messages.log' is used for logging data
;   were the type of messages send to this log file is set by this level
;    0: No log (debug) messages to log file
;    1: Basic (start/stop recording, change channel)
;    2: Command errors
;    3: Procedure/function entries
;    4: Procedure/function specifics
;    5: Generic procedures/function entries
LogLevel=0

;   LogClear
;   'Yes' clears the log
;   'No'  appends messages to the log
LogClear=Yes

[Interface]
;   PreferredLanguage
;   Sets the languages you prefer. If a program is broadcasted in multiple
;   languages then the preferred language is used (if present). This only
;   applies to scanned/updated information, not to favourites since those
;   settings are used directly.
;   The settings is a list of language names, each being 3 characters in
;   length. These are the names the *broadcaster* uses to distinguish between
;   languages, so these can be different (eg. 'deu' and 'ger' both refer to
;   the German language; 'deu' is typically used by a German broadcaster
;   whereas 'ger' can be used by others). Use '***' for AC3 audio.
PreferredLanguage=***, dut, ned, eng, ger, deu

;   AlwaysUpdateProgram
;   If set to 'yes' then each change of favourite will do an implicit update
;   of the PID information (as if the 'Update' button was pressed). If set
;   to 'no then this is not done. If no update is done then only the values
;   of the favourite setting will be available.
AlwaysUpdateProgram=Yes

;   KeySwapUpDown
;   When set to 'Yes' the up/down buttons have there actions swapped. This
;   means that what the Up button typically does is now activated by means
;   of the Down button, and vice versa.
KeySwapUpDown=No

;   UseXml
;   When set to 'Yes' data is filtered in a different way. This is used if
;   the DVB data is to be investigated for it's contents. All data is then
;   accumulated (a lot of memory is then used by the application) and can
;   be retrieved later.
;   If set to 'No' data is processed immediately and only some information
;   is retained.
UseXml=No

;   DisableSpecialButtons
;   When set to 'Yes' some buttons, typically enabled, are no longer shown.
;   This relates to, for example, the 'scan', 'delete' and other favourite
;   releated buttons.
DisableSpecialButtons=No

;   DirectShowGraph
;   Filename to use for graph (typically with a .GRF extension). When empty
;   the application tries to create the graph itself.
DirectShowGraph=

;   DirectShowOptions
;   Select different ways of using DirectShow. This is mainly intended for
;   problem solving/debugging. If not defined, then the default setup is
;   used.
;   Note that some combination of options are not possible, some options
;   might result in loosing some functionality and some options might not
;   work at all with the intended DirectShow setup. Also not that some
;   DirectShow filters require the use of a specific video mixing renderer.
;   The options are (note: some are experimental or not implemented!):
;                 -- Miscellaneous
;     $8xxxxxxx   Do not render graph
;     $4xxxxxxx   Do not add to ROT
;     $2xxxxxxx   Render ALL pins
;     $1xxxxxxx   Render all video/audio pins (based on major type)
;     $x1xxxxxx   Native video size (otherwise scales to allowed extends)
;     $x2xxxxxx   Log to file. Creates a 'DIRECTSHOW.LOG' file.
;     $x4xxxxxx   Use RenderEx method first (if available)
;     $x8xxxxxx   Use old DirectShow code (not all other options are then available)
;     $xx1xxxxx   Do not create AudioAC3 pin in MPEG2 demultiplexer
;                 -- Video Mixing Renderer
;     $xxxx0xxx   No  VMR
;     $xxxx7xxx   Use VMR7
;     $xxxx9xxx   Use VMR9
;     $xxxxx1xx   Windowless mode
;     $xxxxx2xx   Flip picture around X axis
;     $xxxxx4xx   Flip picture around Y axis
;                 -- Filter graph manager
;     $xxxxxx0x   Use FilterGraph2
;     $xxxxxx1x   Use GraphBuilder
;     $xxxxxx2x   Use FilterGraph
;     $xxxxxx3x   Use DvdGraphBuilder
;                 -- Additional builders
;     $xxxxxxx0   No additional builder
;     $xxxxxxx1   Use CaptureGraphBuilder
;     $xxxxxxx2   Use CaptureGraphBuilder2
DirectShowOptions=$00000000

;   DirectShowOff
;   When set to 'Yes' DirectShow will be unavailable. This means that no
;   viewing is possible. Other functions are still possible (like recording).
;   Other DirectShow settings will have no effect.
DirectShowOff=No

;   DirectShowSendAll
;   When set to 'Yes' all data from the DVB-S card are send to DirectShow.
;   This will allow any kind of DirectShow filters to be used which accept
;   DVB-S stream data.
DirectShowSendAll=No

;   FontName
;   Name of the font-file to use, without the .TTF extension.
;   Restrictions: The font family name should be the same as the filename.
;   There is no need to have the font officially installed, just place the
;   font-file in the applications directory.
;   You can also refer to an installed system font if necessary.
FontName=

;   FontSize
;   Size of the font to use. Only used if a <FontName> is used.
FontSize=8

;   FontNameEpg
;   Name of the font to sue for the EPG.
FontNameEpg=

;   FontSizeEpg
;   Size of the EPG font to use.
FontSizeEpg=8

;   EPGHeight
;   Maximum height in pixels of EPG area.
;   Use a value of 0 to disable it completely.
EPGHeight=150

;   TSBufferSize
;   Time in milliseconds for the video/audio buffer.
TSBufferSize=100

;   CSA
;   Sets the DLL name if an external Common Scramble Algorithm is used.
;   If not defined (or incorrect) then the internal mechanism is used.
;   If you don't want a CSA at all then use 'CSA=Disable'.
;   Note: The internal mechanism is relatively slow in comparison with
;         some of the available external mechanisms. It is advised to
;         use those instead.
CSA=FFDecsa_64_MMX.dll

;   MdPluginPassFullPacket
;   Place the names (identifiers) of the MD plugins here which need
;   to receive the whole packet of 188 bytes instead of the usual 184 byte
;   This is the name as appears in the menu, not the DLL name!
MdPluginPassFullPacket=

;   MdPluginAllowSetPids
;   When set to Yes the plugin has control over setting program PIDs
MdPluginAllowSetPids=No

;   DisplayDuringRecording
;   'Yes' will display video/audio during recording, otherwise audio and
;   video is not output (reduced system load)
;   Note that the application can have video and audio switched off
;   individually, which are also taken into account
DisplayDuringRecording=Yes

;   RecordingDirectory
;   Directory for recording
RecordingDirectory=e:\record

;   RecordingInfoFile
;   'Yes' will include a .info file which has includes the PID information of the recording.
RecordingInfoFile=No

;   RecordingSplitSize
;   Size (in Mb) of recording chuncks. A value > 4000 is interpreted as not using split recordings.
RecordingSplitSize=9999

;   TimeCorrectionGmt
;   'Yes' will correct the EPG time with the active time zone/difference
TimeCorrectionGmt=Yes

;   TimeCorrection
;   Correction on the time in HH:MM:SS format for EPG
;   Can be used instead or additionally to TimeCorrectionGmt.
;   Use a preceeding '-' for negative correction
TimeCorrection=00:00:00

;   TimeCorrectionParameters
;   Correction on the time in HH:MM:SS format for command line parameters
;   Use a preceeding '-' for negative correction
TimeCorrectionParameters=00:00:00

;   TimeCorrectionPreRecord
;   Correction on the time in HH:MM:SS format when event time is selected
;   This is to start a recording earlier (+) or later (-) than the event time
TimeCorrectionPreRecord=00:05:00

;   TimeCorrectionPostRecord
;   Correction on the time in HH:MM:SS format when event time is selected
;   This is to stop a recording later (+) or earlier (-) than the event time
TimeCorrectionPostRecord=00:05:00

;   TimeoutNumericalKeys
;   Timeout in milliseconds that the application waits for the next numerical key.
;   After this timeout the numerical keys input up to that point are processed as
;   being a single decimal number. Example: entering the '1' '2' '3'  keys with
;   timing between keys smaller than the timeout here wil be interpreted as '123'.
;   Note: Since the timeout is always introduced after every numerical key
;         entered the response (acting on the input) is by nature always this long.
TimeoutNumericalKeys=500

;   TimeoutNumericalKeysRemote
;   Timeout in milliseconds that the application waits for the next numerical key
;   from the remote control.
;   After this timeout the numerical keys input up to that point are processed as
;   being a single decimal number. Example: entering the '1' '2' '3'  keys with
;   timing between keys smaller than the timeout here wil be interpreted as '123'.
;   Note: Since the timeout is always introduced after every numerical key
;         entered the response (acting on the input) is by nature always this long.
TimeoutNumericalKeysRemote=1000

[Remote]
;   KeyXxYy
;   Defines the device (Xx) and command (Yy) which will generate an
;   internal command
;   Currently implemented commands:
;     record, recordon, recordoff, up, down, left, right, reinit (reinitialize directshow),
;     update (update program information)
;     epg, epgshort, epgcurrent, video, audio, pid, directshow, transponder, shutdown, exit,
;     fullscreen, fullscreenon, fullscreenoff,
;     mute, muteon, muteoff, volumeup, volumedown
;     0..9, pp (previousprogram), language, disable
;
;   Some of these commands are toggle commands, some are not.
;
;   All other, not recognized commands, are passed on as special types and must consist
;   of packets of 4 numbers. Note that none of these are specifically checked for correctness:
;    KeyXxYy= 12, 34, 56, 78 (, 12, 34, 56, 78 ....)
;		  12 = Target handle
;			 or 0 = active control (SendMessage)
;                     1 = is application (SendMessage)
;                     2 = main form      (SendMessage)
;                     3 = keyboard event (Keybd_Event)
;             34 = Windows message type (eg. WM_KEYDOWN = $0100, WM_CHAR = $102)
;                  or virtual key code (Keybd_Event)
;             56 = First part of message (depends on type of message)
;                  or flags (Keybd_Event; 0 = key pressed, 1 = extended key, 2 = key released)
;             78 = Second part of message (depends on type of message)
;                  or extra info (Keybd_Event; almost always 0)
;   If no packet of 4 parameters is detected then the command is interpreted as a string
;   and the characters are send to the active control through individual WM_CHAR messages
;   (eg. resembling single '0, $102, xx, 0' commands for each character ('xx' = ASCII code)
Key0800=0
Key0801=1
Key0802=2
Key0803=3
Key0804=4
Key0805=5
Key0806=6
Key0807=7
Key0808=8
Key0809=9
Key0810=pp
Key0824=up
Key0825=down
Key0826=left
Key0827=right
Key0850=directshow
Key0851=video
Key0852=pid
Key0853=audio
Key0854=epg
Key0855=record
Key0856=transponder
Key0857=update
Key0858=reinit
Key0859=shutdown

[Recordings]
; Recording list
;   RR DDDDDDDD SS:SS:SS EE:EE:EE [PPPP(name), PPPP(name), PPPP(name), ... PPPP(name)] LLL FFFF TUNE NAME
;     RR     = Recording identifier (HEX, FF if not yet recording) - used internally only
;     DD...  = Date in YYYYMMDD format
;     SS     = Start time
;     EE     = Stop time
;     PPPP   = PID
;     (name) = Name of PID
;     LLL    = List index
;     FFFF   = Favourite index
;     TUNE   = Tune information (SAT_FREQ_POL_SR format, eg. 1_11837_H_27500)
;     NAME   = Name of station
RecordingsCount=1
Recordings0=FF 20041211 11:35:00 13:14:50 [0000(pat), 0520(video0), 0530(audio0), 0531(audio1), 1305(pmt0)] 005 0100 1_11837_H_27500 MULTIVISION 5