LCDproc development and user support list

Text archives Help


[lcdproc] Flicker problem with LCDd


Chronological Thread 
  • From: tinic AT tinic.net (tinic AT tinic.net)
  • Subject: [lcdproc] Flicker problem with LCDd
  • Date: Tue, 5 Sep 2000 22:56:41 -0700

On Tue, Sep 05, 2000 at 07:30:54PM -0700, James Van't Slot wrote:

> I just installed LCDproc and when I fire up the server (v0.4-pre9) I get
> a terrible flicker problem with the text.

Cause is a problem with the framebuffer usage. Big Numbers and
the framebuffer do not mix. What happens is that the LCD displays
the big numbers and right afterwards the current framebuffer is
drawn. Since its empty, it erases the LCD.

Solution is simple: Implement big numbers using the framebuffer.
I attached the two modified functions which need to be replaced
in server/drivers/MtxOrb.c. The numbers look a bit different,
personally I prefer them.


greets

TINIC
/////////////////////////////////////////////////////////////////
// Sets up for big numbers.
//
void MtxOrb_init_num()
{
int c;
char elem[8][5*8] = {
{
0,0,0,0,0,
0,0,0,0,0,
0,0,0,0,0,
0,0,0,0,0,
0,0,0,0,0,
0,0,0,0,0,
0,0,0,0,0,
0,0,0,0,0,
},

{
1,1,1,1,1,
1,1,1,1,1,
1,1,1,1,1,
1,1,1,1,1,
1,1,1,1,1,
1,1,1,1,1,
1,1,1,1,1,
1,1,1,1,1,
},

{
0,0,0,0,0,
0,0,0,0,1,
0,0,0,1,1,
0,0,1,1,1,
0,1,1,1,1,
1,1,1,1,1,
1,1,1,1,1,
1,1,1,1,1,
},

{
0,0,0,0,0,
1,0,0,0,0,
1,1,0,0,0,
1,1,1,0,0,
1,1,1,1,0,
1,1,1,1,1,
1,1,1,1,1,
1,1,1,1,1,
},

{
1,1,1,1,1,
1,1,1,1,1,
1,1,1,1,1,
0,1,1,1,1,
0,0,1,1,1,
0,0,0,1,1,
0,0,0,0,1,
0,0,0,0,0,
},

{
1,1,1,1,1,
1,1,1,1,1,
1,1,1,1,1,
1,1,1,1,0,
1,1,1,0,0,
1,1,0,0,0,
1,0,0,0,0,
0,0,0,0,0,
},

{
0,0,0,0,0,
0,0,0,0,0,
0,0,0,0,0,
0,0,0,0,0,
1,1,1,1,1,
1,1,1,1,1,
1,1,1,1,1,
1,1,1,1,1,
},

{
1,1,1,1,1,
1,1,1,1,1,
1,1,1,1,1,
1,1,1,1,1,
0,0,0,0,0,
0,0,0,0,0,
0,0,0,0,0,
0,0,0,0,0,
},
};

for(c=0;c<8;c++)
{
MtxOrb_set_char(c,elem[c]);
}
}

/////////////////////////////////////////////////////////////////
// Writes a big number.
//
void MtxOrb_num(int x, int num)
{
int y=1;
int xx,yy;
char digits [10][3*4] =
{
{
2,1,3,
1,0,1,
1,0,1,
4,1,5,
},

{
2,1,0,
0,1,0,
0,1,0,
0,1,0,
},

{
2,1,3,
0,2,5,
2,5,0,
1,1,1,
},

{
2,1,3,
0,6,5,
0,7,3,
4,1,5,
},

{
1,0,1,
1,6,1,
7,7,1,
0,0,1,
},
{
1,1,1,
1,6,0,
7,7,1,
4,1,5,
},
{
2,1,1,
1,6,0,
1,7,1,
4,1,5,
},
{
1,1,1,
0,2,5,
0,1,0,
0,1,0,
},
{
2,1,3,
4,6,5,
2,7,3,
4,1,5,
},
{
2,1,3,
1,6,1,
0,7,1,
4,1,5,
},
};

y--;
x--;

for(yy=0;yy<4;yy++)
{
for(xx=0;xx<3;xx++)
{
if((y+yy)<lcd.hgt && (x+xx)<lcd.wid) {
lcd.framebuf[((y+yy)*lcd.wid) + (x+xx)] =
digits[num][yy*3+xx];
}
}
}
}


-----------------------------------------------------------
To unsubscribe from this list send a blank message to
lcdproc-unsubscribe AT lists.omnipotent.net


Archive powered by MHonArc 2.6.18.

Top of page