diff options
| author | root <root@elwms02.(none)> | 2010-04-06 16:13:08 +0200 |
|---|---|---|
| committer | root <root@elwms02.(none)> | 2010-04-06 16:13:08 +0200 |
| commit | 0e7005fcc7483c01aa102fbea358c5ac65a48d62 (patch) | |
| tree | 11517ce0d3d2977c6732b3aa583b0008083e0bd3 /plugins/lcdproc | |
| download | x-vdr-0e7005fcc7483c01aa102fbea358c5ac65a48d62.tar.gz x-vdr-0e7005fcc7483c01aa102fbea358c5ac65a48d62.tar.bz2 | |
hello world
Diffstat (limited to 'plugins/lcdproc')
| -rw-r--r-- | plugins/lcdproc/lcdproc-0.0.10-jw6_cf631.diff | 74 | ||||
| -rw-r--r-- | plugins/lcdproc/old/lcdproc-0.0.10-span-x.diff | 876 | ||||
| -rw-r--r-- | plugins/lcdproc/old/lcdproc-0.0.10-umlaute.diff | 123 | ||||
| -rw-r--r-- | plugins/lcdproc/plugin.sh | 52 |
4 files changed, 1125 insertions, 0 deletions
diff --git a/plugins/lcdproc/lcdproc-0.0.10-jw6_cf631.diff b/plugins/lcdproc/lcdproc-0.0.10-jw6_cf631.diff new file mode 100644 index 0000000..5a9d75c --- /dev/null +++ b/plugins/lcdproc/lcdproc-0.0.10-jw6_cf631.diff @@ -0,0 +1,74 @@ +--- lcdtranstbl.h.orig 2009-01-09 19:51:31.000000000 +0100 ++++ lcdtranstbl.h 2009-02-20 11:17:13.000000000 +0100 +@@ -539,10 +539,11 @@ lcdtranstbl-CFontz.h + this table is used to map characters for output to + a Crystal Fontz LCD to display some special characters correctly. + newline,tab and friends are mapped to ' ' ++!!! patched for CF-631 !!! + */ + + { +-/* 0 ( '^@') */ (unsigned char) 0, ++/* 0 ( '^@') */ (unsigned char) 32, + /* 1 ( '^A') */ (unsigned char) 1, + /* 2 ( '^B') */ (unsigned char) 2, + /* 3 ( '^C') */ (unsigned char) 3, +@@ -668,7 +669,7 @@ newline,tab and friends are mapped to ' + /* 123 ( '{' ) */ (unsigned char) 253, + /* 124 ( '|' ) */ (unsigned char) 221, + /* 125 ( '}' ) */ (unsigned char) 255, +-/* 126 ( '~' ) */ (unsigned char) 206, ++/* 126 ( '~' ) */ (unsigned char) 45, + /* 127 ( '^?') */ (unsigned char) 127, + /* 128 ( '~@') */ (unsigned char) 128, + /* 129 ( '~A') */ (unsigned char) 129, +@@ -738,7 +739,7 @@ newline,tab and friends are mapped to ' + /* 193 ( '�' ) */ (unsigned char) 226, + /* 194 ( '�' ) */ (unsigned char) 65, + /* 195 ( '�' ) */ (unsigned char) 65, +-/* 196 ( '�' ) */ (unsigned char) 91, ++/* 196 ( '�' ) */ (unsigned char) 65, + /* 197 ( '�' ) */ (unsigned char) 174, + /* 198 ( '�' ) */ (unsigned char) 188, + /* 199 ( '�' ) */ (unsigned char) 169, +@@ -756,13 +757,13 @@ newline,tab and friends are mapped to ' + /* 211 ( '�' ) */ (unsigned char) 228, + /* 212 ( '�' ) */ (unsigned char) 236, + /* 213 ( '�' ) */ (unsigned char) 79, +-/* 214 ( '�' ) */ (unsigned char) 92, ++/* 214 ( '�' ) */ (unsigned char) 79, + /* 215 ( '�' ) */ (unsigned char) 120, + /* 216 ( '�' ) */ (unsigned char) 171, + /* 217 ( '�' ) */ (unsigned char) 85, + /* 218 ( '�' ) */ (unsigned char) 229, + /* 219 ( '�' ) */ (unsigned char) 85, +-/* 220 ( '�' ) */ (unsigned char) 94, ++/* 220 ( '�' ) */ (unsigned char) 85, + /* 221 ( '�' ) */ (unsigned char) 250, + /* 222 ( '�' ) */ (unsigned char) 178, + /* 223 ( '�' ) */ (unsigned char) 190, +@@ -770,7 +771,7 @@ newline,tab and friends are mapped to ' + /* 225 ( '�' ) */ (unsigned char) 231, + /* 226 ( '�' ) */ (unsigned char) 97, + /* 227 ( '�' ) */ (unsigned char) 97, +-/* 228 ( '�' ) */ (unsigned char) 123, ++/* 228 ( '�' ) */ (unsigned char) 97, + /* 229 ( '�' ) */ (unsigned char) 175, + /* 230 ( '�' ) */ (unsigned char) 189, + /* 231 ( '�' ) */ (unsigned char) 200, +@@ -788,13 +789,13 @@ newline,tab and friends are mapped to ' + /* 243 ( '�' ) */ (unsigned char) 228, + /* 244 ( '�' ) */ (unsigned char) 237, + /* 245 ( '�' ) */ (unsigned char) 237, +-/* 246 ( '�' ) */ (unsigned char) 124, ++/* 246 ( '�' ) */ (unsigned char) 111, + /* 247 ( '�' ) */ (unsigned char) 47, + /* 248 ( '�' ) */ (unsigned char) 172, + /* 249 ( '�' ) */ (unsigned char) 166, + /* 250 ( '�' ) */ (unsigned char) 234, + /* 251 ( '�' ) */ (unsigned char) 239, +-/* 252 ( '�' ) */ (unsigned char) 126, ++/* 252 ( '�' ) */ (unsigned char) 117, + /* 253 ( '�' ) */ (unsigned char) 235, + /* 254 ( '�' ) */ (unsigned char) 178, + /* 255 ( '�' ) */ (unsigned char) 183}, diff --git a/plugins/lcdproc/old/lcdproc-0.0.10-span-x.diff b/plugins/lcdproc/old/lcdproc-0.0.10-span-x.diff new file mode 100644 index 0000000..c2752cb --- /dev/null +++ b/plugins/lcdproc/old/lcdproc-0.0.10-span-x.diff @@ -0,0 +1,876 @@ +diff -Naur --exclude='.*' lcdproc-0.0.10.old/i18n.c lcdproc-span/i18n.c +--- lcdproc-0.0.10.old/i18n.c 2006-09-07 15:45:51.000000000 +0200 ++++ lcdproc-span/i18n.c 2006-09-04 16:33:48.000000000 +0200 +@@ -188,5 +188,22 @@ + "OutputNumber",// TODO + "OutputNumber",// TODO + }, ++ { "Enable spectrum analyzer", ++ "Spectrum Analyzer darstellen",// TODO ++ "",// TODO ++ "",// TODO ++ "",// TODO ++ "",// TODO ++ "",// TODO ++ "",// TODO ++ "",// TODO ++ "",// TODO ++ "",// TODO ++ "",// TODO ++ "",// TODO ++ "",// TODO ++ "",// TODO ++ "",// TODO ++ }, + { NULL } + }; +diff -Naur --exclude='.*' lcdproc-0.0.10.old/lcd.c lcdproc-span/lcd.c +--- lcdproc-0.0.10.old/lcd.c 2006-09-07 15:45:51.000000000 +0200 ++++ lcdproc-span/lcd.c 2006-09-07 11:04:28.000000000 +0200 +@@ -1,3 +1,7 @@ ++ ++#ifndef ___LCD_C ++#define ___LCD_C ++ + #include <stdio.h> + #include <stdlib.h> + #include <unistd.h> +@@ -11,6 +15,7 @@ + #include "lcd.h" + #include "sockets.h" + #include "i18n.h" ++#include <vdr/plugin.h> + + #ifdef LCD_EXT_KEY_CONF + #include LCD_EXT_KEY_CONF +@@ -27,10 +32,16 @@ + #define LCDMISC 3 + #define LCDVOL 4 + ++//span-start ++// unfortunalety, I can put any number (1-4) here and the bars always begin at the bottom of the display ++#define SA_Y 4 ++//span-end ++ + // public: + + cLcd::cLcd() { + int i,j; ++ channelSwitched = false; + connected=false; ThreadStateData.showvolume=false; ThreadStateData.newscroll=false; sock=wid=hgt=cellwid=cellhgt=0;closing = false; + replayDvbApi=NULL; primaryDvbApi=NULL; + +@@ -48,6 +59,7 @@ + cLcd::~cLcd() { + if (connected) { /*cLcd::Stop();*/ cLcd::Close(); } //YYYY + } ++ + + bool cLcd::Connect( char *host, unsigned int port ) { + +@@ -83,7 +95,19 @@ + sock_send_string(sock,"widget_add VDR line4 string\n"); sock_recv(sock, istring, 1024); + sock_send_string(sock,"widget_add VDR prbar hbar\n"); sock_recv(sock, istring, 1024); + sock_send_string(sock,"widget_set VDR prbar 1 1 0\n"); sock_recv(sock, istring, 1024); ++//span-start ++ char cmd[160]; ++ for(i = 0; i < wid; i++) ++ { ++ snprintf(cmd, 160, "widget_add VDR SaBar%d vbar\n", i+1); ++ sock_send_string(sock,cmd); sock_recv(sock, istring, 1024); ++ snprintf(cmd, 160, "widget_set VDR SaBar%d %d %d 15\n",i+1,i+1,SA_Y); ++ sock_send_string(sock,cmd); sock_recv(sock, istring, 1024); ++ } + ++ sock_send_string(sock,"widget_add VDR SaScroller scroller\n"); sock_recv(sock, istring, 1024); ++ SAScroller = true; ++//span-end + for (i=0; i<LcdMaxKeys;i++) { + sprintf(istring,"client_add_key %c\n",LcdUsedKeys[i]); + sock_send_string(sock,istring); +@@ -139,6 +163,7 @@ + void cLcd::SetMain( unsigned int n, const char *string) { + if (!connected) return; + ++ + char line2[wid+1]; + char line3[wid+1]; + +@@ -159,6 +184,24 @@ + } + } + ++//span-start ++void cLcd::ClearSaBars() ++{ ++ unsigned int i; ++ char cmd[80]; ++ for(i = 0; i < wid; i++) ++ { ++ sprintf(cmd, "widget_set VDR SaBar%d %d %d %d\n",i+1,i+1,SA_Y,0); ++ sock_send_string(sock, cmd); ++ if ( SAScroller ) ++ { ++ sock_send_string(sock,"widget_del VDR SaScroller\n"); ++ SAScroller = false; ++ } ++ } ++} ++//span-end ++ + void cLcd::SetHelp( unsigned int n, const char *Red, const char *Green, const char *Yellow, const char *Blue) { + if (!connected) return; + +@@ -294,7 +337,7 @@ + + char workstring[256]; + +- if (percent>100) percent=100; if (percent<0) percent=0; ++ if (percent>100) percent=100; else if (percent<0) percent=0; + if (begin==NULL) { + BeginMutualExclusion(); + ThreadStateData.barx=1; ThreadStateData.bary=1; ThreadStateData.barl=0; +@@ -442,7 +485,17 @@ + if (ThreadStateData.State != newstate) { + cLcd::LastState[(++LastStateP)%LCDMAXSTATEBUF]=newstate; + ThreadStateData.State=newstate; +- ThreadStateData.barx=1, ThreadStateData.bary=1, ThreadStateData.barl=0; ++ ThreadStateData.barx=1, ThreadStateData.bary=1, ThreadStateData.barl=0; ++ ++//span-start ++ unsigned int i; ++ char cmd[80]; ++ for(i = 0; i < wid; i++) ++ { ++ sprintf(cmd, "widget_set VDR SaBar%d %d %d %d\n",i+1,i+1,SA_Y,0); ++ sock_send_string(sock, cmd); ++ } ++//span-end + } + EndMutualExclusion(); + } +@@ -586,7 +639,11 @@ + if ( offset || !( ShowStates && ((t%LcdSetup.FullCycle) >= LcdSetup.TimeCycle) )) { + if (wid > 19) + snprintf(string,wid+1,"<%s %02d.%02d %02d:%02d:%02d>", ++#if VDRVERSNUM >= 10318 ++ *WeekDayName(now->tm_wday), now->tm_mday, now->tm_mon+1, now->tm_hour, now->tm_min,now->tm_sec); ++#else + WeekDayName(now->tm_wday), now->tm_mday, now->tm_mon+1, now->tm_hour, now->tm_min,now->tm_sec); ++#endif + else + snprintf(string,wid+1,"<%02d.%02d %02d:%02d:%02d>", + now->tm_mday, now->tm_mon+1, now->tm_hour, now->tm_min,now->tm_sec); +@@ -613,6 +670,10 @@ + bool Lcddirty[LCDMAXSTATES][4]; + bool LcdShiftkeyPressed=false; + char priostring[35]; ++ // RT ++ static int rtcycle; ++ // LCR ++ static int lcrCycle; + + // backlight init + if ((lastBackLight=LcdSetup.BackLight)) +@@ -629,12 +690,19 @@ + 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"); +- cLcd::Write(2,"--------------------\0"); +- cLcd::Write(3,"Video Disk Recorder\0"); +- cLcd::Write(4,"Version: "VDRVERSION"\0"); ++ if (hgt > 2){ ++ cLcd::Write(1," Welcome to V D R\0"); ++ cLcd::Write(2,"--------------------\0"); ++ cLcd::Write(3,"Video Disk Recorder\0"); ++ cLcd::Write(4,"Version: "VDRVERSION"\0"); ++ } ++ else { ++ cLcd::Write(1,"Video Disk Recorder\0"); ++ cLcd::Write(2,"Version: "VDRVERSION"\0"); ++ } + + // Output init + if (LcdSetup.OutputNumber > 0){ +@@ -664,12 +726,19 @@ + + voltime.tv_sec=0; + for (i=0;i<LCDMAXSTATES;i++) for (j=0;j<4;j++) Lcddirty[i][j]=true; +- time_t nextLcdUpdate = (time(NULL)/60)*60+60; + ++ time_t nextLcdUpdate = 0; // trigger first update immediately ++ + while (true) { // main loop, wakes up every WakeUpCycle, any output to LCDd is done here + gettimeofday(&now,NULL); + +- // epg update ++// epg update ++ if (channelSwitched) ++ { ++ channelSwitched = false; ++ nextLcdUpdate = 0; //trigger next epg update ++ } ++ + + #ifdef OLDVDR + +@@ -693,12 +762,12 @@ + SetRunning(false,tr("No EPG info available."), NULL); + if ((Present = Schedule->GetFollowingEvent()) != NULL) + nextLcdUpdate=(Present->GetTime()<nextLcdUpdate)?Present->GetTime():nextLcdUpdate; ++ rtcycle = 10; // RT ++ lcrCycle = 10; // LCR + } + } + if ( nextLcdUpdate <= time(NULL) ) + nextLcdUpdate=(time(NULL)/60)*60+60; +- else if ( nextLcdUpdate > time(NULL)+60 ) +- nextLcdUpdate=(time(NULL)/60)*60+60; + } + + #else +@@ -724,26 +793,125 @@ + SetRunning(false,tr("No EPG info available."), NULL); + if ((Present = Schedule->GetFollowingEvent()) != NULL) + nextLcdUpdate=(Present->StartTime()<nextLcdUpdate)?Present->StartTime():nextLcdUpdate; ++ rtcycle = 10; // RT ++ lcrCycle = 10; // LCR + } + } + if ( nextLcdUpdate <= time(NULL) ) + nextLcdUpdate=(time(NULL)/60)*60+60; +- else if ( nextLcdUpdate > time(NULL)+60 ) +- nextLcdUpdate=(time(NULL)/60)*60+60; + } + + #endif + ++#if VDRVERSNUM >= 10330 ++ // get&display Radiotext ++ if (++rtcycle > 10) { // every 10 times ++ cPlugin *p; ++ p = cPluginManager::CallFirstService("RadioTextService-v1.0", NULL); ++ if (p) { ++ RadioTextService_v1_0 rtext; ++ if (cPluginManager::CallFirstService("RadioTextService-v1.0", &rtext)) { ++ if (rtext.rds_info == 2 && strstr(rtext.rds_title, "---") == NULL) { ++ char timestr[20]; ++ sprintf(timestr, "%02d:%02d", rtext.title_start->tm_hour, rtext.title_start->tm_min); ++ SetRunning(false, timestr, rtext.rds_title, rtext.rds_artist); ++ } ++ else if (rtext.rds_info > 0) { ++ SetRunning(false, NULL, rtext.rds_text); ++ } ++ } ++ } ++ rtcycle = 0; ++ } ++#endif ++ ++#if VDRVERSNUM >= 10330 ++ // get&display LcrData ++ if (lcrCycle++ == 10) // every 10 times ++ { ++ lcrCycle = 0; ++ cPlugin *p; ++ p = cPluginManager::CallFirstService("LcrService-v1.0", NULL); ++ if (p) ++ { ++ LcrService_v1_0 lcrData; ++ if (cPluginManager::CallFirstService("LcrService-v1.0", &lcrData)) ++ { ++ if ( strstr( lcrData.destination, "---" ) == NULL ) ++ { ++ SetRunning(false, (const char *)lcrData.destination, (const char *)lcrData.price, (const char *)lcrData.pulse); ++ nextLcdUpdate = 0; //trigger next epg update ++ } ++ } ++ } ++ } ++ ++#endif ++ + // replaying +- +- if ( (now.tv_usec < WakeUpCycle) && (replayDvbApi) ) { ++// if ( (now.tv_usec < WakeUpCycle) && (replayDvbApi) ) { ++ if ( (replayDvbApi) ) { + char tempbuffer[16]; + replayDvbApi->GetIndex(Current, Total, false); Total=(Total==0)?1:Total; + sprintf(tempbuffer,IndexToHMSF(Total)); + SetProgress(IndexToHMSF(Current),tempbuffer, (100 * Current) / Total); +- } + +- ++//span-start ++ if ( LcdSetup.enableSpectrumAnalyzer && ThreadStateData.State != LCDMENU && cPluginManager::CallFirstService(SPAN_GET_BAR_HEIGHTS_ID, NULL)) ++ { ++ Span_GetBarHeights_v1_0 GetBarHeights; ++ char cmd[160]; ++ unsigned int *barHeights = new unsigned int[wid]; ++ unsigned int *barHeightsLeftChannel = new unsigned int[wid]; ++ unsigned int *barHeightsRightChannel = new unsigned int[wid]; ++ unsigned int volumeLeftChannel; ++ unsigned int volumeRightChannel; ++ unsigned int volumeBothChannels; ++ const char *saClient = "lcdproc"; ++ unsigned int *barPeaksBothChannels = new unsigned int[wid]; ++ unsigned int *barPeaksLeftChannel = new unsigned int[wid]; ++ unsigned int *barPeaksRightChannel = new unsigned int[wid]; ++ ++ GetBarHeights.bands = wid; ++ GetBarHeights.barHeights = barHeights; ++ GetBarHeights.barHeightsLeftChannel = barHeightsLeftChannel; ++ GetBarHeights.barHeightsRightChannel = barHeightsRightChannel; ++ GetBarHeights.volumeLeftChannel = &volumeLeftChannel; ++ GetBarHeights.volumeRightChannel = &volumeRightChannel; ++ GetBarHeights.volumeBothChannels = &volumeBothChannels; ++ GetBarHeights.name = saClient; ++ GetBarHeights.falloff = 8; ++ GetBarHeights.barPeaksBothChannels = barPeaksBothChannels; ++ GetBarHeights.barPeaksLeftChannel = barPeaksLeftChannel; ++ GetBarHeights.barPeaksRightChannel = barPeaksRightChannel; ++ ++ if ( cPluginManager::CallFirstService(SPAN_GET_BAR_HEIGHTS_ID, &GetBarHeights )) ++ { ++ BeginMutualExclusion(); ++ OutStateData.State = ThreadStateData.State = SA; ++ for(i = 0; i < wid; i++) ++ { ++ sprintf(cmd, "widget_set VDR SaBar%d %d %d %d\n",i+1,i+1,SA_Y,((cellhgt*(hgt/2))*barHeights[i])/100); ++ sock_send_string(sock, cmd); ++ } ++ EndMutualExclusion(); ++ } ++ delete [] barHeights; ++ delete [] barHeightsLeftChannel; ++ delete [] barHeightsRightChannel; ++ delete [] barPeaksBothChannels; ++ delete [] barPeaksLeftChannel; ++ delete [] barPeaksRightChannel; ++ ++ } ++ ++ if ( OutStateData.State != SA && SAScroller == true ) ++ { ++ sock_send_string(sock,"widget_del VDR SaScroller\n"); ++ SAScroller = false; ++ } ++//span-end ++ } + + // copy + +@@ -762,10 +930,10 @@ + if ( (OutStateData.State==PrevState) && ( OutStateData.State == Replay || OutStateData.State == Menu || OutStateData.State == Title ) ) { + switch (OutStateData.State) { + case Replay: +- ScrollState=LCDREPLAY; ScrollLine=1; ++ ScrollState=LCDREPLAY; ScrollLine=1; + break; + case Menu: +- ScrollState=LCDMENU; ScrollLine=1; ++ ScrollState=LCDMENU; ScrollLine=1; + break; + case Title: + if (!ToggleMode) { +@@ -818,7 +986,7 @@ + } else { + volume=true; + OutStateData.barx=1; OutStateData.bary=((hgt==2)?2:3); +- OutStateData.barl=(cellwid*((hgt==2)?2:1)*wid*OutStateData.volume)/255; ++ OutStateData.barl=(cellwid*((hgt==2)?2:1)*wid*OutStateData.volume)/255; + } + } + if (volume) OutStateData.State = Vol; +@@ -836,8 +1004,8 @@ + for (i=0;i<4;i++) if (Lcddirty[LCDMENU][i]) { + cLcd::Write(i+1,OutStateData.lcdbuffer[LCDMENU][i]); + Lcddirty[LCDMENU][i]=false; +- } +- PrevState=Menu; ++ } ++ PrevState=Menu; + break; + + case Title: // Display 'titlescsreen' = 1 +@@ -845,17 +1013,22 @@ + if ( (now.tv_usec < WakeUpCycle) || (PrevState != Title) ) { + cLcd::GetTimeDateStat(workstring,OutStateData.CardStat); + cLcd::Write(1,workstring); ++ + } + if (PrevState != Title) for (i=1;i<4;i++) Lcddirty[LCDTITLE][i]=true; +- for (i=1;i<4;i++) if (Lcddirty[LCDTITLE][i]) { ++ for (i=1;i<4;i++) if (Lcddirty[LCDTITLE][i]) { + cLcd::Write(i+1,OutStateData.lcdbuffer[LCDTITLE][i]); + Lcddirty[LCDTITLE][i]=false; + } ++ + PrevState = Title; + break; + + case Replay: // Display date/time during replaying = 2 + LineMode=1; ++//span-start ++ OutStateData.bary = hgt; ++//span-end + if ( !ToggleMode && ((now.tv_usec < WakeUpCycle) || (PrevState != Replay)) ) { + cLcd::GetTimeDateStat(workstring,OutStateData.CardStat); + cLcd::Write(1,workstring); +@@ -865,9 +1038,49 @@ + cLcd::Write(i+1,OutStateData.lcdbuffer[LCDREPLAY][i]); + Lcddirty[LCDREPLAY][i]=false; + } +- PrevState = Replay; ++ ++ PrevState = Replay; + break; +- ++//span-start ++ case SA: // display the SA, move the progressbar to top and show the title on just one line (scrolling) ++ LineMode=0; ++ ++ if ( PrevState != SA ) ++ { ++ sprintf(replayTextTmp, " "); // triggers e.g. a menu-display right before ++ } ++ sprintf(workstring,"%s",OutStateData.lcdfullbuffer[LCDREPLAY]); ++ ++ if ( strcasecmp(workstring,replayTextTmp) != 0 ) ++ { ++ if ( SAScroller ) ++ { ++ sock_send_string(sock,"widget_del VDR SaScroller\n"); ++ sock_send_string(sock,"widget_add VDR SaScroller scroller\n"); ++ } ++ else ++ { ++ sock_send_string(sock,"widget_add VDR SaScroller scroller\n"); ++ } ++ SAScroller = true; ++ sprintf(replayTextTmp,"%s",OutStateData.lcdfullbuffer[LCDREPLAY]); ++ sprintf(workstring,"widget_set VDR SaScroller %d %d %d %d m 3 \"%s\"\n",1,2,wid,2,replayTextTmp); ++ sock_send_string(sock,workstring); ++ } ++ BeginMutualExclusion(); ++ Lcddirty[LCDREPLAY][0]=false; ++ cLcd::Write(1,OutStateData.lcdbuffer[LCDREPLAY][3]); ++ cLcd::Write(3," "); ++ cLcd::Write(4," "); ++ Lcddirty[LCDREPLAY][2]=false; ++ Lcddirty[LCDREPLAY][1]=false; ++ Lcddirty[LCDREPLAY][3]=false; ++ OutStateData.bary = 1; ++ EndMutualExclusion(); ++ ++ PrevState = SA; ++ break; ++//span-end + case Misc: // Display messages = 3 + LineMode=0; + if (PrevState != Misc) for (i=0;i<4;i++) Lcddirty[LCDMISC][i]=true; +@@ -900,7 +1113,6 @@ + } + + // backlight +- + if ( lastBackLight != LcdSetup.BackLight) { + lastBackLight=LcdSetup.BackLight; + if (lastBackLight) +@@ -908,7 +1120,6 @@ + else + sock_send_string(sock,"backlight off\n"); + } +- + // keys + + if ( LcdMaxKeys && (lastAltShift != LcdSetup.AltShift) ) { +@@ -1018,6 +1229,15 @@ + sock_send_string(sock,lcdCommand); + } + } ++ + usleep(WakeUpCycle-(now.tv_usec%WakeUpCycle)); // sync to systemtime for nicer time output + } + } ++ ++void cLcd::ChannelSwitched() ++{ ++ channelSwitched = true; ++} ++ ++#endif //___LCD_C ++ +diff -Naur --exclude='.*' lcdproc-0.0.10.old/lcd.h lcdproc-span/lcd.h +--- lcdproc-0.0.10.old/lcd.h 2006-09-07 15:45:51.000000000 +0200 ++++ lcdproc-span/lcd.h 2006-09-07 11:03:22.000000000 +0200 +@@ -9,8 +9,10 @@ + + #define LCDPORT 13666 + #define LCDHOST "localhost" +-#define LCDMAXSTATES 5 +-#define LCDMAXSTATEBUF 5 ++//span-start ++#define LCDMAXSTATES 6 ++#define LCDMAXSTATEBUF 6 ++//span-end + #define LCDMAXWID 40 + #define LCDMAXCARDS 4 + #define LCDMAXFULLSTRING 1024 +@@ -19,7 +21,7 @@ + public: + cControl *replayDvbApi; + cDevice *primaryDvbApi; +- enum ThreadStates {Menu=0, Title=1, Replay=2, Misc=3, Vol=4}; ++ enum ThreadStates {Menu=0, Title=1, Replay=2, Misc=3, Vol=4, SA=5}; + ThreadStates LastState[LCDMAXSTATEBUF]; + int LastStateP,LineMode; + bool ToggleMode; +@@ -38,6 +40,7 @@ + void Info(); + void SetTitle( const char *string); + void SetMain( unsigned int n, const char *string); ++ void ClearSaBars(); + void SetHelp( unsigned int n, const char *Red, const char *Green, const char *Yellow, const char *Blue); + void SetStatus( const char *string); + void SetWarning( const char *string); +@@ -57,11 +60,17 @@ + void PopThreadState(); + void SetReplayDevice(cControl *DvbApi); + void SetPrimaryDevice(cDevice *DvbApi); ++ void ChannelSwitched(); //to propagate "ChannelSwitched"-Event from cLcdFeed to cLcd + private: + char *SummaryText; ++//span-start ++ char replayTextTmp[1024]; ++ bool SAScroller; ++//span-end + unsigned int SummaryTextL; + unsigned int SummaryCurrent; + bool connected; ++ bool channelSwitched; + struct StateData ThreadStateData; + time_t LastProgress; + cMutex CriticalArea; +@@ -74,7 +83,64 @@ + void Write(int line, const char *string); + void GetTimeDateStat( char *string, unsigned int OutStateData[] ); + void Action(void); +- int closing ; ++ int closing; ++ ++}; ++ // Radiotext ++ struct RadioTextService_v1_0 { ++ int rds_info; ++ int rds_pty; ++ char *rds_text; ++ char *rds_title; ++ char *rds_artist; ++ struct tm *title_start; ++}; ++ ++// LcrData ++struct LcrService_v1_0 { ++ cString destination; ++ cString price; ++ cString pulse; + }; + ++//span-start ++#define SPAN_PROVIDER_CHECK_ID "Span-ProviderCheck-v1.0" ++#define SPAN_CLIENT_CHECK_ID "Span-ClientCheck-v1.0" ++#define SPAN_SET_PCM_DATA_ID "Span-SetPcmData-v1.0" ++#define SPAN_GET_BAR_HEIGHTS_ID "Span-GetBarHeights-v1.0" ++ ++//Span requests to collect possible providers / clients ++struct Span_Provider_Check_1_0 { ++ bool *isActive; ++ bool *isRunning; ++}; ++ ++struct Span_Client_Check_1_0 { ++ bool *isActive; ++ bool *isRunning; ++}; ++ ++// Span data ++struct Span_SetPcmData_1_0 { ++ unsigned int length; // the length of the PCM-data ++ int *data; // the PCM-Data as 32-bit int, however only the lower 16-bit are used ++ // and you have to take care to hand in such data! ++}; ++ ++struct Span_GetBarHeights_v1_0 { ++ unsigned int bands; // number of bands to compute ++ unsigned int *barHeights; // the heights of the bars of the two channels combined ++ unsigned int *barHeightsLeftChannel; // the heights of the bars of the left channel ++ unsigned int *barHeightsRightChannel; // the heights of the bars of the right channel ++ unsigned int *volumeLeftChannel; // the volume of the left channels ++ unsigned int *volumeRightChannel; // the volume of the right channels ++ unsigned int *volumeBothChannels; // the combined volume of the two channels ++ const char *name; // name of the client that wants to get the data ++ // (must be unique for each client!) ++ unsigned int falloff; // bar falloff value ++ unsigned int *barPeaksBothChannels; // bar peaks of the two channels combined ++ unsigned int *barPeaksLeftChannel; // bar peaks of the left channel ++ unsigned int *barPeaksRightChannel; // bar peaks of the right channel ++}; ++//span-end + #endif //__LCD_H +diff -Naur --exclude='.*' lcdproc-0.0.10.old/lcdproc.c lcdproc-span/lcdproc.c +--- lcdproc-0.0.10.old/lcdproc.c 2006-09-07 15:45:51.000000000 +0200 ++++ lcdproc-span/lcdproc.c 2006-09-05 10:03:50.000000000 +0200 +@@ -6,6 +6,9 @@ + * $Id$ + */ + ++#ifndef ___LCDPROC_C ++#define ___LCDPROC_C ++ + #include <getopt.h> + #include <ctype.h> + #include <vdr/plugin.h> +@@ -16,7 +19,11 @@ + #include "lcd.h" + #include "lcdtranstbl.h" + +-static const char *VERSION = "0.0.10"; ++#include <string> ++ ++using namespace std; ++ ++static const char *VERSION = "0.0.10-span-patched"; + static const char *MAINMENUENTRY = NULL; + static const char *DESCRIPTION = "LCDproc output"; + +@@ -51,8 +58,13 @@ + class cLcdFeed : public cStatus { + protected: + virtual void ChannelSwitch(const cDevice *Device, int ChannelNumber); ++#if VDRVERSNUM < 10338 + virtual void Recording(const cDevice *Device, const char *Name); + virtual void Replaying(const cControl *DvbPlayerControl, const char *Name); ++#else ++ virtual void Recording(const cDevice *Device, const char *Name, const char *FileName, bool On); ++ virtual void Replaying(const cControl *DvbPlayerControl, const char *Name, const char *FileName, bool On); ++#endif + virtual void SetVolume(int Volume, bool Absolute); + virtual void OsdClear(void); + virtual void OsdTitle(const char *Title); +@@ -73,34 +85,102 @@ + LCDproc->SetLine(1,2," "); + LCDproc->SetLine(1,3," "); + LCDproc->SetRunning(false,tr("Waiting for EPG info."), NULL); ++ LCDproc->ChannelSwitched(); + switched = true; + } else switched = false; + LCDproc->SetPrimaryDevice( (cDevice *) Device ); + } + } +- ++#if VDRVERSNUM < 10338 + void cLcdFeed::Recording(const cDevice *Device, const char *Name) ++#else ++void cLcdFeed::Recording(const cDevice *Device, const char *Name, const char *FileName, bool On) ++#endif + { + //syslog(LOG_INFO, "lcdproc: cLcdFeed::Recording %d %s", Device->CardIndex(), Name); ++#if VDRVERSNUM < 10338 + if (Name) ++#else ++ if (On) ++#endif + LCDproc->SetCardStat(Device->CardIndex(),2); + else + LCDproc->SetCardStat(Device->CardIndex(),1); + } +- ++#if VDRVERSNUM < 10338 + void cLcdFeed::Replaying(const cControl *DvbPlayerControl, const char *Name) ++#else ++void cLcdFeed::Replaying(const cControl *DvbPlayerControl, const char *Name, const char *FileName, bool On) ++#endif + { + //syslog(LOG_INFO, "lcdproc: cLcdFeed::Replaying %s", Name); ++#if VDRVERSNUM < 10338 + replaymode=(Name)?true:false; ++#else ++ replaymode=On; ++#endif ++ int slen = 0; ++ string name; ++ bool bFound = false; ++ if ( !isempty(FileName) ) ++ slen = strlen(FileName); ++ ++ /////////////////////////////////////////////////////////////////////// ++ //Looking for mp3-Plugin Replay : [LS] (444/666) title ++ // ++ if (slen > 6 && ++ *(FileName+0)=='[' && ++ *(FileName+3)==']' && ++ *(FileName+5)=='(') ++ { ++ unsigned int i; ++ for (i=6; *(FileName + i) != '\0'; ++i) //search for [xx] (xxxx) title ++ { ++ if(*(FileName+i)==' ' && *(FileName+i-1)==')') ++ { ++ bFound = true; ++ break; ++ } ++ } ++ if (bFound) //found MP3-Plugin replaymessage ++ { ++ unsigned int j; ++ for(j=0;*(FileName+i+j) != '\0';++j) //trim name ++ { ++ if(*(FileName+i+j)!=' ') ++ break; ++ } ++ ++ if (strlen(FileName+i+j) > 0) ++ { //if name isn't empty, then copy ++ name = FileName + i + j; ++ } ++ else ++ { //if Name empty, set fallback title ++ name = tr("Unknown title"); ++ } ++ } ++ } ++ ++ ++ + if ( replaymode ) { + LCDproc->SetReplayDevice( (cDvbPlayerControl *) DvbPlayerControl); +- LCDproc->SetMain(2, Name); ++ if ( bFound ) ++ { ++ LCDproc->SetMain(2, name.c_str()); ++ } ++ else ++ { ++ LCDproc->SetMain(2, Name); ++ } + LCDproc->SetThreadState( (cLcd::ThreadStates) 2); // Replaying + } else { + LCDproc->SetReplayDevice(NULL); + LCDproc->SetProgress(NULL); + LCDproc->SetLineC(1,1,tempstringbuffer); + LCDproc->SetThreadState( (cLcd::ThreadStates) 1); // Title ++ LCDproc->ClearSaBars(); + } + menumode=false; + } +@@ -180,8 +260,11 @@ + switching= isdigit(Text[i]) && Text[i+1]=='-' ; + } + +- if (switched || switching) ++ if (switched || switching) ++ { + LCDproc->SetThreadState( (cLcd::ThreadStates) 1); // TITLE ++ LCDproc->ChannelSwitched(); ++ } + else + LCDproc->SetThreadState( (cLcd::ThreadStates) 3); // MISC + +@@ -233,6 +316,7 @@ + virtual cOsdMenu *MainMenuAction(void); + virtual cMenuSetupPage *SetupMenu(void); + virtual bool SetupParse(const char *Name, const char *Value); ++ virtual bool Service(const char *Id, void *Data = NULL); + }; + + cPluginLcd::cPluginLcd(void) +@@ -351,13 +435,15 @@ + 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("BackLightWait"), &newLcdSetup.BackLightWait,0,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)); + } ++ ++ Add(new cMenuEditBoolItem( tr("Enable spectrum analyzer"), &newLcdSetup.enableSpectrumAnalyzer)); + } + + void cMenuSetupLcd::Store(void) +@@ -374,13 +460,14 @@ + 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("BackLightWait", LcdSetup.BackLightWait = newLcdSetup.BackLightWait); ++ SetupStore("PrioWait", LcdSetup.PrioWait = 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]); + } ++ SetupStore("enableSpectrumAnalyzer",LcdSetup.enableSpectrumAnalyzer = newLcdSetup.enableSpectrumAnalyzer); + } + + +@@ -417,9 +504,27 @@ + else if (!strcasecmp(Name, "OutputNumber 7")) LcdSetup.OutputFunction[7] = atoi(Value); + else if (!strcasecmp(Name, "OutputNumber 8")) LcdSetup.OutputFunction[8] = atoi(Value); + else if (!strcasecmp(Name, "OutputNumber 9")) LcdSetup.OutputFunction[9] = atoi(Value); ++ else if (!strcasecmp(Name, "enableSpectrumAnalyzer")) LcdSetup.enableSpectrumAnalyzer = atoi(Value); + else + return false; + return true; + } + ++bool cPluginLcd::Service(const char *Id, void *Data) ++{ ++ if (strcmp(Id, SPAN_CLIENT_CHECK_ID) == 0) ++ { ++ if ( LcdSetup.enableSpectrumAnalyzer && (Data != NULL) ) ++ { ++ *((Span_Client_Check_1_0*)Data)->isActive = true; ++ } ++ return true; ++ } ++ ++ return false; ++} ++ + VDRPLUGINCREATOR(cPluginLcd); // Don't touch this! ++ ++#endif //___LCDPROC_C ++ +diff -Naur --exclude='.*' lcdproc-0.0.10.old/setup.c lcdproc-span/setup.c +--- lcdproc-0.0.10.old/setup.c 2006-09-07 15:45:51.000000000 +0200 ++++ lcdproc-span/setup.c 2006-09-04 16:33:48.000000000 +0200 +@@ -20,5 +20,6 @@ + OutputNumber = 0; + for (int i = 0; i < LCDMAXOUTPUTS; i++) + OutputFunction[i] = 0; ++ enableSpectrumAnalyzer = 1; + } + +diff -Naur --exclude='.*' lcdproc-0.0.10.old/setup.h lcdproc-span/setup.h +--- lcdproc-0.0.10.old/setup.h 2006-09-07 15:45:51.000000000 +0200 ++++ lcdproc-span/setup.h 2006-09-04 16:33:48.000000000 +0200 +@@ -20,6 +20,7 @@ + int PrioWait; + int OutputNumber; + int OutputFunction[LCDMAXOUTPUTS]; ++ int enableSpectrumAnalyzer; + public: + cLcdSetup(void); + }; diff --git a/plugins/lcdproc/old/lcdproc-0.0.10-umlaute.diff b/plugins/lcdproc/old/lcdproc-0.0.10-umlaute.diff new file mode 100644 index 0000000..e37155e --- /dev/null +++ b/plugins/lcdproc/old/lcdproc-0.0.10-umlaute.diff @@ -0,0 +1,123 @@ +diff -ruN lcdproc-0.0.10/lcdtranstbl.h lcdproc-0.0.10-patched/lcdtranstbl.h +--- lcdproc-0.0.10/lcdtranstbl.h 2004-01-17 16:19:51.000000000 +0100 ++++ lcdproc-0.0.10-patched/lcdtranstbl.h 2007-03-03 21:55:09.000000000 +0100 +@@ -606,7 +606,7 @@ + /* 61 ( '=' ) */ (unsigned char) 61, + /* 62 ( '>' ) */ (unsigned char) 62, + /* 63 ( '?' ) */ (unsigned char) 63, +-/* 64 ( '@' ) */ (unsigned char) 160, ++/* 64 ( '@' ) */ (unsigned char) 160, + /* 65 ( 'A' ) */ (unsigned char) 65, + /* 66 ( 'B' ) */ (unsigned char) 66, + /* 67 ( 'C' ) */ (unsigned char) 67, +@@ -633,11 +633,11 @@ + /* 88 ( 'X' ) */ (unsigned char) 88, + /* 89 ( 'Y' ) */ (unsigned char) 89, + /* 90 ( 'Z' ) */ (unsigned char) 90, +-/* 91 ( '[' ) */ (unsigned char) 250, +-/* 92 ( '\' ) */ (unsigned char) 251, +-/* 93 ( ']' ) */ (unsigned char) 252, +-/* 94 ( '^' ) */ (unsigned char) 222, +-/* 95 ( '_' ) */ (unsigned char) 196, ++/* 91 ( '[' ) */ (unsigned char) 250, ++/* 92 ( '\' ) */ (unsigned char) 251, ++/* 93 ( ']' ) */ (unsigned char) 252, ++/* 94 ( '^' ) */ (unsigned char) 222, ++/* 95 ( '_' ) */ (unsigned char) 196, + /* 96 ( '`' ) */ (unsigned char) 39, + /* 97 ( 'a' ) */ (unsigned char) 97, + /* 98 ( 'b' ) */ (unsigned char) 98, +@@ -703,13 +703,13 @@ + /* 158 ( '~^') */ (unsigned char) 158, + /* 159 ( '~_') */ (unsigned char) 159, + /* 160 ( '| ') */ (unsigned char) 160, +-/* 161 ( '¡' ) */ (unsigned char) 64, ++/* 161 ( '¡' ) */ (unsigned char) 64, + /* 162 ( '¢' ) */ (unsigned char) 177, + /* 163 ( '£' ) */ (unsigned char) 161, +-/* 164 ( '¤' ) */ (unsigned char) 36, ++/* 164 ( '¤' ) */ (unsigned char) 36, + /* 165 ( '¥' ) */ (unsigned char) 163, + /* 166 ( '¦' ) */ (unsigned char) 254, +-/* 167 ( '§' ) */ (unsigned char) 95, ++/* 167 ( '§' ) */ (unsigned char) 95, + /* 168 ( '¨' ) */ (unsigned char) 221, + /* 169 ( '©' ) */ (unsigned char) 171, + /* 170 ( 'ª' ) */ (unsigned char) 170, +@@ -722,7 +722,7 @@ + /* 177 ( '±' ) */ (unsigned char) 140, + /* 178 ( '²' ) */ (unsigned char) 130, + /* 179 ( '³' ) */ (unsigned char) 131, +-/* 180 ( '´' ) */ (unsigned char) 39, ++/* 180 ( '´' ) */ (unsigned char) 39, + /* 181 ( 'µ' ) */ (unsigned char) 143, + /* 182 ( '¶' ) */ (unsigned char) 182, + /* 183 ( '·' ) */ (unsigned char) 183, +@@ -733,19 +733,19 @@ + /* 188 ( '¼' ) */ (unsigned char) 139, + /* 189 ( '½' ) */ (unsigned char) 138, + /* 190 ( '¾' ) */ (unsigned char) 190, +-/* 191 ( '¿' ) */ (unsigned char) 96, +-/* 192 ( 'À' ) */ (unsigned char) 65, ++/* 191 ( '¿' ) */ (unsigned char) 96, ++/* 192 ( 'À' ) */ (unsigned char) 65, + /* 193 ( 'Á' ) */ (unsigned char) 226, +-/* 194 ( 'Â' ) */ (unsigned char) 65, +-/* 195 ( 'Ã' ) */ (unsigned char) 65, +-/* 196 ( 'Ä' ) */ (unsigned char) 91, ++/* 194 ( 'Â' ) */ (unsigned char) 65, ++/* 195 ( 'Ã' ) */ (unsigned char) 65, ++/* 196 ( 'Ä' ) */ (unsigned char) 65, + /* 197 ( 'Å' ) */ (unsigned char) 174, + /* 198 ( 'Æ' ) */ (unsigned char) 188, + /* 199 ( 'Ç' ) */ (unsigned char) 169, + /* 200 ( 'È' ) */ (unsigned char) 197, + /* 201 ( 'É' ) */ (unsigned char) 191, + /* 202 ( 'Ê' ) */ (unsigned char) 198, +-/* 203 ( 'Ë' ) */ (unsigned char) 69, ++/* 203 ( 'Ë' ) */ (unsigned char) 69, + /* 204 ( 'Ì' ) */ (unsigned char) 73, + /* 205 ( 'Í' ) */ (unsigned char) 227, + /* 206 ( 'Î' ) */ (unsigned char) 73, +@@ -756,13 +756,13 @@ + /* 211 ( 'Ó' ) */ (unsigned char) 228, + /* 212 ( 'Ô' ) */ (unsigned char) 236, + /* 213 ( 'Õ' ) */ (unsigned char) 79, +-/* 214 ( 'Ö' ) */ (unsigned char) 92, ++/* 214 ( 'Ö' ) */ (unsigned char) 79, + /* 215 ( '×' ) */ (unsigned char) 120, + /* 216 ( 'Ø' ) */ (unsigned char) 171, + /* 217 ( 'Ù' ) */ (unsigned char) 85, + /* 218 ( 'Ú' ) */ (unsigned char) 229, + /* 219 ( 'Û' ) */ (unsigned char) 85, +-/* 220 ( 'Ü' ) */ (unsigned char) 94, ++/* 220 ( 'Ü' ) */ (unsigned char) 85, + /* 221 ( 'Ý' ) */ (unsigned char) 250, + /* 222 ( 'Þ' ) */ (unsigned char) 178, + /* 223 ( 'ß' ) */ (unsigned char) 190, +@@ -770,7 +770,7 @@ + /* 225 ( 'á' ) */ (unsigned char) 231, + /* 226 ( 'â' ) */ (unsigned char) 97, + /* 227 ( 'ã' ) */ (unsigned char) 97, +-/* 228 ( 'ä' ) */ (unsigned char) 123, ++/* 228 ( 'ä' ) */ (unsigned char) 97, + /* 229 ( 'å' ) */ (unsigned char) 175, + /* 230 ( 'æ' ) */ (unsigned char) 189, + /* 231 ( 'ç' ) */ (unsigned char) 200, +@@ -788,13 +788,13 @@ + /* 243 ( 'ó' ) */ (unsigned char) 228, + /* 244 ( 'ô' ) */ (unsigned char) 237, + /* 245 ( 'õ' ) */ (unsigned char) 237, +-/* 246 ( 'ö' ) */ (unsigned char) 124, +-/* 247 ( '÷' ) */ (unsigned char) 47, ++/* 246 ( 'ö' ) */ (unsigned char) 111, ++/* 247 ( '÷' ) */ (unsigned char) 47, + /* 248 ( 'ø' ) */ (unsigned char) 172, + /* 249 ( 'ù' ) */ (unsigned char) 166, + /* 250 ( 'ú' ) */ (unsigned char) 234, + /* 251 ( 'û' ) */ (unsigned char) 239, +-/* 252 ( 'ü' ) */ (unsigned char) 126, ++/* 252 ( 'ü' ) */ (unsigned char) 117, + /* 253 ( 'ý' ) */ (unsigned char) 235, + /* 254 ( 'þ' ) */ (unsigned char) 178, + /* 255 ( 'ÿ' ) */ (unsigned char) 183}, diff --git a/plugins/lcdproc/plugin.sh b/plugins/lcdproc/plugin.sh new file mode 100644 index 0000000..3a3bad1 --- /dev/null +++ b/plugins/lcdproc/plugin.sh @@ -0,0 +1,52 @@ +#!/bin/sh + +# x-vdr (Installations-Skript fuer einen VDR mit Debian als Basis) +# von Marc Wernecke - www.zulu-entertainment.de +# 19.02.2009 +# +# vdr-lcdproc + +# defaults +source ./../../x-vdr.conf +source ./../../setup.conf +source ./../../functions + +WEB="http://www.zulu-entertainment.de/files/vdr-lcdproc/vdr-lcdproc-0.0.10-jw6.tgz" +VERSION="lcdproc-0.0.10-jw6" +LINK="lcdproc" + +VAR=`basename $WEB` +DIR=`pwd` + +# plugin entfernen +function clean_plugin() { + cd $SOURCEDIR/VDR/PLUGINS/src + rm -rf $LINK* + rm -f $VDRLIBDIR/libvdr-$LINK* + log "cleaning $LINK" +} + +# plugin installieren +function install_plugin() { + download_plugin + extract_plugin + cd $SOURCEDIR/VDR/PLUGINS/src + rm -f $LINK + ln -vfs $VERSION $LINK + patch_plugin + +## plugin specials - start ## + +## plugin specials - ende ## +} + +# plugin commands +if [ $# \> 0 ]; then + cmd=$1 + cmd_plugin +else + install_plugin + log "install-plugin fuer $VERSION ist fertig" +fi + +exit 0
\ No newline at end of file |
