[Patch] fontname aus dem fontfile holen

Das Original Benutzerinterface Neutrino-SD incl. zapit, sectionsd, yWeb etc...
seife
Developer
Beiträge: 4189
Registriert: Sonntag 2. November 2003, 12:36

[Patch] fontname aus dem fontfile holen

Beitrag von seife »

Hallo,

0001-improve-font-file-handling.patch

Das holt den Fontnamen aus dem Fontfile, anstatt ihn fest mit anzugeben. Das macht es z.B. möglich (auch wenn es nicht unbedingt sinnvoll ist..) unterschiedliche fonts für Regular, Bold und Italic anzugeben.

Später wird es damit ein leichtes sein, eine extra kommandozeilenoption für einen LCD-Font zu übergeben (typischerweise sind gute LCD-Fonts nicht wirklich für den Framebuffer geeignet und andersrum).

Der einzige Nachteil ist, dass sich die Aufrufsyntax an der Kommandozeile ändert, aber da ist in der usage-Nachricht schon mit geändert.

Der Code ist im tripledragon-experimental repo seit langem ohne Probleme im Einsatz.

Meinungen?
rhabarber1848
CDK-Experte
Beiträge: 4335
Registriert: Donnerstag 3. April 2008, 14:05

Re: [Patch] fontname aus dem fontfile holen

Beitrag von rhabarber1848 »

