components: rework classes

- outsourced some classes cc_item.cpp/h, cc_draw.cpp/h
- added extra methodes for simple use of some basic components extra.cpp/h
- rework clock handling: use timer class, reworked members for
  enable/disable clock with external timer events,
  tryed to fix some display issues related with infoclock and
  time osd clock in moviebrowser, channellist, menuus
- reworked hide/kill handling, removed parameter for hide(), try to use
  cached backgrounds for other constallations, paint cache, image cache (all beta)
- reworked shadow/frame handling, add shadow modes for left/right
  arrangement, TODO: repaint for existant instances required
- reworked color gradient assignment (beta)

... Note: I had a data crash in my local git tree
and i tryed to restore my historie, but most was lost. Therefore here
the commit is large
This commit is contained in:
2015-11-18 18:08:23 +01:00
parent a2171dad4a
commit 0146511f38
68 changed files with 3207 additions and 1682 deletions

View File

@@ -185,11 +185,15 @@ fb_pixel_t* CColorGradient::gradientColorToColor(fb_pixel_t start_col,fb_pixel_t
int start_box = 0;
int end_box = bSize;
if (mode == gradientDark2Light) {
fb_pixel_t temp_col = start_col;
fb_pixel_t temp_col = end_col;
end_col = start_col;
start_col = temp_col;
if (mode == gradientDark2Light){
temp_col = start_col;
start_col = end_col;
end_col = temp_col;
}
}
uint8_t start_tr = (uint8_t)((start_col & 0xFF000000) >> 24);
uint8_t start_r = (uint8_t)((start_col & 0x00FF0000) >> 16);

View File

@@ -658,6 +658,7 @@ void CFrameBuffer::paletteSet(struct fb_cmap *map)
realcolor[i] = make16color(cmap.red[i], cmap.green[i], cmap.blue[i], cmap.transp[i],
rl, ro, gl, go, bl, bo, tl, to);
}
OnAfterSetPallette();
}
void CFrameBuffer::paintHLineRelInternal2Buf(const int& x, const int& dx, const int& y, const int& box_dx, const fb_pixel_t& col, fb_pixel_t* buf)
@@ -673,7 +674,7 @@ fb_pixel_t* CFrameBuffer::paintBoxRel2Buf(const int dx, const int dy, const fb_p
if (!getActive())
return buf;
if (dx == 0 || dy == 0) {
dprintf(DEBUG_INFO, "[%s - %d]: radius %d, dx %d dy %d\n", __func__, __LINE__, radius, dx, dy);
dprintf(DEBUG_INFO, "[CFrameBuffer] [%s - %d]: radius %d, dx %d dy %d\n", __func__, __LINE__, radius, dx, dy);
return buf;
}
@@ -779,7 +780,7 @@ void CFrameBuffer::paintBoxRel(const int x, const int y, const int dx, const int
return;
if (dx == 0 || dy == 0) {
printf("[%s - %d]: radius %d, start x %d y %d end x %d y %d\n", __FUNCTION__, __LINE__, radius, x, y, x+dx, y+dy);
dprintf(DEBUG_NORMAL, "[CFrameBuffer] [%s - %d]: radius %d, start x %d y %d end x %d y %d\n", __FUNCTION__, __LINE__, radius, x, y, x+dx, y+dy);
return;
}
@@ -826,11 +827,12 @@ void CFrameBuffer::paintBoxRel(const int x, const int y, const int dx, const int
}
if (dx-ofr-ofl < 1) {
if (dx-ofr-ofl == 0)
printf("[%s - %d]: radius %d, start x %d y %d end x %d y %d\n", __FUNCTION__, __LINE__, radius, x, y, x+dx-ofr-ofl, y+line);
else
printf("[%s - %04d]: Calculated width: %d\n (radius %d, dx %d, offsetLeft %d, offsetRight %d).\n Width can not be less than 0, abort.\n",
__FUNCTION__, __LINE__, dx-ofr-ofl, radius, dx, ofl, ofr);
if (dx-ofr-ofl == 0){
dprintf(DEBUG_INFO, "[CFrameBuffer] [%s - %d]: radius %d, start x %d y %d end x %d y %d\n", __func__, __LINE__, radius, x, y, x+dx-ofr-ofl, y+line);
}else{
dprintf(DEBUG_INFO, "[CFrameBuffer] [%s - %04d]: Calculated width: %d\n (radius %d, dx %d, offsetLeft %d, offsetRight %d).\n Width can not be less than 0, abort.\n",
__func__, __LINE__, dx-ofr-ofl, radius, dx, ofl, ofr);
}
line++;
continue;
}
@@ -2095,7 +2097,7 @@ bool CFrameBuffer::_checkFbArea(int _x, int _y, int _dx, int _dy, bool prev)
// waitForIdle();
fb_no_check = true;
if (prev)
CAudioMute::getInstance()->hide(true);
CAudioMute::getInstance()->hide();
else
CAudioMute::getInstance()->paint();
fb_no_check = false;

View File

@@ -35,7 +35,7 @@
#include <map>
#include <OpenThreads/Mutex>
#include <OpenThreads/ScopedLock>
#include <sigc++/signal.h>
#define fb_pixel_t uint32_t
typedef struct fb_var_screeninfo t_fb_var_screeninfo;
@@ -69,7 +69,7 @@ typedef struct gradientData_t
#define ConnectLineBox_Width 16 // px
/** Ausfuehrung als Singleton */
class CFrameBuffer
class CFrameBuffer : public sigc::trackable
{
private:
@@ -323,6 +323,7 @@ class CFrameBuffer
void fbNoCheck(bool noCheck) { fb_no_check = noCheck; }
void doPaintMuteIcon(bool mode) { do_paint_mute_icon = mode; }
void blit(void) {}
sigc::signal<void> OnAfterSetPallette;
};
#endif