diff options
| -rw-r--r-- | acinclude.m4 | 180 | ||||
| -rw-r--r-- | config.h.in | 21 | ||||
| -rw-r--r-- | configure.ac | 7 | ||||
| -rw-r--r-- | keymap.xml | 102 | ||||
| -rw-r--r-- | lib/gdi/Makefile.am | 2 | ||||
| -rw-r--r-- | lib/gdi/gfbdc.cpp | 6 | ||||
| -rw-r--r-- | lib/gdi/sdl.cpp | 2 | ||||
| -rw-r--r-- | lib/gui/elistboxcontent.cpp | 5 | ||||
| -rw-r--r-- | lib/python/Components/Clock.py | 3 | ||||
| -rw-r--r-- | lib/python/Components/InputDevice.py | 4 | ||||
| -rw-r--r-- | lib/python/Components/Makefile.am | 3 | ||||
| -rw-r--r-- | lib/python/Components/__init__.py | 3 | ||||
| -rw-r--r-- | lib/python/Components/config.py | 39 | ||||
| -rw-r--r-- | lib/python/Screens/ChannelSelection.py | 8 | ||||
| -rw-r--r-- | lib/python/Screens/InfoBar.py | 4 | ||||
| -rw-r--r-- | lib/python/Screens/Makefile.am | 2 | ||||
| -rw-r--r-- | lib/python/Screens/Menu.py | 62 | ||||
| -rw-r--r-- | lib/python/Screens/Setup.py | 72 | ||||
| -rw-r--r-- | lib/python/Screens/TimerEdit.py | 2 | ||||
| -rw-r--r-- | main/Makefile.am | 4 | ||||
| -rw-r--r-- | main/enigma.cpp | 3 | ||||
| -rw-r--r-- | mytest.py | 3 | ||||
| -rw-r--r-- | skin.py | 31 |
23 files changed, 299 insertions, 269 deletions
diff --git a/acinclude.m4 b/acinclude.m4 index 074e1a03..b92d02fa 100644 --- a/acinclude.m4 +++ b/acinclude.m4 @@ -2,6 +2,8 @@ AC_DEFUN(TUXBOX_APPS,[ AM_CONFIG_HEADER(config.h) AM_MAINTAINER_MODE +INSTALL="$INSTALL -p" + AC_GNU_SOURCE AC_SYS_LARGEFILE @@ -10,7 +12,7 @@ AC_ARG_WITH(target, [TARGET="$withval"],[TARGET="native"]) AC_ARG_WITH(targetprefix, - [ --with-targetprefix=PATH prefix relative to target root [[PREFIX[for native], /[for cdk]]]], + [ --with-targetprefix=PATH prefix relative to target root (only applicable in cdk mode)], [targetprefix="$withval"],[targetprefix="NONE"]) AC_ARG_WITH(debug, @@ -22,7 +24,11 @@ if test "$DEBUG" = "yes"; then AC_DEFINE(DEBUG,1,[Enable debug messages]) fi +AC_MSG_CHECKING(target) + if test "$TARGET" = "native"; then + AC_MSG_RESULT(native) + if test "$CFLAGS" = "" -a "$CXXFLAGS" = ""; then CFLAGS="-Wall -O2 -pipe $DEBUG_CFLAGS" CXXFLAGS="-Wall -O2 -pipe $DEBUG_CFLAGS" @@ -30,13 +36,10 @@ if test "$TARGET" = "native"; then if test "$prefix" = "NONE"; then prefix=/usr/local fi - if test "$targetprefix" = "NONE"; then - targetprefix="\${prefix}" - _targetprefix="${prefix}" - else - _targetprefix="$targetprefix" - fi + targetprefix=$prefix elif test "$TARGET" = "cdk"; then + AC_MSG_RESULT(cdk) + if test "$CC" = "" -a "$CXX" = ""; then CC=powerpc-tuxbox-linux-gnu-gcc CXX=powerpc-tuxbox-linux-gnu-g++ fi @@ -45,99 +48,127 @@ elif test "$TARGET" = "cdk"; then CXXFLAGS="-Wall -Os -mcpu=823 -pipe $DEBUG_CFLAGS" fi if test "$prefix" = "NONE"; then - prefix=/dbox2/cdkroot + AC_MSG_ERROR(invalid prefix, you need to specify one in cdk mode) fi if test "$targetprefix" = "NONE"; then targetprefix="" - _targetprefix="" - else - _targetprefix="$targetprefix" fi if test "$host_alias" = ""; then cross_compiling=yes host_alias=powerpc-tuxbox-linux-gnu fi else + AC_MSG_RESULT(none) AC_MSG_ERROR([invalid target $TARGET, choose on from native,cdk]); fi AC_CANONICAL_BUILD AC_CANONICAL_HOST -targetdatadir="\${targetprefix}/share" -_targetdatadir="${_targetprefix}/share" -targetsysconfdir="\${targetprefix}/etc" -_targetsysconfdir="${_targetprefix}/etc" -targetlocalstatedir="\${targetprefix}/var" -_targetlocalstatedir="${_targetprefix}/var" -targetlibdir="\${targetprefix}/lib" -_targetlibdir="${_targetprefix}/lib" -AC_SUBST(targetprefix) -AC_SUBST(targetdatadir) -AC_SUBST(targetsysconfdir) -AC_SUBST(targetlocalstatedir) - check_path () { return $(perl -e "if(\"$1\"=~m#^/usr/(local/)?bin#){print \"0\"}else{print \"1\";}") } ]) +AC_DEFUN(TUXBOX_APPS_DIRECTORY_ONE,[ +AC_ARG_WITH($1,[ $6$7 [[PREFIX$4$5]]],[ + _$2=$withval + if test "$TARGET" = "cdk"; then + $2=`eval echo "${targetprefix}$withval"` + else + $2=$withval + fi +],[ + $2="\${$3}$5" + if test "$TARGET" = "cdk"; then + _$2=`eval echo "${target$3}$5"` + else + _$2=`eval echo "${$3}$5"` + fi +]) + +dnl automake <= 1.6 don't support this +dnl AC_SUBST($2) +AC_DEFINE_UNQUOTED($2,"$_$2",$7) +]) + AC_DEFUN(TUXBOX_APPS_DIRECTORY,[ AC_REQUIRE([TUXBOX_APPS]) -CONFIGDIR="\${localstatedir}/tuxbox/config" -_CONFIGDIR="${_targetlocalstatedir}/tuxbox/config" -AC_SUBST(CONFIGDIR) -AC_DEFINE_UNQUOTED(CONFIGDIR,"$_CONFIGDIR",[where to find the config files]) +if test "$TARGET" = "cdk"; then + datadir="\${prefix}/share" + tuxboxdatadir="\${prefix}/share/tuxbox" + zoneinfodir="\${datadir}/zoneinfo" + sysconfdir="\${prefix}/etc" + localstatedir="\${prefix}/var" + localedir="\${prefix}/var" + libdir="\${prefix}/lib" + targetdatadir="\${targetprefix}/share" + targetsysconfdir="\${targetprefix}/etc" + targetlocalstatedir="\${targetprefix}/var" + targetlibdir="\${targetprefix}/lib" +fi -DATADIR="\${datadir}/tuxbox" -_DATADIR="${_targetdatadir}/tuxbox" -AC_SUBST(DATADIR) -AC_DEFINE_UNQUOTED(DATADIR,"$_DATADIR",[where to find data like icons]) +TUXBOX_APPS_DIRECTORY_ONE(configdir,CONFIGDIR,sysconfdir,/etc,, + [--with-configdir=PATH ],[where to find the config files]) -FONTDIR="\${datadir}/fonts" -_FONTDIR="${_targetdatadir}/fonts" -AC_SUBST(FONTDIR) -AC_DEFINE_UNQUOTED(FONTDIR,"$_FONTDIR",[where to find the fonts]) +TUXBOX_APPS_DIRECTORY_ONE(datadir,DATADIR,datadir,/share,, + [--with-datadir=PATH ],[where to find data]) -GAMESDIR="\${localstatedir}/tuxbox/games" -_GAMESDIR="${_targetlocalstatedir}/tuxbox/games" -AC_SUBST(GAMESDIR) -AC_DEFINE_UNQUOTED(GAMESDIR,"$_GAMESDIR",[where games data is stored]) +TUXBOX_APPS_DIRECTORY_ONE(localedir,LOCALEDIR,datadir,/share,/locale, + [--with-localedir=PATH ],[where to find locales]) -LIBDIR="\${libdir}/tuxbox" -_LIBDIR="${_targetlibdir}/tuxbox" -AC_SUBST(LIBDIR) -AC_SUBST(_LIBDIR) -AC_DEFINE_UNQUOTED(LIBDIR,"$_LIBDIR",[where to find the internal libs]) +TUXBOX_APPS_DIRECTORY_ONE(fontdir,FONTDIR,datadir,/share,/fonts, + [--with-fontdir=PATH ],[where to find the fonts]) -PLUGINDIR="\${libdir}/tuxbox/plugins" -_PLUGINDIR="${_targetlibdir}/tuxbox/plugins" -AC_SUBST(PLUGINDIR) -AC_DEFINE_UNQUOTED(PLUGINDIR,"$_PLUGINDIR",[where to find the plugins]) +TUXBOX_APPS_DIRECTORY_ONE(gamesdir,GAMESDIR,localstatedir,/var,/tuxbox/games, + [--with-gamesdir=PATH ],[where games data is stored]) + +TUXBOX_APPS_DIRECTORY_ONE(libdir,LIBDIR,libdir,/lib,/tuxbox, + [--with-libdir=PATH ],[where to find the internal libs]) -UCODEDIR="\${localstatedir}/tuxbox/ucodes" -_UCODEDIR="${_targetlocalstatedir}/tuxbox/ucodes" -AC_SUBST(UCODEDIR) -AC_DEFINE_UNQUOTED(UCODEDIR,"$_UCODEDIR",[where to find the ucodes (firmware)]) +TUXBOX_APPS_DIRECTORY_ONE(plugindir,PLUGINDIR,libdir,/lib,/tuxbox/plugins, + [--with-plugindir=PATH ],[where to find the plugins]) + +TUXBOX_APPS_DIRECTORY_ONE(tuxboxdatadir,TUXBOXDATADIR,datadir,/share,/tuxbox, + [--with-tuxboxdatadir=PATH],[where to find tuxbox data]) + +TUXBOX_APPS_DIRECTORY_ONE(zoneinfodir,ZONEINFODIR,datadir,/share,/zoneinfo, + [--with-zoneinfodir=PATH ],[where to find zoneinfo db]) ]) +dnl automake <= 1.6 needs this specifications +AC_SUBST(CONFIGDIR) +AC_SUBST(DATADIR) +AC_SUBST(ZONEINFODIR) +AC_SUBST(FONTDIR) +AC_SUBST(GAMESDIR) +AC_SUBST(LIBDIR) +AC_SUBST(LOCALEDIR) +AC_SUBST(PLUGINDIR) +AC_SUBST(TUXBOXDATADIR) +dnl end workaround + AC_DEFUN(TUXBOX_APPS_ENDIAN,[ AC_CHECK_HEADERS(endian.h) AC_C_BIGENDIAN ]) AC_DEFUN(TUXBOX_APPS_DRIVER,[ -AC_ARG_WITH(driver, - [ --with-driver=PATH path for driver sources[[NONE]]], - [DRIVER="$withval"],[DRIVER=""]) - -if test -z "$DRIVER"; then - AC_MSG_ERROR([can't find driver sources]) -fi -CPPFLAGS="$CPPFLAGS -I$DRIVER/include" -AC_SUBST(DRIVER) +#AC_ARG_WITH(driver, +# [ --with-driver=PATH path for driver sources [[NONE]]], +# [DRIVER="$withval"],[DRIVER=""]) +# +#if test -d "$DRIVER/include"; then +# AC_DEFINE(HAVE_DBOX2_DRIVER,1,[Define to 1 if you have the dbox2 driver sources]) +#else +# AC_MSG_ERROR([can't find driver sources]) +#fi + +#AC_SUBST(DRIVER) + +#CPPFLAGS="$CPPFLAGS -I$DRIVER/include" ]) AC_DEFUN([TUXBOX_APPS_DVB],[ @@ -177,7 +208,6 @@ else fi ]) - AC_DEFUN(_TUXBOX_APPS_LIB_CONFIG,[ AC_PATH_PROG($1_CONFIG,$2,no) if test "$$1_CONFIG" != "no"; then @@ -212,16 +242,7 @@ fi ]) AC_DEFUN(_TUXBOX_APPS_LIB_PKGCONFIG,[ -AC_REQUIRE([TUXBOX_APPS_PKGCONFIG]) -AC_MSG_CHECKING(for package $2) -if PKG_CONFIG_PATH="${prefix}/lib/pkgconfig" $PKG_CONFIG --exists "$2" ; then - AC_MSG_RESULT(yes) - $1_CFLAGS=$(PKG_CONFIG_PATH="${prefix}/lib/pkgconfig" $PKG_CONFIG --cflags "$2") - $1_LIBS=$(PKG_CONFIG_PATH="${prefix}/lib/pkgconfig" $PKG_CONFIG --libs "$2") -else - AC_MSG_RESULT(no) -fi - +PKG_CHECK_MODULES($1,$2) AC_SUBST($1_CFLAGS) AC_SUBST($1_LIBS) ]) @@ -348,8 +369,7 @@ AC_SUBST(DUMMYPOFILES) AC_SUBST(CATALOGS) ]) - - +dnl backward compatiblity AC_DEFUN([AC_GNU_SOURCE], [AH_VERBATIM([_GNU_SOURCE], [/* Enable GNU extensions on systems that have them. */ @@ -361,3 +381,13 @@ AC_BEFORE([$0], [AC_RUN_IFELSE])dnl AC_DEFINE([_GNU_SOURCE]) ]) +AC_DEFUN([AC_PROG_EGREP], +[AC_CACHE_CHECK([for egrep], [ac_cv_prog_egrep], + [if echo a | (grep -E '(a|b)') >/dev/null 2>&1 + then ac_cv_prog_egrep='grep -E' + else ac_cv_prog_egrep='egrep' + fi]) + EGREP=$ac_cv_prog_egrep + AC_SUBST([EGREP]) +]) + diff --git a/config.h.in b/config.h.in index 3224a09a..35648361 100644 --- a/config.h.in +++ b/config.h.in @@ -3,7 +3,7 @@ /* where to find the config files */ #undef CONFIGDIR -/* where to find data like icons */ +/* where to find data */ #undef DATADIR /* Enable debug messages */ @@ -19,6 +19,12 @@ /* where games data is stored */ #undef GAMESDIR +/* Define to 1 if you have the dvb includes */ +#undef HAVE_DVB + +/* Define to the version of the dvb api */ +#undef HAVE_DVB_API_VERSION + /* Define to 1 if you have the <inttypes.h> header file. */ #undef HAVE_INTTYPES_H @@ -55,6 +61,9 @@ /* where to find the internal libs */ #undef LIBDIR +/* where to find locales */ +#undef LOCALEDIR + /* Name of package */ #undef PACKAGE @@ -79,12 +88,18 @@ /* Define to 1 if you have the ANSI C header files. */ #undef STDC_HEADERS -/* where to find the ucodes (firmware) */ -#undef UCODEDIR +/* where to find tuxbox data */ +#undef TUXBOXDATADIR /* Version number of package */ #undef VERSION +/* With SDL */ +#undef WITH_SDL + +/* where to find zoneinfo db */ +#undef ZONEINFODIR + /* Number of bits in a file offset, on hosts where this is settable. */ #undef _FILE_OFFSET_BITS diff --git a/configure.ac b/configure.ac index ebdd8974..0a8a7dc7 100644 --- a/configure.ac +++ b/configure.ac @@ -10,7 +10,7 @@ AC_PROG_RANLIB AC_ARG_WITH(pythonincdir, [ --with-pythonincdir=NAME dir [[...]]], - [PYTHON_INCDIR="$withval"],[PYTHON_INCDIR="/usr/include/python2.3"]) + [PYTHON_INCDIR="$withval"],[PYTHON_INCDIR="/usr/include/python2.4"]) AC_SUBST(PYTHON_INCDIR) AC_ARG_WITH(libsdl, @@ -30,14 +30,13 @@ TUXBOX_APPS_LIB_PKGCONFIG(MAD,mad) TUXBOX_APPS_LIB_PKGCONFIG(PNG,libpng) TUXBOX_APPS_LIB_PKGCONFIG(SIGC,sigc++-1.2) #TUXBOX_APPS_LIB_PKGCONFIG(XMLTREE,tuxbox-xmltree) - if test "$withsdl" = "yes" ; then TUXBOX_APPS_LIB_CONFIG(SDL,sdl-config) AC_DEFINE_UNQUOTED([WITH_SDL],[$withsdl],[With SDL]) fi # fixme: decent python stuff -CPPFLAGS="$CPPFLAGS $MD5SUM_CFLAGS $FREETYPE_CFLAGS $FRIBIDI_CFLAGS $ID3TAG_CFLAGS $MAD_CFLAGS $PLUGINS_CFLAGS $PNG_CFLAGS $SIGC_CFLAGS $XMLTREE_CFLAGS $SDL_CFLAGS -I$PYTHON_INCDIR -DHAVE_CPP_FILT -DMEMLEAK_CHECK" +CPPFLAGS="$CPPFLAGS $MD5SUM_CFLAGS $FREETYPE_CFLAGS $FRIBIDI_CFLAGS $ID3TAG_CFLAGS $MAD_CFLAGS $PLUGINS_CFLAGS $PNG_CFLAGS $SIGC_CFLAGS $XMLTREE_CFLAGS -I$PYTHON_INCDIR -DHAVE_CPP_FILT -DMEMLEAK_CHECK" CXXFLAGS="$CXXFLAGS -fno-rtti -fno-exceptions -Wall" LDFLAGS="$LDFLAGS -rdynamic" @@ -50,8 +49,8 @@ lib/actions/Makefile lib/base/Makefile lib/driver/Makefile lib/dvb/Makefile -lib/dvb_si/Makefile lib/dvb_ci/Makefile +lib/dvb_si/Makefile lib/gdi/Makefile lib/gui/Makefile lib/nav/Makefile @@ -1,102 +0,0 @@ -<keymap> - <map context="ListboxActions"> - <device name="keyboard"> - <key id="a" mapto="up" flags="mr" /> - <key id="b" mapto="down" flags="mr" /> - </device> - <key id="KEY_UP" mapto="moveUp" flags="mr" /> - <key id="KEY_DOWN" mapto="moveDown" flags="mr" /> - <key id="KEY_HOME" mapto="moveTop" flags="mr" /> - <key id="KEY_END" mapto="moveEnd" flags="mr" /> - <key id="KEY_PAGEUP" mapto="pageUp" flags="mr" /> - <key id="KEY_PAGEDOWN" mapto="pageDown" flags="mr" /> - <key id="KEY_LEFT" mapto="pageUp" flags="mr" /> - <key id="KEY_RIGHT" mapto="pageDown" flags="mr" /> - <key id="1" mapto="moveUp" flags="mr" /> - <key id="2" mapto="moveDown" flags="mr" /> - </map> - - <map context="InputActions"> - <key id="KEY_LEFT" mapto="moveLeft" flags="mr" /> - <key id="KEY_RIGHT" mapto="moveRight" flags="mr" /> - <key id="KEY_HOME" mapto="moveHome" flags="mr" /> - <key id="KEY_END" mapto="moveEnd" flags="mr" /> - <key id="KEY_DELETE" mapto="deleteForward" flags="mr" /> - <key id="KEY_BACKSPACE" mapto="deleteBackward" flags="mr" /> - - <key id="KEY_INSERT" mapto="toggleOverwrite" flags="m" /> - <key id="KEY_ENTER" mapto="accept" flags="m" /> - </map> - - <map context="SetupActions"> - <key id="KEY_OK" mapto="ok" flags="m" /> - <key id="KEY_EXIT" mapto="cancel" flags="m" /> - <key id="KEY_LEFT" mapto="left" flags="mr" /> - <key id="KEY_RIGHT" mapto="right" flags="mr" /> - </map> - - <map context="InfobarActions"> - <key id="m" mapto="mainMenu" flags="mr" /> - <key id="c" mapto="switchChannelDown" flags="mr" /> - <key id="r" mapto="instantRecord" flags="m" /> - <key id="1" mapto="zapUp" flags="mr" /> - <key id="2" mapto="zapDown" flags="mr" /> - <key id="KEY_M" mapto="mainMenu" flags="mr" /> - <key id="KEY_C" mapto="switchChannelDown" flags="mr" /> - <key id="KEY_R" mapto="instantRecord" flags="m" /> - <key id="KEY_LEFT" mapto="zapUp" flags="mr" /> - <key id="KEY_RIGHT" mapto="zapDown" flags="mr" /> - <key id="KEY_UP" mapto="switchChannelUp" flags="mr" /> - <key id="KEY_DOWN" mapto="switchChannelDown" flags="mr" /> - <key id="KEY_MENU" mapto="mainMenu" flags="mr" /> - <key id="KEY_OK" mapto="toggleShow" flags="m" /> - <key id="KEY_EXIT" mapto="hide" flags="m" /> - <key id="KEY_VIDEO" mapto="showMovies" flags="m" /> - <key id="KEY_VOLUMEUP" mapto="volumeUp" flags="mr" /> - <key id="KEY_VOLUMEDOWN" mapto="volumeDown" flags="mr" /> - <key id="KEY_MUTE" mapto="volumeMute" flags="mr" /> - <key id="KEY_POWER" mapto="quit" flags="m" /> - </map> - - <map context="ChannelSelectActions"> - <key id="m" mapto="mark" flags="m" /> - <!-- yes, this is flexible as hell. --> - <key id="p" mapto="bouquet:(provider == PREMIERE)" flags="m" /> - <key id="d" mapto="bouquet:(provider == ARD)" flags="m" /> - <key id="a" mapto="bouquet:" flags="m" /> - - <key id="KEY_C" mapto="contextMenu" flags="m" /> - <key id="KEY_M" mapto="mark" flags="m" /> - <!-- yes, this is flexible as hell. --> - <key id="KEY_RED" mapto="bouquet:(provider == PREMIERE)" flags="m" /> - <key id="KEY_D" mapto="bouquet:(provider == ARD)" flags="m" /> - <key id="KEY_A" mapto="bouquet:" flags="m" /> - <key id="KEY_BLUE" mapto="showFavourites" flags="m" /> - </map> - <map context="OkCancelActions"> - <key id="\x0a" mapto="ok" flags="m" /> - <key id="\x1b" mapto="cancel" flags="m" /> - - <!-- use this on rcu, ok? --> - <key id="KEY_OK" mapto="ok" flags="m" /> - <key id="KEY_EXIT" mapto="cancel" flags="m" /> - - <key id="KEY_ENTER" mapto="ok" flags="m" /> - <key id="KEY_ESC" mapto="cancel" flags="m" /> - </map> - <map context="WindowActions"> - - </map> - - <map context="ShortcutActions"> - <key id="KEY_F1" mapto="red" flags="mr" /> - <key id="KEY_F2" mapto="yellow" flags="mr" /> - <key id="KEY_F3" mapto="green" flags="mr" /> - <key id="KEY_F4" mapto="blue" flags="mr" /> - - <key id="KEY_RED" mapto="red" flags="mr" /> - <key id="KEY_YELLOW" mapto="yellow" flags="mr" /> - <key id="KEY_GREEN" mapto="green" flags="mr" /> - <key id="KEY_BLUE" mapto="blue" flags="mr" /> - </map> -</keymap> diff --git a/lib/gdi/Makefile.am b/lib/gdi/Makefile.am index abb75b79..c3fc6556 100644 --- a/lib/gdi/Makefile.am +++ b/lib/gdi/Makefile.am @@ -5,4 +5,4 @@ noinst_LIBRARIES = libenigma_gdi.a libenigma_gdi_a_SOURCES = \ region.cpp grc.cpp epng.cpp erect.cpp fb.cpp font.cpp font_arabic.cpp gfbdc.cpp \ - glcddc.cpp gpixmap.cpp lcd.cpp sdl.cpp gfont.cpp + glcddc.cpp gpixmap.cpp lcd.cpp gfont.cpp diff --git a/lib/gdi/gfbdc.cpp b/lib/gdi/gfbdc.cpp index 7130b0c7..8dc0a7d2 100644 --- a/lib/gdi/gfbdc.cpp +++ b/lib/gdi/gfbdc.cpp @@ -14,7 +14,7 @@ gFBDC::gFBDC() if (!fb->Available()) eFatal("no framebuffer available"); - fb->SetMode(720, 576, 8); + fb->SetMode(720, 576, 32); for (int y=0; y<576; y++) // make whole screen transparent memset(fb->lfb+y*fb->Stride(), 0x00, fb->Stride()); @@ -22,8 +22,8 @@ gFBDC::gFBDC() surface.type = 0; surface.x = 720; surface.y = 576; - surface.bpp = 8; - surface.bypp = 1; + surface.bpp = 32; + surface.bypp = 4; surface.stride = fb->Stride(); surface.data = fb->lfb; surface.clut.colors=256; diff --git a/lib/gdi/sdl.cpp b/lib/gdi/sdl.cpp index 10513ae5..655fa933 100644 --- a/lib/gdi/sdl.cpp +++ b/lib/gdi/sdl.cpp @@ -1,5 +1,5 @@ #ifdef WITH_SDL - +#error #include <lib/gdi/sdl.h> #include <lib/base/init.h> diff --git a/lib/gui/elistboxcontent.cpp b/lib/gui/elistboxcontent.cpp index d9e186a3..1c27f766 100644 --- a/lib/gui/elistboxcontent.cpp +++ b/lib/gui/elistboxcontent.cpp @@ -452,8 +452,11 @@ void eListboxPythonConfigContent::paint(gPainter &painter, eWindowStyle &style, int width = item_right.width() * value / 100; int height = item_right.height(); + /* draw slider */ - painter.fill(eRect(offset.x() + m_seperation, offset.y(), width, height)); + //painter.fill(eRect(offset.x() + m_seperation, offset.y(), width, height)); + //hack - make it customizable + painter.fill(eRect(offset.x() + m_seperation, offset.y() + 5, width, height-10)); /* pvalue is borrowed */ } diff --git a/lib/python/Components/Clock.py b/lib/python/Components/Clock.py index 3beed551..eba5ea27 100644 --- a/lib/python/Components/Clock.py +++ b/lib/python/Components/Clock.py @@ -21,7 +21,8 @@ class Clock(HTMLComponent, GUIComponent, VariableText): # "funktionalitaet" def doClock(self): t = time.localtime() - self.setText("%2d:%02d:%02d" % (t[3], t[4], t[5])) + #HACK use timezone settings + self.setText("%2d:%02d:%02d" % (t[3] + 2, t[4], t[5])) # realisierung als GUI def createWidget(self, parent): diff --git a/lib/python/Components/InputDevice.py b/lib/python/Components/InputDevice.py index 599dff34..eb88e650 100644 --- a/lib/python/Components/InputDevice.py +++ b/lib/python/Components/InputDevice.py @@ -17,8 +17,8 @@ class inputDevices: def InitInputDevices(): config.inputDevices = ConfigSubsection(); - config.inputDevices.repeat = configElement("config.inputDevices.repeat", ConfigSlider, 3); - config.inputDevices.delay = configElement("config.inputDevices.delay", ConfigSlider, 3); + config.inputDevices.repeat = configElement("config.inputDevices.repeat", ConfigSlider, 5, ""); + config.inputDevices.delay = configElement("config.inputDevices.delay", ConfigSlider, 4, ""); #this instance anywhere else needed? iDevices = inputDevices(); diff --git a/lib/python/Components/Makefile.am b/lib/python/Components/Makefile.am index 969077aa..88118ebf 100644 --- a/lib/python/Components/Makefile.am +++ b/lib/python/Components/Makefile.am @@ -6,6 +6,5 @@ install_DATA = \ Clock.py HTMLSkin.py ServiceList.py VariableText.py \ ConfigList.py Header.py ServiceName.py VariableValue.py \ EventInfo.py Label.py ServiceScan.py VolumeBar.py \ - GUIComponent.py MenuList.py TextInput.py __init__.py MovieList.py \ + GUIComponent.py MenuList.py TextInput.py __init__.py MovieList.py \ InputDevice.py ServicePosition.py - diff --git a/lib/python/Components/__init__.py b/lib/python/Components/__init__.py index 8453ced5..fb9eeaa4 100644 --- a/lib/python/Components/__init__.py +++ b/lib/python/Components/__init__.py @@ -3,5 +3,6 @@ __all__ = ["ActionMap", "Button", "Clock", "ConfigList", "EventInfo", "GUIComponent", "GUISkin", "HTMLComponent", "HTMLSkin", "Header", "Label", "MenuList", "PerServiceDisplay", "ProgressBar", "ServiceList", "ServiceName", "ServiceScan", "VariableText", "VariableValue", "VolumeBar", - "components", "config", "TimerList", "TimeInput", "MovieList", "ServicePosition" ] + "components", "config", "TimerList", "TimeInput", "MovieList", + "InputDevice", "ServicePosition" ] diff --git a/lib/python/Components/config.py b/lib/python/Components/config.py index 10296437..15119617 100644 --- a/lib/python/Components/config.py +++ b/lib/python/Components/config.py @@ -1,15 +1,31 @@ # temp stuff :) class configBoolean: - def __init__(self, reg): - self.reg = reg - self.val = 0 + def __init__(self, parent): + self.parent = parent + self.val = parent.value + self.vals = parent.vals + + def handleKey(self, key): + if key == 1: + self.val = self.val - 1 + if key == 2: + self.val = self.val + 1 + + if self.val < 0: + self.val = 0 + +# if self.val > 1: +# self.val = 1 - def toggle(self): - self.val += 1 - self.val %= 3 + def __call__(self): #needed by configlist - def __str__(self): - return ("NO", "YES", "MAYBE")[self.val] + print len(self.vals) + print self.val + + if(self.val > (len(self.vals) - 1)): + self.val = len(self.vals) - 1 + + return ("text",self.vals[self.val]) class configValue: def __init__(self, obj): @@ -48,7 +64,6 @@ class ConfigSlider: if self.val > 10: self.val = 10 - def __call__(self): #needed by configlist return ("slider", self.val * 10) @@ -57,10 +72,12 @@ class ConfigSubsection: pass class configElement: - def __init__(self, configPath, control, defaultValue): + def __init__(self, configPath, control, defaultValue, vals): self.configPath = configPath - self.value = 0 #read from registry else use default +# self.value = 0 #read from registry else use default + self.value = defaultValue #read from registry else use default self.controlType = control + self.vals = vals self.notifierList = [ ] def addNotifier(self, notifier): self.notifierList.append(notifier); diff --git a/lib/python/Screens/ChannelSelection.py b/lib/python/Screens/ChannelSelection.py index 3155c44d..e421c5c9 100644 --- a/lib/python/Screens/ChannelSelection.py +++ b/lib/python/Screens/ChannelSelection.py @@ -55,10 +55,10 @@ class ChannelSelection(Screen): ## FIXME self.__marked = [ ] - self["key_red"] = Button("red") - self["key_green"] = Button("green") - self["key_yellow"] = Button("yellow") - self["key_blue"] = Button("blue") + self["key_red"] = Button("All") + self["key_green"] = Button("ARD") + self["key_yellow"] = Button("ZDF") + self["key_blue"] = Button("Custom") self["list"] = ServiceList() self["list"].setRoot(eServiceReference("""1:0:1:0:0:0:0:0:0:0:(type == 1)""")) diff --git a/lib/python/Screens/InfoBar.py b/lib/python/Screens/InfoBar.py index 0ead7221..44484a51 100644 --- a/lib/python/Screens/InfoBar.py +++ b/lib/python/Screens/InfoBar.py @@ -106,8 +106,8 @@ class InfoBar(Screen): quitMainloop() def instantRecord(self): - self.session.open(MessageBox, "this would be an instant recording! do you really know what you're doing?!") - return + #self.session.open(MessageBox, "this would be an instant recording! do you really know what you're doing?!") + #return if self.recording != None: print "remove entry" diff --git a/lib/python/Screens/Makefile.am b/lib/python/Screens/Makefile.am index 9250018e..e645997d 100644 --- a/lib/python/Screens/Makefile.am +++ b/lib/python/Screens/Makefile.am @@ -3,4 +3,4 @@ installdir = $(LIBDIR)/enigma2/python/Screens install_DATA = \ ChannelSelection.py ClockDisplay.py ConfigMenu.py InfoBar.py Menu.py \ MessageBox.py ScartLoopThrough.py Screen.py ServiceScan.py TimerEdit.py \ - MovieSelection.py Setup.py __init__.py + MovieSelection.py SetupRCU.py Setup.py __init__.py diff --git a/lib/python/Screens/Menu.py b/lib/python/Screens/Menu.py index fd2f2761..11b265e3 100644 --- a/lib/python/Screens/Menu.py +++ b/lib/python/Screens/Menu.py @@ -12,6 +12,8 @@ from Components.Label import Label from Components.ProgressBar import ProgressBar from ConfigMenu import * +from About import * + from TimerEdit import * from enigma import quitMainloop @@ -27,56 +29,50 @@ def doGlobal(screen): screen["clock"] = Clock() +# <item text="TV-Mode">self.setModeTV()</item> +# <item text="Radio-Mode">self.setModeRadio()</item> +# <item text="File-Mode">self.setModeFile()</item> +# <item text="Scart">self.openDialog(ScartLoopThrough)</item> +# <item text="Sleep Timer"></item> + mdom = xml.dom.minidom.parseString( """ - <menu text="Mainmenu" title="the real Mainmenu"> + <menu text="Mainmenu" title="Mainmenu"> <item text="Standby debug">quitMainloop()</item> - <item text="Automatic Scan">self.openDialog(ServiceScan)</item> - - <item text="Blub1">self.openSetup("rc")</item> - <item text="Blub2">self.openSetup("blasel")</item> - - <item text="TV-Mode">self.setModeTV()</item> - <item text="Radio-Mode">self.setModeRadio()</item> - <item text="File-Mode">self.setModeFile()</item> - <item text="Scart">self.openDialog(ScartLoopThrough)</item> <item text="Timer">self.openDialog(TimerEditList)</item> <menu text="Setup"> - <menu text="Service Organising"> + <menu text="Service Organising -disabled-"> <item text="New Bouquets"></item> <item text="Add to Bouquets"></item> <item text="Edit Bouquets"></item> </menu> <menu text="Service Searching"> - <item text="Satelliteconfig"></item> - <item text="Satfinder"></item> - <item text="Rotor Control"></item> - <item text="Edit Transponder"></item> + <item text="Satelliteconfig">self.openSetup("satconfig")</item> + <item text="Satfinder -disabled-"></item> + <item text="Rotor Control -disabled-"></item> + <item text="Edit Transponder -disabled-"></item> <item text="Automatic Scan">self.openDialog(ServiceScan)</item> - <item text="Automatic 'Multisat' Scan"></item> - <item text="Manual Scan"></item> </menu> <menu text="System"> - <item text="Time Date"></item> - <item text="Video Audio"></item> - <item text="UHF Modulator"></item> + <item text="Timezone">self.openSetup("timezone")</item> + <item text="Video Audio">self.openSetup("avsetup")</item> + <item text="UHF Modulator">self.openSetup("rfmod")</item> <item text="Harddisk"></item> - <item text="Keyboard"></item> - <item text="OSD">self.openDialog(configOSD)</item> - <item text="Language"></item> - <item text="LCD"></item> + <item text="Remote Control">self.openSetup("rc")</item> + <item text="Keyboard">self.openSetup("keyboard")</item> + <item text="OSD">self.openSetup("osd")</item> + <item text="LCD">self.openSetup("lcd")</item> </menu> <item text="Common Interface"></item> - <item text="Parental Control"></item> - <item text="Expert"></item> + <item text="Parental Control">self.openSetup("parental")</item> + <item text="Expert">self.openSetup("expert")</item> </menu> - <item text="Games"></item> - <item text="Information"></item> + <item text="Games (not found)"></item> + <item text="Information">self.openDialog(About)</item> <menu text="Standby"> - <item text="PowerOff"></item> - <item text="Restart"></item> - <item text="Standby"></item> - <item text="Sleep Timer">self.goSetup()</item> + <item text="PowerOff">quitMainloop()</item> + <item text="Restart">quitMainloop()</item> + <item text="Standby">quitMainloop()</item> </menu> </menu>""") @@ -142,7 +138,7 @@ class Menu(Screen): self.session.open(dialog) def openSetup(self, dialog): - self.session.open(setup, dialog) + self.session.open(Setup, dialog) def addMenu(self, destList, node): MenuTitle = getValbyAttr(node, "text") diff --git a/lib/python/Screens/Setup.py b/lib/python/Screens/Setup.py index de27ff5e..a694ab16 100644 --- a/lib/python/Screens/Setup.py +++ b/lib/python/Screens/Setup.py @@ -4,6 +4,7 @@ from Components.config import config #global config instance from Components.config import configEntry from Components.config import configBoolean from Components.ConfigList import ConfigList +from Components.Label import Label import xml.dom.minidom from xml.dom import EMPTY_NAMESPACE @@ -13,10 +14,66 @@ from Tools import XMLTools setupdom = xml.dom.minidom.parseString( """ - <setup key="rc" title="RC Menu"> - <item text="Repeat Rate">config.inputDevices.repeat</item> - <item text="Delay Rate">config.inputDevices.delay</item> - </setup> + <setupxml> + <setup key="rc" title="RC Menu"> + <item text="Repeat Rate">config.inputDevices.repeat</item> + <item text="Delay Rate">config.inputDevices.delay</item> + <item text="Keymap">config.rc.map</item> + </setup> + <setup key="timezone" title="RC Menu"> + <item text="Timezone">config.timezone.val</item> + </setup> + <setup key="avsetup" title="A/V Settings"> + <item text="Color Format">config.av.colorformat</item> + <item text="Aspect Ratio">config.av.aspectratio</item> + <item text="TV System">config.av.tvsystem</item> + <item text="WSS">config.av.wss</item> + <item text="AC3 default">config.av.defaultac3</item> + <item text="VCR Switch">config.av.vcrswitch</item> + </setup> + <setup key="rfmod" title="UHF Modulator"> + <item text="Modulator">config.rfmod.enable</item> + <item text="Testmode">config.rfmod.test</item> + <item text="Sound">config.rfmod.sound</item> + <item text="Soundcarrier">config.rfmod.soundcarrier</item> + <item text="Channel">config.rfmod.channel</item> + <item text="Finetune">config.rfmod.finetune</item> + </setup> + <setup key="keyboard" title="Keyboard Setup"> + <item text="Keyboard Map">config.keyboard.keymap</item> + </setup> + <setup key="osd" title="OSD Settings"> + <item text="Alpha">config.osd.alpha</item> + <item text="Brightness">config.osd.bright</item> + <item text="Contrast">config.osd.contrast</item> + <item text="Language">config.osd.language</item> + </setup> + <setup key="lcd" title="LCD Setup"> + <item text="Brightness">config.lcd.bright</item> + <item text="Standby">config.lcd.standby</item> + <item text="Invert">config.lcd.invert</item> + </setup> + <setup key="parental" title="Parental Control"> + <item text="Parental Lock">config.parental.lock</item> + <item text="Setup Lock">config.parental.setuplock</item> + </setup> + <setup key="expert" title="Expert Setup"> + <item text="Record Splitsize">config.expert.splitsize</item> + <item text="Show Satposition">config.expert.satpos</item> + <item text="Fast zapping">config.expert.fastzap</item> + <item text="Skip confirmations">config.expert.skipconfirm</item> + <item text="Hide error windows">config.expert.hideerrors</item> + <item text="Auto show inforbar">config.expert.autoinfo</item> + </setup> + <setup key="satconfig" title="Sat/Dish Setup"> + <item text="Tuner-A Control">config.sat.diseqcA</item> + <item text="Tuner-A Position">config.sat.posA</item> + <item text="Tuner-A Sat">config.sat.satA</item> + <item text="Tuner-B Control">config.sat.diseqcB</item> + <item text="Tuner-A Position">config.sat.posB</item> + <item text="Tuner-B Sat">config.sat.satB</item> + </setup> + </setupxml> """) def getValbyAttr(x, attr): @@ -66,7 +123,9 @@ class Setup(Screen): print "request setup for " + setup - entries = setupdom.childNodes + xmldata = setupdom.childNodes[0] + + entries = xmldata.childNodes list = [] @@ -83,6 +142,9 @@ class Setup(Screen): self["config"] = ConfigList(list) + self["ok"] = Label("OK") + self["cancel"] = Label("Cancel") + self["actions"] = ActionMap(["SetupActions"], { "cancel": self.close, diff --git a/lib/python/Screens/TimerEdit.py b/lib/python/Screens/TimerEdit.py index f8c9f207..173b1ba2 100644 --- a/lib/python/Screens/TimerEdit.py +++ b/lib/python/Screens/TimerEdit.py @@ -64,7 +64,7 @@ class TimerEditList(Screen): self["actions"] = ActionMap(["OkCancelActions"], { - "ok": self.openEdit, +# "ok": self.openEdit, "cancel": self.close }) diff --git a/main/Makefile.am b/main/Makefile.am index d96e25aa..5a7d1ef7 100644 --- a/main/Makefile.am +++ b/main/Makefile.am @@ -14,6 +14,7 @@ enigma2_LDADD_WHOLE = \ $(top_builddir)/lib/driver/libenigma_driver.a \ $(top_builddir)/lib/dvb/libenigma_dvb.a \ $(top_builddir)/lib/dvb_si/libenigma_dvb_si.a \ + $(top_builddir)/lib/dvb_ci/libenigma_dvb_ci.a \ $(top_builddir)/lib/gdi/libenigma_gdi.a \ $(top_builddir)/lib/gui/libenigma_gui.a \ $(top_builddir)/lib/python/libenigma_python.a \ @@ -27,8 +28,7 @@ enigma2_LDADD = \ @MAD_LIBS@ \ @PNG_LIBS@ \ @SIGC_LIBS@ \ - @SDL_LIBS@ \ - -ldl -lpthread -lcrypt -lresolv -lpython2.3 + -ldl -lpthread -lcrypt -lresolv -lpython2.4 enigma2$(EXEEXT): $(enigma2_OBJECTS) $(enigma2_DEPENDENCIES) $(enigma2_LDADD_WHOLE) # @rm -f enigma2$(EXEEXT) diff --git a/main/enigma.cpp b/main/enigma.cpp index 3d84db7d..3a728b8d 100644 --- a/main/enigma.cpp +++ b/main/enigma.cpp @@ -1,4 +1,6 @@ +#undef WITH_SDL #ifdef WITH_SDL +#error #define SDLDC #endif #include <stdio.h> @@ -13,6 +15,7 @@ #include <lib/gdi/grc.h> #include <lib/gdi/gfbdc.h> #ifdef WITH_SDL +#error #include <lib/gdi/sdl.h> #endif #include <lib/gdi/font.h> @@ -172,6 +172,9 @@ skin.loadSkin(getDesktop()) import Components.InputDevice Components.InputDevice.InitInputDevices() +import Components.SetupDevices +Components.SetupDevices.InitSetupDevices() + # first, setup a screen try: runScreenTest() @@ -47,22 +47,25 @@ dom = xml.dom.minidom.parseString( <pixmap pos="bpBottomRight" filename="data/b_w_br.png" /> </borderset> </windowstyle> """ """ - <screen name="Menu" position="300,100" size="300,300" title="real main menu"> + <screen name="Menu" position="300,100" size="300,200" title="real main menu"> <!-- <widget name="okbutton" position="10,190" size="280,50" font="Arial;20" valign="center" halign="center" />--> <widget name="title" position="10,10" size="280,20" /> <widget name="menu" position="10,30" size="280,200" /> - </screen> <screen name="ScartLoopThrough" position="0,0" size="720,576"> </screen> - <screen name="ConfigMenu" position="300,100" size="300,300" title="real main menu"> - <widget name="txt_var_1" position="20,20" size="100,20" /> - <widget name="btn_var_1" position="110,20" size="200,20" /> - <widget name="txt_var_2" position="20,60" size="100,20" /> - <widget name="btn_var_2" position="110,60" size="200,20" /> + <screen name="Setup" position="140,125" size="460,220" title="Setup"> + <widget name="config" position="10,30" size="420,120" /> + <widget name="ok" position="140,180" size="38,20" font="Arial;20" backgroundColor="green" /> + <widget name="cancel" position="240,180" size="70,20" font="Arial;20" backgroundColor="red" /> </screen> - <screen name="Setup" position="140,125" size="460,350" title="RCU Setup"> - <widget name="config" position="10,30" size="280,140" /> + <screen name="About" position="140,125" size="360,200" title="Setup"> + <widget name="text" position="10,30" size="420,40" font="Arial;20"/> + <widget name="tuner" position="10,80" size="420,20"/> + <widget name="tunerA" position="10,100" size="420,20"/> + <widget name="tunerB" position="10,120" size="420,20"/> + <widget name="hdd" position="10,150" size="420,20"/> + <widget name="hddA" position="10,170" size="420,20"/> </screen> <screen name="configOSD" position="140,125" size="460,350" title="OSD Settings"> <widget name="okbutton" position="20,245" size="205,40" /> @@ -74,7 +77,7 @@ dom = xml.dom.minidom.parseString( <widget name="sld_gamma" position="150,100" size="290,20" /> </screen> <screen name="configTest" position="300,100" size="300,300" title="config menu"> - <widget name="config" position="10,30" size="280,140" /> + <widget name="config" position="10,30" size="420,220" /> </screen> <screen name="TimerEditList" position="160,100" size="420,430" title="Timer Editor"> <widget name="timerlist" position="10,30" size="400,300" /> @@ -88,7 +91,7 @@ dom = xml.dom.minidom.parseString( <ePixmap position="0,0" size="720,148" pixmap="data/info-bg.png" /> <widget name="ServiceName" position="69,25" size="427,26" valign="center" font="Arial;22" backgroundColor="#101258" /> - <widget name="CurrentTime" position="575,10" size="80,30" backgroundColor="dark" font="Arial;19" /> + <widget name="CurrentTime" position="575,10" size="90,30" backgroundColor="dark" font="Arial;19" /> <widget name="Volume" position="575,45" size="100,5" backgroundColor="dark" /> <widget name="Event_Now" position="273,68" size="282,30" font="Arial;22" backgroundColor="dark" /> <widget name="Event_Next" position="273,98" size="282,30" font="Arial;22" backgroundColor="dark" /> @@ -107,9 +110,9 @@ dom = xml.dom.minidom.parseString( <screen name="MovieSelection" position="150,100" size="400,420" title="Select-a-movie"> <widget name="list" position="0,50" size="400,300" /> </screen> - <screen name="ServiceScan" position="150,100" size="300,200" title="Service Scan"> - <widget name="scan_progress" position="10,10" size="280,50" /> - <widget name="scan_state" position="10,60" size="280,30" /> + <screen name="ServiceScan" position="150,100" size="300,90" title="Service Scan"> + <widget name="scan_progress" position="10,10" size="300,20" /> + <widget name="scan_state" position="10,40" size="280,30" /> </screen> <screen name="TimerEdit" position="70,100" size="590,335" title="Timer Edit"> <widget name="description" position="10,10" size="580,40" font="Arial;25" /> |
