]> git.ipfire.org Git - people/teissler/ipfire-2.x.git/commitdiff
lcd4linux: add patch to scale text on dpf displays.
authorArne Fitzenreiter <arne_f@ipfire.org>
Thu, 17 Nov 2011 13:45:29 +0000 (14:45 +0100)
committerArne Fitzenreiter <arne_f@ipfire.org>
Thu, 17 Nov 2011 13:45:29 +0000 (14:45 +0100)
lfs/lcd4linux
src/patches/lcd4linux-scaletext-dpf.patch [new file with mode: 0644]

index 76c36021928c9dabc17dec7fc0ccd90ba782d546..b31b961b2600fbd3865499fd17432cfa687103d9 100644 (file)
@@ -32,7 +32,7 @@ DL_FROM    = $(URL_IPFIRE)
 DIR_APP    = $(DIR_SRC)/$(THISAPP)
 TARGET     = $(DIR_INFO)/$(THISAPP)
 PROG       = lcd4linux
-PAK_VER    = 3
+PAK_VER    = 4
 
 DEPS       = "dpfhack libmpdclient"
 
@@ -77,6 +77,7 @@ $(subst %,%_MD5,$(objects)) :
 $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
        @$(PREBUILD)
        @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar Jxf $(DIR_DL)/$(DL_FILE)
+       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/lcd4linux-scaletext-dpf.patch
        cd $(DIR_APP) && ./configure  --with-plugins=all,!qnaplog,!dbus --prefix=/usr
        cd $(DIR_APP) && make
        cd $(DIR_APP) && make install
diff --git a/src/patches/lcd4linux-scaletext-dpf.patch b/src/patches/lcd4linux-scaletext-dpf.patch
new file mode 100644 (file)
index 0000000..c075dc7
--- /dev/null
@@ -0,0 +1,59 @@
+diff -rupN --exclude=.svn --exclude='*.log' --exclude=Makefile --exclude='*.m4' --exclude='*.in' --exclude=autom4te.cache --exclude='config*' --exclude='*.Po' --exclude='*.sh' lcd4linux/drv_dpf.c lcd4linux.1/drv_dpf.c
+--- lcd4linux/drv_dpf.c        2011-11-14 14:41:40.859787820 +0100
++++ lcd4linux.1/drv_dpf.c      2011-11-13 14:42:58.650315817 +0100
+@@ -160,12 +160,26 @@ static int drv_dpf_start2(const char *se
+       }
+       /* Fixme: provider other fonts someday... */
+-      if (XRES != 6 && YRES != 8) {
++      /* Overridden - we have scaled the textout drawing */
++/*    if (XRES != 6 && YRES != 8) {
+               error("%s: bad Font '%s' from %s (only 6x8 at the moment)",
+                       Name, s, cfg_source());
+               return -1;
++      } */
++
++      /* we dont want fonts below 6 width */
++      if (XRES <6) {
++              error("%s: bad Font '%s' width '%d' using minimum of 6)",
++                      Name,s,XRES);
++              XRES = 6;
+       }
++        /* we dont want fonts below 8 height */
++        if (YRES <8) {
++                error("%s: bad Font '%s' height '%d' using minimum of 8)",
++                        Name,s,YRES);
++                YRES = 8;
++        }
+       /* open communication with the display */
+       if (drv_dpf_open(section) < 0) {
+diff -rupN --exclude=.svn --exclude='*.log' --exclude=Makefile --exclude='*.m4' --exclude='*.in' --exclude=autom4te.cache --exclude='config*' --exclude='*.Po' --exclude='*.sh' lcd4linux/drv_generic_graphic.c lcd4linux.1/drv_generic_graphic.c
+--- lcd4linux/drv_generic_graphic.c    2011-11-14 14:41:40.614375417 +0100
++++ lcd4linux.1/drv_generic_graphic.c  2011-11-14 14:58:29.303285793 +0100
+@@ -259,15 +259,18 @@ static void drv_generic_graphic_render(c
+       }
+       for (y = 0; y < YRES; y++) {
+-          int mask = 1 << XRES;
++
+           for (x = 0; x < XRES; x++) {
+-              mask >>= 1;
+-              if (chr[y] & mask)
+-                  drv_generic_graphic_FB[layer][(r + y) * LCOLS + c + x] = fg;
+-              else
+-                  drv_generic_graphic_FB[layer][(r + y) * LCOLS + c + x] = bg;
++              int mask = 1 << 6;
++              mask >>= ((x*6)/(XRES))+1;
++                if (chr[(y*8)/(YRES)] & mask)
++                    drv_generic_graphic_FB[layer][(r + y ) * LCOLS + c + x] = fg;
++                else
++                    drv_generic_graphic_FB[layer][(r + y ) * LCOLS + c + x] = bg;
++
+           }
+       }
++
+       c += XRES;
+       txt++;
+     }