Hello Gustavo, hello other developers
I ran freevo 1.3.4 and lcd.py 1.7 + marquee patches without problems.
Started to use 1.4-rc4 but unpredictable it stopped playing music. Most
time i use "play random recursive". It stopped, the crt and lcd got no
updates. Next key skipped to next title after some seconds. Until it
happend again. Coulndt find a hint in the logs.
Got the cvs-snapshot, run it from a terminal, so could see all messages
and got the problem.
Sometimes, i dont know when and why (just unpredictable) the following
happens: [workaround below all this tracebacks]
Exception in thread Thread-11:
Traceback (most recent call last):
File "/usr/lib/python2.2/threading.py", line 414, in __bootstrap
self.run()
File "/usr/lib/python2.2/site-packages/freevo/childapp.py", line 358,
in run
self._handle_input()
File "/usr/lib/python2.2/site-packages/freevo/childapp.py", line 400,
in _handle_input
self.callback(line)
File
"/usr/lib/python2.2/site-packages/freevo/audio/plugins/mplayer.py", line
274, in stdout_cb
self.refresh()
File
"/usr/lib/python2.2/site-packages/freevo/audio/plugins/mplayer.py", line
187, in refresh
self.playerGUI.refresh()
File "/usr/lib/python2.2/site-packages/freevo/audio/player.py", line
179, in refresh
skin.draw(('player', self.item))
File "/usr/lib/python2.2/site-packages/freevo/skins/main/main.py",
line 734, in draw
a.draw(settings, object, style, type, self.force_redraw)
File "/usr/lib/python2.2/site-packages/freevo/skins/main/area.py",
line 375, in draw
self.update_content()
File "/usr/lib/python2.2/site-packages/freevo/skins/main/main.py",
line 228, in update_content
p.draw((self.widget_type, object), self)
File "/usr/lib/python2.2/site-packages/freevo/plugins/lcd.py", line
865, in draw
self.lcd.widget_set( sname, w, param.encode( 'latin1' ) )
File "/usr/lib/python2.2/site-packages/freevo/plugins/pylcd.py", line
182, in widget_set
return self.readl()
File "/usr/lib/python2.2/site-packages/freevo/plugins/pylcd.py", line
101, in readl
return self.conn.read_until("\n")
File "/usr/lib/python2.2/telnetlib.py", line 297, in read_until
self.process_rawq()
File "/usr/lib/python2.2/telnetlib.py", line 397, in process_rawq
c = self.rawq_getchar()
File "/usr/lib/python2.2/telnetlib.py", line 440, in rawq_getchar
c = self.rawq[self.irawq]
IndexError: string index out of range
This stopped freevo.
key_right had no effect.
key_down skips to next title, with following console log:
force killing with signal 9
Oops, command refuses to die, try bad hack....
Try harder to kill the app....
PANIC
Now we are playing again...
The next one really killed freevo:
Crash!
Traceback (most recent call last):
File "/usr/local/freevo/src/main.py", line 457, in ?
main_func()
File "/usr/local/freevo/src/main.py", line 333, in main_func
p.poll()
File "/usr/local/freevo-1.4/src/plugins/lcd.py", line 898, in poll
self.lcd.widget_set( s, w, param.encode( 'latin1' ) )
File
"/usr/local/freevo-1.4-rc4/runtime/lib/python2.3/site-packages/pylcd.py", line 182, in
widget_set
return self.readl()
File
"/usr/local/freevo-1.4-rc4/runtime/lib/python2.3/site-packages/pylcd.py", line 101, in
readl
return self.conn.read_until("\n")
File "/usr/local/freevo-1.4-rc4/runtime/lib/python2.3/telnetlib.py",
line 303, in read_until
self.process_rawq()
File "/usr/local/freevo-1.4-rc4/runtime/lib/python2.3/telnetlib.py",
line 429, in process_rawq
c = self.rawq_getchar()
File "/usr/local/freevo-1.4-rc4/runtime/lib/python2.3/telnetlib.py",
line 502, in rawq_getchar
c = self.rawq[self.irawq]
IndexError: string index out of range
Stopping webserver plugin.
1 child(s) still running, terminate them
...
The error is thrown in the telnetlib, called by pylcd, used by lcd
plugin. This error was not triggered in the 1.3.4, however.
The patch below does not solve the cause of the problem, but prevents
the stop effect (but seems to skip to next file. needs further tests).
Maybe someone has a idea whats going on deep inside and can help find a
solution.
--- lcd.py_1.14 2003-10-14 23:05:52.000000000 +0200
+++ lcd.py_1.14_+except 2003-12-02 21:52:54.000000000 +0100
@@ -865,6 +865,9 @@
self.lcd.widget_set( sname, w, param.encode(
'latin1' ) )
except UnicodeError:
self.lcd.widget_set( sname, w, param )
+ # catch error (in telnetlib via pylcd)
+ except:
+ print "Error (probably pylcd telnetlib)"
if self.last_screen != sname:
@@ -895,6 +898,9 @@
self.lcd.widget_set( s, w, param.encode( 'latin1' )
)
except UnicodeError:
self.lcd.widget_set( s, w, param )
+ # catch error (in telnetlib via pylcd)
+ except:
+ print "Error (probably pylcd telnetlib)"
def generate_screens( self ):
Thank you
Immo
-------------------------------------------------------
This SF.net email is sponsored by: SF.net Giveback Program.
Does SourceForge.net help you be more productive? Does it
help you create better code? SHARE THE LOVE, and help us help
YOU! Click Here: http://sourceforge.net/donate/
_______________________________________________
Freevo-devel mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/freevo-devel