Auf der Dbox2 kommt beim Kompilieren das:
lcdd.cpp: In member function `bool CLCD::lcdInit(const char*, const char*, const char*)':
lcdd.cpp:194: error: 'class LcdFontRenderClass' has no member named 'getFamily'
lcdd.cpp:203: error: 'class LcdFontRenderClass' has no member named 'getFamily'
lcdd.cpp:214: error: 'class LcdFontRenderClass' has no member named 'getFamily'
seife
Developer
Beiträge: 4189
Registriert: Sonntag 2. November 2003, 12:36

Re: [Patch] fontname aus dem fontfile holen

Beitrag von seife »

vorher "cvs up" und "make tuxbox_libs" gemacht?

die LcdFontRenderClass hat heute nämlich ein getFamily bekommen :)
rhabarber1848
CDK-Experte
Beiträge: 4335
Registriert: Donnerstag 3. April 2008, 14:05

Re: [Patch] fontname aus dem fontfile holen

Beitrag von rhabarber1848 »

seife hat geschrieben:vorher "cvs up"
Nein, mache ich natürlich sofort ;) Sorry for the noise...
seife
Developer
Beiträge: 4189
Registriert: Sonntag 2. November 2003, 12:36

Re: [Patch] fontname aus dem fontfile holen

Beitrag von seife »

ist mir auch passiert ;)

"cvs up" allein reicht auch nicht, weil tuxbox_libs ja schon gebaut ist, aber die neuen Header und liblcddisplay installiert werden müssen
rhabarber1848
CDK-Experte
Beiträge: 4335
Registriert: Donnerstag 3. April 2008, 14:05

Re: [Patch] fontname aus dem fontfile holen

Beitrag von rhabarber1848 »

seife hat geschrieben:"cvs up" allein reicht auch nicht, weil tuxbox_libs ja schon gebaut ist
Ich baue immer von Anfang an alles neu durch, um solche Probleme zu vermeiden.
Nur habe ich den letzten CVS-checkout wenige Minuten vor Deinem Posting gemacht,
sodass ich Deinen commit nur knapp verpasst habe ;)

Kurze off-topic-Frage: Hast Du etwas dagegen, wenn ich diesen Patch für die Dbox2
einchecke? http://thread.gmane.org/gmane.linux.kernel/945376
seife
Developer
Beiträge: 4189
Registriert: Sonntag 2. November 2003, 12:36

Re: [Patch] fontname aus dem fontfile holen

Beitrag von seife »

rhabarber1848 hat geschrieben:Kurze off-topic-Frage: Hast Du etwas dagegen, wenn ich diesen Patch für die Dbox2
einchecke? http://thread.gmane.org/gmane.linux.kernel/945376
Nö.
Wobei es IMHO unnötige Arbeit ist (und dazu führt, dass alle den kernel und in Folge alles andere inklusive toolchain komplett neu bauen ;)), weil der Fall den der Patch fixt ist extrem schwierig zu treffen und der Patch ist auch schon im 2.4er kernel git, also beim nächsten 2.4er update, das dann bestimmt auch für die dbox nachgezogen wird, mit drin.
rhabarber1848
CDK-Experte
Beiträge: 4335
Registriert: Donnerstag 3. April 2008, 14:05

Re: [Patch] fontname aus dem fontfile holen

Beitrag von rhabarber1848 »

seife hat geschrieben:Der Code ist im tripledragon-experimental repo seit langem ohne Probleme im Einsatz.
Ein Standard-CVS-Image wird durch diesen Patch nicht beeinträchtigt,
somit spricht imho nichts gegen einen commit.

Den Kernel-Patch verfolge ich nicht weiter, wobei, ich habe soeben
einen binutils-version bump committed ;)
seife
Developer
Beiträge: 4189
Registriert: Sonntag 2. November 2003, 12:36

Re: [Patch] fontname aus dem fontfile holen

Beitrag von seife »

ok. Ich warte noch auf kommentare von imagebauern, weil sich die Kommandozeilensyntax ändert.

Hast du auch mal versucht, einen anderen font zu laden? Sollte nun einfacher sein, weil man den Namen nicht mehr wissen muss. Einfach "neutrino --font 0 /tmp/font.ttf" reicht nun.

Und wegen der VFAT geschichte: der bug war sehr obskur. Das Dateisystem muss auf eine bestimmte Weise kaputt sein, dann muss die kaputte datei auf besondere Weise geschrieben werden, dann knallts. Das Szenario ist auf der dbox eher unwahrscheinlich (Datenbankfiles auf VFAT). Und da der Fix irgendwann automatisch kommt, wäre das wirklich nur Beschäftigungstherapie ;)

Wg. binutils: ich mach einfach keine updates von /cdk ;)
mb405
Tuxboxer
Tuxboxer
Beiträge: 2331
Registriert: Donnerstag 24. März 2005, 21:52

Re: [Patch] fontname aus dem fontfile holen

Beitrag von mb405 »

was spricht dagegen das einzuchecken ?

edit. reverten kann man es ja immer noch :)
Zuletzt geändert von mb405 am Sonntag 4. Juli 2010, 10:47, insgesamt 1-mal geändert.
seife
Developer
Beiträge: 4189
Registriert: Sonntag 2. November 2003, 12:36

Re: [Patch] fontname aus dem fontfile holen

Beitrag von seife »

Ich warte noch auf rückmeldungen von den Image-Meistern. Schliesslich ändert sich die Syntax der Kommandozeile.
mb405
Tuxboxer
Tuxboxer
Beiträge: 2331
Registriert: Donnerstag 24. März 2005, 21:52

Re: [Patch] fontname aus dem fontfile holen

Beitrag von mb405 »

checks ein, und schreib das man tuxbox_libs mit neu bauen muss.
dann kommen schon die meldungen.

Code: Alles auswählen

[LCDFONT] initializing core...
[LCDFONT] adding font /share/fonts/12.pcf.gz...OK (Fix12/Regular)
[LCDFONT] adding font /share/fonts/14B.pcf.gz...OK (Fix14/Bold)
[LCDFONT] adding font /share/fonts/15B.pcf.gz...OK (Fix15/Bold)
[LCDFONT] Intializing font cache...
[LCDFONT] FTC_Face_Requester (Fix15/Bold)
[LCDFONT] FTC_Face_Requester (Fix12/Regular)
[LCDFONT] FTC_Face_Requester (Fix14/Bold)
[neutrino] [neutrino] box_Type: 1
[neutrino] [FONT] initializing core...
[neutrino] [FONT] Intializing font cache, using max. 4MB...
[neutrino] [FONT] adding font /share/fonts/micron.ttf... ok
[neutrino] SetupFonts filename: /share/fonts/micron.ttf fontname: Micron
[neutrino] [FONT] adding font /share/fonts/micron_bold.ttf, failed: 1
*** glibc detected ***
liegt wohl an der fehlenden lib :) ich hab nur die neue neutrino mal starten wollen :)
mb405
Tuxboxer
Tuxboxer
Beiträge: 2331
Registriert: Donnerstag 24. März 2005, 21:52

Re: [Patch] fontname aus dem fontfile holen

Beitrag von mb405 »

nee sorry mein fehler :)
die micron_bold gabs nicht :) hehe

Code: Alles auswählen

[LCDFONT] initializing core...
[LCDFONT] adding font /share/fonts/12.pcf.gz...OK (Fix12/Regular)
[LCDFONT] adding font /share/fonts/14B.pcf.gz...OK (Fix14/Bold)
[LCDFONT] adding font /share/fonts/15B.pcf.gz...OK (Fix15/Bold)
[LCDFONT] Intializing font cache...
[LCDFONT] FTC_Face_Requester (Fix15/Bold)
[LCDFONT] FTC_Face_Requester (Fix12/Regular)
[LCDFONT] FTC_Face_Requester (Fix14/Bold)
[neutrino] [neutrino] box_Type: 1
[neutrino] [FONT] initializing core...
[neutrino] [FONT] Intializing font cache, using max. 4MB...
[neutrino] [FONT] adding font /share/fonts/micron.ttf... ok
[neutrino] SetupFonts filename: /share/fonts/micron.ttf fontname: Micron
[neutrino] [FONT] adding font /share/fonts/micron_bold.ttf... ok
[neutrino] [FONT] adding font /share/fonts/micron_italic.ttf... ok
[neutrino] [FONT] FTC_Face_Requester (Micron/  Bold)
[neutrino] [FONT] FTC_Face_Requester (Micron/Regular)
[neutrino] [FONT] FTC_Face_Requester (Micron/  Italic)
geht also ganz sauber.
kann man trotsdem starten lassen, auch mit fehlender schriftart ? dann eben ne andere nehmen ??
seife
Developer
Beiträge: 4189
Registriert: Sonntag 2. November 2003, 12:36

Re: [Patch] fontname aus dem fontfile holen

Beitrag von seife »

mb405 hat geschrieben:kann man trotsdem starten lassen, auch mit fehlender schriftart ? dann eben ne andere nehmen ??
Könnte man. Allerdings ist es so, wenn ein Font explizit angegeben ist, dann muss der halt auch da sein.

Und wenn kein font angegeben wird, ist "micron", "micron_bold", "micron_italic" halt fest vorgegeben.

Wenn du dir die 50kb für micron_bold und micron_italic sparen willst, dann starte neutrino halt mit "neutrino --font 0 /share/fonts/micron.ttf", dann wird bold und italic emuliert.

Ich würde da jetzt nicht zuviel Logik in einen Fallback-Mechanismus stecken, der dann im Zweifelsfall auch nur verwirrt...

Man könnte allerdings ordentlich abbrechen, anstelle einfach nur zu crashen ;)
seife
Developer
Beiträge: 4189
Registriert: Sonntag 2. November 2003, 12:36

Re: [Patch] fontname aus dem fontfile holen

Beitrag von seife »

Ich habe es jetzt mal eingecheckt. Im wiki war "--font" auch nicht dokumentiert, also ist es eh keine öffentliche API ;)
mb405
Tuxboxer
Tuxboxer
Beiträge: 2331
Registriert: Donnerstag 24. März 2005, 21:52

Re: [Patch] fontname aus dem fontfile holen

Beitrag von mb405 »

jo. ich hab die fonts seit jeher aus dem share ins var und wieder zurück verlinkt. yadi hat das glaube mal gemacht.
is ne feine sache, so kann man einfach den link im var löschen und durch seinen favorisierten font ersetzen.
deswegen hatte ich den fehler, weil der link wech war :)
danke fürs einchecken in der wärme ;)
dbt
Administrator
Beiträge: 2675
Registriert: Donnerstag 28. September 2006, 19:18

Re: [Patch] fontname aus dem fontfile holen

Beitrag von dbt »

seife hat geschrieben:Im wiki war "--font" auch nicht dokumentiert, also ist es eh keine öffentliche API ;)
doch doch, muss dann geändert werden :wink:
Neutrino:Customizing#OSD-Schriftart
seife
Developer
Beiträge: 4189
Registriert: Sonntag 2. November 2003, 12:36

Re: [Patch] fontname aus dem fontfile holen

Beitrag von seife »

bei der Suche nach "font" wurde es nicht gefunden, "--font" fand auch nix.
Ausserdem bin ich offensichtlich zu blöd, das zu bearbeiten.
Im Quellcode steht nur

Code: Alles auswählen

=OSD-Schriftart=
{{customizing_osdfont}}
aber "customizing_osdfont" ist per suche wieder nicht auffindbar.
dbt
Administrator
Beiträge: 2675
Registriert: Donnerstag 28. September 2006, 19:18

Re: [Patch] fontname aus dem fontfile holen

Beitrag von dbt »

seife hat geschrieben:bei der Suche nach "font" wurde es nicht gefunden, "--font" fand auch nix.
Ausserdem bin ich offensichtlich zu blöd, das zu bearbeiten.
Im Quellcode steht nur

Code: Alles auswählen

=OSD-Schriftart=
{{customizing_osdfont}}
aber "customizing_osdfont" ist per suche wieder nicht auffindbar.
Für "font" hab' ich grad was angelegt, damit man es findet.

{{customizing_osdfont}} ist eine Vorlage, die du unterhalb des Quellcodes zusammen mit weiteren Vorlagen findest, mehr ist das nicht. Dort kann man die Vorlage auswählen und wie jeden anderen Artikel auch bearbeiten.
dbt
Administrator
Beiträge: 2675
Registriert: Donnerstag 28. September 2006, 19:18

Re: [Patch] fontname aus dem fontfile holen

Beitrag von dbt »

Habe gerade festgestellt, dass bei der Übernahme anderer Sprachen, welche andere Schriften verwenden z.B. Russisch, Griechisch etc. die Schriftart nicht übernommen wird. Das OSD ist dann voll zerschossen. Erst nach Neustart passt es. Das Gleiche gilt auch im umgekehrten Fall, also wenn man z.B Griechisch eingestellt hat und wechselt auf deutsch, englisch etc. dann wird die Schriftart auch nicht geändert nur dass es hier halt nicht so schlimm aussieht, weil ja der Schriftsatz umfangreicher ist und nichts fehlt, aber man erkennt es. Vor diesem Commit http://cvs.tuxbox-cvs.sourceforge.net/t ... &r2=1.1029 gings noch. Die die Menütitel werden zudem übrigens auch nicht auf die Sprache angepasst der Bug war scheinbar aber schon vorher, ist aber eine andere Geschichte.

Edit: Hab mal ein Bild gemacht, sieht nicht gut aus:
Bild
Hier wurde von deutsch auf griechisch gewechselt.
seife
Developer
Beiträge: 4189
Registriert: Sonntag 2. November 2003, 12:36

Re: [Patch] fontname aus dem fontfile holen

Beitrag von seife »

Ich vermute, dass das dasselbe Problem ist wie mit dem scansettings-Menü vor ein paar Wochen. Die Menüklassen sind einfach terminally broken, da ist ohne viel Arbeit nichts dran zu machen.

Für's Erste (bis das mal "jemand" fixt, LOL) würde ich nach Sprachwechsel einfach neutrino neustarten.
dwilx

Re: [Patch] fontname aus dem fontfile holen

Beitrag von dwilx »

Vorschlag: Kann man denn nicht ganz auf eine UTF-Schrift setzen? Die ist zwar größer aber immer noch kleiner, als wie bisher zwei zusammen und das Schriftbild würde immer passen, egal zu welcher Sprache. Etwas Code könnte dadurch wahrscheinlich auch noch aufgeräumt werden, wenn man den Aufwand mit dem Umschalten für verschiedene Schriften weglassen kann. :gruebel:
dbt
Administrator
Beiträge: 2675
Registriert: Donnerstag 28. September 2006, 19:18

Re: [Patch] fontname aus dem fontfile holen

Beitrag von dbt »

seife hat geschrieben:Ich vermute, dass das dasselbe Problem ist wie mit dem scansettings-Menü vor ein paar Wochen...
Sieht aber nicht so aus, weil die Einträge ja korrekt sind, nur die Schrift passt nicht. Damals war der Text daneben, was definitiv an den Menüklassen liegt.
seife hat geschrieben:da ist ohne viel Arbeit nichts dran zu machen.
Für's Erste (bis das mal "jemand" fixt, LOL) würde ich nach Sprachwechsel einfach neutrino neustarten.
Ich bin auch nur drauf gestoßen, weil ich an den Menüs weiter aufgeräumt habe und garade an den Spracheinstellungen zu Werke war. Ich dachte erst, dass da etwas daneben ging, weils einfach nicht wollte, aber nachdem ich die Revisionen zurückverfolgt hatte, gings dann wieder vor dem 4.7.10. Sollte das Menüzeugs mal aufgeräumt sein, könnte sich das aber auch von alleine erledigen, aber wo der Hund begraben ist, wäre schon mal gut zu wissen. Neustart ist aber wirklich nur die Brechstange.
Vorschlag: Kann man denn nicht ganz auf eine UTF-Schrift setzen? Die ist zwar größer aber immer noch kleiner, als wie bisher zwei zusammen und das Schriftbild würde immer passen, egal zu welcher Sprache.
Wenn man's ganz schnell machen will, gehts möglicherweise so. Ist aber nur eine andere Brechstange. Gespart ist da aber nichts :wink:

Code: Alles auswählen

Index: localize.cpp
===================================================================
RCS file: /cvs/tuxbox/apps/tuxbox/neutrino/src/system/localize.cpp,v
retrieving revision 1.56
diff -u -r1.56 localize.cpp
--- a/localize.cpp	18 Feb 2009 17:48:53 -0000	1.56
+++ b/localize.cpp	9 Aug 2010 21:44:52 -0000
@@ -289,7 +289,7 @@
 		(strcmp(locale, "russkij") == 0) ||
 		(strcmp(locale, "utf8") == 0)
 		/* utf8.locale is a generic name that can be used for new locales which need characters outside the ISO-8859-1 character set */
-		) ? UNICODE_FONT : ISO_8859_1_FONT;
+		) ? UNICODE_FONT : UNICODE_FONT/*ISO_8859_1_FONT*/;
 }
 
 const char * CLocaleManager::getText(const neutrino_locale_t keyName) const
seife
Developer
Beiträge: 4189
Registriert: Sonntag 2. November 2003, 12:36

Re: [Patch] fontname aus dem fontfile holen

Beitrag von seife »

Ok. Der Menüpunkt 4 hatte mich verwirrt, aber das ist wohl nur ne fehlende locale...
dbt
Administrator
Beiträge: 2675
Registriert: Donnerstag 28. September 2006, 19:18

Re: [Patch] fontname aus dem fontfile holen

Beitrag von dbt »

seife hat geschrieben:Ok. Der Menüpunkt 4 hatte mich verwirrt, aber das ist wohl nur ne fehlende locale...
Ja betrifft auch alle anderen Fenster wie Infobar, EpG usw...