TuxTxt Font 2004-10-24

Games, Plugins, Utils, Tools, 3rdParty, etc...
Fred Kellner
Interessierter
Interessierter
Beiträge: 22
Registriert: Mittwoch 27. Oktober 2004, 13:11

Beitrag von Fred Kellner »

Noch ein Wunsch für TuxTxt:

Es wäre super, wenn man den Darstellungsmodus beim Einschalten von TuxTxt bestimmen könnte. Beim Loewe-TV wird der zuletzt gewählte Modus gespeichert und sofort wieder angezeigt.

Ich denke, alle Neutrino-User mit 16:9-TV wären darüber froh!
Regloh
Semiprofi
Semiprofi
Beiträge: 1470
Registriert: Donnerstag 14. März 2002, 07:14

Beitrag von Regloh »

also wenn ich im tuxtxt config-menü 16:9 einstelle, dann ist tuxtxt immer in 16:9. wenn tuxtxt läuft - dbox drücken.
Regloh
Gorcon
Tuxboxer
Tuxboxer
Beiträge: 5873
Registriert: Samstag 23. Februar 2002, 22:46

Beitrag von Gorcon »

Ja, das ist aber schon sehr lange so drinn. ;)
Gruß Gorcon
rolandm
Einsteiger
Einsteiger
Beiträge: 106
Registriert: Dienstag 17. August 2004, 18:29

Beitrag von rolandm »

Er meinte sicher den split mode (VT-Vollbild, geteilt mit TV und Topmenu oder nur mit TV). Der wird (noch) nicht gespeichert, und viele 16:9 Benutzer werden sicher den letzteren als Default bevorzugen (was die Alternative zur Speicherung wäre).
(Ich denke, die Einstellung des Transparenz-Mode dagegen brächte wenig.)

Nachteil am Speichern des split mode wäre vielleicht bei einigen (wie mir), daß dann sehr oft gespeichert würde, was auf die Lebensdauer der Flashes ginge. Ich bin zwar immernoch der Meinung, daß das bei modernen Flashes eigentlich kaum mehr eine Rolle spielen sollte (solange es max. wenige Schreibzugriffe am Tag wären), die Flashes in meiner Box scheinen mich aber gerade eines besseren belehren zu wollen... :-?
Gorcon
Tuxboxer
Tuxboxer
Beiträge: 5873
Registriert: Samstag 23. Februar 2002, 22:46

Beitrag von Gorcon »

Er meinte sicher den split mode (VT-Vollbild, geteilt mit TV und Topmenu oder nur mit TV). Der wird (noch) nicht gespeichert, und viele 16:9 Benutzer werden sicher den letzteren als Default bevorzugen (was die Alternative zur Speicherung wäre).
Wieso der ist doch dann ebenso im 16:9 Modus wenn man diesen vorher bei Text einstellst.

Ich bin mit der Darstellung jetzt jedenfalls sehr zufrieden. Der Untertitel bei Premiere funktioniert jetzt auch.
Super Arbeit. 8)
Gruß Gorcon
Fred Kellner
Interessierter
Interessierter
Beiträge: 22
Registriert: Mittwoch 27. Oktober 2004, 13:11

Beitrag von Fred Kellner »

Sorry für die Verwirrung, ich dachte, ich hätte mich klar ausgedrückt.

Also, bei meinem Loewe sieht der Videotext nach einem Tastendruck (T) so aus:
LoeweTxt 16:9 Text/Bild

Bei TuxTxt wird der VT immer erst im Vollbild angezeigt und erst nach 2xMinustaste kommt der Split-Screen.

Das muss ja gar nicht jedes mal ins Flash gespeichert werden, eine Option im Setup würde reichen.
dbluelle
Contributor
Beiträge: 319
Registriert: Samstag 29. Mai 2004, 18:49

Beitrag von dbluelle »

Hallo Leute,

Ich habe neue Binaries von Tuxtxt online gestellt:

- Einige Fehler bzgl. der Anpassung der Spaltenbreite behoben (könnte auch Auswirkungen auf die Lesbarkeit haben).
- Wenn in einer Seite die 1. Spalte leer ist (Ist bei 99 % der Seiten der Fall), werden nur 39 Spalten angezeigt (kann auch die Lesbarkeit erhöhen).
- rolandm's Anpassungen bzgl. dem variablen TTFWIDTHFACTOR eingebaut.

Damit kann dann jeder mal andere Fonts ausprobieren.
(Für den Original-Font gilt der Wert 4)

Als kleine Anregung:
Ich habe einen Freeware-Font entdeckt, der bei mir ganz gut aussieht:
http://www.blau-weissoedingen.de/dreambox/tuxtxt.ttf
(Es fehlen allerdings einige Sonderzeichen)

Um ihn zu verwenden muss in /var/tuxbox/config/tuxtxt/tuxtxt2.conf TTFWidthFactor 2 gesetzt werden.

Viel Spasss damit,

dbluelle
Steffi
Einsteiger
Einsteiger
Beiträge: 204
Registriert: Dienstag 12. März 2002, 07:40

Beitrag von Steffi »

Hallo dbluelle,

leider bekomme ich mit deiner dBox2-Version folgenden Fehler:

Code: Alles auswählen

undefined symbol: tuxbox_get_vendor
Das Plugin startet deshalb nicht und hinterlässt das LCD-Display in einem undefinierten Zustand.

Steffi
PLi®
Interessierter
Interessierter
Beiträge: 27
Registriert: Dienstag 25. Mai 2004, 20:31

Beitrag von PLi® »

dbluelle hat geschrieben:Hallo Leute,

Ich habe neue Binaries von Tuxtxt online gestellt:

- Einige Fehler bzgl. der Anpassung der Spaltenbreite behoben (könnte auch Auswirkungen auf die Lesbarkeit haben).
- Wenn in einer Seite die 1. Spalte leer ist (Ist bei 99 % der Seiten der Fall), werden nur 39 Spalten angezeigt (kann auch die Lesbarkeit erhöhen).
- rolandm's Anpassungen bzgl. dem variablen TTFWIDTHFACTOR eingebaut.

Damit kann dann jeder mal andere Fonts ausprobieren.
(Für den Original-Font gilt der Wert 4)

Als kleine Anregung:
Ich habe einen Freeware-Font entdeckt, der bei mir ganz gut aussieht:
http://www.blau-weissoedingen.de/dreambox/tuxtxt.ttf
(Es fehlen allerdings einige Sonderzeichen)

Um ihn zu verwenden muss in /var/tuxbox/config/tuxtxt/tuxtxt2.conf TTFWidthFactor 2 gesetzt werden.

Viel Spasss damit,

dbluelle
I cannot find this version in CVS. When is it checked in?

Peter
dbluelle
Contributor
Beiträge: 319
Registriert: Samstag 29. Mai 2004, 18:49

Beitrag von dbluelle »

@Steffi

Die Funktion tuxbox_get_vendor steht auch so im CVS drin, sollte also auch in jedem Image definiert sein :gruebel:

Da ich selber nicht auf der DBox testen kann, kann ich dir leider auch nicht sagen, woran es kliegt :cry:
Eventuell weiss rolandm hier Rat?

@Pli

I've send the code to AlexW a week ago, but he hasn't checked in yet :cry:

If you want to play with it, here is the diff:

Code: Alles auswählen

diff -Naur -w orig/tuxtxt.c ok/tuxtxt.c
--- orig/tuxtxt.c	2004-10-24 13:55:28.000000000 +0200
+++ ok/tuxtxt.c	2004-10-30 16:07:22.000000000 +0200
@@ -409,7 +409,19 @@
 {
 	memset(lfb, color, 2*var_screeninfo.xres*var_screeninfo.yres);
 }
-
+void SetPosX(int column)
+{
+#if CFGTTF
+		int abx = (displaywidth)/(((displaywidth)%(40-nofirst))+1);// distance between 'inserted' pixels
+		PosX = StartX;
+		int i;
+		for (i = 0; i < column-nofirst; i++)
+			PosX += fontwidth+(((PosX-sx) / abx) < ((PosX+fontwidth-sx) /abx) ? 1 : 0);
+//		PosX = StartX + (column-nofirst)*fontwidth + ((column-nofirst)*fontwidth/abx);
+#else
+		PosX = StartX + (column-nofirst)*fontwidth;
+#endif
+}
 
 void plugin_exec(PluginParam *par)
 {
@@ -442,7 +454,7 @@
 			ey = atoi(par->val);
 	}
 
-	if (vtxtpid == -1 || fb == -1 || lcd == -1 || rc == -1 || sx == -1 || ex == -1 || sy == -1 || ey == -1)
+	if (vtxtpid == -1 || fb == -1 || rc == -1 || sx == -1 || ex == -1 || sy == -1 || ey == -1)
 	{
 		printf("TuxTxt <Invalid Param(s)>\n");
 		return;
@@ -691,6 +703,8 @@
 				showhex = ival & 1;
 			else if (1 == sscanf(line, "OverlayTransparency %x", &ival))
 				tr1[transp2-1] = tr2[transp2-1] = ival & 0xFFFF;
+			else if (1 == sscanf(line, "TTFWidthFactor %d", &ival))
+	            TTFWIDTHFACTOR = ival;
 		}
 		fclose(conf);
 	}
@@ -721,18 +735,19 @@
 #if CFGTTF 
 
 	/* calculate font dimensions */
+	displaywidth = (ex-sx);
 	fontheight = (ey-sy) / 25;
 	fontwidth = fontwidth_normal = (ex-sx) / 40;
-	fontwidth_topmenumain = (ex-sx) * 3 / 4 / 40;
-	fontwidth_topmenusmall = (ex-sx - 40*fontwidth_topmenumain) / TOPMENUCHARS;
-	fontwidth_small = (ex-sx) / 2 / 40;
+	fontwidth_topmenumain = (TV43STARTX-sx) / 40;
+	fontwidth_topmenusmall = (ex- TV43STARTX) / TOPMENUCHARS;
+	fontwidth_small = (TV169FULLSTARTX-sx)  / 40;
 	ymosaic[0] = 0; /* y-offsets for 2*3 mosaic */
 	ymosaic[1] = (fontheight + 1) / 3;
 	ymosaic[2] = (fontheight * 2 + 1) / 3;
 	ymosaic[3] = fontheight;
 
 	/* center screen */
