[Request] LCD Display zeigt Image Update/Flashing Status

Wünsche, Anträge, Fehlermeldungen
PT-1
Moderator english
Beiträge: 2458
Registriert: Donnerstag 20. Dezember 2001, 00:00

[Request] LCD Display zeigt Image Update/Flashing Status

Beitrag von PT-1 »

Hi,

vor einer Weile wurde hier ein Diff veroffentlicht (ich suche es und mache dann einen Link hier rein :D ) das den Update Status graphish im LCD Display zeigt.

Dies ist sehr schoen wenn man z.B. keinen TV neben dem PC hat und gerne wissen wuerde ob denn ueberhaupt etwas passiert oder man vergessen hat die rote Taste zu druecken (wird ja im Display nicht angezeigt :gruebel: )

Koennte dies eventuell jemand mit CVS Schreibrechte einchecken ?

Danke

PT-1
JtG-Riker
Image-Team
Beiträge: 1015
Registriert: Freitag 7. Februar 2003, 18:37

Beitrag von JtG-Riker »

Hast du nen Link zu dem diff, wär ich auch dran interessiert.

Riker
PT-1
Moderator english
Beiträge: 2458
Registriert: Donnerstag 20. Dezember 2001, 00:00

Beitrag von PT-1 »

Found it:

http://forum.tuxbox-cvs.sourceforge.net ... 940#314940

Code: Alles auswählen

				current_EPGid= info_CN->current_uniqueKey;
diff -urx po tuxbox-cvs-mod/apps/tuxbox/neutrino/src/driver/lcdd.cpp tuxbox-cvs/apps/tuxbox/neutrino/src/driver/lcdd.cpp
--- tuxbox-cvs-mod/apps/tuxbox/neutrino/src/driver/lcdd.cpp	2005-11-27 13:14:45.000000000 +0000
+++ tuxbox-cvs/apps/tuxbox/neutrino/src/driver/lcdd.cpp	2006-10-13 16:58:07.000000000 +0100
@@ -47,6 +47,11 @@
CLCD::CLCD()
: configfile('\t')
{
+	m_progressShowEscape = 0;
+	m_progressHeaderGlobal = "";
+	m_progressHeaderLocal = "";
+	m_progressGlobal = 0;
+	m_progressLocal = 0;
}
CLCD* CLCD::getInstance()
@@ -595,6 +600,11 @@
showTime();      /* "showclock = true;" implies that "showTime();" does a "displayUpdate();" */
/* "showTime()" clears the whole lcd in MODE_STANDBY                         */
break;
+	case MODE_UPDATEPROZESS:
+		showclock = false;
+		display.load_screen(&(background[BACKGROUND_SETUP]));
+		showUpdateProzess();
+		break;
}
wake_up();
}
@@ -704,3 +714,77 @@
{
display.pause();
}
+
+/*############## Updateanzeige auf LCD ########################*/
+#define PROG2_LOCAL_POS_X 10
+#define PROG2_LOCAL_POS_Y 24
+#define PROG2_LOCAL_POS_WIDTH 100
+#define PROG2_LOCAL_POS_HEIGTH 10
+
+#define PROG2_GLOB_POS_X 10
+#define PROG2_GLOB_POS_Y 37
+#define PROG2_GLOB_POS_WIDTH PROG2_LOCAL_POS_WIDTH
+#define PROG2_GLOB_POS_HEIGTH PROG2_LOCAL_POS_HEIGTH
+
+void CLCD::showUpdateProzess(int local,const char * const text_local ,int global ,const char * const text_global ,int show_escape )
+{
+	if(text_local != NULL)
+		m_progressHeaderLocal = text_local;
+	if(text_global != NULL)
+		m_progressHeaderGlobal = text_global;
+	if(global >= 0)
+	{
+		if(global > 100)
+			m_progressGlobal =100;
+		else
+			m_progressGlobal = global;
+	}
+	if(local >= 0)
+	{
+		if(local > 100)
+			m_progressLocal =100;
+		else
+			m_progressLocal = local;
+	}
+	if(show_escape != -1)
+		m_progressShowEscape = show_escape;
+
+	if (mode != MODE_UPDATEPROZESS)
+		return;
+
+	// Clear Display
+	display.draw_fill_rect (0,12,120,64, CLCDDisplay::PIXEL_OFF);
+
+	// paint  local header 
+	int width = fonts.menu->getRenderWidth(m_progressHeaderLocal.c_str(),true);
+	if(width > 100)
+		width = 100;
+	int start_pos = (120-width) /2;
+	fonts.menu->RenderString(start_pos, PROG2_LOCAL_POS_Y-3, width+10, m_progressHeaderLocal.c_str(), CLCDDisplay::PIXEL_ON,0,true);
+
+	// paint global bar 
+	int marker_length = (PROG2_LOCAL_POS_WIDTH * m_progressLocal)/100;
+	
+	display.draw_fill_rect (PROG2_LOCAL_POS_X, PROG2_LOCAL_POS_Y,PROG2_LOCAL_POS_X+PROG2_LOCAL_POS_WIDTH, PROG2_LOCAL_POS_Y+PROG2_LOCAL_POS_HEIGTH,CLCDDisplay::PIXEL_ON);
+	display.draw_fill_rect (PROG2_LOCAL_POS_X+1+marker_length, PROG2_LOCAL_POS_Y+1, PROG2_LOCAL_POS_X+PROG2_LOCAL_POS_WIDTH-1, PROG2_LOCAL_POS_Y+PROG2_LOCAL_POS_HEIGTH-1, CLCDDisplay::PIXEL_OFF);
+
+	// paint  global header 
+	width = fonts.menu->getRenderWidth(m_progressHeaderGlobal.c_str(),true);
+	if(width > 100)
+		width = 100;
+	start_pos = (120-width) /2;
+	fonts.menu->RenderString(start_pos, PROG2_GLOB_POS_Y + PROG2_GLOB_POS_HEIGTH +10 , width+10, m_progressHeaderGlobal.c_str(), CLCDDisplay::PIXEL_ON,0,true);
+	
+	// paint global bar 
+	marker_length = (PROG2_GLOB_POS_WIDTH * m_progressGlobal)/100;
+	
+	display.draw_fill_rect (PROG2_GLOB_POS_X, PROG2_GLOB_POS_Y, PROG2_GLOB_POS_X+PROG2_GLOB_POS_WIDTH,   PROG2_GLOB_POS_Y+PROG2_GLOB_POS_HEIGTH, CLCDDisplay::PIXEL_ON);
+	display.draw_fill_rect (PROG2_GLOB_POS_X+1+marker_length,   PROG2_GLOB_POS_Y+1, PROG2_GLOB_POS_X+PROG2_GLOB_POS_WIDTH-1, PROG2_GLOB_POS_Y+PROG2_GLOB_POS_HEIGTH-1, CLCDDisplay::PIXEL_OFF);
+	
+	// paint foot 
+	if(m_progressShowEscape  == true)
+	{
+		fonts.menu->RenderString(90, 64, 40, "Home", CLCDDisplay::PIXEL_ON);
+	}
+	displayUpdate();
+}
diff -urx po tuxbox-cvs-mod/apps/tuxbox/neutrino/src/driver/lcdd.h tuxbox-cvs/apps/tuxbox/neutrino/src/driver/lcdd.h
--- tuxbox-cvs-mod/apps/tuxbox/neutrino/src/driver/lcdd.h	2005-03-28 17:52:32.000000000 +0100
+++ tuxbox-cvs/apps/tuxbox/neutrino/src/driver/lcdd.h	2006-10-13 16:58:33.000000000 +0100
@@ -45,7 +45,8 @@
MODE_SHUTDOWN,
MODE_STANDBY,
MODE_MENU_UTF8,
-			MODE_AUDIO
+			MODE_AUDIO,
+			MODE_UPDATEPROZESS
};
enum AUDIOMODES
{
@@ -99,6 +100,11 @@
const char * fontfile3=NULL, const char * fontname3=NULL);
void setlcdparameter(int dimm, int contrast, int power, int inverse);
void displayUpdate();
+		bool m_progressShowEscape;
+		std::string  m_progressHeaderGlobal;
+		std::string  m_progressHeaderLocal;
+		int m_progressGlobal;
+		int m_progressLocal;
public:
void setlcdparameter(void);
@@ -144,6 +150,7 @@
void resume();
void pause();
+		void showUpdateProzess(int local = -1,const char * const text_local = NULL,int global = -1,const char * const text_global = NULL,int show_escape = -1);
};
PS: Thanks an Guenther und MB405
Günther
Developer
Beiträge: 587
Registriert: Freitag 9. September 2005, 21:48

