This is just copied framebuffer.{h,cpp} => fb_generic.{h,cpp}
The idea is to implement CFrameBuffer as generic framebuffer class that
does work on almost every hardware without acceleration and / or
hardware dependencies.
CFbAccel will be a derived class (and different on many architectures)
which implements the accelerated functions.
This does not yet compile, verbatim copies to track development history.
instead of including framebuffer.h almost everywhere, replace it with
class CFrameBuffer forward declarations and/or generic system includes.
Add a hack to define fb_pixel_t to config.h (one reason for
framebuffer.h includes was the fb_pixel_t define)
The #define in src/gui/scan_setup.h did not work (undefining
ENABLE_FASTSCAN caused really strange side effects wrt background
scanning in standby mode), and all the unused code was still built.
With this configure option, people who really want this obscure feature
can enable it for their builds.
the PKG_CHECK_MODULES macro allows to check for a version -- use it
instead of homegrown TUXBOX_APPS_LIB_PKGCONFIG
Signed-off-by: M. Liebmann <git@tuxcode.de>
I'm not sure if it is a good idea to set a global timeout for
all error messages. This should be decided for respective cases.
Timeout for info messages should not be a problem.
The default timeout is set here as global.
Static message window expects user interaction but in this case user
could be absent. and recordings could be running out of control.
These messages are only warnings and "to slow" warning is optional.
To avoid uncontrolled behavior of recordings, it should be enough to use messages with simple timeout.
Details_line was not removed in all constellations when menu was closed.
Sample: open main menue and select an entry with connect-line, eg. plugins,
press key to come into submenu, then go back to main menue and close
menu with home key, result: it's possible that line is still on screen.
Current channel name was out of center and a clean up of header
background was required because texts are only painted with transparent background and old texts are futher visible.
Now we have a clean background before repaint logo or new channel names.
refreshText() executes loop also for text with more than one line
and m_old_cText attribut should be updated only if loop is ready. Otherwise
in text boxes with more than one line, only first line would be painted.
If clock removed from screen and instance is not destroyed, then we must
ensure repaint of segments after painted background.
This is required if segments are only will paint if
their content was changed and attribut ct_force_text_paint = false.