-	StartX = sx + (((ex-sx) - 40*fontwidth) / 2);
+	StartX = sx; //+ (((ex-sx) - 40*fontwidth) / 2);
 	StartY = sy + (((ey-sy) - 25*fontheight) / 2);
 
 	typettf.font.face_id = (FTC_FaceID) TUXTXTTTF;
@@ -1056,6 +1071,7 @@
 			fprintf(conf, "SwapUpDown %d\n", swapupdown);
 			fprintf(conf, "ShowHexPages %d\n", showhex);
 			fprintf(conf, "OverlayTransparency %X\n", tr1[transp2-1]);
+			fprintf(conf, "TTFWidthFactor %d\n", TTFWIDTHFACTOR);
 			fclose(conf);
 		}
 	}
@@ -2069,19 +2085,19 @@
 	switch (inputcounter)
 	{
 	case 2:
-		PosX = StartX + 8*fontwidth;
+		SetPosX(8);
 		RenderCharFB(Number | '0', black<<4 | white);
 		RenderCharFB('-', black<<4 | white);
 		RenderCharFB('-', black<<4 | white);
 		break;
 
 	case 1:
-		PosX = StartX + 9*fontwidth;
+		SetPosX(9);
 		RenderCharFB(Number | '0', black<<4 | white);
 		break;
 
 	case 0:
-		PosX = StartX + 10*fontwidth;
+		SetPosX(10);
 		RenderCharFB(Number | '0', black<<4 | white);
 		break;
 	}
@@ -2421,7 +2437,7 @@
 	zoommode = 0;
 	PosX = StartX;
 	PosY = StartY + 24*fontheight;
-	for (byte = 0; byte < 40; byte++)
+	for (byte = 0; byte < 40-nofirst; byte++)
 		RenderCharFB(catchmenutext[menulanguage][byte], catchmenutext[menulanguage][byte+40]);
 	zoommode = oldzoommode;
 
@@ -2617,7 +2633,7 @@
 	if (pc_old_row || pc_old_col) /* not at first call */
 	{
 		/* restore pagenumber */
-		PosX = StartX + pc_old_col*fontwidth;
+		SetPosX(pc_old_col);
 
 		if (zoommode == 2)
 			PosY = StartY + (pc_old_row-12)*fontheight*((zoom>>10)+1);
@@ -2643,8 +2659,8 @@
 		zoommode = 1;
 		CopyBB2FB();
 	}
+	SetPosX(catch_col);
 
-	PosX = StartX + catch_col*fontwidth;
 
 	if (zoommode == 2)
 		PosY = StartY + (catch_row-12)*fontheight*((zoom>>10)+1);
@@ -2731,8 +2747,9 @@
 			fw = fontwidth_topmenumain;
 			fh = fontheight;
 			tw = TV43WIDTH;
+			displaywidth= (TV43STARTX     -sx);
 #if CFGTTF 
-			StartX = sx + (((ex-sx) - (40*fw+2+tw)) / 2); /* center screen */
+		StartX = sx; //+ (((ex-sx) - (40*fw+2+tw)) / 2); /* center screen */
 #endif
 			tx = TV43STARTX;
 			ty = TV43STARTY;
@@ -2746,6 +2763,7 @@
 			ty = TV169FULLSTARTY;
 			tw = TV169FULLWIDTH;
 			th = TV169FULLHEIGHT;
+			displaywidth= (TV169FULLSTARTX-sx);
 		}
 		
 #if CFGTTF 
@@ -2786,9 +2804,10 @@
 #endif
 
 #if CFGTTF 
+		displaywidth= (ex             -sx);
 		fontwidth = fontwidth_normal;
 		typettf.font.pix_width  = (FT_UShort) fontwidth * TTFWIDTHFACTOR;
-		StartX = sx + (ex-sx - 40*fontwidth) / 2; /* center screen */
+		StartX = sx; //+ (ex-sx - 40*fontwidth) / 2; /* center screen */
 #else	 /* !TTF */
 		type0.font.pix_width = type1.font.pix_width = type2.font.pix_width = fontwidth_normal;
 		type0.font.pix_height = type1.font.pix_height = type2.font.pix_height = fontheight+2;
@@ -2890,10 +2909,12 @@
 	int factor;
 	unsigned char *sbitbuffer;
 
+	int abx = (displaywidth)/(((displaywidth)%(40-nofirst))+1);// distance between 'inserted' pixels
+	int curfontwidth = fontwidth+(((PosX-sx) / abx) < ((PosX+fontwidth-sx) /abx) ? 1 : 0);
 
 	if (Char == 0xFF)	/* skip doubleheight chars in lower line */
 	{
-		PosX += fontwidth;
+		PosX += curfontwidth;
 		return;
 	}
 
@@ -2913,8 +2934,8 @@
 	if ((Attribute & 0x300) &&
 		 ((Char&0xA0) == 0x20))
 	{
-		int w1 = fontwidth / 2;
-		int w2 = fontwidth - w1;
+		int w1 = curfontwidth / 2;
+		int w2 = curfontwidth - w1;
 		int y;
 		
 		Char = (Char & 0x1f) | ((Char & 0x40) >> 1);
@@ -2933,7 +2954,7 @@
 				Char >>= 2;
 			}
 		
-		PosX += fontwidth;
+		PosX += curfontwidth;
 		return;
 	}
 	
