summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Makefile33
-rw-r--r--README1
-rw-r--r--i18n.c11
-rw-r--r--lcd.c81
-rw-r--r--lcdkeyconf.h14
-rw-r--r--lcdproc.c42
-rw-r--r--lcdtranstbl.h272
-rw-r--r--setup.c21
-rw-r--r--setup.h7
9 files changed, 422 insertions, 60 deletions
diff --git a/Makefile b/Makefile
index fcec38f..06e8c56 100644
--- a/Makefile
+++ b/Makefile
@@ -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)
diff --git a/README b/README
index db86cf6..326121e 100644
--- a/README
+++ b/README
@@ -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
diff --git a/i18n.c b/i18n.c
index 0fde3ef..c2c86d3 100644
--- a/i18n.c
+++ b/i18n.c
@@ -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 }
};
diff --git a/lcd.c b/lcd.c
index 1227049..d8cb8e7 100644
--- a/lcd.c
+++ b/lcd.c
@@ -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
diff --git a/lcdproc.c b/lcdproc.c
index be9659e..1910cc6 100644
--- a/lcdproc.c
+++ b/lcdproc.c
@@ -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},
+
+
+
};
diff --git a/setup.c b/setup.c
index 6877dbd..28c348e 100644
--- a/setup.c
+++ b/setup.c
@@ -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;
diff --git a/setup.h b/setup.h
index 5fec4c1..df931fc 100644
--- a/setup.h
+++ b/setup.h
@@ -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: