From 5cfff23603ea99dae70badc8221d7bbceb521393 Mon Sep 17 00:00:00 2001 From: SnowHead Date: Mon, 6 Apr 2015 21:12:06 +0200 Subject: [PATCH] - upgrade to version 1.01 logoset: allow changes in transparency by using volume keys --- gfx.c | 20 +++++++++++++++++++- logomask.c | 6 +----- logomask.h | 3 --- logoset.c | 41 +++++++++++++++++++++++++++++++---------- logoset.h | 3 --- text.c | 2 +- 6 files changed, 52 insertions(+), 23 deletions(-) diff --git a/gfx.c b/gfx.c index 7b66830..8898b14 100644 --- a/gfx.c +++ b/gfx.c @@ -12,17 +12,35 @@ gpixel *make_color(int col, gpixel *pix) void RenderBox(int sx, int sy, int ex, int ey, int mode, gpixel *pix) { - int F,ssx=startx+sx,ssy=starty+sy,dxx=ex-sx,dyy=ey-sy,rx,ry,wx,wy,count; + int F,ssx=sx,ssy=sy,dxx=ex-sx,dyy=ey-sy,rx,ry,wx,wy,count; unsigned char *pos=(lbb+(ssx<<2)+fix_screeninfo.line_length*ssy); unsigned char *pos0, *pos1, *pos2, *pos3, *i; + if (sx<0) + { + printf("[gfx.c] RenderBox called with sx < 0 (%d)\n", dxx); + sx=0; + } + + if (sy<0) + { + printf("[gfx.c] RenderBox called with sy < 0 (%d)\n", dxx); + sy=0; + } + if (dxx<0) { printf("[gfx.c] RenderBox called with dx < 0 (%d)\n", dxx); dxx=0; } + if (dyy<0) + { + printf("[gfx.c] RenderBox called with dyy < 0 (%d)\n", dxx); + dyy=0; + } + if(mode==FILL) { for (count=0; count /tmp/logomask.chan"); if((fh=fopen("/tmp/logomask.chan","r"))!=NULL) { @@ -624,6 +621,28 @@ int main (int argc, char **argv) } break; + case KEY_VOLUMEDOWN: + if(nmsk) + { + if(mc[amsk].cpixel.tr < 0xF8) + mc[amsk].cpixel.tr+=0x08; + else + mc[amsk].cpixel.tr=0xFF; + changed=1; + } + break; + + case KEY_VOLUMEUP: + if(nmsk) + { + if(mc[amsk].cpixel.tr > 0x08) + mc[amsk].cpixel.tr-=0x08; + else + mc[amsk].cpixel.tr=0x00; + changed=1; + } + break; + case KEY_MUTE: if(nmsk) { @@ -684,7 +703,7 @@ int main (int argc, char **argv) { xs=1.0; ys=1.0; - tsy=starty+120; + tsy=120; if(move) { RenderBox(xp[amsk][pmode], yp[amsk][pmode], xp[amsk][pmode]+xw[amsk][pmode], yp[amsk][pmode]+yw[amsk][pmode], FILL, &mc[amsk]); @@ -697,7 +716,7 @@ int main (int argc, char **argv) } if(help) { - RenderBox(tsx,tsy,tsx+txw,tsy+20*tdy,FILL,make_color(TRANSP, &tp)); + RenderBox(tsx,tsy,tsx+txw,tsy+21*tdy,FILL,make_color(TRANSP, &tp)); if(nmsk) RenderBox(xp[amsk][pmode], yp[amsk][pmode], xp[amsk][pmode]+xw[amsk][pmode], yp[amsk][pmode]+yw[amsk][pmode], GRID, make_color((kmode)?LBLUE:LYELLOW, &tp)); RenderString("Maskensteuerung", tsx, tsy+=tdy, txw, LEFT, tsz, tcol); @@ -708,20 +727,22 @@ int main (int argc, char **argv) RenderString("PgUp : nächste Maske auswählen", tsx, tsy+=tdy, txw, LEFT, tsz, tcol); RenderString("PgDn : vorherige Maske auswählen", tsx, tsy+=tdy, txw, LEFT, tsz, tcol); RenderString("Maskenfarbe", tsx, tsy+=(2*tdy), txw, LEFT, tsz, tcol); + RenderString("Mute : Maskenfarbe aus Vorgabe auswählen", tsx, tsy+=tdy, txw, LEFT, tsz, tcol); RenderString("1,4,7 : Farbton Rot erhöhen, auf Mitte setzen, verringern", tsx, tsy+=tdy, txw, LEFT, tsz, tcol); RenderString("2,5,8 : Farbton Grün erhöhen, auf Mitte setzen, verringern", tsx, tsy+=tdy, txw, LEFT, tsz, tcol); RenderString("3,6,9 : Farbton Blau erhöhen, auf Mitte setzen, verringern", tsx, tsy+=tdy, txw, LEFT, tsz, tcol); - RenderString("Mute : Maskenfarbe aus Vorgabe auswählen", tsx, tsy+=tdy, txw, LEFT, tsz, tcol); + RenderString("Vol + : Transparenz erhöhen", tsx, tsy+=tdy, txw, LEFT, tsz, tcol); + RenderString("Vol - : Transparenz verringern", tsx, tsy+=tdy, txw, LEFT, tsz, tcol); RenderString("Allgemein", tsx, tsy+=(2*tdy), txw, LEFT, tsz, tcol); RenderString("? : Hilfetext ein/ausschalten", tsx, tsy+=tdy, txw, LEFT, tsz, tcol); - RenderString("Home: Abbrechen", tsx, tsy+=tdy, txw, LEFT, tsz, tcol); + RenderString("Exit : Abbrechen", tsx, tsy+=tdy, txw, LEFT, tsz, tcol); RenderString("OK : Speichern und Beenden", tsx, tsy+=tdy, txw, LEFT, tsz, tcol); } else { if(help_changed) { - RenderBox(tsx, tsy, tsx+txw, tsy+20*tdy, FILL, make_color(TRANSP, &tp)); + RenderBox(tsx, tsy, tsx+txw, tsy+21*tdy, FILL, make_color(TRANSP, &tp)); if(nmsk) RenderBox(xp[amsk][pmode], yp[amsk][pmode], xp[amsk][pmode]+xw[amsk][pmode], yp[amsk][pmode]+yw[amsk][pmode], GRID, make_color((kmode)?LBLUE:LYELLOW, &tp)); } diff --git a/logoset.h b/logoset.h index 37ce1ed..2a433b2 100644 --- a/logoset.h +++ b/logoset.h @@ -116,9 +116,6 @@ extern int TABULATOR; struct fb_fix_screeninfo fix_screeninfo; struct fb_var_screeninfo var_screeninfo; -int startx, starty, sx, ex, sy, ey; -char online; - #define FB_DEVICE "/dev/fb/0" #define BUFSIZE 4096 diff --git a/text.c b/text.c index bbc8eda..ce5d7bc 100644 --- a/text.c +++ b/text.c @@ -80,7 +80,7 @@ int RenderChar(FT_ULong currentchar, int sx, int sy, int ex, int color) { if(pitch*8 + 7-bit >= sbit->width) break; /* render needed bits only */ - if((sbit->buffer[row * sbit->pitch + pitch]) & 1<left + kerning.x + x)*4 + fix_screeninfo.line_length*(starty + sy - sbit->top + y),pix,4); + if((sbit->buffer[row * sbit->pitch + pitch]) & 1<left + kerning.x + x)*4 + fix_screeninfo.line_length*(sy - sbit->top + y),pix,4); x++; } -- 2.39.5