@@ -2949,8 +2970,8 @@
 	{
 	case 0x00:
 	case 0x20:
-		FillRect(PosX, PosY + yoffset, fontwidth, factor*fontheight, bgcolor);
-		PosX += fontwidth;
+		FillRect(PosX, PosY + yoffset, curfontwidth, factor*fontheight, bgcolor);
+		PosX += curfontwidth;
 		return;
 	case 0x23:
 	case 0x24:
@@ -2974,80 +2995,80 @@
 		Char = nationaltable7b[national_subset][Char-0x7B];
 		break;
 	case 0x7F:
-		FillRect(PosX, PosY + yoffset, fontwidth, factor*ascender, fgcolor);
-		FillRect(PosX, PosY + yoffset + factor*ascender, fontwidth, factor*(fontheight-ascender), bgcolor);
-		PosX += fontwidth;
+		FillRect(PosX, PosY + yoffset, curfontwidth, factor*ascender, fgcolor);
+		FillRect(PosX, PosY + yoffset + factor*ascender, curfontwidth, factor*(fontheight-ascender), bgcolor);
+		PosX += curfontwidth;
 		return;
 	case 0xE0: /* |- */
-		DrawHLine(PosX, PosY + yoffset, fontwidth, fgcolor);
+		DrawHLine(PosX, PosY + yoffset, curfontwidth, fgcolor);
 		DrawVLine(PosX, PosY + yoffset +1, fontheight -1, fgcolor);
-		FillRect(PosX +1, PosY + yoffset +1, fontwidth-1, fontheight-1, bgcolor);
-		PosX += fontwidth;
+		FillRect(PosX +1, PosY + yoffset +1, curfontwidth-1, fontheight-1, bgcolor);
+		PosX += curfontwidth;
 		return;
 	case 0xE1: /* - */
-		DrawHLine(PosX, PosY + yoffset, fontwidth, fgcolor);
-		FillRect(PosX, PosY + yoffset +1, fontwidth, fontheight-1, bgcolor);
-		PosX += fontwidth;
+		DrawHLine(PosX, PosY + yoffset, curfontwidth, fgcolor);
+		FillRect(PosX, PosY + yoffset +1, curfontwidth, fontheight-1, bgcolor);
+		PosX += curfontwidth;
 		return;
 	case 0xE2: /* -| */
-		DrawHLine(PosX, PosY + yoffset, fontwidth, fgcolor);
-		DrawVLine(PosX + fontwidth -1, PosY + yoffset +1, fontheight -1, fgcolor);
-		FillRect(PosX, PosY + yoffset +1, fontwidth-1, fontheight-1, bgcolor);
-		PosX += fontwidth;
+		DrawHLine(PosX, PosY + yoffset, curfontwidth, fgcolor);
+		DrawVLine(PosX + curfontwidth -1, PosY + yoffset +1, fontheight -1, fgcolor);
+		FillRect(PosX, PosY + yoffset +1, curfontwidth-1, fontheight-1, bgcolor);
+		PosX += curfontwidth;
 		return;
 	case 0xE3: /* |  */
 		DrawVLine(PosX, PosY + yoffset, fontheight, fgcolor);
-		FillRect(PosX +1, PosY + yoffset, fontwidth -1, fontheight, bgcolor);
-		PosX += fontwidth;
+		FillRect(PosX +1, PosY + yoffset, curfontwidth -1, fontheight, bgcolor);
+		PosX += curfontwidth;
 		return;
 	case 0xE4: /*  | */
-		DrawVLine(PosX + fontwidth -1, PosY + yoffset, fontheight, fgcolor);
-		FillRect(PosX, PosY + yoffset, fontwidth -1, fontheight, bgcolor);
-		PosX += fontwidth;
+		DrawVLine(PosX + curfontwidth -1, PosY + yoffset, fontheight, fgcolor);
+		FillRect(PosX, PosY + yoffset, curfontwidth -1, fontheight, bgcolor);
+		PosX += curfontwidth;
 		return;
 	case 0xE5: /* |_ */
-		DrawHLine(PosX, PosY + yoffset + fontheight -1, fontwidth, fgcolor);
+		DrawHLine(PosX, PosY + yoffset + fontheight -1, curfontwidth, fgcolor);
 		DrawVLine(PosX, PosY + yoffset, fontheight -1, fgcolor);
-		FillRect(PosX +1, PosY + yoffset, fontwidth-1, fontheight-1, bgcolor);
-		PosX += fontwidth;
+		FillRect(PosX +1, PosY + yoffset, curfontwidth-1, fontheight-1, bgcolor);
+		PosX += curfontwidth;
 		return;
 	case 0xE6: /* _ */
-		DrawHLine(PosX, PosY + yoffset + fontheight -1, fontwidth, fgcolor);
-		FillRect(PosX, PosY + yoffset, fontwidth, fontheight-1, bgcolor);
-		PosX += fontwidth;
+		DrawHLine(PosX, PosY + yoffset + fontheight -1, curfontwidth, fgcolor);
+		FillRect(PosX, PosY + yoffset, curfontwidth, fontheight-1, bgcolor);
+		PosX += curfontwidth;
 		return;
 	case 0xE7: /* _| */
-		DrawHLine(PosX, PosY + yoffset + fontheight -1, fontwidth, fgcolor);
-		DrawVLine(PosX + fontwidth -1, PosY + yoffset, fontheight -1, fgcolor);
-		FillRect(PosX, PosY + yoffset, fontwidth-1, fontheight-1, bgcolor);
-		PosX += fontwidth;
+		DrawHLine(PosX, PosY + yoffset + fontheight -1, curfontwidth, fgcolor);
+		DrawVLine(PosX + curfontwidth -1, PosY + yoffset, fontheight -1, fgcolor);
+		FillRect(PosX, PosY + yoffset, curfontwidth-1, fontheight-1, bgcolor);
+		PosX += curfontwidth;
 		return;
 	case 0xE8: /* Ii */
-		FillRect(PosX +1, PosY + yoffset, fontwidth -1, fontheight, bgcolor);
-		for (Row = 0; Row < fontwidth/2; Row++)
+		FillRect(PosX +1, PosY + yoffset, curfontwidth -1, fontheight, bgcolor);
+		for (Row=0; Row < curfontwidth/2; Row++)
 			DrawVLine(PosX + Row, PosY + yoffset + Row, fontheight - Row, fgcolor);
-		PosX += fontwidth;
+		PosX += curfontwidth;
 		return;
 	case 0xE9: /* II */
-		FillRect(PosX, PosY + yoffset, fontwidth/2, fontheight, fgcolor);
-		FillRect(PosX + fontwidth/2, PosY + yoffset, (fontwidth+1)/2, fontheight, bgcolor);
-		PosX += fontwidth;
+		FillRect(PosX, PosY + yoffset, curfontwidth/2, fontheight, fgcolor);
+		FillRect(PosX + curfontwidth/2, PosY + yoffset, (curfontwidth+1)/2, fontheight, bgcolor);
+		PosX += curfontwidth;
 		return;
 	case 0xEA: /* °  */
-		FillRect(PosX, PosY + yoffset, fontwidth, fontheight, bgcolor);
-		FillRect(PosX, PosY + yoffset, fontwidth/2, fontwidth/2, fgcolor);
-		PosX += fontwidth;
+		FillRect(PosX, PosY + yoffset, curfontwidth, fontheight, bgcolor);
+		FillRect(PosX, PosY + yoffset, curfontwidth/2, curfontwidth/2, fgcolor);
+		PosX += curfontwidth;
 		return;
 	case 0xEB: /* ¬ */
-		FillRect(PosX, PosY + yoffset +1, fontwidth, fontheight -1, bgcolor);
-		for (Row = 0; Row < fontwidth/2; Row++)
-			DrawHLine(PosX + Row, PosY + yoffset + Row, fontwidth - Row, fgcolor);
-		PosX += fontwidth;
+		FillRect(PosX, PosY + yoffset +1, curfontwidth, fontheight -1, bgcolor);
+		for (Row=0; Row < curfontwidth/2; Row++)
+			DrawHLine(PosX + Row, PosY + yoffset + Row, curfontwidth - Row, fgcolor);
+		PosX += curfontwidth;
 		return;
 	case 0xEC: /* -- */
-		FillRect(PosX, PosY + yoffset, fontwidth, fontwidth/2, fgcolor);
-		FillRect(PosX, PosY + yoffset + fontwidth/2, fontwidth, fontheight - fontwidth/2, bgcolor);
-		PosX += fontwidth;
+		FillRect(PosX, PosY + yoffset, curfontwidth, curfontwidth/2, fgcolor);
+		FillRect(PosX, PosY + yoffset + curfontwidth/2, curfontwidth, fontheight - curfontwidth/2, bgcolor);
+		PosX += curfontwidth;
 		return;
 	case 0xED:
 	case 0xEE:
@@ -3070,11 +3091,12 @@
 #if DEBUG
 		printf("TuxTxt <FT_Get_Char_Index for Char %x \"%c\" failed\n", Char, Char);
 #endif
-		FillRect(PosX, PosY + yoffset, fontwidth, fontheight, bgcolor);
-		PosX += fontwidth;
+		FillRect(PosX, PosY + yoffset, curfontwidth, fontheight, bgcolor);
+		PosX += curfontwidth;
 		return;
 	}
 
+	typettf.font.pix_width  = (FT_UShort) curfontwidth * TTFWIDTHFACTOR - 2;
 #ifndef DREAMBOX
 	if ((error = FTC_SBitCache_Lookup(cache, &typettf, glyph, &sbit, NULL)) != 0)
 #else
@@ -3083,10 +3105,10 @@
 	{
 #if DEBUG
 		printf("TuxTxt <FTC_SBitCache_Lookup: 0x%x> c%x a%x g%x w%d h%d x%d y%d\n",
-				 error, Char, Attribute, glyph, fontwidth, fontheight, PosX, PosY);
+				 error, Char, Attribute, glyph, curfontwidth, fontheight, PosX, PosY);
 #endif
-		FillRect(PosX, PosY + yoffset, fontwidth, fontheight, bgcolor);
-		PosX += fontwidth;
+		FillRect(PosX, PosY + yoffset, curfontwidth, fontheight, bgcolor);
+		PosX += curfontwidth;
 		return;
 	}
 
@@ -3098,7 +3120,7 @@
 		int f; /* runningh counter for zoom factor */
 		
 		Row = factor * (ascender - sbit->top);
-		FillRect(PosX, PosY + yoffset, fontwidth, Row, bgcolor); /* fill upper margin */
+		FillRect(PosX, PosY + yoffset, curfontwidth, Row, bgcolor); /* fill upper margin */
 
 		p = lfb + PosX + (yoffset + PosY + Row) * var_screeninfo.xres; /* running pointer into framebuffer */
 		for (Row = sbit->height; Row; Row--) /* row counts up, but down may be a little faster :) */
@@ -3138,9 +3160,9 @@
 			}
 
 #if 1
-			for (Bit = fontwidth - sbit->width - sbit->left; Bit > 0; Bit--) /* fill rest of char width */
+			for (Bit = curfontwidth - sbit->width - sbit->left; Bit > 0; Bit--) /* fill rest of char width */
 #else
-			for (Bit = fontwidth - sbit->width; Bit > 0; Bit--) /* fill rest of char width */
+			for (Bit = curfontwidth - sbit->width; Bit > 0; Bit--) /* fill rest of char width */
 #endif
 			{
 				for (f = factor-1; f >= 0; f--)
@@ -3152,9 +3174,9 @@
 		}
 
 		Row = ascender - sbit->top + sbit->height;
-		FillRect(PosX, PosY + yoffset + Row*factor, fontwidth, (fontheight - Row) * factor, bgcolor); /* fill lower margin */
+		FillRect(PosX, PosY + yoffset + Row*factor, curfontwidth, (fontheight - Row) * factor, bgcolor); /* fill lower margin */
 
-		PosX += fontwidth;
+		PosX += curfontwidth;
 
 	}
 	else /* yoffset<0: LCD */
@@ -3491,7 +3513,6 @@
 /* 	char message_9[] = "ã     Seite 100 existiert nicht!    äé"; */
 
 	memcpy(&message_1[24], versioninfo, 4);
-
 	/* reset zoom */
 	zoommode = 0;
 
@@ -3600,9 +3621,11 @@
 	/* update lcd */
 	UpdateLCD();
 
