fix typo.
[vuplus_openvuplus_3.0] / meta-openvuplus / recipes-base / tuxcom / tuxbox-tuxcom-32bpp / 32bpp.diff
1 diff -Naur tuxcom.ori/tuxcom.c tuxcom/tuxcom.c
2 --- tuxcom.ori/tuxcom.c 2009-01-06 00:12:19.000000000 +0100
3 +++ tuxcom/tuxcom.c     2009-01-05 21:10:35.000000000 +0100
4 @@ -27,7 +27,7 @@
5   * GetRCCode  (Code from Tuxmail)
6   ******************************************************************************/
7  
8 -#ifndef HAVE_DREAMBOX_HARDWARE
9 +
10  
11  int GetRCCode(int mode)
12  {
13 @@ -36,7 +36,8 @@
14         struct input_event ev;
15         static __u16 rc_last_key = KEY_RESERVED;
16         static __u16 rc_last_code = KEY_RESERVED;
17 -       if(read(rc, &ev, sizeof(ev)) == sizeof(ev))
18 +       if ((read(rc[0], &ev, sizeof(ev)) == sizeof(ev)) ||
19 +           (rc[1] != -1 && read(rc[1], &ev, sizeof(ev)) == sizeof(ev)))
20         {
21                 if(ev.value)
22                 {
23 @@ -63,9 +64,9 @@
24                                 case KEY_GREEN:         rccode = RC_GREEN;              break;
25                                 case KEY_YELLOW:        rccode = RC_YELLOW;             break;
26                                 case KEY_BLUE:          rccode = RC_BLUE;               break;
27 -                               case KEY_HELP:          rccode = RC_HELP;               break;
28 -                               case KEY_SETUP:         rccode = RC_DBOX;               break;
29 -                               case KEY_HOME:          rccode = RC_HOME;               break;
30 +                               case KEY_INFO:          rccode = RC_HELP;               break;
31 +                               case KEY_MENU:          rccode = RC_DBOX;               break;
32 +                               case KEY_EXIT:          rccode = RC_HOME;               break;
33                                 case KEY_POWER:         rccode = RC_STANDBY;    break;
34                                 default:
35                                         if( ev.code > 0x7F )
36 @@ -118,176 +119,94 @@
37                 }
38         }
39  
40 -               rccode = -1;
41 -               usleep(1000000/100);
42 -               return 0;
43 -}
44 -
45 -#else
46 -
47 -int GetRCCode(int mode)
48 -{
49 -       static int count = 0;
50 -       //get code
51 -       static unsigned short LastKey = -1;
52 -       static char LastKBCode = 0x00;
53 -       rccode = -1;
54 -       int bytesavail = 0;
55 -       int bytesread = read(rc, &rccode, 2);
56 -       unsigned short tmprc;
57 -       kbcode = 0;
58 -
59 -       if (bytesread == 2)
60 -       {
61 -               if (read(rc, &tmprc, 2) == 2)
62 -               {
63 -                       if (rccode == tmprc && count >= 0)
64 -                               count++;
65 -               }
66 -       }
67 -
68 -
69 -       // Tastaturabfrage
70 -       ioctl(kb, FIONREAD, &bytesavail);
71 -       if (bytesavail>0)
72 -       {
73 -               char tch[100];
74 -               if (bytesavail > 99) bytesavail = 99;
75 -               read(kb,tch,bytesavail);
76 -               tch[bytesavail] = 0x00;
77 -               kbcode = tch[0];
78 -               LastKBCode = kbcode;
79 -               if (bytesavail == 1 && kbcode == 0x1b) { LastKey = RC_HOME ; rccode = -1  ; count = -1; return 1;} // ESC-Taste
80 -               if (bytesavail == 1 && kbcode == '\n') { LastKey = RC_OK   ; rccode = -1  ; count = -1; return 1;} // Enter-Taste
81 -               if (bytesavail == 1 && kbcode == '+' ) { LastKey = RC_PLUS ; rccode = -1  ; count = -1; return 1;}
82 -               if (bytesavail == 1 && kbcode == '-' ) { LastKey = RC_MINUS; rccode = -1  ; count = -1; return 1;}
83 -               if (bytesavail >= 3 && tch[0] == 0x1b && tch[1] == 0x5b)
84 -               {
85 -                       if (tch[2] == 0x41 )                                    { kbcode = LastKBCode = 0x00; rccode = RC_UP        ; LastKey = rccode; count = -1; return 1; }// Cursortasten
86 -                       if (tch[2] == 0x42 )                                    { kbcode = LastKBCode = 0x00; rccode = RC_DOWN      ; LastKey = rccode; count = -1; return 1; }// Cursortasten
87 -                       if (tch[2] == 0x43 )                                    { kbcode = LastKBCode = 0x00; rccode = RC_RIGHT     ; LastKey = rccode; count = -1; return 1; }// Cursortasten
88 -                       if (tch[2] == 0x44 )                                    { kbcode = LastKBCode = 0x00; rccode = RC_LEFT      ; LastKey = rccode; count = -1; return 1; }// Cursortasten
89 -                       if (tch[2] == 0x33 && tch[3] == 0x7e)                   { kbcode = LastKBCode = 0x00; rccode = RC_MINUS     ; LastKey = rccode; count = -1; return 1; }// entf-Taste
90 -                       if (tch[2] == 0x32 && tch[3] == 0x7e)                   { kbcode = LastKBCode = 0x00; rccode = RC_PLUS      ; LastKey = rccode; count = -1; return 1; }// einf-Taste
91 -                       if (tch[2] == 0x35 && tch[3] == 0x7e)                   { kbcode = LastKBCode = 0x00; rccode = RC_PLUS      ; LastKey = rccode; count = -1; return 1; }// PgUp-Taste
92 -                       if (tch[2] == 0x36 && tch[3] == 0x7e)                   { kbcode = LastKBCode = 0x00; rccode = RC_MINUS     ; LastKey = rccode; count = -1; return 1; }// PgDn-Taste
93 -                       if (tch[2] == 0x5b && tch[3] == 0x45)                   { kbcode = LastKBCode = 0x00; rccode = RC_RED       ; LastKey = rccode; count = -1; return 1; }// F5-Taste
94 -                       if (tch[2] == 0x31 && tch[3] == 0x37 && tch[4] == 0x7e) { kbcode = LastKBCode = 0x00; rccode = RC_GREEN     ; LastKey = rccode; count = -1; return 1; }// F6-Taste
95 -                       if (tch[2] == 0x31 && tch[3] == 0x38 && tch[4] == 0x7e) { kbcode = LastKBCode = 0x00; rccode = RC_YELLOW    ; LastKey = rccode; count = -1; return 1; }// F7-Taste
96 -                       if (tch[2] == 0x31 && tch[3] == 0x39 && tch[4] == 0x7e) { kbcode = LastKBCode = 0x00; rccode = RC_BLUE      ; LastKey = rccode; count = -1; return 1; }// F8-Taste
97 -                       if (tch[2] == 0x32 && tch[3] == 0x30 && tch[4] == 0x7e) { kbcode = LastKBCode = 0x00; rccode = RC_DBOX      ; LastKey = rccode; count = -1; return 1; }// F9-Taste
98 -                       if (tch[2] == 0x32 && tch[3] == 0x31 && tch[4] == 0x7e) { kbcode = LastKBCode = 0x00; rccode = RC_HELP      ; LastKey = rccode; count = -1; return 1; }// F10-Taste
99 -                       if (tch[2] == 0x32 && tch[3] == 0x33 && tch[4] == 0x7e) { kbcode = LastKBCode = 0x00; rccode = RC_MUTE      ; LastKey = rccode; count = -1; return 1; }// F11-Taste
100 -               }
101 -               if (mode == RC_EDIT)
102 -               {
103 -/*
104 -                       char tmsg[100];
105 -                       int i;
106 -                       sprintf(tmsg,"KeyboardCode:avail:%d, char:%c, rccode:%x ",bytesavail,(kbcode == 0x00 ? '*' : kbcode ),rccode);
107 -                       for (i = 0; i < bytesavail; i++) sprintf(tmsg,"%s%x",tmsg,tch[i]);
108 -                       MessageBox(tmsg,"",NOBUTTON);
109 -*/
110 -                       LastKey = rccode;
111 -                       count = -1;
112 -                       switch (rccode)
113 -                       {
114 -                               case KEY_0:
115 -                               case KEY_1:
116 -                               case KEY_2:
117 -                               case KEY_3:
118 -                               case KEY_4:
119 -                               case KEY_5:
120 -                               case KEY_6:
121 -                               case KEY_7:
122 -                               case KEY_8:
123 -                               case KEY_9:
124 -                                       // SMS-Style verhindern
125 -                                       rccode = -1;
126 -                                       break;
127 -                       }
128 -                       return 1;
129 -               }
130 -               else if (bytesread <= 0)
131 -               {
132 -                       if (kbcode == '0') { kbcode = 0x00;rccode = RC_0  ; LastKey = rccode; return 1;}
133 -                       if (kbcode == '1') { kbcode = 0x00;rccode = RC_1  ; LastKey = rccode; return 1;}
134 -                       if (kbcode == '2') { kbcode = 0x00;rccode = RC_2  ; LastKey = rccode; return 1;}
135 -                       if (kbcode == '3') { kbcode = 0x00;rccode = RC_3  ; LastKey = rccode; return 1;}
136 -                       if (kbcode == '4') { kbcode = 0x00;rccode = RC_4  ; LastKey = rccode; return 1;}
137 -                       if (kbcode == '5') { kbcode = 0x00;rccode = RC_5  ; LastKey = rccode; return 1;}
138 -                       if (kbcode == '6') { kbcode = 0x00;rccode = RC_6  ; LastKey = rccode; return 1;}
139 -                       if (kbcode == '7') { kbcode = 0x00;rccode = RC_7  ; LastKey = rccode; return 1;}
140 -                       if (kbcode == '8') { kbcode = 0x00;rccode = RC_8  ; LastKey = rccode; return 1;}
141 -                       if (kbcode == '9') { kbcode = 0x00;rccode = RC_9  ; LastKey = rccode; return 1;}
142 -               }
143 -       }
144 -       if (bytesread == 2)
145 +       count=0;
146 +       if(read(kb, &ev, sizeof(ev)) == sizeof(ev))
147         {
148 -               if (rccode == LastKey && LastKBCode != 0x00 && LastKBCode == kbcode)
149 -               {
150 -                               return 1;
151 -               }
152 -               LastKBCode = 0x00;
153 -               if (rccode == LastKey)
154 +               if(ev.value)
155                 {
156 -                       if (count < REPEAT_TIMER)
157 +                       if(ev.code == rc_last_key)
158                         {
159 -                               if (count >= 0)
160 +                               if (count < REPEAT_TIMER)
161 +                               {
162                                         count++;
163 -                               rccode = -1;
164 -                               return 1;
165 +                                       rccode = -1;
166 +                                       return 1;
167 +                               }
168                         }
169 -               }
170 -               else
171 -                       count = 0;
172 -               LastKey = rccode;
173 -               if ((rccode & 0xFF00) == 0x5C00)
174 -               {
175 -                       kbcode = 0;
176 -                       switch(rccode)
177 +                       else
178 +                               count = 0;
179 +                       rc_last_key = ev.code;
180 +                       switch(ev.code)
181                         {
182                                 case KEY_UP:            rccode = RC_UP;                 break;
183                                 case KEY_DOWN:          rccode = RC_DOWN;               break;
184                                 case KEY_LEFT:          rccode = RC_LEFT;               break;
185                                 case KEY_RIGHT:         rccode = RC_RIGHT;              break;
186                                 case KEY_OK:            rccode = RC_OK;                 break;
187 -                               case KEY_0:                     rccode = RC_0;                  break;
188 -                               case KEY_1:                     rccode = RC_1;                  break;
189 -                               case KEY_2:                     rccode = RC_2;                  break;
190 -                               case KEY_3:                     rccode = RC_3;                  break;
191 -                               case KEY_4:                     rccode = RC_4;                  break;
192 -                               case KEY_5:                     rccode = RC_5;                  break;
193 -                               case KEY_6:                     rccode = RC_6;                  break;
194 -                               case KEY_7:                     rccode = RC_7;                  break;
195 -                               case KEY_8:                     rccode = RC_8;                  break;
196 -                               case KEY_9:                     rccode = RC_9;                  break;
197                                 case KEY_RED:           rccode = RC_RED;                break;
198                                 case KEY_GREEN:         rccode = RC_GREEN;              break;
199                                 case KEY_YELLOW:        rccode = RC_YELLOW;             break;
200                                 case KEY_BLUE:          rccode = RC_BLUE;               break;
201 -                               case KEY_VOLUMEUP:      rccode = RC_PLUS;               break;
202 -                               case KEY_VOLUMEDOWN:rccode = RC_MINUS;          break;
203 -                               case KEY_MUTE:          rccode = RC_MUTE;               break;
204 -                               case KEY_HELP:          rccode = RC_HELP;               break;
205 -                               case KEY_SETUP:         rccode = RC_DBOX;               break;
206 -                               case KEY_HOME:          rccode = RC_HOME;               break;
207 +                               case KEY_INFO:          rccode = RC_HELP;               break;
208 +                               case KEY_MENU:          rccode = RC_DBOX;               break;
209 +                               case KEY_EXIT:          rccode = RC_HOME;               break;
210                                 case KEY_POWER:         rccode = RC_STANDBY;    break;
211 +                               default:
212 +                                       if( ev.code > 0x7F )
213 +                                       {
214 +                                               rccode = 0;
215 +                                               if( ev.code == 0x110 )
216 +                                               {
217 +                                                       rccode = RC_ON;
218 +                                               }
219 +                                       }
220 +                                       else
221 +                                       {
222 +                                               rccode = rctable[ev.code & 0x7F];
223 +                                       }
224 +                                       if( rc_last_code == RC_LSHIFT )
225 +                                       {
226 +                                               if( ev.code <= 0x56 )  //(sizeof(rcshifttable)/sizeof(int)-1)
227 +                                               {
228 +                                                       rccode = rcshifttable[ev.code];
229 +                                               }
230 +                                       }
231 +                                       else if( rc_last_code == RC_ALTGR )
232 +                                       {
233 +                                               if( ev.code <= 0x56 )  //(sizeof(rcaltgrtable)/sizeof(int)-1)
234 +                                               {
235 +                                                       rccode = rcaltgrtable[ev.code];
236 +                                               }
237 +                                       }
238 +                                       else if( rc_last_code == RC_ALT )
239 +                                       {
240 +                                               if((ev.code >=2) && ( ev.code <= 11 ))
241 +                                               {
242 +                                                       rccode = (ev.code-1) | 0x0200;
243 +                                               }
244 +                                       }
245 +//                                     if( !rccode )
246 +                                       {
247 +//                                             rccode = -1;
248 +                                       }
249 +
250                         }
251 +                       rc_last_code = rccode;
252                         return 1;
253                 }
254                 else
255                 {
256 -                       rccode &= 0x003F;
257 +                       rccode = -1;
258 +                       rc_last_key = KEY_RESERVED;
259 +                       rc_last_code = KEY_RESERVED;
260                 }
261 -               return 0;
262         }
263  
264                 rccode = -1;
265                 usleep(1000000/100);
266                 return 0;
267  }
268 -#endif
269 +
270  
271  /******************************************************************************
272   * MyFaceRequester
273 @@ -316,6 +235,8 @@
274         FT_Vector kerning;
275         FT_Error error;
276  
277 +       currentchar=currentchar & 0xFF;
278 +
279         if (currentchar == '\r') // display \r in windows edited files
280         {
281                 if(color != -1)
282 @@ -331,19 +252,15 @@
283         }
284         //load char
285  
286 -               if(!(glyphindex = FT_Get_Char_Index(face, currentchar)))
287 +               if(!(glyphindex = FT_Get_Char_Index(face, (int)currentchar)))
288                 {
289                         printf("TuxCom <FT_Get_Char_Index for Char \"%c\" failed\n", (int)currentchar);
290                         return 0;
291                 }
292  
293  
294 -#if FREETYPE_MAJOR == 2 && FREETYPE_MINOR == 0
295 +
296                 if((error = FTC_SBit_Cache_Lookup(cache, &desc, glyphindex, &sbit)))
297 -#else
298 -               FTC_Node anode;
299 -               if((error = FTC_SBitCache_Lookup(cache, &desc, glyphindex, &sbit, &anode)))
300 -#endif
301                 {
302                         printf("TuxCom <FTC_SBitCache_Lookup for Char \"%c\" failed with Errorcode 0x%.2X>\n", (int)currentchar, error);
303                         return 0;
304 @@ -376,7 +293,7 @@
305                                         {
306                                                 if(pitch*8 + 7-bit >= sbit->width) break; /* render needed bits only */
307  
308 -                                               if((sbit->buffer[row * sbit->pitch + pitch]) & 1<<bit) *(lbb + StartX + sx + sbit->left + kerning.x + x + var_screeninfo.xres*(StartY + sy - sbit->top + y)) = color;
309 +                                               if((sbit->buffer[row * sbit->pitch + pitch]) & 1<<bit) memcpy(lbb + StartX*4 + sx*4 + (sbit->left + kerning.x + x)*4 + fix_screeninfo.line_length*(StartY + sy - sbit->top + y),bgra[color],4);
310  
311                                                 x++;
312                                         }
313 @@ -481,38 +398,36 @@
314  void RenderBox(int sx, int sy, int ex, int ey, int mode, int color)
315  {
316         int loop;
317 +       int tx;
318         if(mode == FILL)
319         {
320                 for(; sy <= ey; sy++)
321                 {
322 -                       memset(lbb + StartX + sx + var_screeninfo.xres*(StartY + sy), color, ex-sx + 1);
323 +               for(tx=0; tx <= (ex-sx); tx++)  
324 +                       {
325 +                       memcpy(lbb + StartX*4 + sx*4 + (tx*4) + fix_screeninfo.line_length*(StartY + sy),bgra[color],4);
326 +                       }
327                 }
328         }
329         else
330         {
331 -               //hor lines
332 -
333 -                       for(loop = sx; loop <= ex; loop++)
334 -                       {
335 -                               *(lbb + StartX+loop + var_screeninfo.xres*(sy+StartY)) = color;
336 -                               *(lbb + StartX+loop + var_screeninfo.xres*(sy+1+StartY)) = color;
337 -
338 -                               *(lbb + StartX+loop + var_screeninfo.xres*(ey-1+StartY)) = color;
339 -                               *(lbb + StartX+loop + var_screeninfo.xres*(ey+StartY)) = color;
340 -                       }
341 -
342 -               //ver lines
343 -
344 -                       for(loop = sy; loop <= ey; loop++)
345 -                       {
346 -                               *(lbb + StartX+sx + var_screeninfo.xres*(loop+StartY)) = color;
347 -                               *(lbb + StartX+sx+1 + var_screeninfo.xres*(loop+StartY)) = color;
348 -
349 -                               *(lbb + StartX+ex-1 + var_screeninfo.xres*(loop+StartY)) = color;
350 -                               *(lbb + StartX+ex + var_screeninfo.xres*(loop+StartY)) = color;
351 -                       }
352 +               for(loop = sx; loop <= ex; loop++)
353 +               {
354 +                       memcpy(lbb + StartX*4+loop*4 + fix_screeninfo.line_length*(sy+StartY), bgra[color], 4);
355 +                       memcpy(lbb + StartX*4+loop*4 + fix_screeninfo.line_length*(sy+1+StartY), bgra[color], 4);
356 +                       memcpy(lbb + StartX*4+loop*4 + fix_screeninfo.line_length*(ey-1+StartY), bgra[color], 4);
357 +                       memcpy(lbb + StartX*4+loop*4 + fix_screeninfo.line_length*(ey+StartY), bgra[color], 4);
358 +               }
359 +               for(loop = sy; loop <= ey; loop++)
360 +               {
361 +                       memcpy(lbb + StartX*4+sx*4 + fix_screeninfo.line_length*(loop+StartY), bgra[color], 4);
362 +                       memcpy(lbb + StartX*4+(sx+1)*4 + fix_screeninfo.line_length*(loop+StartY), bgra[color], 4);
363 +                       memcpy(lbb + StartX*4+(ex-1)*4 + fix_screeninfo.line_length*(loop+StartY), bgra[color], 4);
364 +                       memcpy(lbb + StartX*4+ex*4 + fix_screeninfo.line_length*(loop+StartY), bgra[color], 4);
365 +               }
366         }
367  }
368 +
369  void SetLanguage()
370  {
371         if (langselect == BTN_AUTO)
372 @@ -540,7 +455,7 @@
373   * plugin_exec                                                                *
374   ******************************************************************************/
375  
376 -void plugin_exec(PluginParam *par)
377 +int main()
378  {
379         FT_Error error;
380  
381 @@ -552,9 +467,69 @@
382         //get params
383  
384  
385 -       fb = rc = sx = ex = sy = ey = -1;
386 +       kb = fb = sx = ex = sy = ey = -1;
387  
388 -       for(; par; par = par->next)
389 +       /* open Framebuffer */
390 +       fb=open("/dev/fb0", O_RDWR);
391 +
392 +       /* open Remote Control */
393 +       int cnt=0, rc_num=0;
394 +       rc[0]=rc[1]=-1;
395 +       
396 +       while(rc_num < 2)
397 +       {
398 +               struct stat s;
399 +               char tmp[128];
400 +               sprintf(tmp, "/dev/input/event%d", cnt);
401 +               if (stat(tmp, &s))
402 +                       break;
403 +               /* open Remote Control */
404 +               if ((rc[rc_num]=open(tmp, O_RDONLY | O_EXCL | O_NONBLOCK)) == -1)
405 +               {
406 +                       perror("TuxCom <open remote control>");
407 +                       return 0;
408 +               }
409 +               if (ioctl(rc[rc_num], EVIOCGNAME(128), tmp) < 0)
410 +                       perror("EVIOCGNAME failed");
411 +               if (!strstr(tmp, "remote control"))
412 +                       close(rc[rc_num]);
413 +               else
414 +                       ++rc_num;
415 +               ++cnt;
416 +       }
417 +//     fcntl(rc, F_SETFL, fcntl(rc, F_GETFL) | O_EXCL | O_NONBLOCK);
418 +
419 +       /* open dream ir keyboard */
420 +       cnt=0;
421 +       while(1)
422 +       {
423 +               struct stat s;
424 +               char tmp[128];
425 +               sprintf(tmp, "/dev/input/event%d", cnt);
426 +               if (stat(tmp, &s))
427 +                       break;
428 +               /* open keyboard */
429 +               if ((kb=open(tmp, O_RDONLY)) == -1)
430 +               {
431 +                       perror("TuxCom <open ir keyboard>");
432 +                       return 0;
433 +               }
434 +               if (ioctl(kb, EVIOCGNAME(128), tmp) < 0)
435 +                       perror("EVIOCGNAME failed");
436 +               if (strstr(tmp, "dreambox ir keyboard"))
437 +                       break;
438 +               close(kb);
439 +               kb=-1;
440 +               ++cnt;
441 +       }
442 +       fcntl(kb, F_SETFL, fcntl(kb, F_GETFL) | O_EXCL | O_NONBLOCK);
443 +
444 +       sx = 50;
445 +       ex = 670;
446 +       sy = 50;
447 +       ey = 526;
448 +
449 +/*     for(; par; par = par->next)
450         {
451                 if      (!strcmp(par->id, P_ID_FBUFFER)) fb = atoi(par->val);
452                 else if (!strcmp(par->id, P_ID_RCINPUT)) rc = atoi(par->val);
453 @@ -563,9 +538,7 @@
454                 else if (!strcmp(par->id, P_ID_OFF_Y))   sy = atoi(par->val);
455                 else if (!strcmp(par->id, P_ID_END_Y))   ey = atoi(par->val);
456         }
457 -#ifdef HAVE_DREAMBOX_HARDWARE
458 -       kb=open("/dev/vc/0", O_RDONLY);
459 -#endif
460 +*/
461  
462         if(fb == -1 || rc == -1 || sx == -1 || ex == -1 || sy == -1 || ey == -1)
463         {
464 @@ -574,18 +547,27 @@
465         }
466         //init framebuffer
467  
468 -       if(ioctl(fb, FBIOGET_FSCREENINFO, &fix_screeninfo) == -1)
469 +
470 +       if(ioctl(fb, FBIOGET_VSCREENINFO, &var_screeninfo) == -1)
471         {
472 -               printf("TuxCom <FBIOGET_FSCREENINFO failed>\n");
473 +               printf("TuxCom <FBIOGET_VSCREENINFO failed>\n");
474                 return;
475         }
476  
477 -       if(ioctl(fb, FBIOGET_VSCREENINFO, &var_screeninfo) == -1)
478 +       if (var_screeninfo.xres != 720)
479         {
480 -               printf("TuxCom <FBIOGET_VSCREENINFO failed>\n");
481 +           printf("TuxCom <set Autosize\n");
482 +           ex = var_screeninfo.xres - 50;
483 +           ey = var_screeninfo.yres - 50;
484 +       }
485 +
486 +       if(ioctl(fb, FBIOGET_FSCREENINFO, &fix_screeninfo) == -1)
487 +       {
488 +               printf("TuxCom <FBIOGET_FSCREENINFO failed>\n");
489                 return;
490         }
491  
492 +
493         if(ioctl(fb, FBIOPUTCMAP, &colormap) == -1)
494         {
495                 printf("TuxCom <FBIOPUTCMAP failed>\n");
496 @@ -643,17 +625,14 @@
497  
498         use_kerning = FT_HAS_KERNING(face);
499  
500 -#if FREETYPE_MAJOR  == 2 && FREETYPE_MINOR == 0
501 +
502         desc.image_type = ftc_image_mono;
503 -#else
504 -       desc.flags = FT_LOAD_MONOCHROME;
505 -#endif
506  
507  
508  
509         //init backbuffer
510  
511 -       if(!(lbb = malloc(var_screeninfo.xres*var_screeninfo.yres)))
512 +       if(!(lbb = malloc(3*fix_screeninfo.line_length*var_screeninfo.yres)))
513         {
514                 printf("TuxCom <allocating of Backbuffer failed>\n");
515                 FTC_Manager_Done(manager);
516 @@ -661,11 +640,11 @@
517                 munmap(lfb, fix_screeninfo.smem_len);
518                 return;
519         }
520 -       memset(lbb, 0, var_screeninfo.xres*var_screeninfo.yres);
521 +       memset(lbb, 0, 3*fix_screeninfo.line_length*var_screeninfo.yres);
522         RenderBox(0,0,var_screeninfo.xres,var_screeninfo.yres,FILL,BLACK);
523  
524         //open avs
525 -       if((avs = open(AVS, O_RDWR)) == -1)
526 +/*     if((avs = open(AVS, O_RDWR)) == -1)
527         {
528                 printf("TuxCom <open AVS>");
529                 return;
530 @@ -678,7 +657,7 @@
531                 printf("TuxCom <open SAA>");
532                 return;
533         }
534 -
535 +*/
536  
537  
538         //init data
539 @@ -687,8 +666,8 @@
540         curvisibility = 0;
541         singleview = 0;
542         textuppercase = 0;
543 -       screenmode=0;
544         filesize_in_byte = BTN_NO; // show human readable filesize
545 +       screenmode=0;
546         langselect = BTN_AUTO; // automatic
547         autosave = BTN_ASK; // ask on exit
548  
549 @@ -725,22 +704,18 @@
550  
551         SetLanguage();
552  
553 -       ioctl(saa, SAAIOGWSS, &saa_old);
554 -       ioctl(saa, SAAIOSWSS, &saamodes[screenmode]);
555 +//     ioctl(saa, SAAIOGWSS, &saa_old);
556 +//     ioctl(saa, SAAIOSWSS, &saamodes[screenmode]);
557         // setup screen
558         RenderFrame(LEFTFRAME);
559         RenderFrame(RIGHTFRAME);
560 -       memcpy(lfb, lbb, var_screeninfo.xres*var_screeninfo.yres);
561 +       memcpy(lfb, lbb, fix_screeninfo.line_length*var_screeninfo.yres);
562         printf("TuxCom init successful\n");
563  
564         // lock keyboard-conversions, this is done by the plugin itself
565         fclose(fopen(KBLCKFILE,"w"));
566  
567 -#ifdef HAVE_DREAMBOX_HARDWARE
568 -       fcntl(rc, F_SETFL, O_NONBLOCK);
569 -#else
570 -       fcntl(rc, F_SETFL, fcntl(rc, F_GETFL) &~ O_NONBLOCK);
571 -#endif
572 +//     fcntl(rc, F_SETFL, fcntl(rc, F_GETFL) &~ O_NONBLOCK);
573  
574         int dosave = autosave;
575         int firstentry = 1;
576 @@ -767,20 +742,11 @@
577                                 if (strcmp(szP,szPass) != 0) break;
578                                 RenderFrame(LEFTFRAME);
579                                 RenderFrame(RIGHTFRAME);
580 -                               memcpy(lfb, lbb, var_screeninfo.xres*var_screeninfo.yres);
581 +                               memcpy(lfb, lbb, fix_screeninfo.line_length*var_screeninfo.yres);
582                         }
583                 }
584                 firstentry = 0;
585  
586 -#ifdef HAVE_DREAMBOX_HARDWARE
587 -               if (kbcode != 0)
588 -               {
589 -                       if (kbcode == 0x09) // tab
590 -                       {
591 -                               rccode = (curframe == 1 ? RC_LEFT : RC_RIGHT);
592 -                       }
593 -               }
594 -#endif
595                 switch(rccode)
596                 {
597                                 case RC_HELP:
598 @@ -868,13 +834,13 @@
599                                                         break;
600                                                 }
601                                                 else
602 -                                               {                                                       
603 +                                               {
604                                                         char scriptfile[FILENAME_MAX];
605                                                         char* expos = strrchr(pfe->name,'.');
606                                                         if (expos && strlen(expos) > 0)
607                                                         {
608                                                                 struct stat st;
609 -                                                               sprintf(scriptfile,"%s%s%s",CONFIGDIR, "/tuxcom/",expos+1);
610 +                                                               sprintf(scriptfile,"%s%s%s","/etc/tuxbox/",expos+1);
611                                                                 if (lstat(scriptfile,&st) != -1)
612                                                                 {
613                                                                         char szCmd[4000];
614 @@ -1361,7 +1327,7 @@
615                         finfo[curframe].first     = finfo[curframe].selected - framerows+1;
616                 RenderFrame(LEFTFRAME);
617                 RenderFrame(RIGHTFRAME);
618 -               memcpy(lfb, lbb, var_screeninfo.xres*var_screeninfo.yres);
619 +               memcpy(lfb, lbb, fix_screeninfo.line_length*var_screeninfo.yres);
620  
621         }while(rccode != RC_HOME);
622  
623 @@ -1380,12 +1346,17 @@
624         unlink(KBLCKFILE);
625  
626         //restore videoformat
627 -       ioctl(avs, AVSIOSSCARTPIN8, &fnc_old);
628 -       ioctl(saa, SAAIOSWSS, &saa_old);
629 -       close(avs);
630 -       close(saa);
631 -
632 -       fcntl(rc, F_SETFL, O_NONBLOCK);
633 +//     ioctl(avs, AVSIOSSCARTPIN8, &fnc_old);
634 +//     ioctl(saa, SAAIOSWSS, &saa_old);
635 +//     close(avs);
636 +//     close(saa);
637 +
638 +//     fcntl(rc, F_SETFL, O_NONBLOCK);
639 +       if (rc[0] != -1)
640 +                       close(rc[0]);
641 +       if (rc[1] != -1)
642 +                       close(rc[1]);
643 +       close(kb);
644  
645         ClearEntries   (LEFTFRAME );
646         ClearEntries   (RIGHTFRAME);
647 @@ -1393,9 +1364,6 @@
648         ClearMarker    (RIGHTFRAME);
649         ClearZipEntries(LEFTFRAME );
650         ClearZipEntries(RIGHTFRAME);
651 -#ifdef HAVE_DREAMBOX_HARDWARE
652 -       if (kb != -1) close(kb);
653 -#endif
654         return;
655  }
656  
657 @@ -1447,7 +1415,7 @@
658                 RenderString(colorline[colortool[i]*NUM_LANG+language], (viewx/COLORBUTTONS) *i , viewy- FONT_OFFSET_BIG , viewx/COLORBUTTONS, CENTER, SMALL  , (i == 2 ? BLACK : WHITE));
659         }
660         if (refresh == YES)
661 -               memcpy(lfb, lbb, var_screeninfo.xres*var_screeninfo.yres);
662 +               memcpy(lfb, lbb, fix_screeninfo.line_length*var_screeninfo.yres);
663  
664  }
665  
666 @@ -1458,7 +1426,7 @@
667  
668  void RenderFrame(int frame)
669  {
670 -       if (singleview && curframe != frame)
671 +         if (singleview && curframe != frame)
672                 return;
673  
674         int row = 0;
675 @@ -1742,7 +1710,7 @@
676  
677                                         RenderBox(viewx/2 + 2* BORDERSIZE               , viewy-(viewy-he)/2 - 2*BORDERSIZE - BUTTONHEIGHT  , viewx/2 + 2* BORDERSIZE +BUTTONWIDTH   ,viewy-(viewy-he)/2- 2* BORDERSIZE  , GRID, (sel == 1 ? WHITE : GREEN));
678                                         RenderBox(viewx/2 + 2* BORDERSIZE             +1, viewy-(viewy-he)/2 - 2*BORDERSIZE - BUTTONHEIGHT+1, viewx/2 + 2* BORDERSIZE +BUTTONWIDTH -1,viewy-(viewy-he)/2- 2* BORDERSIZE-1, GRID, (sel == 1 ? WHITE : GREEN));
679 -                                       memcpy(lfb, lbb, var_screeninfo.xres*var_screeninfo.yres);
680 +                                       memcpy(lfb, lbb, fix_screeninfo.line_length*var_screeninfo.yres);
681                                         break;
682                                 case 2:
683                                         RenderBox(viewx/2 - 4* BORDERSIZE - BUTTONWIDTH - BUTTONWIDTH/2  , viewy-(viewy-he)/2 - 2*BORDERSIZE - BUTTONHEIGHT  , viewx/2 - 4* BORDERSIZE  - BUTTONWIDTH/2              ,viewy-(viewy-he)/2- 2* BORDERSIZE  , GRID, (sel == 0 ? WHITE : RED  ));
684 @@ -1753,7 +1721,7 @@
685  
686                                         RenderBox(viewx/2 + 4* BORDERSIZE + BUTTONWIDTH/2                , viewy-(viewy-he)/2 - 2*BORDERSIZE - BUTTONHEIGHT  , viewx/2 + 4* BORDERSIZE +BUTTONWIDTH + BUTTONWIDTH/2  ,viewy-(viewy-he)/2- 2* BORDERSIZE  , GRID, (sel == 2 ? BLACK : YELLOW ));
687                                         RenderBox(viewx/2 + 4* BORDERSIZE + BUTTONWIDTH/2              +1, viewy-(viewy-he)/2 - 2*BORDERSIZE - BUTTONHEIGHT+1, viewx/2 + 4* BORDERSIZE +BUTTONWIDTH + BUTTONWIDTH/2-1,viewy-(viewy-he)/2- 2* BORDERSIZE-1, GRID, (sel == 2 ? BLACK : YELLOW ));
688 -                                       memcpy(lfb, lbb, var_screeninfo.xres*var_screeninfo.yres);
689 +                                       memcpy(lfb, lbb, fix_screeninfo.line_length*var_screeninfo.yres);
690                                         break;
691                                 case 4:
692                                         RenderBox(viewx/2 - 4* BORDERSIZE - BUTTONWIDTH - BUTTONWIDTH/2  , viewy-(viewy-he)/2 - 4*BORDERSIZE - 2*BUTTONHEIGHT  , viewx/2 - 4* BORDERSIZE  - BUTTONWIDTH/2              ,viewy-(viewy-he)/2- 4* BORDERSIZE - BUTTONHEIGHT  , GRID, (sel == 0 ? WHITE : RED    ));
693 @@ -1770,7 +1738,7 @@
694  
695                                         RenderBox(viewx/2 + 2* BORDERSIZE                                , viewy-(viewy-he)/2 - 2*BORDERSIZE -   BUTTONHEIGHT  , viewx/2 + 4* BORDERSIZE +BUTTONWIDTH + BUTTONWIDTH/2  ,viewy-(viewy-he)/2- 2* BORDERSIZE                 , GRID, (sel == 4 ? WHITE : BLUE2  ));
696                                         RenderBox(viewx/2 + 2* BORDERSIZE                              +1, viewy-(viewy-he)/2 - 2*BORDERSIZE -   BUTTONHEIGHT+1, viewx/2 + 4* BORDERSIZE +BUTTONWIDTH + BUTTONWIDTH/2-1,viewy-(viewy-he)/2- 2* BORDERSIZE               -1, GRID, (sel == 4 ? WHITE : BLUE2  ));
697 -                                       memcpy(lfb, lbb, var_screeninfo.xres*var_screeninfo.yres);
698 +                                       memcpy(lfb, lbb, fix_screeninfo.line_length*var_screeninfo.yres);
699                                         break;
700                         }
701                         drawsel = 0;
702 @@ -1853,7 +1821,7 @@
703                         RenderBox((viewx-BUTTONWIDTH)/2 , viewy-(viewy-he)/2 - 2*BORDERSIZE - BUTTONHEIGHT, viewx - (viewx-BUTTONWIDTH)/2,viewy-(viewy-he)/2 - 2*BORDERSIZE , GRID, WHITE);
704                         break;
705         }
706 -       memcpy(lfb, lbb, var_screeninfo.xres*var_screeninfo.yres);
707 +       memcpy(lfb, lbb, fix_screeninfo.line_length*var_screeninfo.yres);
708  }
709  
710  /******************************************************************************
711 @@ -1882,15 +1850,9 @@
712         RenderBox((viewx-wi)/2 , (viewy-he) /2, viewx-(viewx-wi)/2, viewy-(viewy-he)/2, GRID, WHITE);
713         RenderString(pfe->name,(viewx-wi)/2+  2* BORDERSIZE , (viewy-he)/2 + 2*BORDERSIZE + FONTHEIGHT_BIG-FONT_OFFSET , wi, CENTER, BIG, WHITE);
714  
715 -       char sizeString[200];
716 -       GetSizeString(sizeString,pfe->fentry.st_size,1);
717 -       sprintf(sizeString,"%s byte(s)",sizeString);
718 -
719 -       RenderString(sizeString,(viewx-wi)/2+  2* BORDERSIZE , (viewy-he)/2 + 2*BORDERSIZE + 2*FONTHEIGHT_BIG-FONT_OFFSET , wi, CENTER, BIG, WHITE);
720 -
721 -       RenderString(info[INFO_ACCESSED*NUM_LANG+language],(viewx-wi)/2+ 3* BORDERSIZE , (viewy-he)/2 + 6*BORDERSIZE + (3)*FONTHEIGHT_BIG-FONT_OFFSET , wi, LEFT, BIG, WHITE);
722 -       RenderString(info[INFO_MODIFIED*NUM_LANG+language],(viewx-wi)/2+ 3* BORDERSIZE , (viewy-he)/2 + 6*BORDERSIZE + (4)*FONTHEIGHT_BIG-FONT_OFFSET , wi, LEFT, BIG, WHITE);
723 -       RenderString(info[INFO_CREATED *NUM_LANG+language],(viewx-wi)/2+ 3* BORDERSIZE , (viewy-he)/2 + 6*BORDERSIZE + (5)*FONTHEIGHT_BIG-FONT_OFFSET , wi, LEFT, BIG, WHITE);
724 +       RenderString(info[INFO_ACCESSED*NUM_LANG+language],(viewx-wi)/2+ 3* BORDERSIZE , (viewy-he)/2 + 6*BORDERSIZE + (2)*FONTHEIGHT_BIG-FONT_OFFSET , wi, LEFT, BIG, WHITE);
725 +       RenderString(info[INFO_MODIFIED*NUM_LANG+language],(viewx-wi)/2+ 3* BORDERSIZE , (viewy-he)/2 + 6*BORDERSIZE + (3)*FONTHEIGHT_BIG-FONT_OFFSET , wi, LEFT, BIG, WHITE);
726 +       RenderString(info[INFO_CREATED *NUM_LANG+language],(viewx-wi)/2+ 3* BORDERSIZE , (viewy-he)/2 + 6*BORDERSIZE + (4)*FONTHEIGHT_BIG-FONT_OFFSET , wi, LEFT, BIG, WHITE);
727         char tm[100];
728         strftime(tm,100,info[INFO_DATETIME *NUM_LANG+language],localtime(&pfe->fentry.st_atime));
729         RenderString(tm,viewx/2- 2* BORDERSIZE , (viewy-he)/2 + 6*BORDERSIZE + (3)*FONTHEIGHT_BIG-FONT_OFFSET , wi/2, RIGHT, BIG, WHITE);
730 @@ -2000,7 +1962,7 @@
731                         RenderBox(viewx/2 - 2* BORDERSIZE -BUTTONWIDTH+1, viewy-(viewy-he)/2 - 2*BORDERSIZE - BUTTONHEIGHT+1, viewx/2 - 2* BORDERSIZE             -1,viewy-(viewy-he)/2- 2* BORDERSIZE-1, GRID, (sel == YES ? WHITE : RED  ));
732                         RenderBox(viewx/2 + 2* BORDERSIZE               , viewy-(viewy-he)/2 - 2*BORDERSIZE - BUTTONHEIGHT  , viewx/2 + 2* BORDERSIZE +BUTTONWIDTH  ,viewy-(viewy-he)/2- 2* BORDERSIZE  , GRID, (sel == NO ? WHITE : GREEN));
733                         RenderBox(viewx/2 + 2* BORDERSIZE             +1, viewy-(viewy-he)/2 - 2*BORDERSIZE - BUTTONHEIGHT+1, viewx/2 + 2* BORDERSIZE +BUTTONWIDTH-1,viewy-(viewy-he)/2- 2* BORDERSIZE-1, GRID, (sel == NO ? WHITE : GREEN));
734 -                       memcpy(lfb, lbb, var_screeninfo.xres*var_screeninfo.yres);
735 +                       memcpy(lfb, lbb, fix_screeninfo.line_length*var_screeninfo.yres);
736                         drawsel = 0;
737                 }
738  
739 @@ -2041,7 +2003,7 @@
740                                 continue;
741                         *p=0;
742                         p++;
743 -                       p1=strchr(p,'\r'); // für Windows-Nutzer: '\r' überlesen
744 +                       p1=strchr(p,'\r'); // für Windows-Nutzer: '\r' überlesen
745                         if (p1 != NULL) *p1 = 0x00;
746                         if      ( !strcmp(line,"host") ) strcpy(entries[0], p);
747                         else if ( !strcmp(line,"port") ) strcpy(entries[1], p);
748 @@ -2144,7 +2106,7 @@
749                         RenderBox(viewx/2 - 2* BORDERSIZE -BUTTONWIDTH+1, viewy-(viewy-he)/2 - 2*BORDERSIZE - BUTTONHEIGHT+1, viewx/2 - 2* BORDERSIZE             -1,viewy-(viewy-he)/2- 2* BORDERSIZE-1, GRID, (sel == YES ? WHITE : RED  ));
750                         RenderBox(viewx/2 + 2* BORDERSIZE               , viewy-(viewy-he)/2 - 2*BORDERSIZE - BUTTONHEIGHT  , viewx/2 + 2* BORDERSIZE +BUTTONWIDTH  ,viewy-(viewy-he)/2- 2* BORDERSIZE  , GRID, (sel == NO ? WHITE : GREEN));
751                         RenderBox(viewx/2 + 2* BORDERSIZE             +1, viewy-(viewy-he)/2 - 2*BORDERSIZE - BUTTONHEIGHT+1, viewx/2 + 2* BORDERSIZE +BUTTONWIDTH-1,viewy-(viewy-he)/2- 2* BORDERSIZE-1, GRID, (sel == NO ? WHITE : GREEN));
752 -                       memcpy(lfb, lbb, var_screeninfo.xres*var_screeninfo.yres);
753 +                       memcpy(lfb, lbb, fix_screeninfo.line_length*var_screeninfo.yres);
754                         drawsel = 0;
755                 }
756                 if (end == YES)
757 @@ -2195,10 +2157,10 @@
758                                 sprintf(szEntry,mainmenu[i*NUM_LANG+language],mbox[filesize_in_byte*NUM_LANG+language]);
759                                 break;
760                         case 5: // set language
761 -                               sprintf(szEntry,mainmenu[i*NUM_LANG+language],mbox[langselect      *NUM_LANG+language]);
762 +                               sprintf(szEntry,mainmenu[i*NUM_LANG+language],mbox[langselect*NUM_LANG+language]);
763                                 break;
764                         case 6: // save settings
765 -                               sprintf(szEntry,mainmenu[i*NUM_LANG+language],mbox[autosave        *NUM_LANG+language]);
766 +                               sprintf(szEntry,mainmenu[i*NUM_LANG+language],mbox[autosave  *NUM_LANG+language]);
767                                 break;
768                         default:
769                                 strcpy(szEntry,mainmenu[i*NUM_LANG+language]);
770 @@ -2206,7 +2168,7 @@
771                 }
772                 RenderString(szEntry,(viewx-wi)/2+ BORDERSIZE , (viewy-he)/2 + BORDERSIZE + (i+1)*FONTHEIGHT_BIG-FONT_OFFSET , wi, CENTER, BIG, WHITE);
773         }
774 -       memcpy(lfb, lbb, var_screeninfo.xres*var_screeninfo.yres);
775 +       memcpy(lfb, lbb, fix_screeninfo.line_length*var_screeninfo.yres);
776         int drawsel = 0;
777         do{
778                 GetRCCode(RC_NORMAL);
779 @@ -2225,8 +2187,8 @@
780                                                                 return;
781                                                         case 2:
782                                                                 screenmode = 1-screenmode;
783 -                                                               ioctl(avs, AVSIOSSCARTPIN8, &fncmodes[screenmode]);
784 -                                                               ioctl(saa, SAAIOSWSS, &saamodes[screenmode]);
785 +                                                               //ioctl(avs, AVSIOSSCARTPIN8, &fncmodes[screenmode]);
786 +                                                               //ioctl(saa, SAAIOSWSS, &saamodes[screenmode]);
787                                                                 return;
788                                                         case 3:
789                                                                 SetPassword();
790 @@ -2342,7 +2304,7 @@
791                                 }
792                                 RenderString(szEntry,(viewx-wi)/2+ BORDERSIZE , (viewy-he)/2 + BORDERSIZE + (i+1)*FONTHEIGHT_BIG-FONT_OFFSET , wi, CENTER, BIG, WHITE);
793                         }
794 -                       memcpy(lfb, lbb, var_screeninfo.xres*var_screeninfo.yres);
795 +                       memcpy(lfb, lbb, fix_screeninfo.line_length*var_screeninfo.yres);
796                         drawsel = 0;
797                 }
798         }while(1);
799 @@ -2439,7 +2401,7 @@
800         colortool[3] = (pass == NO ? ACTION_INSTEXT  : ACTION_NOACTION);
801         RenderMenuLine(-1, EDIT);
802  
803 -       memcpy(lfb, lbb, var_screeninfo.xres*var_screeninfo.yres);
804 +       memcpy(lfb, lbb, fix_screeninfo.line_length*var_screeninfo.yres);
805  
806         do{
807                 while (GetRCCode(RC_EDIT) == 0);
808 @@ -2755,7 +2717,7 @@
809                         colortool[3] = ACTION_NOACTION;
810                 }
811                 RenderMenuLine(-1, EDIT);
812 -               memcpy(lfb, lbb, var_screeninfo.xres*var_screeninfo.yres);
813 +               memcpy(lfb, lbb, fix_screeninfo.line_length*var_screeninfo.yres);
814         }while(1);
815  
816         rccode = -1;
817 @@ -3808,7 +3770,7 @@
818                     p = p1+1;
819                         }
820                         pStop = p;
821 -                       memcpy(lfb, lbb, var_screeninfo.xres*var_screeninfo.yres);
822 +                       memcpy(lfb, lbb, fix_screeninfo.line_length*var_screeninfo.yres);
823                         while (GetRCCode(RC_NORMAL) == 0);
824                         switch (rccode)
825                         {
826 @@ -4227,7 +4189,7 @@
827                         }
828                         RenderBox(  viewx/6 +3*BORDERSIZE, BORDERSIZE+FONTHEIGHT_BIG  ,   viewx/6 + 4*BORDERSIZE, viewy-MENUSIZE             , FILL, WHITE);
829                         RenderBox(  viewx/3 -2*BORDERSIZE, BORDERSIZE+FONTHEIGHT_BIG  ,   viewx/3 -   BORDERSIZE, viewy-MENUSIZE             , FILL, WHITE);
830 -                       memcpy(lfb, lbb, var_screeninfo.xres*var_screeninfo.yres);
831 +                       memcpy(lfb, lbb, fix_screeninfo.line_length*var_screeninfo.yres);
832                         while (GetRCCode(RC_NORMAL) == 0);
833                         switch (rccode)
834                         {
835 @@ -4470,7 +4432,7 @@
836                                 continue;
837                         *p=0;
838                         p++;
839 -                       p1=strchr(p,'\r'); // für Windows-Nutzer: '\r' überlesen
840 +                       p1=strchr(p,'\r'); // für Windows-Nutzer: '\r' überlesen
841                         if (p1 != NULL) *p1 = 0x00;
842                         if      ( !strcmp(line,"host") ) strcpy(finfo[curframe].ftphost, p);
843                         else if ( !strcmp(line,"port") ) finfo[curframe].ftpport = atoi(p);
844 @@ -4733,7 +4695,7 @@
845  
846                 if (row > framerows - 2)
847                 {
848 -                       memcpy(lfb, lbb, var_screeninfo.xres*var_screeninfo.yres);
849 +                       memcpy(lfb, lbb, fix_screeninfo.line_length*var_screeninfo.yres);
850                         while (1)
851                         {
852                                 GetRCCode(RC_NORMAL);
853 @@ -4754,7 +4716,7 @@
854         }
855         if (row>0)
856         {
857 -               memcpy(lfb, lbb, var_screeninfo.xres*var_screeninfo.yres);
858 +               memcpy(lfb, lbb, fix_screeninfo.line_length*var_screeninfo.yres);
859                 while (1)
860                 {
861                         GetRCCode(RC_NORMAL);
862 @@ -4812,7 +4774,7 @@
863  
864         if (filesize_in_byte == BTN_NO && !forcebytes)
865         {               
866 -               if (size >= (unsigned long long)1024*1024*1024) // we use "real" GigaBytes ;)
867 +               if (size >= (unsigned long long )1024*1024*1024) // we use "real" GigaBytes ;)
868                 {
869                         sprintf(sizeString,"%.2f GB",((double)size)/(double)(1024*1024*1024));
870                         return;
871 @@ -4827,7 +4789,7 @@
872         {
873                 sprintf(sizeString,".%03lu%s",(unsigned long)(tmp % (unsigned long long)1000), sztmp);
874                 strcpy(sztmp,sizeString);
875 -               tmp /= (unsigned long long)1000;
876 +               tmp /= (unsigned long long )1000;
877         }
878         sprintf(sizeString,"%lu%s",(unsigned long)tmp,sztmp);
879  
880 @@ -4852,10 +4814,10 @@
881         finfo[LEFTFRAME].sort = SORT_UP;
882         finfo[RIGHTFRAME].sort = SORT_UP;
883  
884 -       fp = fopen( CONFIGDIR "/tuxcom.conf", "r" );
885 +       fp = fopen( "/etc/tuxbox/tuxcom.conf", "r" );
886         if ( !fp )
887         {
888 -               printf("tuxcom: could not open " CONFIGDIR "/tuxcom.conf !!!\n");
889 +               printf("tuxcom: could not open /etc/tuxbox/tuxcom.conf !!!\n");
890         }
891         else
892         {
893 @@ -4979,10 +4941,10 @@
894         FILE *fp;
895  
896  
897 -       fp = fopen( CONFIGDIR "/tuxcom.conf", "w" );
898 +       fp = fopen( "/etc/tuxbox/tuxcom.conf", "w" );
899         if ( !fp )
900         {
901 -               printf("tuxcom: could not open " CONFIGDIR "/tuxcom.conf !!!\n");
902 +               printf("tuxcom: could not open /etc/tuxbox/tuxcom.conf !!!\n");
903         }
904         else
905         {
906 diff -Naur tuxcom.ori/tuxcom.h tuxcom/tuxcom.h
907 --- tuxcom.ori/tuxcom.h 2009-01-06 00:12:19.000000000 +0100
908 +++ tuxcom/tuxcom.h     2009-01-05 18:31:06.000000000 +0100
909 @@ -22,7 +22,7 @@
910         Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA
911  */
912  
913 -#include <config.h>
914 +//#include <config.h>
915  #include <errno.h>
916  #include <locale.h>
917  #include <fcntl.h>
918 @@ -37,10 +37,10 @@
919  #include <sys/mman.h>
920  #include <sys/dir.h>
921  #include <sys/stat.h>
922 -#include <plugin.h>
923 +//#include <plugin.h>
924  
925 -#include <dbox/avs_core.h>
926 -#include <dbox/saa7126_core.h>
927 +//#include <dbox/avs_core.h>
928 +//#include <dbox/saa7126_core.h>
929  
930  #include <netinet/in.h>
931  #include <netdb.h>
932 @@ -53,16 +53,14 @@
933  #include FT_CACHE_SMALL_BITMAPS_H
934  
935  
936 -#ifndef HAVE_DREAMBOX_HARDWARE
937  #include <linux/input.h>
938 -#endif
939  
940 -#define AVS "/dev/dbox/avs0"
941 -#define SAA "/dev/dbox/saa0"
942 +//#define AVS "/dev/dbox/avs0"
943 +//#define SAA "/dev/dbox/saa0"
944  
945  #define MENUROWS      10
946  #define MENUITEMS     10
947 -#define MENUSIZE       59
948 +#define MENUSIZE       63
949  #define MINBOX        380
950  #define BUTTONWIDTH   114
951  #define BUTTONHEIGHT  30
952 @@ -72,72 +70,15 @@
953  #define RIGHTFRAME   1
954  
955  #define DEFAULT_PATH "/"
956 -#define charset " abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789#!$%&?*()@\\/=<>+-_,.;:"
957 +#define charset " aäbcdefghijklmnoöpqrstuüvwxyzAÄBCDEFGHIJKLMNOÖPQRSTUÜVWXYZ0123456789#!$%&?*()@\\/=<>+-_,.;:¤^°][}{'`µ|"
958  
959 +#define _FILE_OFFSET_BITS 64
960  #define FILEBUFFER_SIZE (100 * 1024) // Edit files up to 100k
961  #define FTPBUFFER_SIZE  (200 * 1024) // FTP Download Buffer size
962  
963 -#define MSG_VERSION    "Tuxbox Commander Version 1.16"
964 +#define MSG_VERSION    "Tuxbox Commander E2 Ver. 1.16\n"
965  #define MSG_COPYRIGHT  "© dbluelle 2004-2007"
966  
967 -#ifdef HAVE_DREAMBOX_HARDWARE
968 -
969 -//rc codes
970 -#define KEY_0          0x5C00
971 -#define KEY_1          0x5C01
972 -#define KEY_2          0x5C02
973 -#define KEY_3          0x5C03
974 -#define KEY_4          0x5C04
975 -#define KEY_5          0x5C05
976 -#define KEY_6          0x5C06
977 -#define KEY_7          0x5C07
978 -#define KEY_8          0x5C08
979 -#define KEY_9          0x5C09
980 -#define KEY_POWER      0x5C0C
981 -#define KEY_UP         0x5C0E
982 -#define KEY_DOWN       0x5C0F
983 -#define KEY_VOLUMEUP   0x5C16
984 -#define KEY_VOLUMEDOWN 0x5C17
985 -#define KEY_HOME       0x5C20
986 -#define KEY_SETUP      0x5C27
987 -#define KEY_MUTE       0x5C28
988 -#define KEY_RED                0x5C2D
989 -#define KEY_RIGHT      0x5C2E
990 -#define KEY_LEFT       0x5C2F
991 -#define KEY_OK         0x5C30
992 -#define KEY_BLUE       0x5C3B
993 -#define KEY_YELLOW     0x5C52
994 -#define KEY_GREEN      0x5C55
995 -#define KEY_HELP       0x5C82
996 -
997 -#define        RC_0            0x00
998 -#define        RC_1            0x01
999 -#define        RC_2            0x02
1000 -#define        RC_3            0x03
1001 -#define        RC_4            0x04
1002 -#define        RC_5            0x05
1003 -#define        RC_6            0x06
1004 -#define        RC_7            0x07
1005 -#define        RC_8            0x08
1006 -#define        RC_9            0x09
1007 -#define        RC_RIGHT        0x0A
1008 -#define        RC_LEFT         0x0B
1009 -#define        RC_UP           0x0C
1010 -#define        RC_DOWN         0x0D
1011 -#define        RC_OK           0x0E
1012 -#define        RC_MUTE         0x0F
1013 -#define        RC_STANDBY      0x10
1014 -#define        RC_GREEN        0x11
1015 -#define        RC_YELLOW       0x12
1016 -#define        RC_RED          0x13
1017 -#define        RC_BLUE         0x14
1018 -#define        RC_PLUS         0x15
1019 -#define        RC_MINUS        0x16
1020 -#define        RC_HELP         0x17
1021 -#define        RC_DBOX         0x18
1022 -#define        RC_HOME         0x1F
1023 -
1024 -#else
1025  // rc codes
1026  #define        RC_0                    '0'
1027  #define        RC_1                    '1'
1028 @@ -225,7 +166,7 @@
1029  int rcaltgrtable[] =
1030  {
1031     0x00, RC_ESC, 0x00, '²', '³', 0x00, 0x00, 0x00, '{', '[', ']', '}', '\\', 0x00, 0x00, 0x00,
1032 -   '@',  0x00, '\80', 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, '~', RC_RET1, RC_STRG, 0x00, 0x00,
1033 +   '@',  0x00, '¤', 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, '~', RC_RET1, RC_STRG, 0x00, 0x00,
1034     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, RC_LSHIFT, 0x00, 0x00, 0x00, 0x00, 0x00,
1035     0x00,  0x00, 'µ', 0x00, 0x00, 0x00, RC_RSHIFT, 0x00, RC_ALT, 0x20, RC_CAPSLOCK,RC_F1,RC_F2,RC_F3,RC_F4,RC_F5,
1036     RC_F6,RC_F7,RC_F8,RC_F9,RC_F10,RC_NUM,RC_ROLLEN,0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1037 @@ -247,13 +188,13 @@
1038  #define KBC_PAGEDOWN   0x0C
1039  #define KBC_RETURN     0x0D
1040  
1041 -#endif
1042  #define KBLCKFILE "/tmp/keyboard.lck"                                                                          //! file to lock keyboard-conversion
1043  
1044  
1045  //freetype stuff
1046  
1047 -#define FONT FONTDIR "/pakenham.ttf"
1048 +//#define FONT "/usr/share/fonts/md_khmurabi_10.ttf"
1049 +#define FONT "/usr/share/fonts/pakenham.ttf"
1050  // if font is not in usual place, we look here:
1051  #define FONT2 "/var/tuxbox/config/enigma/fonts/pakenham.ttf"
1052  
1053 @@ -266,11 +207,7 @@
1054  FTC_Manager            manager;
1055  FTC_SBitCache          cache;
1056  FTC_SBit               sbit;
1057 -#if FREETYPE_MAJOR  == 2 && FREETYPE_MINOR == 0
1058  FTC_Image_Desc         desc;
1059 -#else
1060 -FTC_ImageTypeRec       desc;
1061 -#endif
1062  FT_Face                        face;
1063  FT_UInt                        prev_glyphindex;
1064  FT_Bool                        use_kerning;
1065 @@ -297,6 +234,14 @@
1066  struct fb_fix_screeninfo fix_screeninfo;
1067  struct fb_var_screeninfo var_screeninfo;
1068  
1069 +unsigned char bgra[][4] = { 
1070 +"\x00\x00\x00\x00", "\xFF\xFF\xFF\xFF", "\x00\x00\x00\xFF", "\x80\x00\x00\xFF",
1071 +"\xFF\x80\x00\xFF", "\x00\xC0\xFF\xFF", "\x00\xD0\x00\xFF", "\x00\xE8\xE8\xFF",
1072 +"\x00\x00\xFF\xFF", "\xB0\xB0\xB0\xFF", "\x00\xFF\x00\xFF", "\x50\x50\x50\xFF",
1073 +"\x80\x00\x00\xC0", "\x50\x50\x50\xC0", "\xFF\x40\x00\xFf" };
1074 +
1075 +
1076 +
1077  unsigned short rd[] = {0xFF<<8, 0x00<<8, 0x00<<8, 0x00<<8, 0xFF<<8, 0x00<<8, 0xE8<<8, 0xFF<<8, 0xb0<<8, 0x00<<8, 0x50<<8, 0x00<<8, 0x50<<8, 0x00<<8};
1078  unsigned short gn[] = {0xFF<<8, 0x00<<8, 0x00<<8, 0x80<<8, 0xC0<<8, 0xd0<<8, 0xE8<<8, 0x00<<8, 0xb0<<8, 0xff<<8, 0x50<<8, 0x00<<8, 0x50<<8, 0x40<<8};
1079  unsigned short bl[] = {0xFF<<8, 0x00<<8, 0x80<<8, 0xFF<<8, 0x00<<8, 0x00<<8, 0x00<<8, 0x00<<8, 0xb0<<8, 0x00<<8, 0x50<<8, 0x80<<8, 0x50<<8, 0xff<<8};
1080 @@ -307,9 +252,7 @@
1081  int trans_map     [] = {BLUE1,BLUE_TRANSP,TRANSP};
1082  int trans_map_mark[] = {GRAY2,GRAY_TRANSP,GRAY_TRANSP};
1083  
1084 -#ifndef HAVE_DREAMBOX_HARDWARE
1085  struct input_event ev;
1086 -#endif
1087  
1088  unsigned short rccode;
1089  char kbcode;
1090 @@ -317,7 +260,7 @@
1091  //some data
1092  
1093  int avs, saa, fnc_old, saa_old, screenmode;
1094 -int rc, fb, kb;
1095 +int rc[2], fb, kb;
1096  int sx, ex, sy, ey;
1097  int PosX, PosY, StartX, StartY, FrameWidth, NameWidth, SizeWidth;
1098  int curframe, cursort, curvisibility, singleview;
1099 @@ -339,8 +282,8 @@
1100  char szPass[20];
1101  long commandsize;
1102  
1103 -int fncmodes[] = {AVS_FNCOUT_EXT43, AVS_FNCOUT_EXT169};
1104 -int saamodes[] = {SAA_WSS_43F, SAA_WSS_169F};
1105 +//int fncmodes[] = {AVS_FNCOUT_EXT43, AVS_FNCOUT_EXT169};
1106 +//int saamodes[] = {SAA_WSS_43F, SAA_WSS_169F};
1107  
1108  FILE *conf;
1109  int language, langselect, autosave, filesize_in_byte;
1110 @@ -466,13 +409,13 @@
1111  
1112  char *numberchars[] = {  "0#!$%&?*()@\\",
1113                                  "1/=<>+-_,.;:" ,
1114 -                                "abc2",
1115 -                                "def3",
1116 +                                "aäbc2",
1117 +                                "de¤f3",
1118                                  "ghi4",
1119                                  "jkl5",
1120 -                                "mno6",
1121 +                                "mnoö6",
1122                                  "pqrs7",
1123 -                                "tuv8",
1124 +                                "tuüv8",
1125                                  "wxyz9" };
1126  
1127  char *info[]   = { "(select 'hidden' to copy in background)"               ,"('versteckt' wählen zum Kopieren im Hintergrund)"              ,"(Seleziona 'nascosto' per copiare in background)"              ,"(välj 'gömd' för att kopiera i bakgrunden)"        ,"(Seleccionar 'Escondido' para copiar em background)"  ,
1128 @@ -599,7 +542,7 @@
1129                       "toggle 16:9 mode"                   , "16:9-Modus setzen"                         ,"Passa a modalità 16:9"                     ,"växla 16:9 läge"                     ,"Mudar para 16:9"                    ,
1130                       "set password"                       , "Passwort setzen"                           ,"Imposta password"                          ,"sätt lösenord"                       ,"Por password"                       ,
1131                       "show filesizes in byte <%s>"        , "Dateigrössen in Byte anzeigen <%s>"        ,"show filesizes in byte <%s>"               ,"show filesizes in byte <%s>"         ,"show filesizes in byte <%s>"        ,
1132 -                     "language/Sprache/Lingua/Språk: <%s>", "Sprache/language/Lingua/Språk: <%s>"       ,"Lingua/language/Sprache/Språk: <%s>"       ,"Lingua/language/Sprache/Språk: <%s>" ,"Lingua/language/Sprache/Språk: <%s>",
1133 +                     "Language/Sprache/Lingua/Språk: <%s>", "Sprache/Language/Lingua/Språk: <%s>"       ,"Lingua/Language/Sprache/Språk: <%s>"       ,"Lingua/Language/Sprache/Språk: <%s>" ,"Lingua/Language/Sprache/Språk: <%s>",
1134                       "save settings on exit: <%s>"        , "Einstellungen beim Beenden speichern: <%s>","Salvare le impostazioni in uscita: <%s>"   ,"spara inställningar vid avslut: <%s>","Gravar e sair: <%s>"                ,
1135                       "save settings now"                  , "Einstellungen jetzt speichern"             ,"Salvare le impostazioni adesso"            ,"spara inställningar nu"              ,"Gravar configuracoes agora"         };
1136