-from AC3utils import AC3, PCM, AC3PCM, lFileDelay, dec2hex, hex2dec
+from AC3utils import AC3, PCM, AC3PCM
from Components.config import config
from enigma import eTimer
from Tools.ISO639 import LanguageCodes
import NavigationInstance
class AC3delay:
- def __init__(self, session):
+ def __init__(self):
self.iService = None
self.iServiceReference = None
self.iAudioDelay = None
# find out box type
self.oHWInfo = HardwareInfo()
- if self.oHWInfo.get_device_name() in ("dm800","dm8000"):
+ if self.oHWInfo.get_device_name() in ("dm800","dm8000","dm500hd"):
self.bHasToRestartService = False
else:
self.bHasToRestartService = True
iDelay = self.iAudioDelay.getAC3Delay()
else:
iDelay = self.iAudioDelay.getPCMDelay()
- if iDelay == -1:
- iDelay = 0
if bInitialized == True:
self.deleteAudio()
- return iDelay
-
- def getFileDelay(self, sAudio):
- sFileName = lFileDelay[sAudio]
- if os.path.exists(sFileName) == True:
- delayfile = open(sFileName,"r")
- delay = 0
- delay = delayfile.readline()
- delayfile.close()
- iDelay = hex2dec(delay)/90
- else:
+ if iDelay == -1:
iDelay = 0
- return int(iDelay)
+ return iDelay
- def setLamedbDelay(self, sAudio, iDelay):
- self.initAudio()
+ def setLamedbDelay(self, sAudio, iDelay, bDelayStart):
+ bInitialized = False
+ if self.iService == None:
+ self.initAudio()
+ bInitialized = True
if self.iAudioDelay is not None:
if iDelay == 0:
iDelay = -1
self.iAudioDelay.setAC3Delay(iDelay)
else:
self.iAudioDelay.setPCMDelay(iDelay)
-
- def setFileDelay(self, sAudio, iDelay, bDelayStart):
- hDelay = dec2hex(iDelay*90)
- sFileName = lFileDelay[sAudio]
- if os.path.exists(sFileName) == True:
- delayfile = open(lFileDelay[sAudio],"w")
- delayfile.write("%s\0" % hDelay)
- delayfile.close()
- if bDelayStart == True:
- self.delayedActivateDelay()
- else:
- self.activateDelay()
+ if bInitialized == True:
+ self.deleteAudio()
def getAudioInformation(self):
bInitialized = False
del oAudioTracks
if bInitialized == True:
self.deleteAudio()
-
-from AC3utils import AC3, PCM, AC3PCM, lFileDelay, dec2hex, hex2dec
+from AC3utils import AC3, PCM, AC3PCM
from AC3delay import AC3delay
from Components.ActionMap import ActionMap, NumberActionMap
from Components.Button import Button
self.keyStep["8"] = int(config.plugins.AC3LipSync.absoluteStep8.getValue())
# AC3delay instance
- self.AC3delay = AC3delay(self.session)
+ self.AC3delay = AC3delay()
#Screen elements
self["key_red"] = Label(_("Cancel"))
self["key_green"] = Label(_("OK"))
self["key_yellow"] = Label(_("Switch audio"))
- if self.AC3delay.bIsRecording == True:
- self["key_blue"] = Label("")
- else:
- self["key_blue"] = Label(_("Save"))
+ self["key_blue"] = Label("")
# Last saved values
self.savedValue = {}
"red": self.keyCancel,
"green": self.keyOk,
"yellow": self.keyAudioSelection,
- "blue": self.keySaveToLamedb,
"1": self.keyNumberRelative,
"3": self.keyNumberRelative,
"4": self.keyNumberRelative,
}, -1)
def __onShow(self):
- for sAudio in lFileDelay.keys():
- iDelay = self.AC3delay.getFileDelay(sAudio)
+ for sAudio in AC3PCM:
+ iDelay = self.AC3delay.getLamedbDelay(sAudio)
self[sAudio + "Slider"].setRange([(self.lowerBound), (self.upperBound)])
self[sAudio + "Slider"].setValue(iDelay-self.lowerBound)
self[sAudio + "SliderText"].setText(_("%i ms") %iDelay)
sNumber = str(number)
iSliderValue = self.keyStep[sNumber]-self.lowerBound
self.setSliderInfo(iSliderValue)
- self.AC3delay.setFileDelay(sAudio, self.currentValue[sAudio], True)
+ self.AC3delay.setLamedbDelay(sAudio, self.currentValue[sAudio], True)
def keyNumberRelative(self, number):
sNumber = str(number)
elif iSliderValue > (self.upperBound - self.lowerBound):
iSliderValue = (self.upperBound - self.lowerBound)
self.setSliderInfo(iSliderValue)
- self.AC3delay.setFileDelay(sAudio, self.currentValue[sAudio], True)
+ self.AC3delay.setLamedbDelay(sAudio, self.currentValue[sAudio], True)
def keyAudioSelection(self):
self.audioSelection()
self.close()
def keyCancel(self):
- for sAudio in lFileDelay.keys():
+ for sAudio in AC3PCM:
iSliderValue = self.currentValue[sAudio]
if iSliderValue <> self.savedValue[sAudio]:
self.AC3delay.whichAudio = sAudio
- self.AC3delay.setFileDelay(sAudio, self.savedValue[sAudio], False)
+ self.AC3delay.setLamedbDelay(sAudio, self.savedValue[sAudio], False)
self.close()
def keyMenu(self):
iDelay = self[sAudio+"Slider"].getValue()+self.lowerBound
AC3SetCustomValue(self.session,iDelay,self.keyStep)
-
- def keySaveToLamedb(self):
- if self.AC3delay.bIsRecording == False:
- keyList = [
- (_("Save %s delay")%AC3,"1"),
- (_("Save %s delay")%PCM,"2"),
- (_("Save both delays"),"3")
- ]
-
- self.session.openWithCallback(self.DoSaveLamedb,ChoiceBox,_("Which delays do you want to set"),keyList)
-
- def DoSaveLamedb(self, answer):
- sNewLine = ""
- sResponse = ""
- bOk = True
- iType = MessageBox.TYPE_INFO
- aSetAudio = []
- if answer is not None:
- if answer[1] in ("1","2","3"):
- bSetAC3 = False
- bSetPCM = False
- self.AC3delay.initAudio()
- if self.AC3delay.iAudioDelay is not None:
- if answer[1] in ("1","3"):
- iDelay = int( self.AC3delay.getLamedbDelay(AC3) )
- aSetAudio.append((AC3,iDelay))
- bSetAC3 = True
- if answer[1] in ("2","3"):
- iDelay = int( self.AC3delay.getLamedbDelay(PCM) )
- aSetAudio.append((PCM,iDelay))
- bSetPCM = True
- for vAudio in aSetAudio:
- sAudio = vAudio[0]
- iChannelDelay = int(vAudio[1])
- iCurDelay = self.currentValue[sAudio]
- iNewDelay = iCurDelay
- if sAudio == AC3:
- self.AC3delay.iAudioDelay.setAC3Delay(iNewDelay)
- else:
- self.AC3delay.iAudioDelay.setPCMDelay(iNewDelay)
- self.AC3delay.lamedbDelay[sAudio] = iNewDelay
- sResponse = sResponse + sNewLine + _("Saved %(audio)s value: %(delay)i ms") %dict(audio=sAudio,delay=iNewDelay)
- sNewLine = "\n"
- self.AC3delay.deleteAudio()
- else:
- sResponse = _("Invalid selection")
- iType = MessageBox.TYPE_ERROR
- if bOk == True:
- self.session.open(MessageBox, sResponse , iType)
- self.setChannelInfoText()
def setSliderInfo(self, iDelay):
sAudio = self.AC3delay.whichAudio