+
 	/* update page or timestring */
 	if (transpmode != 2 && pageupdate && page_receiving != page && inputcounter == 2)
 	{
+
 		/* get national subset */
 		if (auto_national)
 		{
@@ -3624,6 +3647,24 @@
 			return;
 		}
 
+		/* display first column?  */
+		nofirst = 1;
+		for (row = 1; row < 24; row++)
+		{
+			if (page_char[row*40] != ' ' && page_char[row*40] != 0x00 && page_char[row*40] != 0xFF && page_atrb[row*40] != (black <<4 | black)) {nofirst = 0; break;}
+		}
+#if CFGTTF
+		fontwidth = fontwidth_normal = (ex-sx) / (40-nofirst);
+		fontwidth_topmenumain = (TV43STARTX-sx) / (40-nofirst);
+		fontwidth_topmenusmall = (ex- TV43STARTX - TOPMENUINDENTDEF) / TOPMENUCHARS;
+		fontwidth_small = (TV169FULLSTARTX-sx)  / (40-nofirst);
+		switch(screenmode)
+		{
+			case 0:	fontwidth = fontwidth_normal     ; displaywidth= (ex             -sx);break;
+			case 1: fontwidth = fontwidth_topmenumain; displaywidth= (TV43STARTX     -sx);break;
+			case 2: fontwidth = fontwidth_small      ; displaywidth= (TV169FULLSTARTX-sx);break;
+		}
+#endif
 		if (transpmode || (boxed && !screenmode))
 		{
 			ClearBB(transp);
@@ -3637,7 +3678,7 @@
 		{
 			PosX = StartX;
 
-			for (col = 0; col < 40; col++)
+			for (col = nofirst; col < 40; col++)
 				RenderCharBB(page_char[row*40 + col], page_atrb[row*40 + col]);
 
 			PosY += fontheight;
@@ -3649,7 +3690,7 @@
 	else if (transpmode != 2 && zoommode != 2)
 	{
 		/* update timestring */
-		PosX = StartX + 32*fontwidth;
+		SetPosX(32);
 		PosY = StartY;
 
 		for (byte = 0; byte < 8; byte++)
@@ -3672,13 +3713,23 @@
 	else
 		yoffset = var_screeninfo.yres;
 	
+#if CFGTTF
+	int abx = (displaywidth)/(((displaywidth)%(40-nofirst))+1);// distance between 'inserted' pixels
+	int width = displaywidth /4;
+#else
+	int width = ((40-nofirst)*oldfontwidth)/4;
+#endif
 	
-	PosX = StartX + column*oldfontwidth;
+	PosX = StartX + column*width;
 	PosY = StartY + 24*fontheight;
 
 	if (boxed)
 	{
+#if CFGTTF
+		FillRect(PosX, PosY+yoffset, displaywidth, fontheight, transp);
+#else
 		FillRect(PosX, PosY+yoffset, 40*oldfontwidth, fontheight, transp);
+#endif
 		return;
 	}
 	
@@ -3692,8 +3743,8 @@
 			fontwidth = oldfontwidth * 10 / (l+1);
 			typettf.font.pix_width  = (FT_UShort) fontwidth * TTFWIDTHFACTOR;
 		}
-		FillRect(PosX, PosY+yoffset, 10*oldfontwidth, fontheight, Attrib >> 4);
-		PosX += ((10*oldfontwidth) - (l*fontwidth))/2; /* center */
+		FillRect(PosX, PosY+yoffset, width+(displaywidth%4), fontheight, Attrib >> 4);
+		PosX += ((width) - (l*fontwidth+l*fontwidth/abx))/2; /* center */
 		for (p = adip[linkpage]; *p; p++)
 			RenderCharBB(*p, Attrib);
 		fontwidth = oldfontwidth;
@@ -3744,9 +3795,9 @@
 	next_100 = toptext_getnext(next_10, 1, 0);
 
 	showlink(0, prev_100, red<<4 | white);
-	showlink(10, prev_10, green<<4 | black);
-	showlink(20, next_10, yellow<<4 | black);
-	showlink(30, next_100, blue<<4 | white);
+	showlink(1, prev_10, green<<4 | black);
+	showlink(2, next_10, yellow<<4 | black);
+	showlink(3, next_100, blue<<4 | white);
 	
 	if (bttok && screenmode == 1) /* TOP-Info present, divided screen -> create TOP overview */
 	{
@@ -3757,6 +3808,8 @@
 		int attr;
 
 #if CFGTTF 
+		int olddisplaywidth = displaywidth;
+		displaywidth = fontwidth_topmenusmall*(40-nofirst);
 		fontwidth = fontwidth_topmenusmall;
 		typettf.font.pix_width  = (FT_UShort) fontwidth * TTFWIDTHFACTOR;
 #else	 /* !TTF */
@@ -3849,6 +3902,7 @@
 			RenderClearMenuLineBB(line, attrcol, attr);
 		}
 #if CFGTTF 
+		displaywidth = olddisplaywidth;
 		fontwidth = fontwidth_topmenumain;
 		typettf.font.pix_width  = (FT_UShort) fontwidth * TTFWIDTHFACTOR;
 #else	 /* !TTF */
@@ -3916,6 +3970,7 @@
 		unsigned char *topdst = dst;
 		
 		screenwidth = TV43STARTX;
+
 		topsrc += screenwidth;
 		topdst += screenwidth;
 		for (i = 0; i < 25*fontheight; i++)
@@ -3953,6 +4008,7 @@
 	static int init_lcd = 1, old_cached_pages = -1, old_page = -1, old_subpage = -1, old_subpage_max = -1, old_hintmode = -1;
 	int  x, y, subpage_max = 0, update_lcd = 0;
 
+	if (lcd == -1) return; // for Dreamboxes without LCD-Display (5xxx)
 	/* init or update lcd */
 	if (init_lcd)
 	{
diff -Naur -w orig/tuxtxt.h ok/tuxtxt.h
--- orig/tuxtxt.h	2004-10-24 13:55:12.000000000 +0200
+++ ok/tuxtxt.h	2004-10-30 16:09:44.000000000 +0200
@@ -55,15 +55,15 @@
 #endif
 
 #define CFGTTF 1
-#define TUXTXTCONF CONFIGDIR "/tuxtxt/tuxtxt.conf"
+#define TUXTXTCONF CONFIGDIR "/tuxtxt/tuxtxt2.conf"
 
 /* fonts */
 #define TUXTXT0 FONTDIR "/tuxtxt0.fon"  /* G0 8+16pt */
 #define TUXTXT1 FONTDIR "/tuxtxt1.fon"  /* G1 8+16pt */
 #define TUXTXT2 FONTDIR "/tuxtxt2.fon"  /* NS 8+16pt */
 #if CFGTTF 
-#define TUXTXTTTF "/var/tuxtxt/TuxTxt.ttf" /* TTF */
+#define TUXTXTTTF "/var/tuxtxt/tuxtxt.ttf" /* TTF */
 #else
 #define TUXTXT0R "/var/tuxtxt/tuxtxt0r.fon" /* G0 12pt */
 #define TUXTXT1R "/var/tuxtxt/tuxtxt1r.fon" /* G1 12pt */
@@ -82,8 +82,8 @@
 #if CFGTTF 
 int fontheight, fontwidth, fontwidth_normal, fontwidth_small, fontwidth_topmenumain, fontwidth_topmenusmall, ascender;
 int ymosaic[4];
-#define TTFWIDTHFACTOR 4 /* FIXME: otherwise too much space btw chars */
-
+int TTFWIDTHFACTOR = 4; /* FIXME: otherwise too much space btw chars */
+int displaywidth;
 #define fontwidth_small_lcd 8
 #else
 #define fontheight 20
@@ -94,18 +94,24 @@
 #define fontwidth_topmenusmall 8
 #endif
 
+#if CFGTTF
+#define TV43STARTX 540 //(StartX + 2 + (40-nofirst)*fontwidth_topmenumain + (40*fontwidth_topmenumain/abx))
+#define TV169FULLSTARTX 360 //(StartX + (40-nofirst)*fontwidth_small + ((40-nofirst)*fontwidth_small/abx))
+#define TVENDX ex
+#else
 #define TV43STARTX (StartX + 2 + 40*fontwidth_topmenumain)
+#define TV169FULLSTARTX (StartX + 2 + 40*fontwidth_small)
 #define TVENDX (StartX + 40*fontwidth_normal)
+#endif
 #define TVENDY (StartY + 25*fontheight)
 #define TV43WIDTH 144 /* 120 */
 #define TV43HEIGHT 116 /* 96 */
 #define TV43STARTY (TVENDY - TV43HEIGHT)
-#define TV169FULLSTARTX (StartX + 2 + 40*fontwidth_small)
-#define TV169FULLSTARTY 25
+#define TV169FULLSTARTY 0
 #define TV169FULLWIDTH 320
 #define TV169FULLHEIGHT 576
 
-#define TOPMENUSTARTX TV43STARTX
+#define TOPMENUSTARTX TV43STARTX+2
 #define TOPMENUENDX TVENDX
 #define TOPMENUSTARTY StartY
 #define TOPMENUENDY TV43STARTY
@@ -115,7 +121,7 @@
 #define TOPMENUINDENTGRP 1
 #define TOPMENUINDENTDEF 2
 #define TOPMENUSPC 0
-#define TOPMENUCHARS (TOPMENUINDENTDEF+12+TOPMENUSPC+3+5)
+#define TOPMENUCHARS (TOPMENUINDENTDEF+12+TOPMENUSPC+4)
 
 /*  1: blk-1, grp-1, grp+1, blk+1 */
 /*  2: blk-1, grp+1, grp+2, blk+1 */
@@ -379,7 +385,7 @@
 int page, subpage, lastpage, pageupdate, zap_subpage_manual;
 int current_national_subset;
 int inputcounter;
-int zoommode, screenmode, transpmode, hintmode, boxed;
+int zoommode, screenmode, transpmode, hintmode, boxed, nofirst;
 int catch_row, catch_col, catched_page, pagecatching;
 int prev_100, prev_10, next_10, next_100;
 int fnc_old, saa_old, screen_mode1, screen_mode2, color_mode, national_subset, auto_national, swapupdown, showhex, menulanguage; 
Wenn das einer der anderen Devs liest, kann er es ja einchecken :wink:


dbluelle
PLi®
Interessierter
Interessierter
Beiträge: 27
Registriert: Dienstag 25. Mai 2004, 20:31

Beitrag von PLi® »

Thanks!

Going to try it. Shouldn't this one be called 1.78?

Peter
dbluelle
Contributor
Beiträge: 319
Registriert: Samstag 29. Mai 2004, 18:49

Beitrag von dbluelle »

Ich habe mich nochmal mit TuxTxt beschäftigt und
ein paar Kleinigkeiten bzgl. der Zeichenbreitenanpassung
(was für ein Wort :wink: ) geändert.

Die neue Version (mit den letzten Änderungen aus dem CVS) ist jetzt online.


Hier ist der entsprechende Diff.
Wenn einer der Devs mitliest, kann er das ruhig ins CVS übernehmen oder mir kurz mitteilen, ob da noch Fehler drin sind.
(Den letzten Diff hatte ich an AlexW geschickt, aber er wurde nicht committed und ich weiss leider nicht, warum :gruebel: )

dbluelle

Code: Alles auswählen

diff -Naur -w orig/tuxtxt.c ok/tuxtxt.c
--- orig/tuxtxt.c	2004-11-25 19:22:14.000000000 +0100
+++ ok/tuxtxt.c	2004-11-27 17:02:10.000000000 +0100
@@ -409,7 +409,20 @@
 {
 	memset(lfb, color, 2*var_screeninfo.xres*var_screeninfo.yres);
 }
-
+void SetPosX(int column)
+{
+#if CFGTTF
+		int abx = ((displaywidth)%(40-nofirst) == 0 ? displaywidth+1 : (displaywidth)/(((displaywidth)%(40-nofirst))));// distance between 'inserted' pixels
+//		int abx = (displaywidth)/(((displaywidth)%(40-nofirst))+1);// distance between 'inserted' pixels
+		PosX = StartX;
+		int i;
+		for (i = 0; i < column-nofirst; i++)
+			PosX += fontwidth+(((PosX-sx) / abx) < ((PosX+fontwidth+1-sx) /abx) ? 1 : 0);
+//		PosX = StartX + (column-nofirst)*fontwidth + ((column-nofirst)*fontwidth/abx);
+#else
+		PosX = StartX + (column-nofirst)*fontwidth;
+#endif
+}
 
 void plugin_exec(PluginParam *par)
 {
@@ -442,7 +455,7 @@
 			ey = atoi(par->val);
 	}
 
-	if (vtxtpid == -1 || fb == -1 || lcd == -1 || rc == -1 || sx == -1 || ex == -1 || sy == -1 || ey == -1)
+	if (vtxtpid == -1 || fb == -1 || rc == -1 || sx == -1 || ex == -1 || sy == -1 || ey == -1)
 	{
 		printf("TuxTxt <Invalid Param(s)>\n");
 		return;
@@ -691,6 +704,8 @@
 				showhex = ival & 1;
 			else if (1 == sscanf(line, "OverlayTransparency %x", &ival))
 				tr1[transp2-1] = tr2[transp2-1] = ival & 0xFFFF;
+			else if (1 == sscanf(line, "TTFWidthFactor %d", &ival))
+	            TTFWIDTHFACTOR = ival;
 		}
 		fclose(conf);
 	}
@@ -721,18 +736,19 @@
 #if CFGTTF 
 
 	/* calculate font dimensions */
+	displaywidth = (ex-sx);
 	fontheight = (ey-sy) / 25;
 	fontwidth = fontwidth_normal = (ex-sx) / 40;
-	fontwidth_topmenumain = (ex-sx) * 3 / 4 / 40;
-	fontwidth_topmenusmall = (ex-sx - 40*fontwidth_topmenumain) / TOPMENUCHARS;
-	fontwidth_small = (ex-sx) / 2 / 40;
+	fontwidth_topmenumain = (TV43STARTX-sx) / 40;
+	fontwidth_topmenusmall = (ex- TV43STARTX) / TOPMENUCHARS;
+	fontwidth_small = (TV169FULLSTARTX-sx)  / 40;
 	ymosaic[0] = 0; /* y-offsets for 2*3 mosaic */
 	ymosaic[1] = (fontheight + 1) / 3;
 	ymosaic[2] = (fontheight * 2 + 1) / 3;
 	ymosaic[3] = fontheight;
 
 	/* center screen */
-	StartX = sx + (((ex-sx) - 40*fontwidth) / 2);
+	StartX = sx; //+ (((ex-sx) - 40*fontwidth) / 2);
 	StartY = sy + (((ey-sy) - 25*fontheight) / 2);
 
 	typettf.font.face_id = (FTC_FaceID) TUXTXTTTF;
@@ -1056,6 +1072,7 @@
 			fprintf(conf, "SwapUpDown %d\n", swapupdown);
 			fprintf(conf, "ShowHexPages %d\n", showhex);
 			fprintf(conf, "OverlayTransparency %X\n", tr1[transp2-1]);
+			fprintf(conf, "TTFWidthFactor %d\n", TTFWIDTHFACTOR);
 			fclose(conf);
 		}
 	}
@@ -2069,19 +2086,19 @@
 	switch (inputcounter)
 	{
 	case 2:
-		PosX = StartX + 8*fontwidth;
+		SetPosX(8);
 		RenderCharFB(Number | '0', black<<4 | white);
 		RenderCharFB('-', black<<4 | white);
 		RenderCharFB('-', black<<4 | white);
 		break;
 
 	case 1:
-		PosX = StartX + 9*fontwidth;
+		SetPosX(9);
 		RenderCharFB(Number | '0', black<<4 | white);
 		break;
 
 	case 0:
-		PosX = StartX + 10*fontwidth;
+		SetPosX(10);
 		RenderCharFB(Number | '0', black<<4 | white);
 		break;
 	}
@@ -2421,7 +2438,7 @@
 	zoommode = 0;
 	PosX = StartX;
 	PosY = StartY + 24*fontheight;
-	for (byte = 0; byte < 40; byte++)
+	for (byte = 0; byte < 40-nofirst; byte++)
 		RenderCharFB(catchmenutext[menulanguage][byte], catchmenutext[menulanguage][byte+40]);
 	zoommode = oldzoommode;
 
@@ -2617,7 +2634,7 @@
 	if (pc_old_row || pc_old_col) /* not at first call */
 	{
 		/* restore pagenumber */
-		PosX = StartX + pc_old_col*fontwidth;
+		SetPosX(pc_old_col);
 
 		if (zoommode == 2)
 			PosY = StartY + (pc_old_row-12)*fontheight*((zoom>>10)+1);
@@ -2643,8 +2660,8 @@
 		zoommode = 1;
 		CopyBB2FB();
 	}
+	SetPosX(catch_col);
 
-	PosX = StartX + catch_col*fontwidth;
 
 	if (zoommode == 2)
 		PosY = StartY + (catch_row-12)*fontheight*((zoom>>10)+1);
@@ -2719,6 +2736,7 @@
 #endif
 	ClearBB(clearbbcolor);
 
+
 	/* set mode */
 	if (screenmode)								 /* split */
 	{
@@ -2726,16 +2744,19 @@
 		if ( screenmode == 2 && zoommode )
 			ClearFB(clearbbcolor);
 #endif
+
 		int fw, fh, tx, ty, tw, th;
 		int sm = 0;
 
+
 		if (screenmode==1) /* split with topmenu */
 		{
 			fw = fontwidth_topmenumain;
 			fh = fontheight;
 			tw = TV43WIDTH;
+			displaywidth= (TV43STARTX     -sx);
 #if CFGTTF 
-			StartX = sx + (((ex-sx) - (40*fw+2+tw)) / 2); /* center screen */
+		StartX = sx; //+ (((ex-sx) - (40*fw+2+tw)) / 2); /* center screen */
 #endif
 			tx = TV43STARTX;
 			ty = TV43STARTY;
@@ -2749,6 +2770,7 @@
 			ty = TV169FULLSTARTY;
 			tw = TV169FULLWIDTH;
 			th = TV169FULLHEIGHT;
+			displaywidth= (TV169FULLSTARTX-sx);
 		}
 		
 #if CFGTTF 
@@ -2789,9 +2811,10 @@
 #endif
 
 #if CFGTTF 
+		displaywidth= (ex             -sx);
 		fontwidth = fontwidth_normal;
 		typettf.font.pix_width  = (FT_UShort) fontwidth * TTFWIDTHFACTOR;
-		StartX = sx + (ex-sx - 40*fontwidth) / 2; /* center screen */
+		StartX = sx; //+ (ex-sx - 40*fontwidth) / 2; /* center screen */
 #else	 /* !TTF */
 		type0.font.pix_width = type1.font.pix_width = type2.font.pix_width = fontwidth_normal;
 		type0.font.pix_height = type1.font.pix_height = type2.font.pix_height = fontheight+2;
@@ -2893,10 +2916,12 @@
 	int factor;
 	unsigned char *sbitbuffer;
 
+	int abx = ((displaywidth)%(40-nofirst) == 0 ? displaywidth+1 : (displaywidth)/(((displaywidth)%(40-nofirst))));// distance between 'inserted' pixels
+	int curfontwidth = fontwidth+(((PosX-sx) / abx) < ((PosX+fontwidth+1-sx) /abx) ? 1 : 0);
 
 	if (Char == 0xFF)	/* skip doubleheight chars in lower line */
 	{
-		PosX += fontwidth;
+		PosX += curfontwidth;
 		return;
 	}
 
@@ -2916,8 +2941,8 @@
 	if ((Attribute & 0x300) &&
 		 ((Char&0xA0) == 0x20))
 	{
-		int w1 = fontwidth / 2;
-		int w2 = fontwidth - w1;
+		int w1 = curfontwidth / 2;
+		int w2 = curfontwidth - w1;
 		int y;
 		
 		Char = (Char & 0x1f) | ((Char & 0x40) >> 1);
@@ -2936,7 +2961,7 @@
 				Char >>= 2;
 			}
 		
-		PosX += fontwidth;
+		PosX += curfontwidth;
 		return;
 	}
 	
@@ -2952,8 +2977,8 @@
 	{
 	case 0x00:
 	case 0x20:
-		FillRect(PosX, PosY + yoffset, fontwidth, factor*fontheight, bgcolor);
-		PosX += fontwidth;
+		FillRect(PosX, PosY + yoffset, curfontwidth, factor*fontheight, bgcolor);
+		PosX += curfontwidth;
 		return;
 	case 0x23:
 	case 0x24:
@@ -2977,80 +3002,80 @@
 		Char = nationaltable7b[national_subset][Char-0x7B];
 		break;
 	case 0x7F:
-		FillRect(PosX, PosY + yoffset, fontwidth, factor*ascender, fgcolor);
-		FillRect(PosX, PosY + yoffset + factor*ascender, fontwidth, factor*(fontheight-ascender), bgcolor);
-		PosX += fontwidth;
+		FillRect(PosX, PosY + yoffset, curfontwidth, factor*ascender, fgcolor);
+		FillRect(PosX, PosY + yoffset + factor*ascender, curfontwidth, factor*(fontheight-ascender), bgcolor);
+		PosX += curfontwidth;
 		return;
 	case 0xE0: /* |- */
-		DrawHLine(PosX, PosY + yoffset, fontwidth, fgcolor);
+		DrawHLine(PosX, PosY + yoffset, curfontwidth, fgcolor);
 		DrawVLine(PosX, PosY + yoffset +1, fontheight -1, fgcolor);
-		FillRect(PosX +1, PosY + yoffset +1, fontwidth-1, fontheight-1, bgcolor);
-		PosX += fontwidth;
+		FillRect(PosX +1, PosY + yoffset +1, curfontwidth-1, fontheight-1, bgcolor);
+		PosX += curfontwidth;
 		return;
 	case 0xE1: /* - */
-		DrawHLine(PosX, PosY + yoffset, fontwidth, fgcolor);
-		FillRect(PosX, PosY + yoffset +1, fontwidth, fontheight-1, bgcolor);
-		PosX += fontwidth;
+		DrawHLine(PosX, PosY + yoffset, curfontwidth, fgcolor);
+		FillRect(PosX, PosY + yoffset +1, curfontwidth, fontheight-1, bgcolor);
+		PosX += curfontwidth;
 		return;
 	case 0xE2: /* -| */
-		DrawHLine(PosX, PosY + yoffset, fontwidth, fgcolor);
-		DrawVLine(PosX + fontwidth -1, PosY + yoffset +1, fontheight -1, fgcolor);
-		FillRect(PosX, PosY + yoffset +1, fontwidth-1, fontheight-1, bgcolor);
-		PosX += fontwidth;
+		DrawHLine(PosX, PosY + yoffset, curfontwidth, fgcolor);
+		DrawVLine(PosX + curfontwidth -1, PosY + yoffset +1, fontheight -1, fgcolor);
+		FillRect(PosX, PosY + yoffset +1, curfontwidth-1, fontheight-1, bgcolor);
+		PosX += curfontwidth;
 		return;
 	case 0xE3: /* |  */
 		DrawVLine(PosX, PosY + yoffset, fontheight, fgcolor);
-		FillRect(PosX +1, PosY + yoffset, fontwidth -1, fontheight, bgcolor);
-		PosX += fontwidth;
+		FillRect(PosX +1, PosY + yoffset, curfontwidth -1, fontheight, bgcolor);
+		PosX += curfontwidth;
 		return;
 	case 0xE4: /*  | */
-		DrawVLine(PosX + fontwidth -1, PosY + yoffset, fontheight, fgcolor);
-		FillRect(PosX, PosY + yoffset, fontwidth -1, fontheight, bgcolor);
-		PosX += fontwidth;
+		DrawVLine(PosX + curfontwidth -1, PosY + yoffset, fontheight, fgcolor);
+		FillRect(PosX, PosY + yoffset, curfontwidth -1, fontheight, bgcolor);
+		PosX += curfontwidth;
 		return;
 	case 0xE5: /* |_ */
-		DrawHLine(PosX, PosY + yoffset + fontheight -1, fontwidth, fgcolor);
+		DrawHLine(PosX, PosY + yoffset + fontheight -1, curfontwidth, fgcolor);
 		DrawVLine(PosX, PosY + yoffset, fontheight -1, fgcolor);
-		FillRect(PosX +1, PosY + yoffset, fontwidth-1, fontheight-1, bgcolor);
-		PosX += fontwidth;
+		FillRect(PosX +1, PosY + yoffset, curfontwidth-1, fontheight-1, bgcolor);
+		PosX += curfontwidth;
 		return;
 	case 0xE6: /* _ */
-		DrawHLine(PosX, PosY + yoffset + fontheight -1, fontwidth, fgcolor);
-		FillRect(PosX, PosY + yoffset, fontwidth, fontheight-1, bgcolor);
-		PosX += fontwidth;
+		DrawHLine(PosX, PosY + yoffset + fontheight -1, curfontwidth, fgcolor);
+		FillRect(PosX, PosY + yoffset, curfontwidth, fontheight-1, bgcolor);
+		PosX += curfontwidth;
 		return;
 	case 0xE7: /* _| */
-		DrawHLine(PosX, PosY + yoffset + fontheight -1, fontwidth, fgcolor);
-		DrawVLine(PosX + fontwidth -1, PosY + yoffset, fontheight -1, fgcolor);
-		FillRect(PosX, PosY + yoffset, fontwidth-1, fontheight-1, bgcolor);
-		PosX += fontwidth;
+		DrawHLine(PosX, PosY + yoffset + fontheight -1, curfontwidth, fgcolor);
+		DrawVLine(PosX + curfontwidth -1, PosY + yoffset, fontheight -1, fgcolor);
+		FillRect(PosX, PosY + yoffset, curfontwidth-1, fontheight-1, bgcolor);
+		PosX += curfontwidth;
 		return;
 	case 0xE8: /* Ii */
-		FillRect(PosX +1, PosY + yoffset, fontwidth -1, fontheight, bgcolor);
-		for (Row = 0; Row < fontwidth/2; Row++)
+		FillRect(PosX +1, PosY + yoffset, curfontwidth -1, fontheight, bgcolor);
+		for (Row=0; Row < curfontwidth/2; Row++)
 			DrawVLine(PosX + Row, PosY + yoffset + Row, fontheight - Row, fgcolor);
-		PosX += fontwidth;
+		PosX += curfontwidth;
 		return;
 	case 0xE9: /* II */
-		FillRect(PosX, PosY + yoffset, fontwidth/2, fontheight, fgcolor);
-		FillRect(PosX + fontwidth/2, PosY + yoffset, (fontwidth+1)/2, fontheight, bgcolor);
-		PosX += fontwidth;
+		FillRect(PosX, PosY + yoffset, curfontwidth/2, fontheight, fgcolor);
+		FillRect(PosX + curfontwidth/2, PosY + yoffset, (curfontwidth+1)/2, fontheight, bgcolor);
+		PosX += curfontwidth;
 		return;
 	case 0xEA: /* °  */
-		FillRect(PosX, PosY + yoffset, fontwidth, fontheight, bgcolor);
-		FillRect(PosX, PosY + yoffset, fontwidth/2, fontwidth/2, fgcolor);
-		PosX += fontwidth;
+		FillRect(PosX, PosY + yoffset, curfontwidth, fontheight, bgcolor);
+		FillRect(PosX, PosY + yoffset, curfontwidth/2, curfontwidth/2, fgcolor);
+		PosX += curfontwidth;
 		return;
 	case 0xEB: /* ¬ */
-		FillRect(PosX, PosY + yoffset +1, fontwidth, fontheight -1, bgcolor);
-		for (Row = 0; Row < fontwidth/2; Row++)
-			DrawHLine(PosX + Row, PosY + yoffset + Row, fontwidth - Row, fgcolor);
-		PosX += fontwidth;
+		FillRect(PosX, PosY + yoffset +1, curfontwidth, fontheight -1, bgcolor);
+		for (Row=0; Row < curfontwidth/2; Row++)
+			DrawHLine(PosX + Row, PosY + yoffset + Row, curfontwidth - Row, fgcolor);
+		PosX += curfontwidth;
 		return;
 	case 0xEC: /* -- */
-		FillRect(PosX, PosY + yoffset, fontwidth, fontwidth/2, fgcolor);
-		FillRect(PosX, PosY + yoffset + fontwidth/2, fontwidth, fontheight - fontwidth/2, bgcolor);
-		PosX += fontwidth;
+		FillRect(PosX, PosY + yoffset, curfontwidth, curfontwidth/2, fgcolor);
+		FillRect(PosX, PosY + yoffset + curfontwidth/2, curfontwidth, fontheight - curfontwidth/2, bgcolor);
+		PosX += curfontwidth;
 		return;
 	case 0xED:
 	case 0xEE:
@@ -3073,11 +3098,12 @@
 #if DEBUG
 		printf("TuxTxt <FT_Get_Char_Index for Char %x \"%c\" failed\n", Char, Char);
 #endif
-		FillRect(PosX, PosY + yoffset, fontwidth, fontheight, bgcolor);
-		PosX += fontwidth;
+		FillRect(PosX, PosY + yoffset, curfontwidth, fontheight, bgcolor);
+		PosX += curfontwidth;
 		return;
 	}
 
+	typettf.font.pix_width  = (FT_UShort) curfontwidth * TTFWIDTHFACTOR - 2;
 #ifndef DREAMBOX
 	if ((error = FTC_SBitCache_Lookup(cache, &typettf, glyph, &sbit, NULL)) != 0)
 #else
@@ -3086,10 +3112,10 @@
 	{
 #if DEBUG
 		printf("TuxTxt <FTC_SBitCache_Lookup: 0x%x> c%x a%x g%x w%d h%d x%d y%d\n",
-				 error, Char, Attribute, glyph, fontwidth, fontheight, PosX, PosY);
+				 error, Char, Attribute, glyph, curfontwidth, fontheight, PosX, PosY);
 #endif
-		FillRect(PosX, PosY + yoffset, fontwidth, fontheight, bgcolor);
-		PosX += fontwidth;
+		FillRect(PosX, PosY + yoffset, curfontwidth, fontheight, bgcolor);
+		PosX += curfontwidth;
 		return;
 	}
 
