#ifndef __ALCD_H
#define __ALCD_H

#include "alcd-thread.h"
#include <vdr/status.h>
#include <vdr/plugin.h>


///////////////////////////////////////////////////
// activy300 LCD plugin for VDR
//
// Original written by:
//
// Meinrad Sauter <meinrad.sauter@gmx.de>
// andreas 'randy' weinberger <vdr@smue.org>
//
// rearranged, beautified and rewritten by:
//
// Markus Geisler <geisler@primusnetz.de>
//
// optimized by:
// Sascha Quint <sascha.quint@gmx.net>

///////////////////////////////////////////////////

///////////////////////////////////////////////////
// Class cPluginAlcd
class cPluginAlcd : public cPlugin
{
private:
   cLCD *aLcd;

public:
   cPluginAlcd(void);
   virtual ~cPluginAlcd();
   virtual const char *Version(void)
   {
      return VERSION;
   }
   virtual const char *Description(void)
   {
      return DESCRIPTION;
   }
   virtual const char *CommandLineHelp(void);
   virtual bool ProcessArgs(int argc, char *argv[]);
   virtual bool Start(void);
   virtual void Housekeeping(void);
   virtual const char *MainMenuEntry(void)
   {
      return MAINMENUENTRY;
   }
   virtual cOsdMenu *MainMenuAction(void);
   virtual cMenuSetupPage *SetupMenu(void);
   virtual bool SetupParse(const char *Name, const char *Value);
};

///////////////////////////////////////////////////
// Class cMenuSetupAlcd
class cMenuSetupAlcd : public cMenuSetupPage
{
private:
   int newSleepTime;
   int newScrollSpeed;
   int newMsgTime;
   int newScrolling;
   int newUmlauts;
   int newLEDRecord;
   int newLCDBrightness;
   int newLCDBrightnessOnExit;
   char newProgChar;

protected:
   virtual void Store(void);

public:
   cMenuSetupAlcd(void);
};

#endif
