1
0
mirror of https://github.com/gryf/wmdocklib.git synced 2025-12-19 20:38:03 +01:00

migliorie sul feedback:

livello della cache: blocco alto tre linee.
 la barra di contacting/buffering si sposta più lentamente.
 scelto un rosso meno scuro.

ancora sul livello della cache:
 corretto errore nella espressione regolare (leggeva il carico cpu invece della cache).
 aggiunto bordino a barra della cache.
 uso dell'indicazione della configurazione per la dimensione della cache.

aggiunto metodo per mettere lo stream in pausa.

lettura del file di configurazione in utf-8.
This commit is contained in:
mfrasca
2007-05-18 05:43:06 +00:00
parent 89b2fdd9ee
commit 162f042f02

View File

@@ -18,7 +18,6 @@ class Application(wmoo.Application):
def __init__(self, *args, **kwargs): def __init__(self, *args, **kwargs):
wmoo.Application.__init__(self, *args, **kwargs) wmoo.Application.__init__(self, *args, **kwargs)
self.child = None self.child = None
self.cache = '320'
self.radioList = [] self.radioList = []
self.currentRadio = 0 self.currentRadio = 0
self._count = 0 self._count = 0
@@ -27,13 +26,16 @@ class Application(wmoo.Application):
self._buffered = '' self._buffered = ''
import re import re
self._feedback = re.compile(r'.+ \(.+?\) .+? .+? .+? .+? ([0-9\.]+)%') self._feedback = re.compile(r'.+A:.*?% ([0-9\.]+)%')
import fileinput, os import fileinput, os
configfile = os.sep.join([os.environ['HOME'], '.pyradiorc']) configfile = os.sep.join([os.environ['HOME'], '.pyradiorc'])
for i in fileinput.input(configfile): import codecs
i = i.split('\n')[0] f = codecs.open(configfile, 'r', 'utf-8')
t = f.read()
f.close()
for i in t.split(u'\n'):
radiodef = i.split('\t') radiodef = i.split('\t')
radioname = radiodef[0].lower() radioname = radiodef[0].lower()
if len(radiodef) == 1: if len(radiodef) == 1:
@@ -42,16 +44,16 @@ class Application(wmoo.Application):
globals()[radiodef[1]] = radiodef[2] globals()[radiodef[1]] = radiodef[2]
pass pass
else: else:
self.radioList.append( (radioname+' '*24, radiodef[1]) ) self.radioList.append( (radioname+' '*24, radiodef[1], radiodef[2]) )
def startPlayer(self): def startPlayer(self):
import os, subprocess import os, subprocess
commandline = [mplayer, commandline = [mplayer,
'-cache', self.cache, '-cache', self.radioList[self.currentRadio][2],
self.radioList[self.currentRadio][1] self.radioList[self.currentRadio][1]
] ]
self.child = subprocess.Popen(commandline, self.child = subprocess.Popen(commandline,
stdin =devnull, stdin =subprocess.PIPE,
stdout=subprocess.PIPE, stdout=subprocess.PIPE,
stderr=devnull) stderr=devnull)
self._buffered = '' self._buffered = ''
@@ -63,7 +65,9 @@ class Application(wmoo.Application):
def stopPlayer(self): def stopPlayer(self):
if self.child: if self.child:
import os, subprocess, signal if self._buffering != 1:
self.child.stdin.write('q')
import os, signal
os.kill(self.child.pid, signal.SIGKILL) os.kill(self.child.pid, signal.SIGKILL)
self.child = None self.child = None
return True return True
@@ -98,13 +102,19 @@ class Application(wmoo.Application):
self._cacheLevel = -50 self._cacheLevel = -50
self.showCacheLevel() self.showCacheLevel()
def pauseStream(self, event):
if self.child:
self.child.stdin.write(' ')
return True
return False
def showCacheLevel(self): def showCacheLevel(self):
if self._buffering: if self._buffering:
self._cacheLevel += 2 self._cacheLevel += 1
if self._cacheLevel >= 25: if self._cacheLevel >= 25:
self._cacheLevel -= 25 self._cacheLevel -= 25
for i in range(-1, 25): for i in range(-1, 25):
if i == self._cacheLevel: if abs(i - self._cacheLevel) <= 1:
self.putPattern(54, self._buffering, 3, 1, 52, 54-i) self.putPattern(54, self._buffering, 3, 1, 52, 54-i)
else: else:
self.putPattern(54, 0, 3, 1, 52, 54-i) self.putPattern(54, 0, 3, 1, 52, 54-i)
@@ -147,7 +157,7 @@ palette = {
".": "#868682", ".": "#868682",
"X": "#AEAEAA", "X": "#AEAEAA",
"o": "#F7F7F3", "o": "#F7F7F3",
"r": "#F7A0A0", "r": "#F73020",
"i": "#00F700", "i": "#00F700",
} }
@@ -180,34 +190,34 @@ background = [
" ", " ",
" ", " ",
" ", " ",
" ", " XXXX. ",
" XXXXXXXX. XXXXXXXX. XXXXXXXX. .. --- .. ",#100 " XXXXXXXX. XXXXXXXX. XXXXXXXX. X--- ",
" X-------- X-------- X-------- --- ",#96 " X-------- X-------- X-------- X--- ",
" X-------- X-------- X-------- --- ",#92 " X-------- X-------- X-------- X--- ",
" X--o--o-- X--o--o-- X-o.-.o-- --- ",#88 " X--o--o-- X--o--o-- X-o.-.o-- X--- ",
" X--o-oo-- X--oo-o-- X-.o.o.-- --- ",#84 " X--o-oo-- X--oo-o-- X-.o.o.-- X--- ",
" X--oooo-- X--oooo-- X--.o. -- --- ",#80 " X--oooo-- X--oooo-- X--.o. -- X--- ",
" X--o-oo-- X--oo-o-- X-.o.o.-- --- ",#76 " X--o-oo-- X--oo-o-- X-.o.o.-- X--- ",
" X--o--o-- X--o--o-- X-o.-.o-- --- ",#72 " X--o--o-- X--o--o-- X-o.-.o-- X--- ",
" X-------- X-------- X-------- --- ",#68 " X-------- X-------- X-------- X--- ",
" X-------- X-------- X-------- --- ",#64 " X-------- X-------- X-------- X--- ",
" .-------- .-------- .-------- --- ",#60 " .-------- .-------- .-------- X--- ",
" --- ",#56 " X--- ",
" --- ",#52 " X--- ",
" .. --- .. ",#48 " X.---.. ",
" XXXXXXXX. XXXXXXXX. XXXXXXXX. --- ",#44 " XXXXXXXX. XXXXXXXX. XXXXXXXX. X--- ",
" X-------- X-------- X-------- --- ",#40 " X-------- X-------- X-------- X--- ",
" X-------- X-------- X-------- --- ",#36 " X-------- X-------- X-------- X--- ",
" X--o----- X-oo-oo-- X-ooooo-- --- ",#32 " X--o----- X-oo-oo-- X-ooooo-- X--- ",
" X--oo---- X-oo-oo-- X-ooooo-- --- ",#28 " X--oo---- X-oo-oo-- X-ooooo-- X--- ",
" X--ooo--- X-oo-oo-- X-ooooo-- --- ",#24 " X--ooo--- X-oo-oo-- X-ooooo-- X--- ",
" X--oo---- X-oo-oo-- X-ooooo-- --- ",#20 " X--oo---- X-oo-oo-- X-ooooo-- X--- ",
" X--o----- X-oo-oo-- X-ooooo-- --- ",#16 " X--o----- X-oo-oo-- X-ooooo-- X--- ",
" X-------- X-------- X-------- --- ",#12 " X-------- X-------- X-------- X--- ",
" X-------- X-------- X-------- --- ",#08 " X-------- X-------- X-------- X--- ",
" .-------- .-------- .-------- --- ",#04 " .-------- .-------- .-------- X--- ",
" --- ",#00 " X--- ",
" .. --- .. ", " .--- ",
" ", " ",
" ", " ",
" ", " ",
@@ -251,7 +261,7 @@ def main():
app.addCallback(app.quitProgram, 'buttonrelease', area=(30,29,39,38), key=1) app.addCallback(app.quitProgram, 'buttonrelease', area=(30,29,39,38), key=1)
app.addCallback(app.playStream, 'buttonrelease', area=( 6,43,15,52)) app.addCallback(app.playStream, 'buttonrelease', area=( 6,43,15,52))
app.addCallback(app.stopStream, 'buttonrelease', area=(18,43,27,52)) app.addCallback(app.pauseStream, 'buttonrelease', area=(18,43,27,52))
app.addCallback(app.stopStream, 'buttonrelease', area=(30,43,39,52)) app.addCallback(app.stopStream, 'buttonrelease', area=(30,43,39,52))
app.run() app.run()