[patch] Alternatives Icon-Verzeichnis

Wünsche, Anträge, Fehlermeldungen
dwilx

[patch] Alternatives Icon-Verzeichnis

Beitrag von dwilx »

Weil ja einige Anfragen kamen, die Icons optional selbst zu ändern, habe ich mal einen Patch gebastelt, mit dem es möglich ist einzelne oder mehrere alternative Icons im schreibbaren Bereich unterzubringen.
Ich habe dafür das Verzeichneis var/share/icons vorgesehen. Könnte man aber noch ändern wenns aufgenommen würde. Ich denke mal, dass Diskussionen über dieses Thema damit gelöst werden könnten.
Könnte man das aufnehmen?? :wink:

Code: Alles auswählen

Index: src/driver/framebuffer.cpp
===================================================================
RCS file: /cvs/tuxbox/apps/tuxbox/neutrino/src/driver/framebuffer.cpp,v
retrieving revision 1.54
diff -u -r1.54 framebuffer.cpp
--- a/src/driver/framebuffer.cpp	21 Apr 2005 10:07:36 -0000	1.54
+++ b/src/driver/framebuffer.cpp	18 Apr 2007 06:50:08 -0000
@@ -516,6 +516,20 @@
 	return true;
 }
 
+const char  *CFrameBuffer::getIconFilePath(const std::string & filename)
+{
+	std::string iconFilePath, stdIconPath = iconBasePath + filename, backupIconDir =  "var/share/icons/";
+	std::string backupIconPath = backupIconDir + filename;
+	
+	if ((access(backupIconPath.c_str(), 0 ) != -1))	{
+			iconFilePath = backupIconPath;
+		}
+		else	{
+			iconFilePath = stdIconPath;
+		}
+	return iconFilePath.c_str();
+}		
+
 bool CFrameBuffer::paintIcon(const std::string & filename, const int x, const int y, const unsigned char offset)
 {
 	if (!getActive())
@@ -524,12 +538,13 @@
 	struct rawHeader header;
 	uint16_t         width, height;
 	int              fd;
+	const char * iconfile = getIconFilePath(filename);
 
-	fd = open((iconBasePath + filename).c_str(), O_RDONLY);
+	fd = open(iconfile, O_RDONLY);
 
 	if (fd == -1)
 	{
-		printf("error while loading icon: %s%s\n", iconBasePath.c_str(), filename.c_str());
+		printf("error while loading icon: %s\n", iconfile);
 		return false;
 	}
 
Index: src/driver/framebuffer.h
===================================================================
RCS file: /cvs/tuxbox/apps/tuxbox/neutrino/src/driver/framebuffer.h,v
retrieving revision 1.38
diff -u -r1.38 framebuffer.h
--- a/src/driver/framebuffer.h	17 Mar 2004 18:44:44 -0000	1.38
+++ b/src/driver/framebuffer.h	18 Apr 2007 06:50:08 -0000
@@ -79,6 +79,7 @@
 		__u16 red[256], green[256], blue[256], trans[256];
 
 		void paletteFade(int i, __u32 rgb1, __u32 rgb2, int level);
+		const char  * getIconFilePath(const std::string & filename);
 
 		int 	kd_mode;
 		struct	vt_mode vt_mode;
doktorknow
Interessierter
Interessierter
Beiträge: 99
Registriert: Dienstag 27. November 2001, 00:00

Beitrag von doktorknow »

ich finde das eine sehr gute Idee!! Danke für Deine Arbeit!
MfG
doktorknow
PT-1
Moderator english
Beiträge: 2458
Registriert: Donnerstag 20. Dezember 2001, 00:00

Beitrag von PT-1 »

Das wird hoffentlich einige beruhigen ;-)
Z80
Erleuchteter
Erleuchteter
Beiträge: 710
Registriert: Dienstag 3. September 2002, 12:54

Beitrag von Z80 »

gute idee, danke für das diff.
bitte aber die kugeln als option in /var/xyz vorsehen und die alten buttons als default.
mb405
Tuxboxer
Tuxboxer
Beiträge: 2331
Registriert: Donnerstag 24. März 2005, 21:52

Beitrag von mb405 »

also in der framebuffer.cpp ist der teil mehrmals enthalten.

Code: Alles auswählen