Beitrag von Günther »

Das ist ist ein Extrakt aus meinem AudioplayerÜberLCDbedienen-Patch
http://forum.tuxbox-cvs.sourceforge.net ... hp?t=41415
Ich wollte immer schon mal allgemeine Sachen des LCD Treiber in das cvs einfliessen lassen (FILEBROWER, PROGESSBAR PROGRESSBAR2 und INFOBOX). Da ich gerade beim 'Aufräumen' bin, stehen die Chancen dazu derzeit ganz gut ;)

Günther
PT-1
Moderator english
Beiträge: 2458
Registriert: Donnerstag 20. Dezember 2001, 00:00

Beitrag von PT-1 »

@Guenther

Danke ;-)

Ich versuche ja gerade eine List bzw. eine Uebersicht fuer die Feature Request's incl. den entsprechenden Links oder den CVS stand zu machen ;-)

Gruss aus London

PT-1
new.life
Erleuchteter
Erleuchteter
Beiträge: 797
Registriert: Sonntag 19. Februar 2006, 01:17

Beitrag von new.life »

PT-1 hat geschrieben:Ich versuche ja gerade eine List bzw. eine Uebersicht fuer die Feature Request's incl. den entsprechenden Links oder den CVS stand zu machen ;-)
..um das zu pushen was dich persönlich interessiert? Finde die Liste nur dann gut wenn alle offenen/nicht realisierten Feature Requests darin aufgeführt werden....könnte dann aber auch frustrierend sein.
PT-1
Moderator english
Beiträge: 2458
Registriert: Donnerstag 20. Dezember 2001, 00:00