@@ -3101,7 +3127,7 @@
 		int f; /* runningh counter for zoom factor */
 		
 		Row = factor * (ascender - sbit->top);
-		FillRect(PosX, PosY + yoffset, fontwidth, Row, bgcolor); /* fill upper margin */
+		FillRect(PosX, PosY + yoffset, curfontwidth, Row, bgcolor); /* fill upper margin */
 
 		p = lfb + PosX + (yoffset + PosY + Row) * var_screeninfo.xres; /* running pointer into framebuffer */
 		for (Row = sbit->height; Row; Row--) /* row counts up, but down may be a little faster :) */
@@ -3141,9 +3167,9 @@
 			}
 
 #if 1
-			for (Bit = fontwidth - sbit->width - sbit->left; Bit > 0; Bit--) /* fill rest of char width */
+			for (Bit = curfontwidth - sbit->width - sbit->left; Bit > 0; Bit--) /* fill rest of char width */
 #else
-			for (Bit = fontwidth - sbit->width; Bit > 0; Bit--) /* fill rest of char width */
+			for (Bit = curfontwidth - sbit->width; Bit > 0; Bit--) /* fill rest of char width */
 #endif
 			{
 				for (f = factor-1; f >= 0; f--)
@@ -3155,9 +3181,9 @@
 		}
 
 		Row = ascender - sbit->top + sbit->height;