..
fd = open((iconBasePath + filename).c_str(), O_RDONLY); 
...
das sollte dann überall geändert werden, denke ich.
dbt
Administrator
Beiträge: 2675
Registriert: Donnerstag 28. September 2006, 19:18

Beitrag von dbt »

mb405 hat geschrieben:also in der framebuffer.cpp ist der teil mehrmals enthalten.

Code: Alles auswählen

..
fd = open((iconBasePath + filename).c_str(), O_RDONLY); 
...
das sollte dann überall geändert werden, denke ich.
könnte man! Der Patch funktioniert eigentlich super. Auch flexibel, da man kein komplettes Icon-Set zusammenstellen muß. Dann könnten sich ja mal einige "Grafiker":wink: so richtig austoben... und zeigen was Sie drauf haben :) :) :)
mb405
Tuxboxer
Tuxboxer
Beiträge: 2331
Registriert: Donnerstag 24. März 2005, 21:52

Beitrag von mb405 »

wenn ja, dann wäre ich für den pfad. geschmackssache.

Code: Alles auswählen

..
std::string iconFilePath, stdIconPath = iconBasePath + filename, backupIconDir =  "var/share/tuxbox/neutrino/icons/";
..
mb405
Tuxboxer
Tuxboxer
Beiträge: 2331
Registriert: Donnerstag 24. März 2005, 21:52

Beitrag von mb405 »

hier mal das framebuffer.diff mit allen änderungen.
dbt
Administrator
Beiträge: 2675
Registriert: Donnerstag 28. September 2006, 19:18

Beitrag von dbt »

mb405 hat geschrieben:wenn ja, dann wäre ich für den pfad. geschmackssache.

Code: Alles auswählen

..
std::string iconFilePath, stdIconPath = iconBasePath + filename, backupIconDir =  "var/share/tuxbox/neutrino/icons/";
..
Bin auch dafür. Das würde dann mit den anderen "locals" wie clockskins usw. passen...
Wenns keine Bedenken gibt könnte, man das diff ja übernehmen, nicht dass das hinterher Ärger gibt.
PauleFoul
Wissender
Wissender
Beiträge: 1839
Registriert: Sonntag 17. August 2003, 01:39

Beitrag von PauleFoul »

Wäre schön wenn das mal einer einbauen könnte...


Gruß
____Paule
mb405
Tuxboxer
Tuxboxer
Beiträge: 2331
Registriert: Donnerstag 24. März 2005, 21:52

Beitrag von mb405 »

@dbt
danke fürs einchecken, aber bei icons.h ist der pfad nicht richtig !

var/share/tuxbox/neutrino/icons

und nicht
var/tuxbox/share/neutrino/icons

kannst das drehen ? danke
dbt
Administrator
Beiträge: 2675
Registriert: Donnerstag 28. September 2006, 19:18

Beitrag von dbt »

oops. :oops: das kann ich machen, bin aber momentan nicht an meinem cvs-Rechner. Bin erst im Laufe des Abends wieder dran. Evtl. kanns schon jemand anders drehen!
saruman
Erleuchteter
Erleuchteter
Beiträge: 682
Registriert: Samstag 13. Juli 2002, 10:05

Beitrag von saruman »

dbt hat geschrieben:Evtl. kanns schon jemand anders drehen!
Jupps, jemand anders hats gedreht. :)
dbt
Administrator
Beiträge: 2675
Registriert: Donnerstag 28. September 2006, 19:18

Beitrag von dbt »

:wink: passt
PauleFoul
Wissender
Wissender
Beiträge: 1839
Registriert: Sonntag 17. August 2003, 01:39

Beitrag von PauleFoul »

Schön dass das jetzt im CVS drin ist.

Habe allerdings noch zwei Punkte:

1. Können wir bitte wieder default die alten Buttons einpflegen. Alleine schon wegen der Doku im Wiki wäre mir das lieber. Wer die runden Dinger mag kann diese dann ja jetzt problemlos einbauen.

2. Wäre es möglich in das Share-Verzeichnis auch einen Ordner für
eine alternative Schriftart einzubauen??


Gruß
____Paule
mb405
Tuxboxer
Tuxboxer
Beiträge: 2331
Registriert: Donnerstag 24. März 2005, 21:52

