X-Git-Url: http://code.vuplus.com/gitweb/?a=blobdiff_plain;f=meta-openvuplus%2Frecipes-base%2Ftuxtxt%2Ftuxbox-tuxtxt-32bpp%2F32bpp.diff;fp=meta-openvuplus%2Frecipes-base%2Ftuxtxt%2Ftuxbox-tuxtxt-32bpp%2F32bpp.diff;h=76bbebd55df84b27cf4660d6cb08daf11fae5856;hb=d9f8cd1ab09c48faddd7ea8dd30087a0d53343f4;hp=0000000000000000000000000000000000000000;hpb=4a8d962497eff022a8306264d68b13b2e6314c2f;p=vuplus_openvuplus diff --git a/meta-openvuplus/recipes-base/tuxtxt/tuxbox-tuxtxt-32bpp/32bpp.diff b/meta-openvuplus/recipes-base/tuxtxt/tuxbox-tuxtxt-32bpp/32bpp.diff new file mode 100644 index 0000000..76bbebd --- /dev/null +++ b/meta-openvuplus/recipes-base/tuxtxt/tuxbox-tuxtxt-32bpp/32bpp.diff @@ -0,0 +1,388 @@ +diff -u tuxtxt_orig/tuxtxt.c tuxtxt/tuxtxt.c +--- tuxtxt_orig/tuxtxt.c 2009-01-29 21:36:31.000000000 +0100 ++++ tuxtxt/tuxtxt.c 2009-01-29 21:38:42.000000000 +0100 +@@ -7,12 +7,43 @@ + * and DBLuelle * + * russian and arabic support by Leonid Protasov * + * * ++ * ported 2006 to Dreambox 7025 / 32Bit framebuffer * ++ * by Seddi * ++ * * ++ * ported 32Bit framebuffer to Tuxtxt v1.99 (2008) * ++ * by the PLi team (Sat-Turner) * ++ * * ++ * ported to 20090130 * ++ * by the PLi team (pieterg) * ++ * * + ******************************************************************************/ + + + + #include "tuxtxt.h" + ++static char saved_wss[32]; ++static char saved_pin8[32]; ++ ++void readproc(const char* source, char *dest) ++{ ++ FILE *f=fopen(source, "rt"); ++ if(f) ++ { ++ fgets(dest, 255, f); ++ fclose(f); ++ } ++} ++ ++void writeproc(const char* dest, const char *value) ++{ ++ FILE *f=fopen(dest, "w"); ++ if (f) ++ { ++ fwrite(value, strlen(value), 1, f); ++ fclose(f); ++ } ++} + + int getIndexOfPageInHotlist() + { +@@ -137,10 +168,11 @@ + * plugin_exec * + ******************************************************************************/ + +-void plugin_exec(PluginParam *par) ++int main(int argc, char **argv) + { + char cvs_revision[] = "$Revision: 1.108 $"; + ++ int cnt=0; + #if !TUXTXT_CFG_STANDALONE + int initialized = tuxtxt_init(); + if ( initialized ) +@@ -150,31 +182,71 @@ + /* show versioninfo */ + sscanf(cvs_revision, "%*s %s", versioninfo); + printf("TuxTxt %s\n", versioninfo); ++ printf("for 32bpp framebuffer\n"); + + tuxtxt_SetRenderingDefaults(&renderinfo); + /* get params */ + tuxtxt_cache.vtxtpid = renderinfo.fb = lcd = rc = renderinfo.sx = renderinfo.ex = renderinfo.sy = renderinfo.ey = -1; ++ if (argc==1) ++ { ++ printf("\nUSAGE: tuxtxt vtpid\n"); ++ printf("No PID given, so scanning for PIDs ...\n\n"); ++ tuxtxt_cache.vtxtpid=0; ++ } ++ else ++ { ++ tuxtxt_cache.vtxtpid = atoi(argv[1]); ++ } ++ ++ /* open Framebuffer */ ++ if ((renderinfo.fb=open("/dev/fb0", O_RDWR)) == -1) ++ { ++ perror("TuxTxt "); ++ return 0; ++ } ++ rc=-1; ++ while(1) ++ { ++ struct stat s; ++ char tmp[128]; ++ sprintf(tmp, "/dev/input/event%d", cnt); ++ if (stat(tmp, &s)) ++ break; ++ /* open Remote Control */ ++ if ((rc=open(tmp, O_RDONLY)) == -1) ++ { ++ perror("TuxTxt "); ++ return 0; ++ } ++ if (ioctl(rc, EVIOCGNAME(128), tmp) < 0) ++ perror("EVIOCGNAME failed"); ++ if (strstr(tmp, "remote control")) ++ break; ++ close(rc); ++ rc=-1; ++ ++cnt; ++ } ++ ++ if (rc == -1) ++ { ++ printf("couldnt find correct input device!!!\n"); ++ return -1; ++ } + +- for (; par; par = par->next) ++ /* open LCD */ ++ if ((lcd=open("/dev/dbox/lcd0", O_RDWR)) == -1) + { +- if (!strcmp(par->id, P_ID_VTXTPID)) +- tuxtxt_cache.vtxtpid = atoi(par->val); +- else if (!strcmp(par->id, P_ID_FBUFFER)) +- renderinfo.fb = atoi(par->val); +- else if (!strcmp(par->id, P_ID_LCD)) +- lcd = atoi(par->val); +- else if (!strcmp(par->id, P_ID_RCINPUT)) +- rc = atoi(par->val); +- else if (!strcmp(par->id, P_ID_OFF_X)) +- renderinfo.sx = atoi(par->val); +- else if (!strcmp(par->id, P_ID_END_X)) +- renderinfo.ex = atoi(par->val); +- else if (!strcmp(par->id, P_ID_OFF_Y)) +- renderinfo.sy = atoi(par->val); +- else if (!strcmp(par->id, P_ID_END_Y)) +- renderinfo.ey = atoi(par->val); ++ perror("TuxTxt "); ++ return 0; + } + ++ renderinfo.previousbackcolor = tuxtxt_color_transp; ++ renderinfo.zoommode = 0; ++ renderinfo.sx = 80; ++ renderinfo.ex = 620; ++ renderinfo.sy = 30; ++ renderinfo.ey = 555; ++ + if (tuxtxt_cache.vtxtpid == -1 || renderinfo.fb == -1 || rc == -1 || renderinfo.sx == -1 || renderinfo.ex == -1 || renderinfo.sy == -1 || renderinfo.ey == -1) + { + printf("TuxTxt \n"); +@@ -242,6 +314,7 @@ + int vendor = 3; /* values unknown, rely on requested values */ + #endif + ++#if 0 + if (vendor < 3) /* scart-parameters only known for 3 dboxes, FIXME: order must be like in info.h */ + { + for (i = 0; i < 6; i++) /* FIXME: FBLK seems to cause troubles */ +@@ -274,6 +347,7 @@ + perror("TuxTxt "); + } + } ++#endif + continue; /* otherwise ignore exit key */ + } + default: +@@ -487,6 +561,14 @@ + dumpl25 = ival & 1; + else if (1 == sscanf(line, "UseTTF %i", &ival)) + renderinfo.usettf = ival & 1; ++ else if (1 == sscanf(line, "StartX %i", &ival)) ++ renderinfo.sx = ival; ++ else if (1 == sscanf(line, "EndX %i", &ival)) ++ renderinfo.ex = ival; ++ else if (1 == sscanf(line, "StartY %i", &ival)) ++ renderinfo.sy = ival; ++ else if (1 == sscanf(line, "EndY %i", &ival)) ++ renderinfo.ey = ival; + } + fclose(conf); + } +@@ -534,6 +616,12 @@ + #endif + + ++ readproc("/proc/stb/denc/0/wss", saved_wss); ++ writeproc("/proc/stb/denc/0/wss", saamodes[renderinfo.screen_mode1]); ++ ++ readproc("/proc/stb/avs/0/sb", saved_pin8); ++ writeproc("/proc/stb/avs/0/sb", fncmodes[renderinfo.screen_mode1]); ++ + /* setup rc */ + ioctl(rc, RC_IOCTL_BCODES, 1); + +@@ -568,8 +656,6 @@ + if (tuxtxt_cache.dmx != -1) + close(tuxtxt_cache.dmx); + tuxtxt_cache.dmx = -1; +-#else +- tuxtxt_stop(); + #endif + + if (restoreaudio) +@@ -579,6 +665,7 @@ + #else + int vendor = 3; /* values unknown, rely on requested values */ + #endif ++#if 0 + if (vendor < 3) /* scart-parameters only known for 3 dboxes, FIXME: order must be like in info.h */ + { + for (i = 1; i < 6; i += 2) /* restore dvb audio */ +@@ -588,9 +675,17 @@ + perror("TuxTxt "); + } + } ++#endif + } + ++ /* close lcd */ ++ close(lcd); ++ ++ /* close rc */ ++ close(rc); + ++ lcd = rc = -1; ++ + if (hotlistchanged) + savehotlist(); + +@@ -623,10 +718,20 @@ + fprintf(conf, "ShowLevel2p5 %d\n", renderinfo.showl25); + fprintf(conf, "DumpLevel2p5 %d\n", dumpl25); + fprintf(conf, "UseTTF %d\n", renderinfo.usettf); ++ fprintf(conf, "StartX %d\n", renderinfo.sx); ++ fprintf(conf, "EndX %d\n", renderinfo.ex); ++ fprintf(conf, "StartY %d\n", renderinfo.sy); ++ fprintf(conf, "EndY %d\n", renderinfo.ey); + fclose(conf); + } + } + tuxtxt_EndRendering(&renderinfo); ++ ++ /* close framebuffer */ ++ close(renderinfo.fb); ++ ++ writeproc("/proc/stb/avs/0/sb", saved_pin8); ++ writeproc("/proc/stb/denc/0/wss", saved_wss); + } + /****************************************************************************** + * GetTeletextPIDs * +@@ -1308,6 +1413,7 @@ + memset(&menu[Menu_Width*MenuLine[M_COL] + 3+renderinfo.color_mode ], 0x20,24-renderinfo.color_mode); + Menu_HighlightLine(menu, MenuLine[menuitem], 1); + tuxtxt_setcolors(&renderinfo,(unsigned short *)tuxtxt_defaultcolors, 0, tuxtxt_color_SIZECOLTABLE); ++ Menu_Init(menu, current_pid, menuitem, hotindex); + break; + case M_TRA: + saveconfig = 1; +@@ -1319,6 +1425,7 @@ + memset(&menu[Menu_Width*MenuLine[M_TRA] + 3+renderinfo.trans_mode ], 0x20,24-renderinfo.trans_mode); + Menu_HighlightLine(menu, MenuLine[menuitem], 1); + tuxtxt_setcolors(&renderinfo,(unsigned short *)tuxtxt_defaultcolors, 0, tuxtxt_color_SIZECOLTABLE); ++ Menu_Init(menu, current_pid, menuitem, hotindex); + break; + case M_PID: + { +@@ -1421,6 +1528,7 @@ + memset(&menu[Menu_Width*MenuLine[M_COL] + 3+renderinfo.color_mode ], 0x20,24-renderinfo.color_mode); + Menu_HighlightLine(menu, MenuLine[menuitem], 1); + tuxtxt_setcolors(&renderinfo,(unsigned short *)tuxtxt_defaultcolors, 0, tuxtxt_color_SIZECOLTABLE); ++ Menu_Init(menu, current_pid, menuitem, hotindex); + break; + case M_TRA: + saveconfig = 1; +@@ -1432,6 +1540,7 @@ + memset(&menu[Menu_Width*MenuLine[M_TRA] + 3+renderinfo.trans_mode ], 0x20,24-renderinfo.trans_mode); + Menu_HighlightLine(menu, MenuLine[menuitem], 1); + tuxtxt_setcolors(&renderinfo,(unsigned short *)tuxtxt_defaultcolors, 0, tuxtxt_color_SIZECOLTABLE); ++ Menu_Init(menu, current_pid, menuitem, hotindex); + break; + case M_PID: + if (!getpidsdone) +@@ -1731,8 +1840,8 @@ + memcpy(&menu[Menu_Width*MenuLine[M_SC1] + Menu_Width - 5], &configonoff[menulanguage][renderinfo.screen_mode1 ? 3 : 0], 3); + Menu_HighlightLine(menu, MenuLine[menuitem], 1); + +- ioctl(renderinfo.avs, AVSIOSSCARTPIN8, &fncmodes[renderinfo.screen_mode1]); +- ioctl(renderinfo.saa, SAAIOSWSS, &saamodes[renderinfo.screen_mode1]); ++ writeproc("/proc/stb/avs/0/sb", fncmodes[renderinfo.screen_mode1]); ++ writeproc("/proc/stb/denc/0/wss", saamodes[renderinfo.screen_mode1]); + + break; + +@@ -1857,7 +1966,8 @@ + } + + /* generate pagenumber */ +- temp_page |= Number << renderinfo.inputcounter*4; ++ if (renderinfo.inputcounter >= 0) ++ temp_page |= Number << renderinfo.inputcounter*4; + + renderinfo.inputcounter--; + +@@ -2318,8 +2428,8 @@ + else if (renderinfo.transpmode == 1) /* semi-transparent BG with FG text */ + { + /* restore videoformat */ +- ioctl(renderinfo.avs, AVSIOSSCARTPIN8, &renderinfo.fnc_old); +- ioctl(renderinfo.saa, SAAIOSWSS, &renderinfo.saa_old); ++ writeproc("/proc/stb/avs/0/sb", saved_pin8); ++ writeproc("/proc/stb/denc/0/wss", saved_wss); + + tuxtxt_ClearBB(&renderinfo,tuxtxt_color_transp); + tuxtxt_cache.pageupdate = 1; +@@ -2327,8 +2437,8 @@ + else /* TV mode */ + { + /* restore videoformat */ +- ioctl(renderinfo.avs, AVSIOSSCARTPIN8, &renderinfo.fnc_old); +- ioctl(renderinfo.saa, SAAIOSWSS, &renderinfo.saa_old); ++ writeproc("/proc/stb/avs/0/sb", saved_pin8); ++ writeproc("/proc/stb/denc/0/wss", saved_wss); + + tuxtxt_ClearFB(&renderinfo,tuxtxt_color_transp); + renderinfo.clearbbcolor = tuxtxt_cache.FullScrColor; +@@ -2765,8 +2875,8 @@ + case KEY_VOLUMEDOWN: RCCode = RC_MINUS; break; + case KEY_MUTE: RCCode = RC_MUTE; break; + case KEY_HELP: RCCode = RC_HELP; break; +- case KEY_SETUP: RCCode = RC_DBOX; break; +- case KEY_HOME: RCCode = RC_HOME; break; ++ case KEY_MENU: RCCode = RC_DBOX; break; ++ case KEY_EXIT: RCCode = RC_HOME; break; + case KEY_POWER: RCCode = RC_STANDBY; break; + } + return 1; +@@ -2794,10 +2904,3 @@ + + return 0; + } +-/* Local Variables: */ +-/* indent-tabs-mode:t */ +-/* tab-width:3 */ +-/* c-basic-offset:3 */ +-/* comment-column:0 */ +-/* fill-column:120 */ +-/* End: */ +diff -u tuxtxt_orig/tuxtxt.h tuxtxt/tuxtxt.h +--- tuxtxt_orig/tuxtxt.h 2008-12-26 19:41:28.000000000 +0100 ++++ tuxtxt/tuxtxt.h 2009-01-29 21:38:18.000000000 +0100 +@@ -1,3 +1,6 @@ ++#ifndef __tuxtxt_h__ ++#define __tuxtxt_h__ ++ + /****************************************************************************** + * <<< TuxTxt - Teletext Plugin >>> * + * * +@@ -7,7 +10,16 @@ + * and DBLuelle * + * russian and arabic support by Leonid Protasov * + * * +- ******************************************************************************/ ++ * ported 2006 to Dreambox 7025 / 32Bit framebuffer * ++ * by Seddi * ++ * * ++ * ported 32Bit framebuffer to Tuxtxt v1.99 (2008) * ++ * by the PLi team (Sat-Turner) * ++ * * ++ * ported to 1.106 (2008) * ++ * by the PLi team (pieterg) * ++ * * ++******************************************************************************/ + + #define TUXTXT_CFG_STANDALONE 0 // 1:plugin only 0:use library + #define TUXTXT_DEBUG 0 +@@ -37,7 +49,6 @@ + #include + + #include +-#include + #include + + +@@ -1091,3 +1102,5 @@ + /* comment-column:0 */ + /* fill-column:120 */ + /* End: */ ++ ++#endif