Hast Du als Grundlage auch die Datei aus Gemini 5.0 genommen? In Deiner Datei fehlt nämlich auch die TRANSFERBPS-Sachen. Habe mal ein Diff zwischen der original-Gemini 5.0 Datei und Deiner beigefügt.
Ganz am Ende sieht man, was fehlt:
- elif self.type == self.TRANSFERBPS:
- return self.getServiceInfoString(info, iServiceInformation.sTransferBPS, lambda x: "%d kB/s" % (x/1024))
Keine Ahnung, wo das in Gemini 5.0 gebraucht wird, aber für irgendwas ist das da.
Hier der ganze Diff:
--- ServiceInfo.py Thu Jan 1 01:00:00 1970
+++ /tmp/ServiceInfo.py Thu May 13 13:19:00 2010
@@ -1,5 +1,5 @@
from Components.Converter.Converter import Converter
-from enigma import iServiceInformation, iPlayableService
+from enigma import iServiceInformation, iPlayableService, eDVBVolumecontrol
from Components.Element import cached
class ServiceInfo(Converter, object):
@@ -19,11 +19,11 @@
ONID = 13
SID = 14
FRAMERATE = 15
- TRANSFERBPS = 16
def __init__(self, type):
Converter.__init__(self, type)
+ self.ac3 = -1
self.type, self.interesting_events = {
"HasTelext": (self.HAS_TELETEXT, (iPlayableService.evUpdatedInfo,)),
"IsMultichannel": (self.IS_MULTICHANNEL, (iPlayableService.evUpdatedInfo,)),
@@ -41,7 +41,6 @@
"OnId": (self.ONID, (iPlayableService.evUpdatedInfo,)),
"Sid": (self.SID, (iPlayableService.evUpdatedInfo,)),
"Framerate": (self.FRAMERATE, (iPlayableService.evVideoSizeChanged,iPlayableService.evUpdatedInfo,)),
- "TransferBPS": (self.TRANSFERBPS, (iPlayableService.evUpdatedInfo,)),
}[type]
def getServiceInfoString(self, info, what, convert = lambda x: "%d" % x):
@@ -65,15 +64,42 @@
elif self.type == self.IS_MULTICHANNEL:
# FIXME. but currently iAudioTrackInfo doesn't provide more information.
audio = service.audioTracks()
+ self.description = ""
+ ac3 = mpg = 0
if audio:
n = audio.getNumberOfTracks()
idx = 0
while idx < n:
i = audio.getTrackInfo(idx)
- description = i.getDescription();
- if "AC3" in description or "DTS" in description:
- return True
- idx += 1
+ self.description = i.getDescription();
+ if "AC3" in self.description or "DTS" in self.description:
+ ac3 += 1
+ else:
+ mpg += 1
+ break
+
+ if self.ac3 == -1:
+ vol = eDVBVolumecontrol.getInstance().getVolume()
+ if vol >= 80:
+ self.ac3 = False
+ elif vol <= 60:
+ self.ac3 = True
+
+ if mpg == 0 and ac3 == 1:
+ if self.ac3 == True:
+ self.ac3 = False
+ print"_________________________________________AutoVolume: +"
+ vol = eDVBVolumecontrol.getInstance().getVolume()
+ eDVBVolumecontrol.getInstance().setVolume(vol+20, vol+20)
+ elif mpg == 1 and ac3 == 0:
+ if self.ac3 == False:
+ self.ac3 = True
+ print"_________________________________________AutoVolume: -"
+ vol = eDVBVolumecontrol.getInstance().getVolume()
+ eDVBVolumecontrol.getInstance().setVolume(vol-20, vol-20)
+
+ if ac3 == 1:
+ return True
return False
elif self.type == self.IS_CRYPTED:
return info.getInfo(iServiceInformation.sIsCrypted) == 1
@@ -114,8 +140,6 @@
return self.getServiceInfoString(info, iServiceInformation.sSID)
elif self.type == self.FRAMERATE:
return self.getServiceInfoString(info, iServiceInformation.sFrameRate, lambda x: "%d fps" % ((x+500)/1000))
- elif self.type == self.TRANSFERBPS:
- return self.getServiceInfoString(info, iServiceInformation.sTransferBPS, lambda x: "%d kB/s" % (x/1024))
return ""
text = property(getText)
Display More