LCDproc development and user support list

Text archives Help

[Lcdproc] HD44780-winamp gets overflooded with Hearts after upgrading to CVS

Chronological Thread 
  • From: mail AT (Andrés Trapanotto)
  • Subject: [Lcdproc] HD44780-winamp gets overflooded with Hearts after upgrading to CVS
  • Date: Thu Mar 10 12:55:01 2005

Sven Mertens escribió:
[For complete thread please refer to the archive]

>> Well, I was looking the code and I think that the problem is that
>> it is "clearing" the buffer with zero values
>> hd44780.c: Line 240:
>> memset(p->lcd_contents, 0, p->width * p->height);
>> then, lcdproc sets the zero character to be a heart and the
>> caracter generator show you a heart in every hole...
>> You can try changing the above line in this way:
>> hd44780.c: Line 240 (MODIFIED):
>> memset(p->lcd_contents, ' ', p->width * p->height);
>> So, the buffer will fills with spaces ascii=0x20 instead ascii=0x00
>> Change this, recompile, test and tell us your experience.
>> (Mantaining the right size=18x4 configuration)
> Hi!
> Thanks for your reply again. And sorry for the late answer.
> I changed line 240, changed back to the lcdproc root directory and did a
> make clean && ./configure --enable-drivers=hd44780,curses && make
> Lcdproc configured and compiled without any complainments.
> When the daemon was started, first the display was filled up with the
> wellknown hearts. In the second line I could "T 378" from the
> portsetting message.
> After two seconds the damoen initialized the serverscreen. Now I could
> see the "LCDProc Server" message in the first line, scrolling left and
> right. In the second line I could see "Clients: 0". The remaining
> parts of the the display were filled up with the hearts. Now, with
> every screenupdate, the display fills up with solid white blocks.
> Killing and starting the daemon again brought the same results.
> After that I tried typing the commands for cleaning, configuring and
> compiling one for one and didn't get another result. I even tried
> compiling with another character rather than ' '. I set 'x' in the
> line wich you specified to see if this changes something, but without
> any changes in the result. (I've set the char back to ' ' after this
> experiment.) So I verified again (the third time ;) ) that I modified
> the right file, in the right directory at the right line (240).
> Sorry to say your suggestion did not work. Is it possible that there
> is more than one line wich cleares the display/buffer? This would
> explain the fact that there are the hearts first and than the blocks.
> Greetings, Sven Mertens
Sorry, I was wrong :(
This driver implements two buffers "framebuf" and "lcd_contents",
and only write to the hd44780 the differences between them to save
resources and time.
Then, I told you that change a line that works on "lcd_contents" and
it had no effect over the showing text.
I'll try to do it better this time. In first, restore the line 240
to original cero value :|
If you see the HD44780_clear do the thing that I told you, It fills
framebuf with spaces :)

If you see it you'll find that the HD44780_icon function sets the
special caracter 0 to be the heart, and then If you see the screen
fullfilled with hearts is because the buffer is filled with zero values ...
I was looking in the code but I haven't found the problem :(
You can try to put a printf ("%s", p->framebuf) in some place (at
the end of HD44780_flush for example) to see the framebuffer contents or
something better like some code that show the hexadecimal values :) then
you can check if it is happen the weird things that I'm telling you ....

Then ... tell us the news :)
Best regards,

Técnico Andrés Trapanotto
Centro de Investigación Telecomunicaciones, Electrónica e Informática
Teléfono (54 11) 4724 6300 Interno 6362
mail AT
0800 444 4004 |

Archive powered by MHonArc 2.6.18.

Top of page