Beitrag von mb405 »

die schritart kannste doch neutrino beim aufruf mitgeben.
dbt
Administrator
Beiträge: 2675
Registriert: Donnerstag 28. September 2006, 19:18

Beitrag von dbt »

die alten Buttons einpflegen.
Wie gesagt, kann erst im Laufe des Abend wieder an meinen cvs-Rechner. Kann aber ja auch jemand anders machen. :wink:
2. Wäre es möglich in das Share-Verzeichnis auch einen Ordner für
eine alternative Schriftart einzubauen??
mb405 hats schon angerissen. Geht z.B. ins Startscript einzubauen als Argument für Neutrino. Ist aber irgendwie auch mit der Schriftart fürs LCD verquickt. Das sieht dann je nach Fonttype im LCD kagge aus wenn man ne dumme Schrift nimmt, muß aber nicht! Insofern könnte man schon was drehen...muss man aber eigentlich nicht
StevenSch
Einsteiger
Einsteiger
Beiträge: 105
Registriert: Mittwoch 20. Oktober 2004, 12:41

Beitrag von StevenSch »

Ich hab das Gefühl das hier wird der Anfang einer erweiterten Themes-Fähigkeit von Neutrino, denn wer sagt denn das man im Verzeichnis nur die Button Icons ablegen kann/sollte... :wink:
Jetzt noch den 16Bit Modus im Framebuffer zum Laufen kriegen .... :roll:
PauleFoul
Wissender
Wissender
Beiträge: 1839
Registriert: Sonntag 17. August 2003, 01:39

Beitrag von PauleFoul »

mb405 hat geschrieben:die schritart kannste doch neutrino beim aufruf mitgeben.
Wie??
mb405
Tuxboxer
Tuxboxer
Beiträge: 2331
Registriert: Donnerstag 24. März 2005, 21:52

Beitrag von mb405 »

so

Code: Alles auswählen

Usage: neutrino [-u | --enable-update] [-f | --enable-flash] [-v | --verbose 0..3] [--font name sizeoffset /dir/file.ttf [/dir/bold.ttf [/dir/italic.ttf]]]
dwilx

Beitrag von dwilx »

Toll, dass man das gebrauchen konnte...
Sollte man das Ganze nicht irgendwie im Tuxbox-Wiki unterbringen?
Zu den Themen Schriftarten, Clockskin, lokale Sprachdateien habe ich dort so gut wie nichts gefunden. Dann könnte man die Sache mit den Icons auch gleich unterbringen. Dass man die Schriftarten ändern kann, ist nun wirklich spärlich dokumentiert. Da sucht man sich einen Wolf.
PauleFoul
Wissender
Wissender
Beiträge: 1839
Registriert: Sonntag 17. August 2003, 01:39

Beitrag von PauleFoul »

mb405 hat geschrieben:so

Code: Alles auswählen

Usage: neutrino [-u | --enable-update] [-f | --enable-flash] [-v | --verbose 0..3] [--font name sizeoffset /dir/file.ttf [/dir/bold.ttf [/dir/italic.ttf]]]
Also so

Code: Alles auswählen

/bin/neutrino -u -f --font /var/share/neutrino/font/neutrino.ttf
geht es leider nicht.
mb405
Tuxboxer
Tuxboxer
Beiträge: 2331
Registriert: Donnerstag 24. März 2005, 21:52

Beitrag von mb405 »

Code: Alles auswählen

neutrino -u -f --font Micron 0 /var/share/fonts/micron.ttf /var/share/fonts/micron_bold.ttf /var/share/fonts/micron_italic.ttf
PauleFoul
Wissender
Wissender
Beiträge: 1839
Registriert: Sonntag 17. August 2003, 01:39

Beitrag von PauleFoul »

mb405 hat geschrieben:

Code: Alles auswählen

neutrino -u -f --font Micron 0 /var/share/fonts/micron.ttf /var/share/fonts/micron_bold.ttf /var/share/fonts/micron_italic.ttf
Muss ich denn alle 3 Schriftarten laden??
dietmarw
Contributor
Beiträge: 1833
Registriert: Mittwoch 10. April 2002, 15:39

Beitrag von dietmarw »

wichtig sollte wohl das hier sein..
...Micron 0...