Beitrag von PT-1 »

Ich habe ja erst heute angefangen ;-)

Keine Panik, Ich werde versuchen so viele und soweit wie moeglich zurueckligende einzupflegen ;-)

War ja nur ein Anfang und Frage ob daran ueberhaupt Interesse besteht

Feedback ist OK
new.life
Erleuchteter
Erleuchteter
Beiträge: 797
Registriert: Sonntag 19. Februar 2006, 01:17

Beitrag von new.life »

dann bin ich ja mal gespannt. 39 Seiten mit vielen sehr guten Ideen die imo zum Teil 'leicht' zu realisieren sind...ich bezweifle allerdings eine Motivationssteigerung bei den Leuten die es umsetzen koennten...eher ganz viel Frust.
PT-1
Moderator english
Beiträge: 2458
Registriert: Donnerstag 20. Dezember 2001, 00:00

Beitrag von PT-1 »

Ist ja nur eine Fleissarbeit von mir weil das ganze ein wenig un-uebersichtlich wird.

Manche sachen haben ja auch nichts im Feature Request zu tun bzw. sind doppelt.

Man koennte dann ja anfagen in einzelne Themen zu unterteilen

Sectiosd
zapit

usw...

Da brauch ich dann aber hilfe aber wie immer in einem Forum darf jeder gerne mithelfen
PauleFoul
Wissender
Wissender
Beiträge: 1839
Registriert: Sonntag 17. August 2003, 01:39

Beitrag von PauleFoul »

PT-1 hat geschrieben:Ist ja nur eine Fleissarbeit von mir weil das ganze ein wenig un-uebersichtlich wird.

Manche sachen haben ja auch nichts im Feature Request zu tun bzw. sind doppelt.

Man koennte dann ja anfagen in einzelne Themen zu unterteilen

Sectiosd
zapit

usw...

Da brauch ich dann aber hilfe aber wie immer in einem Forum darf jeder gerne mithelfen
Tolle Idee die "untergegangenen Diffs" auszugraben. Auch eine
übersichtliche Auflistung finde ich eine tolle Sache.

Muss ja nicht gleich wieder kaputt geschrieben werden wenn sich hier
jemand Gedanken und die Arbeit dazu macht.


Gruß
____Paule
PT-1
Moderator english
Beiträge: 2458
Registriert: Donnerstag 20. Dezember 2001, 00:00

Beitrag von PT-1 »

Ich hatte eben heute morgen mich an dieses Diff erinnert und konnte es nirgendwo via die Forum Suche finden

Ich kenne ja auch nicht immer den Stand und wenn jemand lust hat kann man ja auch noch die Links wo es dann im CVS ist mit rein machen.

Wenn man da ab und an die Emails liest bzw. hier: http://dietmarw2.trale.de/cvs_changes.php schaut sind die CVS'ler ja immer ganz fleissig ohne das es der ein oder andere mitbekommt.

Manchmal sind dann aber die Kommentare sehr mager und man weis nicht warum etwas neues jetzt eingecheckt wurde.

Ein Kreuzverweis von hier koennte dies ja dann loesen.

Ciao

PT-1
Günther
Developer
Beiträge: 587
Registriert: Freitag 9. September 2005, 21:48

Beitrag von Günther »

eingecheckt 8)

Update Status wird bei manuellen Update über das Menü auf dem LCD angezeigt. Über das Webinterface geht es (noch) nicht, weil hierfür der http damon (yjogol ;) ) zuständig ist.

Fix enthält noch ein paar weitere LCD Updates für spätere Verwendung. Fragen und Anregungen dazu ev. gleich hier posten.
JtG-Riker
Image-Team
Beiträge: 1015
Registriert: Freitag 7. Februar 2003, 18:37

Beitrag von JtG-Riker »

Günther hat geschrieben:eingecheckt 8)

Update Status wird bei manuellen Update über das Menü auf dem LCD angezeigt. Über das Webinterface geht es (noch) nicht, weil hierfür der http damon (yjogol ;) ) zuständig ist.

Fix enthält noch ein paar weitere LCD Updates für spätere Verwendung. Fragen und Anregungen dazu ev. gleich hier posten.
Danke hast du es per locals gelöst? hab noch nicht weiter bei geschaut werd es mir aber heut abend mal ansehen.

Gruß Riker
Günther
Developer
Beiträge: 587
Registriert: Freitag 9. September 2005, 21:48

Beitrag von Günther »

Mit den Locals bin ich mir nicht ganz sicher - es sind zwei hardcodierte Texte (in englisch ) drinnen, aber ich glaube die werden von den locals überschrieben. Hatte nur einen Update-Test gemacht (benutze mittlerweile nur noch das yWeb), und bei dem waren (verbesserungswürdige) deutsche Local-Texte zu sehen.
Nico 77
Semiprofi
Semiprofi
Beiträge: 1383
Registriert: Freitag 18. April 2003, 15:12

Beitrag von Nico 77 »

Ich hätte den Vorschlag den Gesamtfortschritt nach unten zu verlegen da es im Tv-Menü auch so ist.