[Request] LCD Display zeigt Image Update/Flashing Status
-
- Moderator english
- Beiträge: 2458
- Registriert: Donnerstag 20. Dezember 2001, 00:00
[Request] LCD Display zeigt Image Update/Flashing Status
Hi,
vor einer Weile wurde hier ein Diff veroffentlicht (ich suche es und mache dann einen Link hier rein ) 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 )
Koennte dies eventuell jemand mit CVS Schreibrechte einchecken ?
Danke
PT-1
vor einer Weile wurde hier ein Diff veroffentlicht (ich suche es und mache dann einen Link hier rein ) 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 )
Koennte dies eventuell jemand mit CVS Schreibrechte einchecken ?
Danke
PT-1
-
- Image-Team
- Beiträge: 1015
- Registriert: Freitag 7. Februar 2003, 18:37
-
- Moderator english
- Beiträge: 2458
- Registriert: Donnerstag 20. Dezember 2001, 00:00
Found it:
http://forum.tuxbox-cvs.sourceforge.net ... 940#314940
PS: Thanks an Guenther und MB405
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);
};
-
- Developer
- Beiträge: 587
- Registriert: Freitag 9. September 2005, 21:48
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
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
-
- Moderator english
- Beiträge: 2458
- Registriert: Donnerstag 20. Dezember 2001, 00:00
-
- Erleuchteter
- Beiträge: 797
- Registriert: Sonntag 19. Februar 2006, 01:17
..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 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 ;-)
-
- Moderator english
- Beiträge: 2458
- Registriert: Donnerstag 20. Dezember 2001, 00:00
-
- Erleuchteter
- Beiträge: 797
- Registriert: Sonntag 19. Februar 2006, 01:17
-
- Moderator english
- Beiträge: 2458
- Registriert: Donnerstag 20. Dezember 2001, 00:00
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
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
-
- Wissender
- Beiträge: 1839
- Registriert: Sonntag 17. August 2003, 01:39
Tolle Idee die "untergegangenen Diffs" auszugraben. Auch einePT-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
ü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
-
- Moderator english
- Beiträge: 2458
- Registriert: Donnerstag 20. Dezember 2001, 00:00
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
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
-
- Developer
- Beiträge: 587
- Registriert: Freitag 9. September 2005, 21:48
eingecheckt
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.
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.
-
- Image-Team
- Beiträge: 1015
- Registriert: Freitag 7. Februar 2003, 18:37
Danke hast du es per locals gelöst? hab noch nicht weiter bei geschaut werd es mir aber heut abend mal ansehen.Günther hat geschrieben:eingecheckt
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.
Gruß Riker
-
- Developer
- Beiträge: 587
- Registriert: Freitag 9. September 2005, 21:48
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.
-
- Semiprofi
- Beiträge: 1383
- Registriert: Freitag 18. April 2003, 15:12