This is a plug-in for the Video Disk Recorder (VDR).

Written by:
    Thomas Creutz <thomas.creutz@gmx.de>
    Tobias Grimm <vdr@e-tobi.net>

Project's homepage:
    http://www.e-tobi.net/blog/pages/vdr-menuorg

Translations:
    it: Diego Pierotto <vdr-italian@tiscali.it> (The Italian VDR Community)
    fr: NIVAL Michaël <mnival@club-internet.fr>

License:
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
    the Free Software Foundation; either version 2 of the License, or
    (at your option) any later version.

    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    GNU General Public License for more details.

    You should have received a copy of the GNU General Public License
    along with this program; if not, write to the Free Software
    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 
    02110-1301, USA.

    See the file COPYING for the full license information

Copyright:
    (C) 2007 - 2008 Tobias Grimm
    (C) 2007        Thomas Creutz


Description:
------------

This plug-in allows to reorganize VDR's main OSD menu. The new menu structure is
read from a XML config file. It's basic format is based on the format used by
the setup plug-in.


Requirements:
-------------

The plug-in has been tested with VDR 1.5.18. It requires the libxml++2.6
and libglibmm-2.4 library. VDR must be patched with the enclosed patch
(patches/vdr-patch/vdr-menuorg-0.4.diff). The patch does not 
introduce any ABI changes, so it is not necessary to rebuild all plug-ins
after applying the patch.


Configuration:
--------------

The following parameters are available:

 -c FILE   --config=FILE   loads the specified xml file
                           (default: ConfigDir/plugins/menuorg.xml)


Upgrading from vdr-submenu plugin
---------------------------------

There is a convert script in this package, that allows you to convert your old
MainMenu.conf from the submenu plug-in to the XML file which is needed by
menuorg.

Example usage:

    vdr-submenu2menuorg /var/lib/vdr/plugins/MainMenu.conf /var/lib/vdr/plugins/menuorg.xml

Attention: Your destination file will be overwritten without any warning!

When your VDR runs not as root, than you should verify that the target file is
readable for the which ever user runs VDR.


Menu file format
----------------

The menu configuration file, is a simple XML file and has to conform to it's
syntax rules. The root node always is <menus>.

There are only four kinds of menu items described by the following XML tags:

   <system>    : System menu items, like the channels list or the timers
   <plugin>    : Plug-in menu items
   <menu>      : A sub menu
   <command>   : An external command to be excuted, similar to VDR's commands.conf
   <separator> : a separator item

In the menu hierarchy <system>, <plug-in> and <command> are leaf nodes, whereas
<menu> is an internal node. <menu> may contain any number of <system>, <plugin>,
<command>, <separator> or <menu> nodes.

Each node is described by a name attribute. For <system> nodes, the following
names are possible:

  - Schedule
  - Channels
  - Timers
  - Recordings
  - Commands
  - Setup

The name of a <plugin> node describes the plug-ins name, not it's main menu text.

With the name attribute in <menu> or <command> nodes, the main menu title of this
sub menu or command will be set.

Besides the name attribute, a <command> also requires the "execute" attribute,
which is the command to be executed and an optional "confirm" attribute.
With confirm="yes", you will be asked to press OK before executing the command
or abort with any other key.

e.g.:
    <command name="Free Disk Space" execute="df -h" confirm="yes" />

You can provide a custome title for plug-in and system menu entries, by providing
a title attrbute:

    <system name="Schedule" title="Program Schedule" />
    <plugin name="femon" title="DVB Health Monitor" />

<system> items not configured in the menu configuration will not be visible in
VDR's OSD. Plug-ins that are not configured in the xml file, will be shown
at the end of the root main menu.


e.g.:

    <?xml version="1.0" encoding="UTF-8"?>
    <menus>
        <system name="Channels" />
        <system name="Recordings" />
        <menu name="Video/Audio">
            <plugin name="mp3" />
            <plugin name="mplayer" />
            <menu name="CD/DVD">
                <plugin name="burn" />
                <plugin name="dvdselect" />
                <plugin name="dvd" />
            </menu>
        </menu>
        <menu name="Timer">
            <system name="Timers" />
            <plugin name="autotimeredit" />
            <plugin name="sleeptimer" />
        </menu>
        <menu name="Games">
            <plugin name="games" />
            <plugin name="solitaire" />
            <plugin name="freecell" />
        </menu>
        <separator />
        <menu name="System">
            <system name="Setup" />
            <system name="Commands" />
            <plugin name="sysinfo" />
            <plugin name="femon" />
            <command name="CPU-Info" confirm="yes" execute="cat /proc/cpuinfo" />
        </menu>
    </menus>