-		FillRect(PosX, PosY + yoffset + Row*factor, fontwidth, (fontheight - Row) * factor, bgcolor); /* fill lower margin */
+		FillRect(PosX, PosY + yoffset + Row*factor, curfontwidth, (fontheight - Row) * factor, bgcolor); /* fill lower margin */
 
-		PosX += fontwidth;
+		PosX += curfontwidth;
 
 	}
 	else /* yoffset<0: LCD */
@@ -3494,7 +3520,6 @@
 /* 	char message_9[] = "ã     Seite 100 existiert nicht!    äé"; */
 
 	memcpy(&message_1[24], versioninfo, 4);
-
 	/* reset zoom */
 	zoommode = 0;
 
@@ -3603,9 +3628,11 @@
 	/* update lcd */
 	UpdateLCD();
 
+
 	/* update page or timestring */
 	if (transpmode != 2 && pageupdate && page_receiving != page && inputcounter == 2)
 	{
+
 		/* get national subset */
 		if (auto_national)
 		{
@@ -3627,6 +3654,24 @@
 			return;
 		}
 
+		/* display first column?  */
+		nofirst = 1;
+		for (row = 1; row < 24; row++)
+		{
+			if (page_char[row*40] != ' ' && page_char[row*40] != 0x00 && page_char[row*40] != 0xFF && page_atrb[row*40] != (black <<4 | black)) {nofirst = 0; break;}
+		}
+#if CFGTTF
+		fontwidth = fontwidth_normal = (ex-sx) / (40-nofirst);
+		fontwidth_topmenumain = (TV43STARTX-sx) / (40-nofirst);
+		fontwidth_topmenusmall = (ex- TV43STARTX - TOPMENUINDENTDEF) / TOPMENUCHARS;
+		fontwidth_small = (TV169FULLSTARTX-sx)  / (40-nofirst);
+		switch(screenmode)
+		{
+			case 0:	fontwidth = fontwidth_normal     ; displaywidth= (ex             -sx);break;
+			case 1: fontwidth = fontwidth_topmenumain; displaywidth= (TV43STARTX     -sx);break;
+			case 2: fontwidth = fontwidth_small      ; displaywidth= (TV169FULLSTARTX-sx);break;
+		}
+#endif
 		if (transpmode || (boxed && !screenmode))
 		{
 			ClearBB(transp);
@@ -3640,7 +3685,7 @@
 		{
 			PosX = StartX;
 
-			for (col = 0; col < 40; col++)
+			for (col = nofirst; col < 40; col++)
 				RenderCharBB(page_char[row*40 + col], page_atrb[row*40 + col]);
 
 			PosY += fontheight;
@@ -3652,7 +3697,7 @@
 	else if (transpmode != 2 && zoommode != 2)
 	{
 		/* update timestring */
-		PosX = StartX + 32*fontwidth;
+		SetPosX(32);
 		PosY = StartY;
 
 		for (byte = 0; byte < 8; byte++)
@@ -3675,13 +3720,23 @@
 	else
 		yoffset = var_screeninfo.yres;
 	
+#if CFGTTF
+	int abx = (displaywidth)/(((displaywidth)%(40-nofirst))+1);// distance between 'inserted' pixels
+	int width = displaywidth /4;
+#else
+	int width = ((40-nofirst)*oldfontwidth)/4;
+#endif
 	
-	PosX = StartX + column*oldfontwidth;
+	PosX = StartX + column*width;
 	PosY = StartY + 24*fontheight;
 
 	if (boxed)
 	{
+#if CFGTTF
+		FillRect(PosX, PosY+yoffset, displaywidth, fontheight, transp);
+#else
 		FillRect(PosX, PosY+yoffset, 40*oldfontwidth, fontheight, transp);
+#endif
 		return;
 	}
 	
@@ -3695,8 +3750,8 @@
 			fontwidth = oldfontwidth * 10 / (l+1);
 			typettf.font.pix_width  = (FT_UShort) fontwidth * TTFWIDTHFACTOR;
 		}
-		FillRect(PosX, PosY+yoffset, 10*oldfontwidth, fontheight, Attrib >> 4);
-		PosX += ((10*oldfontwidth) - (l*fontwidth))/2; /* center */
+		FillRect(PosX, PosY+yoffset, width+(displaywidth%4), fontheight, Attrib >> 4);
+		PosX += ((width) - (l*fontwidth+l*fontwidth/abx))/2; /* center */
 		for (p = adip[linkpage]; *p; p++)
 			RenderCharBB(*p, Attrib);
 		fontwidth = oldfontwidth;
@@ -3747,9 +3802,9 @@
 	next_100 = toptext_getnext(next_10, 1, 0);
 
 	showlink(0, prev_100, red<<4 | white);
-	showlink(10, prev_10, green<<4 | black);
-	showlink(20, next_10, yellow<<4 | black);
-	showlink(30, next_100, blue<<4 | white);
+	showlink(1, prev_10, green<<4 | black);
+	showlink(2, next_10, yellow<<4 | black);
+	showlink(3, next_100, blue<<4 | white);
 	
 	if (bttok && screenmode == 1) /* TOP-Info present, divided screen -> create TOP overview */
 	{
@@ -3760,6 +3815,8 @@
 		int attr;
 
 #if CFGTTF 
+		int olddisplaywidth = displaywidth;
+		displaywidth = fontwidth_topmenusmall*(40-nofirst);
 		fontwidth = fontwidth_topmenusmall;
 		typettf.font.pix_width  = (FT_UShort) fontwidth * TTFWIDTHFACTOR;
 #else	 /* !TTF */
@@ -3852,6 +3909,7 @@
 			RenderClearMenuLineBB(line, attrcol, attr);
 		}
 #if CFGTTF 
+		displaywidth = olddisplaywidth;
 		fontwidth = fontwidth_topmenumain;
 		typettf.font.pix_width  = (FT_UShort) fontwidth * TTFWIDTHFACTOR;
 #else	 /* !TTF */
@@ -3919,17 +3977,18 @@
 		unsigned char *topdst = dst;
 		
 		screenwidth = TV43STARTX;
+
 		topsrc += screenwidth;
 		topdst += screenwidth;
 		for (i = 0; i < 25*fontheight; i++)
 		{
-			memcpy(topdst, topsrc, fontwidth_topmenusmall*TOPMENUCHARS);
+			memcpy(topdst, topsrc,screenwidth);
 			topdst += var_screeninfo.xres;
 			topsrc += var_screeninfo.xres;
 		}
 	}
 	else if (screenmode == 2)
-		screenwidth = TV169FULLSTARTX;
+		screenwidth = TV169FULLSTARTX+sx;
 	else
 		screenwidth = var_screeninfo.xres;
 		
@@ -3956,6 +4015,7 @@
 	static int init_lcd = 1, old_cached_pages = -1, old_page = -1, old_subpage = -1, old_subpage_max = -1, old_hintmode = -1;
 	int  x, y, subpage_max = 0, update_lcd = 0;
 
+	if (lcd == -1) return; // for Dreamboxes without LCD-Display (5xxx)
 	/* init or update lcd */
 	if (init_lcd)
 	{
diff -Naur -w orig/tuxtxt.h ok/tuxtxt.h
--- orig/tuxtxt.h	2004-10-24 14:55:12.000000000 +0200
+++ ok/tuxtxt.h	2004-11-27 16:05:48.000000000 +0100
@@ -55,15 +55,15 @@
 #endif
 
 #define CFGTTF 1
-#define TUXTXTCONF CONFIGDIR "/tuxtxt/tuxtxt.conf"
+#define TUXTXTCONF CONFIGDIR "/tuxtxt/tuxtxt2.conf"
 
 /* fonts */
 #define TUXTXT0 FONTDIR "/tuxtxt0.fon"  /* G0 8+16pt */
 #define TUXTXT1 FONTDIR "/tuxtxt1.fon"  /* G1 8+16pt */
 #define TUXTXT2 FONTDIR "/tuxtxt2.fon"  /* NS 8+16pt */
-#if 0
+#if 1
 #if CFGTTF 
-#define TUXTXTTTF "/var/tuxtxt/TuxTxt.ttf" /* TTF */
+#define TUXTXTTTF "/var/tuxtxt/tuxtxt.ttf" /* TTF */
 #else
 #define TUXTXT0R "/var/tuxtxt/tuxtxt0r.fon" /* G0 12pt */
 #define TUXTXT1R "/var/tuxtxt/tuxtxt1r.fon" /* G1 12pt */
@@ -82,8 +82,8 @@
 #if CFGTTF 
 int fontheight, fontwidth, fontwidth_normal, fontwidth_small, fontwidth_topmenumain, fontwidth_topmenusmall, ascender;
 int ymosaic[4];
-#define TTFWIDTHFACTOR 4 /* FIXME: otherwise too much space btw chars */
-
+int TTFWIDTHFACTOR = 4; /* FIXME: otherwise too much space btw chars */
+int displaywidth;
 #define fontwidth_small_lcd 8
 #else
 #define fontheight 20
@@ -94,18 +94,24 @@
 #define fontwidth_topmenusmall 8
 #endif
 
+#if CFGTTF
+#define TV43STARTX (ex - 146) //(StartX + 2 + (40-nofirst)*fontwidth_topmenumain + (40*fontwidth_topmenumain/abx))
+#define TV169FULLSTARTX (sx + (ex - sx)/2) //(StartX + (40-nofirst)*fontwidth_small + ((40-nofirst)*fontwidth_small/abx))
+#define TVENDX ex
+#else
 #define TV43STARTX (StartX + 2 + 40*fontwidth_topmenumain)
+#define TV169FULLSTARTX (StartX + 2 + 40*fontwidth_small)
 #define TVENDX (StartX + 40*fontwidth_normal)
+#endif
 #define TVENDY (StartY + 25*fontheight)
 #define TV43WIDTH 144 /* 120 */
 #define TV43HEIGHT 116 /* 96 */
 #define TV43STARTY (TVENDY - TV43HEIGHT)
-#define TV169FULLSTARTX (StartX + 2 + 40*fontwidth_small)
-#define TV169FULLSTARTY 25
-#define TV169FULLWIDTH 320
-#define TV169FULLHEIGHT 576
+#define TV169FULLSTARTY sy
+#define TV169FULLWIDTH  (ex - sx)/2
+#define TV169FULLHEIGHT (ey - sy)
 
-#define TOPMENUSTARTX TV43STARTX
+#define TOPMENUSTARTX TV43STARTX+2
 #define TOPMENUENDX TVENDX
 #define TOPMENUSTARTY StartY
 #define TOPMENUENDY TV43STARTY
@@ -115,7 +121,7 @@
 #define TOPMENUINDENTGRP 1
 #define TOPMENUINDENTDEF 2
 #define TOPMENUSPC 0
-#define TOPMENUCHARS (TOPMENUINDENTDEF+12+TOPMENUSPC+3+5)
+#define TOPMENUCHARS (TOPMENUINDENTDEF+12+TOPMENUSPC+4)
 
 /*  1: blk-1, grp-1, grp+1, blk+1 */
 /*  2: blk-1, grp+1, grp+2, blk+1 */
@@ -379,7 +385,7 @@
 int page, subpage, lastpage, pageupdate, zap_subpage_manual;
 int current_national_subset;
 int inputcounter;
-int zoommode, screenmode, transpmode, hintmode, boxed;
+int zoommode, screenmode, transpmode, hintmode, boxed, nofirst;
 int catch_row, catch_col, catched_page, pagecatching;
 int prev_100, prev_10, next_10, next_100;
 int fnc_old, saa_old, screen_mode1, screen_mode2, color_mode, national_subset, auto_national, swapupdown, showhex, menulanguage; 
Fred Kellner
Interessierter
Interessierter
Beiträge: 22
Registriert: Mittwoch 27. Oktober 2004, 13:11

Beitrag von Fred Kellner »

Da sich leider an der schlechten Lesbarkeit des TuxTxt auf 16:9 bis heute nichts geändert hat, noch mal die Frage: Kann man das Plugin durch eine alte Version (vor Top-Text) ersetzen?

Sind es diese beiden Dateien: 01_tuxtxt.cfg und 01_tuxtxt.so ?
rolandm
Einsteiger
Einsteiger
Beiträge: 106
Registriert: Dienstag 17. August 2004, 18:29

Beitrag von rolandm »

Diese und die Font-Dateien (tuxtxt*.fon statt tuxtxt.ttf).

Der TTF-Font ist erst seit 1.64 drin, vor Top-Text mußt Du gar nicht zurückgehen.

Wenn Du Dir aber die Arbeit machen willst, dafür ein neues Image zu bauen (die Files müssen ja ins Flash an die richtige Stelle), kannst Du auch die aktuelle Version neu übersetzen und den Schalter CFGTTF auf 0 setzen.

Oder Du wartest noch, bis ich beide Fonts unterstütze und nach dem installierten Font suche (ich schätz aber, ich werd erst zwischen den Jahren wieder dazu kommen).
dbluelle
Contributor
Beiträge: 319
Registriert: Samstag 29. Mai 2004, 18:49

Beitrag von dbluelle »

Fred Kellner hat geschrieben:Da sich leider an der schlechten Lesbarkeit des TuxTxt auf 16:9 bis heute nichts geändert hat
Tja, da kaum Feedback gekommen ist, kann sich auch an der Lesbarkeit nur wenig ändern... :(

Ich habe bis heute leider noch von keinem die Positionseinstellungen für Tuxtxt bekommen und zu der Möglichkeit, einen eigenen Font zu verwenden (z.B. http://www.blau-weissoedingen.de/dreambox/tuxtxt.ttf )
hat sich auch noch keiner geäußert .

dbluelle
Fred Kellner
Interessierter
Interessierter
Beiträge: 22
Registriert: Mittwoch 27. Oktober 2004, 13:11

Beitrag von Fred Kellner »

Wieso kein Feedback??

Mein Feedback lautete schon vor Wochen: Zurück zum Fixed Font, alles andere kann nur schlechter sein.

Ich bin selbst Software-Entwickler und kann nicht verstehen, wieso man eine Sache, die perfekt war, so verschlimmbessern musste, dass sie praktisch nicht mehr brauchbar ist.

Ich bekomme jedenfalls tränende Augen (im doppelten Sinne), wenn ich den aktuellen TuxTxt betrachte.
dbluelle
Contributor
Beiträge: 319
Registriert: Samstag 29. Mai 2004, 18:49

Beitrag von dbluelle »

Fred Kellner hat geschrieben:Wieso kein Feedback??

Mein Feedback lautete schon vor Wochen: Zurück zum Fixed Font, alles andere kann nur schlechter sein.
So ein "Feedback" ist allerdings wenig hilfreich :evil:
Ich meinte eben ein Feedback in der Form, wie ich es oben schon beschrieben habe:
1.) Das sich mal jemand bequemt, die Tuxtext-Positionseinstellungen hier zu posten.
2.) Das mal jemand ausprobiert, ob es mit anderen TT-Fonts bessere Ergebnisse gibt.
Fred Kellner hat geschrieben:Ich bin selbst Software-Entwickler und kann nicht verstehen, wieso man eine Sache, die perfekt war, so verschlimmbessern musste, dass sie praktisch nicht mehr brauchbar ist.
Sie war eben nicht perfekt! (Gerade als Software-Entwickler solltest du wissen, dass es keine perfekte Software gibt :wink: )
Wie auch schon mehrfach hier im Forum erklärt, gibt es viele Fernseher, bei denen Tuxtxt mit dem fixed-font nicht vollständig sichtbar war.

Deshalb die Umstellung auf den TT-Font.

Da ich bei mir keine Probleme mit der Lesbarkeit habe, kann ich nur versuchen, mir anhand eures Feedbacks ein Bild von der Lage zu machen und Verbesserungsmöglichkeiten zu finden.
Wenn da aber nichts kommt, kann ich auch nichts machen!

dbluelle
DrStoned
Tuxboxer
Tuxboxer
Beiträge: 2614
Registriert: Montag 20. Mai 2002, 10:49
Image: JTG-Image [IDE] Version 2.4.4
Image: (7025SS) Merlin

Beitrag von DrStoned »

Fred Kellner hat geschrieben:Da sich leider an der schlechten Lesbarkeit des TuxTxt auf 16:9 bis heute nichts geändert hat, noch mal die Frage: Kann man das Plugin durch eine alte Version (vor Top-Text) ersetzen?

Sind es diese beiden Dateien: 01_tuxtxt.cfg und 01_tuxtxt.so ?
Ja, das sind diese Dateien.
Wenn Du noch die alten Versionen hast, kopiere sie einfach per ftp nach /var/tuxbox/plugins . Die 01_tuxtxt.so braucht Ausführrechte.
Per telnet auf die Box, chmod 755 /var/tuxbox/plugins/01_tuxtxt.so
Danach die Box neu starten.

Greetz von DrStoned :lol: :lol: :lol:
Greetz von DrStoned :lol: :lol: :lol:
Fred Kellner
Interessierter
Interessierter
Beiträge: 22
Registriert: Mittwoch 27. Oktober 2004, 13:11

Beitrag von Fred Kellner »

Vielen Dank, Dr. Stoned! :D
Fred Kellner
Interessierter
Interessierter
Beiträge: 22
Registriert: Mittwoch 27. Oktober 2004, 13:11

Beitrag von Fred Kellner »

dbluelle hat geschrieben:Wie auch schon mehrfach hier im Forum erklärt, gibt es viele Fernseher, bei denen Tuxtxt mit dem fixed-font nicht vollständig sichtbar war.
Bei mir war auf zwei normalen 4:3-TVs und auf einem 16:9-TV alles bestens mit dem alten Fixed Font. Dass es da auf "vielen" TVs zu Problemen kommt, kann ich nicht recht glauben.

Aber egal, ich such mir jetzt ein altes Image und wünsche den deutschen Augenärzten weiter gute Geschäfte mit Neutrino-Usern. 8)
Fred Kellner
Interessierter
Interessierter
Beiträge: 22
Registriert: Mittwoch 27. Oktober 2004, 13:11

Beitrag von Fred Kellner »

@DrStoned:

Wie bekomme ich denn die alten Fonts (Tuxtxt*.fon) nach /share/fonts ?
rolandm
Einsteiger
Einsteiger
Beiträge: 106
Registriert: Dienstag 17. August 2004, 18:29

Beitrag von rolandm »

Vergiß es einfach, dbluelle, von dem ist keine Hilfe zu erwarten :evil:

Das mit den Plugins hatte ich ja schon geschrieben. Es wird nicht funktionieren, wenn die alten Fonts nicht auch da sind, und ohne Veränderung werden sie nur im Flash gesucht.
Fred Kellner
Interessierter
Interessierter
Beiträge: 22
Registriert: Mittwoch 27. Oktober 2004, 13:11

Beitrag von Fred Kellner »

dbluelle hat geschrieben: 1.) Das sich mal jemand bequemt, die Tuxtext-Positionseinstellungen hier zu posten.
2.) Das mal jemand ausprobiert, ob es mit anderen TT-Fonts bessere Ergebnisse gibt.
Wenn Du mir erklärst, wie ich die
a) die Positionseinstellungen finde und
b) den TTF-Font tauschen kann,
dann werde ich das gern versuchen und hier meine Ergebnisse posten.
dbluelle
Contributor
Beiträge: 319
Registriert: Samstag 29. Mai 2004, 18:49

Beitrag von dbluelle »

Fred Kellner hat geschrieben: Wenn Du mir erklärst, wie ich die
a) die Positionseinstellungen finde und
b) den TTF-Font tauschen kann,
dann werde ich das gern versuchen und hier meine Ergebnisse posten.
a) stehen in der neutrino.conf
b) Einfach /var/tuxtxt/tuxtxt.ttf ersetzen und eventuell den TTFWIDTHFACTOR in der tuxtxt.conf anpassen.

Das kannst du aber auch alles selbst herausfinden, wenn du mal kurz eine Seite im Thread zurückblätterst :wink:

dbluelle
prinz_august
Neugieriger
Neugieriger
Beiträge: 16
Registriert: Samstag 10. Januar 2004, 15:59

Beitrag von prinz_august »

Steffi hat geschrieben: Falls du ein JFFS2-Image nutzt (z.B. von DietmarW), ist das Austauschen überhaupt kein Problem. Dann geht das ganz einfach per FTP . Bei einem Image, das die Plugins im Cramfs (z.B. JTG-Image) oder im Squashfs (z.B. Yadi-Image) untergebracht hat, ist es ein wenig komplizierter, aber auch möglich.

Steffi
Und wie mach ich das bei einem Squashfs?