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);
};