diff options
| -rw-r--r-- | Makefile | 33 | ||||
| -rw-r--r-- | README | 1 | ||||
| -rw-r--r-- | i18n.c | 11 | ||||
| -rw-r--r-- | lcd.c | 81 | ||||
| -rw-r--r-- | lcdkeyconf.h | 14 | ||||
| -rw-r--r-- | lcdproc.c | 42 | ||||
| -rw-r--r-- | lcdtranstbl.h | 272 | ||||
| -rw-r--r-- | setup.c | 21 | ||||
| -rw-r--r-- | setup.h | 7 | 
9 files changed, 422 insertions, 60 deletions
| @@ -1,7 +1,7 @@  #  # Makefile for a Video Disk Recorder plugin  # -# $Id$ +# $Id: Makefile 1.7 2003/12/21 15:47:41 kls Exp $  # The official name of this plugin.  # This name will be used in the '-P...' option of VDR to load the plugin. @@ -13,14 +13,22 @@ PLUGIN = lcdproc  VERSION = $(shell grep 'static const char \*VERSION *=' $(PLUGIN).c | awk '{ print $$6 }' | sed -e 's/[";]//g') +### The C++ compiler and options: + +CXX      ?= g++ +CXXFLAGS ?= -O2 -Wall -Woverloaded-virtual +  ### The directory environment: -DVBDIR = ../../../../DVB/ost/include +DVBDIR = ../../../../DVB  VDRDIR = ../../.. -VDRINC = $(VDRDIR)/include  LIBDIR = ../../lib  TMPDIR = /tmp +### Allow user defined options to overwrite defaults: + +-include $(VDRDIR)/Make.config +  ### The version number of VDR (taken from VDR's "config.h"):  VDRVERSION = $(shell grep 'define VDRVERSION ' $(VDRDIR)/config.h | awk '{ print $$3 }' | sed -e 's/"//g') @@ -32,22 +40,23 @@ PACKAGE = vdr-$(ARCHIVE)  ### Includes and Defines (add further entries here): -INCLUDES = -I$(VDRINC) -I$(DVBDIR) +INCLUDES += -I$(VDRDIR)/include -I$(DVBDIR)/include + +DEFINES += -D_GNU_SOURCE -DPLUGIN_NAME_I18N='"$(PLUGIN)"' -DEFINES = -DPLUGIN_NAME_I18N='"$(PLUGIN)"' +ifeq ($(shell echo $(VDRVERSION)|sed -e 's/\([0-9]\.[0-9]\)\..*/\1/' ),1.2) +  DEFINES += -DOLDVDR +endif  ifdef LCDKEYCONF -DEFINES += -DLCD_EXT_KEY_CONF="\"$(LCDKEYCONF)\"" +  DEFINES += -DLCD_EXT_KEY_CONF="\"$(LCDKEYCONF)\""  endif -### The object files (add further files here): -OBJS = $(PLUGIN).o lcd.o sockets.o i18n.o setup.o -### The C++ compiler and options: +### The object files (add further files here): -CXX      ?= g++ -CXXFLAGS ?= -g -O2 -Wall -Woverloaded-virtual +OBJS = $(PLUGIN).o lcd.o sockets.o i18n.o setup.o  ### Implicit rules: @@ -71,7 +80,7 @@ libvdr-$(PLUGIN).so: $(OBJS)  	$(CXX) $(CXXFLAGS) -shared $(OBJS) -o $@  	@cp $@ $(LIBDIR)/$@.$(VDRVERSION) -package: clean +dist: clean  	@-rm -rf $(TMPDIR)/$(ARCHIVE)  	@mkdir $(TMPDIR)/$(ARCHIVE)  	@cp -a * $(TMPDIR)/$(ARCHIVE) @@ -31,6 +31,7 @@ correctly, you can fix that by selecting a in the setup menu: (Charmap)  0 ... nomap         no mapping, useful for the curses driver  1 ... hd44780         2 ... CFontz        Thanks to Stephan Schreiber <stephan@sschreiber.de> +3 ... SGX120        Thanks to Harald Milz <hm@seneca.muc.de>  lcdkeyconf.h is used to configure the plugin for a keypad.  you can use a different file instead with @@ -16,6 +16,7 @@ const tI18nPhrase Phrases[] = {      "No EPG info available.",// TODO      "No EPG info available.",// TODO      "No EPG info available.",// TODO +    "No EPG info available.",// TODO    },    { "Waiting for EPG info.",      "Suche nach EPG Information.", @@ -32,6 +33,7 @@ const tI18nPhrase Phrases[] = {      "Scanning for EPG info.",// TODO      "Scanning for EPG info.",// TODO      "Scanning for EPG info.",// TODO +    "Scanning for EPG info.",// TODO    },    { "FullCycle",      "FullCycle",// TODO @@ -48,6 +50,7 @@ const tI18nPhrase Phrases[] = {      "FullCycle",// TODO      "FullCycle",// TODO      "FullCycle",// TODO +    "FullCycle",// TODO    },    { "TimeDateCycle",      "TimeDateCycle",// TODO @@ -64,6 +67,7 @@ const tI18nPhrase Phrases[] = {      "TimeDateCycle",// TODO      "TimeDateCycle",// TODO      "TimeDateCycle",// TODO +    "TimeDateCycle",// TODO    },    { "VolumeKeep",      "VolumeKeep",// TODO @@ -80,6 +84,7 @@ const tI18nPhrase Phrases[] = {      "VolumeKeep",// TODO      "VolumeKeep",// TODO      "VolumeKeep",// TODO +    "VolumeKeep",// TODO    },    { "Scrollwait",      "Scrollwait",// TODO @@ -96,6 +101,7 @@ const tI18nPhrase Phrases[] = {      "Scrollwait",// TODO      "Scrollwait",// TODO      "Scrollwait",// TODO +    "Scrollwait",// TODO    },    { "Scrollspeed",      "Scrollspeed",// TODO @@ -112,6 +118,7 @@ const tI18nPhrase Phrases[] = {      "Scrollspeed",// TODO      "Scrollspeed",// TODO      "Scrollspeed",// TODO +    "Scrollspeed",// TODO    },    { "Charmap",      "Charmap",// TODO @@ -128,6 +135,7 @@ const tI18nPhrase Phrases[] = {      "Charmap",// TODO      "Charmap",// TODO      "Charmap",// TODO +    "Charmap",// TODO    },    { "AltShift",      "AltShift",// TODO @@ -144,6 +152,7 @@ const tI18nPhrase Phrases[] = {      "AltShift",// TODO      "AltShift",// TODO      "AltShift",// TODO +    "AltShift",// TODO    },    { "BackLight",      "BackLight",// TODO @@ -160,6 +169,7 @@ const tI18nPhrase Phrases[] = {      "BackLight",// TODO      "BackLight",// TODO      "BackLight",// TODO +    "BackLight",// TODO    },    { "OutputNumber",      "OutputNumber",// TODO @@ -176,6 +186,7 @@ const tI18nPhrase Phrases[] = {      "OutputNumber",// TODO      "OutputNumber",// TODO      "OutputNumber",// TODO +    "OutputNumber",// TODO    },    { NULL }    }; @@ -353,6 +353,9 @@ void cLcd::SetRunning( bool nownext, const char *string1, const char *string2, c    char line[1024];    char line1[1024]; +  static char now1[LCDMAXWID+1]; +  static char now2[LCDMAXWID+1]; +      snprintf(line,1024,"%s %s%s%s",      (string1==NULL || string1[0]=='\0')?" ":string1,      (string2==NULL || string2[0]=='\0')?" ":string2, @@ -367,6 +370,7 @@ void cLcd::SetRunning( bool nownext, const char *string1, const char *string2, c        cLcd::Split(line1,ThreadStateData.lcdbuffer[LCDMISC][2],ThreadStateData.lcdbuffer[LCDMISC][3]);        ThreadStateData.lcddirty[LCDMISC][2]=true; ThreadStateData.lcddirty[LCDMISC][3]=true;      EndMutualExclusion();   +    cLcd::SetBuffer(LCDMISC,now1,now2,NULL,NULL);    } else {      BeginMutualExclusion();        cLcd::Split(line1,ThreadStateData.lcdbuffer[LCDTITLE][2],ThreadStateData.lcdbuffer[LCDTITLE][3]); @@ -377,8 +381,10 @@ void cLcd::SetRunning( bool nownext, const char *string1, const char *string2, c        ThreadStateData.lcdfullbuffer[LCDTITLE][i++]='*';        ThreadStateData.lcdfullbuffer[LCDTITLE][i++]=' ';         ThreadStateData.lcdfullbuffer[LCDTITLE][i]='\0';   +      sprintf(now1,"%s",ThreadStateData.lcdbuffer[LCDTITLE][2]); +      sprintf(now2,"%s",ThreadStateData.lcdbuffer[LCDTITLE][3]);      EndMutualExclusion(); -    cLcd::SetBuffer(LCDMISC,ThreadStateData.lcdbuffer[LCDTITLE][2],ThreadStateData.lcdbuffer[LCDTITLE][3],NULL,NULL); +        }  } @@ -599,19 +605,30 @@ void cLcd::GetTimeDateStat( char *string, unsigned int OutStateData[] ) {  void cLcd::Action(void) { // LCD output thread    unsigned int i,j, barx=1, bary=1, barl=0, ScrollState=0, ScrollLine=1, lasttitlelen=0;  -  int Current=0, Total=1, scrollpos=0, scrollcnt=0, scrollwaitcnt=10, lastAltShift=0, lastBackLight, keycnt=0; +  int Current=0, Total=1, scrollpos=0, scrollcnt=0, scrollwaitcnt=10, lastAltShift=0, lastBackLight,lastPrio, lastPrioN, keycnt=0;    struct timeval now, voltime;    char workstring[1024], lastkeypressed='\0';    cLcd::ThreadStates PrevState=Menu;    struct cLcd::StateData OutStateData;    bool Lcddirty[LCDMAXSTATES][4];    bool LcdShiftkeyPressed=false; -  +  char priostring[35]; +      // backlight init     if ((lastBackLight=LcdSetup.BackLight))      sock_send_string(sock,"backlight on\n");    else      sock_send_string(sock,"backlight off\n"); + +  // prio init +  if ( (lastPrio=LcdSetup.SetPrio) ) {  +    if (LcdSetup.SetPrio == 1)   +      sprintf(priostring,"screen_set VDR -priority %d\n", LcdSetup.ClientPrioN ); +    else  +      sprintf(priostring,"screen_set VDR -priority %d\n", LcdSetup.ClientPrioH ); +    sock_send_string(sock,priostring); +  }  +  lastPrioN=LcdSetup.ClientPrioN;    syslog(LOG_INFO, "LCD output thread started (pid=%d), display size: %dx%d", getpid(),hgt,wid);    cLcd::Write(1," Welcome  to  V D R\0");  @@ -653,14 +670,16 @@ void cLcd::Action(void) { // LCD output thread      gettimeofday(&now,NULL);      //  epg update -  -    if ( time(NULL) > nextLcdUpdate ) {  + +#ifdef OLDVDR + +    if ( time(NULL) > nextLcdUpdate ) {        const cEventInfo *Present = NULL;        cMutexLock MutexLock;        const cSchedules *Schedules = cSIProcessor::Schedules(MutexLock); -      if (Schedules) {  +      if (Schedules) {           const cSchedule *Schedule = Schedules->GetSchedule(); -         if (Schedule) {  +         if (Schedule) {              const char *PresentTitle, *PresentSubtitle;              PresentTitle = NULL; PresentSubtitle = NULL;              if ((Present = Schedule->GetPresentEvent()) != NULL) { @@ -670,10 +689,41 @@ void cLcd::Action(void) { // LCD output thread                 if ( (!isempty(PresentTitle)) && (!isempty(PresentSubtitle)) )                    SetRunning(false,Present->GetTimeString(),PresentTitle,PresentSubtitle);                    else if (!isempty(PresentTitle)) SetRunning(false,Present->GetTimeString(),PresentTitle); +            } else +               SetRunning(false,tr("No EPG info available."), NULL); +            if ((Present = Schedule->GetFollowingEvent()) != NULL) +              nextLcdUpdate=(Present->GetTime()<nextLcdUpdate)?Present->GetTime():nextLcdUpdate; +         } +      } +     if ( nextLcdUpdate <= time(NULL) ) +         nextLcdUpdate=(time(NULL)/60)*60+60; +      else if ( nextLcdUpdate > time(NULL)+60 ) +         nextLcdUpdate=(time(NULL)/60)*60+60; +    } + +#else +    +    if ( time(NULL) > nextLcdUpdate ) {  +      cChannel *channel = Channels.GetByNumber(primaryDvbApi->CurrentChannel()); +      const cEvent *Present = NULL; +      cSchedulesLock schedulesLock; +      const cSchedules *Schedules = cSchedules::Schedules(schedulesLock);  +      if (Schedules) { +         const cSchedule *Schedule = Schedules->GetSchedule(channel->GetChannelID());  +         if (Schedule) {  +            const char *PresentTitle, *PresentSubtitle; +            PresentTitle = NULL; PresentSubtitle = NULL; +            if ((Present = Schedule->GetPresentEvent()) != NULL) { +               nextLcdUpdate=Present->StartTime()+Present->Duration(); +               PresentTitle = Present->Title(); +               PresentSubtitle = Present->ShortText(); +               if ( (!isempty(PresentTitle)) && (!isempty(PresentSubtitle)) ) +                  SetRunning(false,Present->GetTimeString(),PresentTitle,PresentSubtitle); +                  else if (!isempty(PresentTitle)) SetRunning(false,Present->GetTimeString(),PresentTitle);              } else                  SetRunning(false,tr("No EPG info available."), NULL);               if ((Present = Schedule->GetFollowingEvent()) != NULL) -              nextLcdUpdate=(Present->GetTime()<nextLcdUpdate)?Present->GetTime():nextLcdUpdate; +              nextLcdUpdate=(Present->StartTime()<nextLcdUpdate)?Present->StartTime():nextLcdUpdate;           }        }       if ( nextLcdUpdate <= time(NULL) ) @@ -682,6 +732,8 @@ void cLcd::Action(void) { // LCD output thread           nextLcdUpdate=(time(NULL)/60)*60+60;      }   +#endif +      // replaying      if ( (now.tv_usec < WakeUpCycle) && (replayDvbApi) ) { @@ -770,6 +822,10 @@ void cLcd::Action(void) { // LCD output thread        }	            }	          if (volume) OutStateData.State = Vol; + +    // prio +     +          // modes      switch (OutStateData.State) { @@ -863,15 +919,6 @@ void cLcd::Action(void) { // LCD output thread  	sock_send_string(sock,"screen_set VDR -heartbeat heart\n");      }	     - - -    if ( LcdMaxKeys && (lastAltShift != LcdSetup.AltShift) ) { -      lastAltShift=LcdSetup.AltShift; -      if (lastAltShift) -	sock_send_string(sock,"screen_set VDR -heartbeat slash\n"); -      else -	sock_send_string(sock,"screen_set VDR -heartbeat heart\n"); -    }	      if ( !(keycnt=(keycnt+1)%4) ) lastkeypressed='\0'; diff --git a/lcdkeyconf.h b/lcdkeyconf.h index 1146c25..a4b49c1 100644 --- a/lcdkeyconf.h +++ b/lcdkeyconf.h @@ -2,8 +2,8 @@  #define LCD_KEYTBL_H  // LCDproc keys -const unsigned int  LcdMaxKeys  = 0; -//const unsigned int  LcdMaxKeys  = 25; +//const unsigned int  LcdMaxKeys  = 0; +const unsigned int  LcdMaxKeys  = 25;  const unsigned char LcdShiftKey = '#';  const unsigned char LcdUsedKeys[] =  @@ -23,11 +23,11 @@ const eKeys LcdNormalMap[] =  const eKeys  LcdShiftMap[] =  -{ kNone,  kNone,   kNone,  kNone, kNone,    -  kNone,  kNone,   kNone,  kNone, kNone, -  kNone,  kNone,   kNone,  kNone, kNone, -  kNone,  kNone,   kNone,  kNone, kNone, -  kNone, kPower,   kNone,  kNone, kNone  }; +{    kPlay,      kPause,  kStop,    kRecord, kFastFwd,    +  kFastRew,     kChanUp, kChanDn, kSchedule, kChannels, +   kTimers, kRecordings,  kSetup, kCommands, kNone, +    kUser1,      kUser2,  kUser3,    kUser4, kUser5, +    kUser6,      kUser7,  kUser8,    kUser9, kPower  };  #endif @@ -16,7 +16,7 @@  #include "lcd.h"  #include "lcdtranstbl.h" -static const char *VERSION        = "0.0.9"; +static const char *VERSION        = "0.0.10";  static const char *MAINMENUENTRY  = NULL;  static const char *DESCRIPTION    = "LCDproc output"; @@ -45,7 +45,8 @@ static const char * OutputFunctionText[]= {"Off",                                             "User2",                                             "User3"}; -// --- + +static const char * PrioBackFunctionText[]= {"Off", "On", "Auto"};  class cLcdFeed : public cStatus {  protected: @@ -339,15 +340,20 @@ cMenuSetupLcd::cMenuSetupLcd(void)  {    char str2[30];    newLcdSetup=LcdSetup;	  -  Add(new cMenuEditIntItem( tr("FullCycle"),          &newLcdSetup.FullCycle,LcdSetup.TimeCycle,999)); -  Add(new cMenuEditIntItem( tr("TimeDateCycle"),      &newLcdSetup.TimeCycle,0,LcdSetup.FullCycle)); -  Add(new cMenuEditIntItem( tr("VolumeKeep"),         &newLcdSetup.VolumeKeep,0,999)); -  Add(new cMenuEditIntItem( tr("Scrollwait"),         &newLcdSetup.Scrollwait,1,999)); -  Add(new cMenuEditIntItem( tr("Scrollspeed"),        &newLcdSetup.Scrollspeed,1,999)); -  Add(new cMenuEditIntItem( tr("Charmap"),            &newLcdSetup.Charmap,0,LCDMAXTRANSTBL-1 )); -  Add(new cMenuEditBoolItem( tr("AltShift"),          &newLcdSetup.AltShift)); -  Add(new cMenuEditBoolItem( tr("BackLight"),         &newLcdSetup.BackLight)); -  Add(new cMenuEditIntItem( tr("OutputNumber"),       &newLcdSetup.OutputNumber)); +  Add(new cMenuEditIntItem( tr("FullCycle"),           &newLcdSetup.FullCycle,1,999)); +  Add(new cMenuEditIntItem( tr("TimeDateCycle"),       &newLcdSetup.TimeCycle,0,LcdSetup.FullCycle)); +  Add(new cMenuEditIntItem( tr("VolumeKeep"),          &newLcdSetup.VolumeKeep,0,999)); +  Add(new cMenuEditIntItem( tr("Scrollwait"),          &newLcdSetup.Scrollwait,1,999)); +  Add(new cMenuEditIntItem( tr("Scrollspeed"),         &newLcdSetup.Scrollspeed,1,999)); +  Add(new cMenuEditIntItem( tr("Charmap"),             &newLcdSetup.Charmap,0,LCDMAXTRANSTBL-1 )); +  Add(new cMenuEditBoolItem( tr("AltShift"),           &newLcdSetup.AltShift)); +  Add(new cMenuEditStraItem( tr("BackLight"),          &newLcdSetup.BackLight, 3, PrioBackFunctionText)); +  Add(new cMenuEditStraItem( tr("SetClientPriority"),  &newLcdSetup.SetPrio, 3, PrioBackFunctionText)); +  Add(new cMenuEditIntItem( tr("NormalClientPriority"),&newLcdSetup.ClientPrioN,0,255)); +  Add(new cMenuEditIntItem( tr("HighClientPriority"),  &newLcdSetup.ClientPrioH,0,255)); +  Add(new cMenuEditIntItem( tr("BackLightWait"),       &newLcdSetup.BackLightWait,1,99)); +  Add(new cMenuEditIntItem( tr("PrioWait"),            &newLcdSetup.PrioWait,1,99)); +  Add(new cMenuEditIntItem( tr("OutputNumber"),        &newLcdSetup.OutputNumber));    for (int i =0 ; i <  newLcdSetup.OutputNumber; i++){      sprintf(str2,"%s %d",tr("OutputNumber"),i);      Add(new cMenuEditStraTrItem( str2, &newLcdSetup.OutputFunction[i],14, OutputFunctionText)); @@ -365,7 +371,12 @@ void cMenuSetupLcd::Store(void)    SetupStore("Charmap",     LcdSetup.Charmap     = newLcdSetup.Charmap);    SetupStore("AltShift",    LcdSetup.AltShift    = newLcdSetup.AltShift);    SetupStore("BackLight",   LcdSetup.BackLight   = newLcdSetup.BackLight); -  SetupStore("OutputNumber",   LcdSetup.OutputNumber   = newLcdSetup.OutputNumber); +  SetupStore("SetPrio",     LcdSetup.SetPrio     = newLcdSetup.SetPrio); +  SetupStore("ClientPrioN", LcdSetup.ClientPrioN = newLcdSetup.ClientPrioN); +  SetupStore("ClientPrioH", LcdSetup.ClientPrioH = newLcdSetup.ClientPrioH); +  SetupStore("BackLightWait", LcdSetup.ClientPrioH = newLcdSetup.BackLightWait); +  SetupStore("PrioWait",    LcdSetup.ClientPrioH = newLcdSetup.PrioWait); +  SetupStore("OutputNumber",LcdSetup.OutputNumber   = newLcdSetup.OutputNumber);    for (int i =0 ; i <  newLcdSetup.OutputNumber; i++){      sprintf(str2,"OutputNumber %d",i);      SetupStore(str2,   LcdSetup.OutputFunction[i]   = newLcdSetup.OutputFunction[i]); @@ -390,7 +401,12 @@ bool cPluginLcd::SetupParse(const char *Name, const char *Value)    else if (!strcasecmp(Name, "Charmap"))      LcdSetup.Charmap     = atoi(Value);    else if (!strcasecmp(Name, "AltShift"))     LcdSetup.AltShift    = atoi(Value);    else if (!strcasecmp(Name, "BackLight"))    LcdSetup.BackLight   = atoi(Value); -  else if (!strcasecmp(Name, "OutputNumber")) LcdSetup.OutputNumber   = atoi(Value); +  else if (!strcasecmp(Name, "SetPrio"))      LcdSetup.SetPrio     = atoi(Value); +  else if (!strcasecmp(Name, "ClientPrioN"))  LcdSetup.ClientPrioN = atoi(Value); +  else if (!strcasecmp(Name, "ClientPrioH"))  LcdSetup.ClientPrioH = atoi(Value); +  else if (!strcasecmp(Name, "BackLightWait"))  LcdSetup.BackLightWait = atoi(Value); +  else if (!strcasecmp(Name, "PrioWait"))     LcdSetup.PrioWait = atoi(Value); +  else if (!strcasecmp(Name, "OutputNumber")) LcdSetup.OutputNumber= atoi(Value);    else if (!strcasecmp(Name, "OutputNumber 0")) LcdSetup.OutputFunction[0]   = atoi(Value);    else if (!strcasecmp(Name, "OutputNumber 1")) LcdSetup.OutputFunction[1]   = atoi(Value);    else if (!strcasecmp(Name, "OutputNumber 2")) LcdSetup.OutputFunction[2]   = atoi(Value); diff --git a/lcdtranstbl.h b/lcdtranstbl.h index 9acbf70..c25961d 100644 --- a/lcdtranstbl.h +++ b/lcdtranstbl.h @@ -1,7 +1,7 @@  #ifndef LCD_TRANSTBL_H  #define LCD_TRANSTBL_H -#define  LCDMAXTRANSTBL 3 +#define  LCDMAXTRANSTBL 4  const unsigned char LcdTransTbl[LCDMAXTRANSTBL][256]={ @@ -797,7 +797,275 @@ newline,tab and friends are mapped to ' '  /* 252 ( 'ü' ) */ (unsigned char) 126,  /* 253 ( 'ý' ) */ (unsigned char) 235,  /* 254 ( 'þ' ) */ (unsigned char) 178, -/* 255 ( 'ÿ' ) */ (unsigned char) 183} +/* 255 ( 'ÿ' ) */ (unsigned char) 183}, + +/* +lcdtranstbl-SGX120L.h +nothing except '"' is mapped here, seems that somone does not understand '\"' ... +newline,tab and friends are mapped to ' ' +German Umlauts are mapped to characters set up in CHARS1.bmp +*/ + +{ +/*   0 ( '^@') */ (unsigned char)   0, +/*   1 ( '^A') */ (unsigned char)   1, +/*   2 ( '^B') */ (unsigned char)   2, +/*   3 ( '^C') */ (unsigned char)   3, +/*   4 ( '^D') */ (unsigned char)   4, +/*   5 ( '^E') */ (unsigned char)   5, +/*   6 ( '^F') */ (unsigned char)   6, +/*   7 ( '^G') */ (unsigned char)   7, +/*   8 ( '^H') */ (unsigned char)   8, +/*   9 (  '' ) */ (unsigned char)  32, +/*  10 (  '' ) */ (unsigned char)  32, +/*  11 ( '^K') */ (unsigned char)  32, +/*  12 ( '^L') */ (unsigned char)  32, +/*  13 ( '^M') */ (unsigned char)  32, +/*  14 ( '^N') */ (unsigned char)  14, +/*  15 ( '^O') */ (unsigned char)  15, +/*  16 ( '^P') */ (unsigned char)  16, +/*  17 ( '^Q') */ (unsigned char)  17, +/*  18 ( '^R') */ (unsigned char)  18, +/*  19 ( '^S') */ (unsigned char)  19, +/*  20 ( '^T') */ (unsigned char)  20, +/*  21 ( '^U') */ (unsigned char)  21, +/*  22 ( '^V') */ (unsigned char)  22, +/*  23 ( '^W') */ (unsigned char)  23, +/*  24 ( '^X') */ (unsigned char)  24, +/*  25 ( '^Y') */ (unsigned char)  25, +/*  26 ( '^Z') */ (unsigned char)  26, +/*  27 ( '^[') */ (unsigned char)  27, +/*  28 ( '^\') */ (unsigned char)  28, +/*  29 ( '^]') */ (unsigned char)  29, +/*  30 ( '^^') */ (unsigned char)  30, +/*  31 ( '^_') */ (unsigned char)  31, +/*  32 ( ' ' ) */ (unsigned char)  32, +/*  33 ( '!' ) */ (unsigned char)  33, +/*  34 ( '"' ) */ (unsigned char)  39, +/*  35 ( '#' ) */ (unsigned char)  35, +/*  36 ( '$' ) */ (unsigned char)  36, +/*  37 ( '%' ) */ (unsigned char)  37, +/*  38 ( '&' ) */ (unsigned char)  38, +/*  39 ( ''' ) */ (unsigned char)  39, +/*  40 ( '(' ) */ (unsigned char)  40, +/*  41 ( ')' ) */ (unsigned char)  41, +/*  42 ( '*' ) */ (unsigned char)  42, +/*  43 ( '+' ) */ (unsigned char)  43, +/*  44 ( ',' ) */ (unsigned char)  44, +/*  45 ( '-' ) */ (unsigned char)  45, +/*  46 ( '.' ) */ (unsigned char)  46, +/*  47 ( '/' ) */ (unsigned char)  47, +/*  48 ( '0' ) */ (unsigned char)  48, +/*  49 ( '1' ) */ (unsigned char)  49, +/*  50 ( '2' ) */ (unsigned char)  50, +/*  51 ( '3' ) */ (unsigned char)  51, +/*  52 ( '4' ) */ (unsigned char)  52, +/*  53 ( '5' ) */ (unsigned char)  53, +/*  54 ( '6' ) */ (unsigned char)  54, +/*  55 ( '7' ) */ (unsigned char)  55, +/*  56 ( '8' ) */ (unsigned char)  56, +/*  57 ( '9' ) */ (unsigned char)  57, +/*  58 ( ':' ) */ (unsigned char)  58, +/*  59 ( ';' ) */ (unsigned char)  59, +/*  60 ( '<' ) */ (unsigned char)  60, +/*  61 ( '=' ) */ (unsigned char)  61, +/*  62 ( '>' ) */ (unsigned char)  62, +/*  63 ( '?' ) */ (unsigned char)  63, +/*  64 ( '@' ) */ (unsigned char)  64, +/*  65 ( 'A' ) */ (unsigned char)  65, +/*  66 ( 'B' ) */ (unsigned char)  66, +/*  67 ( 'C' ) */ (unsigned char)  67, +/*  68 ( 'D' ) */ (unsigned char)  68, +/*  69 ( 'E' ) */ (unsigned char)  69, +/*  70 ( 'F' ) */ (unsigned char)  70, +/*  71 ( 'G' ) */ (unsigned char)  71, +/*  72 ( 'H' ) */ (unsigned char)  72, +/*  73 ( 'I' ) */ (unsigned char)  73, +/*  74 ( 'J' ) */ (unsigned char)  74, +/*  75 ( 'K' ) */ (unsigned char)  75, +/*  76 ( 'L' ) */ (unsigned char)  76, +/*  77 ( 'M' ) */ (unsigned char)  77, +/*  78 ( 'N' ) */ (unsigned char)  78, +/*  79 ( 'O' ) */ (unsigned char)  79, +/*  80 ( 'P' ) */ (unsigned char)  80, +/*  81 ( 'Q' ) */ (unsigned char)  81, +/*  82 ( 'R' ) */ (unsigned char)  82, +/*  83 ( 'S' ) */ (unsigned char)  83, +/*  84 ( 'T' ) */ (unsigned char)  84, +/*  85 ( 'U' ) */ (unsigned char)  85, +/*  86 ( 'V' ) */ (unsigned char)  86, +/*  87 ( 'W' ) */ (unsigned char)  87, +/*  88 ( 'X' ) */ (unsigned char)  88, +/*  89 ( 'Y' ) */ (unsigned char)  89, +/*  90 ( 'Z' ) */ (unsigned char)  90, +/*  91 ( '[' ) */ (unsigned char)  91, +/*  92 ( '\' ) */ (unsigned char)  92, +/*  93 ( ']' ) */ (unsigned char)  93, +/*  94 ( '^' ) */ (unsigned char)  94, +/*  95 ( '_' ) */ (unsigned char)  95, +/*  96 ( '`' ) */ (unsigned char)  96, +/*  97 ( 'a' ) */ (unsigned char)  97, +/*  98 ( 'b' ) */ (unsigned char)  98, +/*  99 ( 'c' ) */ (unsigned char)  99, +/* 100 ( 'd' ) */ (unsigned char) 100, +/* 101 ( 'e' ) */ (unsigned char) 101, +/* 102 ( 'f' ) */ (unsigned char) 102, +/* 103 ( 'g' ) */ (unsigned char) 103, +/* 104 ( 'h' ) */ (unsigned char) 104, +/* 105 ( 'i' ) */ (unsigned char) 105, +/* 106 ( 'j' ) */ (unsigned char) 106, +/* 107 ( 'k' ) */ (unsigned char) 107, +/* 108 ( 'l' ) */ (unsigned char) 108, +/* 109 ( 'm' ) */ (unsigned char) 109, +/* 110 ( 'n' ) */ (unsigned char) 110, +/* 111 ( 'o' ) */ (unsigned char) 111, +/* 112 ( 'p' ) */ (unsigned char) 112, +/* 113 ( 'q' ) */ (unsigned char) 113, +/* 114 ( 'r' ) */ (unsigned char) 114, +/* 115 ( 's' ) */ (unsigned char) 115, +/* 116 ( 't' ) */ (unsigned char) 116, +/* 117 ( 'u' ) */ (unsigned char) 117, +/* 118 ( 'v' ) */ (unsigned char) 118, +/* 119 ( 'w' ) */ (unsigned char) 119, +/* 120 ( 'x' ) */ (unsigned char) 120, +/* 121 ( 'y' ) */ (unsigned char) 121, +/* 122 ( 'z' ) */ (unsigned char) 122, +/* 123 ( '{' ) */ (unsigned char) 123, +/* 124 ( '|' ) */ (unsigned char) 124, +/* 125 ( '}' ) */ (unsigned char) 125, +/* 126 ( '~' ) */ (unsigned char) 126, +/* 127 ( '^?') */ (unsigned char) 127, +/* 128 ( '~@') */ (unsigned char) 128, +/* 129 ( '~A') */ (unsigned char) 129, +/* 130 ( '~B') */ (unsigned char) 130, +/* 131 ( '~C') */ (unsigned char) 131, +/* 132 ( '~D') */ (unsigned char) 132, +/* 133 ( '~E') */ (unsigned char) 133, +/* 134 ( '~F') */ (unsigned char) 134, +/* 135 ( '~G') */ (unsigned char) 135, +/* 136 ( '~H') */ (unsigned char) 136, +/* 137 ( '~I') */ (unsigned char) 137, +/* 138 ( '~J') */ (unsigned char) 138, +/* 139 ( '~K') */ (unsigned char) 139, +/* 140 ( '~L') */ (unsigned char) 140, +/* 141 ( '~M') */ (unsigned char) 141, +/* 142 ( '~N') */ (unsigned char) 142, +/* 143 ( '~O') */ (unsigned char) 143, +/* 144 ( '~P') */ (unsigned char) 144, +/* 145 ( '~Q') */ (unsigned char) 145, +/* 146 ( '~R') */ (unsigned char) 146, +/* 147 ( '~S') */ (unsigned char) 147, +/* 148 ( '~T') */ (unsigned char) 148, +/* 149 ( '~U') */ (unsigned char) 149, +/* 150 ( '~V') */ (unsigned char) 150, +/* 151 ( '~W') */ (unsigned char) 151, +/* 152 ( '~X') */ (unsigned char) 152, +/* 153 ( '~Y') */ (unsigned char) 153, +/* 154 ( '~Z') */ (unsigned char) 154, +/* 155 ( '~[') */ (unsigned char) 155, +/* 156 ( '~\') */ (unsigned char) 156, +/* 157 ( '~]') */ (unsigned char) 157, +/* 158 ( '~^') */ (unsigned char) 158, +/* 159 ( '~_') */ (unsigned char) 159, +/* 160 ( '| ') */ (unsigned char) 160, +/* 161 ( '¡' ) */ (unsigned char) 161, +/* 162 ( '¢' ) */ (unsigned char) 162, +/* 163 ( '£' ) */ (unsigned char) 163, +/* 164 ( '¤' ) */ (unsigned char) 164, +/* 165 ( '¥' ) */ (unsigned char) 165, +/* 166 ( '¦' ) */ (unsigned char) 166, +/* 167 ( '§' ) */ (unsigned char) 167, +/* 168 ( '¨' ) */ (unsigned char) 168, +/* 169 ( '©' ) */ (unsigned char) 169, +/* 170 ( 'ª' ) */ (unsigned char) 170, +/* 171 ( '«' ) */ (unsigned char) 171, +/* 172 ( '¬' ) */ (unsigned char) 172, +/* 173 ( '' ) */ (unsigned char) 173, +/* 174 ( '®' ) */ (unsigned char) 174, +/* 175 ( '¯' ) */ (unsigned char) 175, +/* 176 ( '°' ) */ (unsigned char) 176, +/* 177 ( '±' ) */ (unsigned char) 177, +/* 178 ( '²' ) */ (unsigned char) 178, +/* 179 ( '³' ) */ (unsigned char) 179, +/* 180 ( '´' ) */ (unsigned char) 180, +/* 181 ( 'µ' ) */ (unsigned char) 181, +/* 182 ( '¶' ) */ (unsigned char) 182, +/* 183 ( '·' ) */ (unsigned char) 183, +/* 184 ( '¸' ) */ (unsigned char) 184, +/* 185 ( '¹' ) */ (unsigned char) 185, +/* 186 ( 'º' ) */ (unsigned char) 186, +/* 187 ( '»' ) */ (unsigned char) 187, +/* 188 ( '¼' ) */ (unsigned char) 188, +/* 189 ( '½' ) */ (unsigned char) 189, +/* 190 ( '¾' ) */ (unsigned char) 190, +/* 191 ( '¿' ) */ (unsigned char) 191, +/* 192 ( 'À' ) */ (unsigned char) 192, +/* 193 ( 'Á' ) */ (unsigned char) 193, +/* 194 ( 'Â' ) */ (unsigned char) 194, +/* 195 ( 'Ã' ) */ (unsigned char) 195, +/* 196 ( 'Ä' ) */ (unsigned char) 132, +/* 197 ( 'Å' ) */ (unsigned char) 197, +/* 198 ( 'Æ' ) */ (unsigned char) 198, +/* 199 ( 'Ç' ) */ (unsigned char) 199, +/* 200 ( 'È' ) */ (unsigned char) 200, +/* 201 ( 'É' ) */ (unsigned char) 201, +/* 202 ( 'Ê' ) */ (unsigned char) 202, +/* 203 ( 'Ë' ) */ (unsigned char) 203, +/* 204 ( 'Ì' ) */ (unsigned char) 204, +/* 205 ( 'Í' ) */ (unsigned char) 205, +/* 206 ( 'Î' ) */ (unsigned char) 206, +/* 207 ( 'Ï' ) */ (unsigned char) 207, +/* 208 ( 'Ð' ) */ (unsigned char) 208, +/* 209 ( 'Ñ' ) */ (unsigned char) 209, +/* 210 ( 'Ò' ) */ (unsigned char) 210, +/* 211 ( 'Ó' ) */ (unsigned char) 211, +/* 212 ( 'Ô' ) */ (unsigned char) 212, +/* 213 ( 'Õ' ) */ (unsigned char) 213, +/* 214 ( 'Ö' ) */ (unsigned char) 133, +/* 215 ( '×' ) */ (unsigned char) 215, +/* 216 ( 'Ø' ) */ (unsigned char) 216, +/* 217 ( 'Ù' ) */ (unsigned char) 217, +/* 218 ( 'Ú' ) */ (unsigned char) 218, +/* 219 ( 'Û' ) */ (unsigned char) 219, +/* 220 ( 'Ü' ) */ (unsigned char) 134, +/* 221 ( 'Ý' ) */ (unsigned char) 221, +/* 222 ( 'Þ' ) */ (unsigned char) 222, +/* 223 ( 'ß' ) */ (unsigned char) 138, +/* 224 ( 'à' ) */ (unsigned char) 224, +/* 225 ( 'á' ) */ (unsigned char) 225, +/* 226 ( 'â' ) */ (unsigned char) 226, +/* 227 ( 'ã' ) */ (unsigned char) 227, +/* 228 ( 'ä' ) */ (unsigned char) 135, +/* 229 ( 'å' ) */ (unsigned char) 229, +/* 230 ( 'æ' ) */ (unsigned char) 230, +/* 231 ( 'ç' ) */ (unsigned char) 231, +/* 232 ( 'è' ) */ (unsigned char) 232, +/* 233 ( 'é' ) */ (unsigned char) 233, +/* 234 ( 'ê' ) */ (unsigned char) 234, +/* 235 ( 'ë' ) */ (unsigned char) 235, +/* 236 ( 'ì' ) */ (unsigned char) 236, +/* 237 ( 'í' ) */ (unsigned char) 237, +/* 238 ( 'î' ) */ (unsigned char) 238, +/* 239 ( 'ï' ) */ (unsigned char) 239, +/* 240 ( 'ð' ) */ (unsigned char) 240, +/* 241 ( 'ñ' ) */ (unsigned char) 241, +/* 242 ( 'ò' ) */ (unsigned char) 242, +/* 243 ( 'ó' ) */ (unsigned char) 243, +/* 244 ( 'ô' ) */ (unsigned char) 244, +/* 245 ( 'õ' ) */ (unsigned char) 245, +/* 246 ( 'ö' ) */ (unsigned char) 136, +/* 247 ( '÷' ) */ (unsigned char) 247, +/* 248 ( 'ø' ) */ (unsigned char) 248, +/* 249 ( 'ù' ) */ (unsigned char) 249, +/* 250 ( 'ú' ) */ (unsigned char) 250, +/* 251 ( 'û' ) */ (unsigned char) 251, +/* 252 ( 'ü' ) */ (unsigned char) 137, +/* 253 ( 'ý' ) */ (unsigned char) 253, +/* 254 ( 'þ' ) */ (unsigned char) 254, +/* 255 ( 'ÿ' ) */ (unsigned char) 255}, + + +  }; @@ -4,14 +4,19 @@ cLcdSetup LcdSetup;  cLcdSetup::cLcdSetup(void)  { -  FullCycle   = 10; -  TimeCycle   =  7; -  VolumeKeep  = 15; -  Scrollwait  = 10; -  Scrollspeed =  3; -  Charmap     =  0; -  AltShift    =  0;  -  BackLight   =  1;  +  FullCycle   =  10; +  TimeCycle   =   7; +  VolumeKeep  =  15; +  Scrollwait  =  10; +  Scrollspeed =   3; +  Charmap     =   0; +  AltShift    =   0;  +  BackLight   =   1;  +  ClientPrioN = 128;  +  ClientPrioH =  16;  +  SetPrio     =   0;  +  BackLightWait = 0;  +  PrioWait    =   0;     OutputNumber   =  0;    for (int i = 0; i < LCDMAXOUTPUTS; i++)      OutputFunction[i] = 0; @@ -12,7 +12,12 @@ public:    int Scrollspeed;	      int Charmap;	      int AltShift;	   -  int BackLight;	   +  int BackLight; +  int SetPrio; +  int ClientPrioN; +  int ClientPrioH; +  int BackLightWait; +  int PrioWait;      int OutputNumber;    int OutputFunction[LCDMAXOUTPUTS];  public: | 
