
/*
 * config.c: A plugin for the Video Disk Recorder
 *
 * See the README file for copyright information and how to reach the author.
 *
 * $Id$
 */

#include <vdr/eit.h>
#include <vdr/osd.h>
#include <vdr/menuitems.h>

#include "config.h"
#include "i18n.h"

cDVDSelectSetup DVDSelectSetup;

// --- cDVDSelectSetup -----------------------------------------------------------

cDVDSelectSetup::cDVDSelectSetup(void)
{
    strcpy(NameDevice, "/dev/dvd");
    strcpy(NameOrgDevice, "/dev/scd0");
    strcpy(ImageDir, "/video");
    strcpy(DVDOutputDir, "/video/dvd");
    strcpy(IsoExt, "*.[i][sm][og]");
    strcpy(DVDReadScript, "/video/config/plugins/dvdselect_readdvd.sh");
    strcpy(DVDWriteScript, "/video/config/plugins/dvdselect_writedvd.sh");
}

bool cDVDSelectSetup::SetupParse(const char *Name, const char *Value)
{
  // Parse your own setup parameters and store their values.
  if (!strcasecmp(Name, "NameDevice"))               strn0cpy(NameDevice, Value, MaxFileName);
  else if (!strcasecmp(Name, "NameOrgDevice"))       strn0cpy(NameOrgDevice, Value, MaxFileName);
  else if (!strcasecmp(Name, "ImageDir"))            strn0cpy(ImageDir, Value , MaxFileName);
  else if (!strcasecmp(Name, "IsoExt"))              strn0cpy(IsoExt, Value , MaxFileName);
  else if (!strcasecmp(Name, "DVDOutputDir"))        strn0cpy(DVDOutputDir, Value , MaxFileName);
  else if (!strcasecmp(Name, "DVDReadScript"))              strn0cpy(DVDReadScript, Value , MaxFileName);
  else if (!strcasecmp(Name, "DVDWriteScript"))              strn0cpy(DVDWriteScript, Value , MaxFileName);
  else
    return false;
  return true;
}

// --- cMenuSetupDVD --------------------------------------------------------

cMenuSetupDVDSelect::cMenuSetupDVDSelect(void)
{
  data = DVDSelectSetup;
  SetSection(tr("DVD"));

  Add(new cMenuEditStrItem( tr("dvddevice"),
        data.NameDevice,
        MaxFileName,
        tr(" abcdefghijklmnopqrstuvwxyz0123456789-./")
      ));
  Add(new cMenuEditStrItem( tr("dvdorgdevice"),
        data.NameOrgDevice,
        MaxFileName,
        tr(" abcdefghijklmnopqrstuvwxyz0123456789-./")
      ));
  Add(new cMenuEditStrItem( tr("imagedir"),
        data.ImageDir,
        MaxFileName,
        tr(" abcdefghijklmnopqrstuvwxyz0123456789-./")
      ));
  Add(new cMenuEditStrItem( tr("isoext"),
        data.IsoExt,
        MaxFileName,
        tr(" abcdefghijklmnopqrstuvwxyz0123456789-./[]|!^~")
      ));
  Add(new cMenuEditStrItem( tr("DVDOutputDir"),
        data.DVDOutputDir,
        MaxFileName,
        tr(" abcdefghijklmnopqrstuvwxyz0123456789-./")
      ));
  Add(new cMenuEditStrItem( tr("dvdreadscript"),
        data.DVDReadScript,
        MaxFileName,
        tr(" abcdefghijklmnopqrstuvwxyz0123456789-./")
      ));
  Add(new cMenuEditStrItem( tr("dvdwritescript"),
        data.DVDWriteScript,
        MaxFileName,
        tr(" abcdefghijklmnopqrstuvwxyz0123456789-./")
      ));
}

void cMenuSetupDVDSelect::Store(void)
{
  DVDSelectSetup = data;
  SetupStore( "NameDevice", data.NameDevice );
  SetupStore( "NameOrgDevice", data.NameOrgDevice );
  SetupStore( "ImageDir", data.ImageDir );
  SetupStore( "IsoExt",   data.IsoExt );
  SetupStore( "DVDOutputDir", data.DVDOutputDir );
  SetupStore( "DVDReadScript", data.DVDReadScript );
  SetupStore( "DVDWriteScript", data.DVDWriteScript );
}
