Version 0.9: Correct issue, when global delay was set. Removed all the filehandling...
authorTorsten Link <tode@users.schwerkraft.elitedvb.net>
Sat, 7 Nov 2009 14:14:58 +0000 (14:14 +0000)
committerTorsten Link <tode@users.schwerkraft.elitedvb.net>
Sat, 7 Nov 2009 14:14:58 +0000 (14:14 +0000)
ac3lipsync/CONTROL/control
ac3lipsync/src/AC3delay.py
ac3lipsync/src/AC3main.py
ac3lipsync/src/AC3setup.py
ac3lipsync/src/AC3utils.py

index c9ecb27..6af50c2 100644 (file)
@@ -1,5 +1,5 @@
 Package: enigma2-plugin-extensions-ac3lipsync
-Version: 0.8-20090811-r0
+Version: 0.9-20091103-r0
 Description: Set AC3/PCM delay
 Architecture: mipsel
 Section: extra
index 610dfca..442a7df 100644 (file)
@@ -1,4 +1,4 @@
-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
@@ -7,7 +7,7 @@ import os
 import NavigationInstance
 
 class AC3delay:
-    def __init__(self, session):
+    def __init__(self):
         self.iService = None
         self.iServiceReference = None
         self.iAudioDelay = None
@@ -29,7 +29,7 @@ class AC3delay:
 
         # 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
@@ -103,26 +103,17 @@ class AC3delay:
                 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
@@ -130,18 +121,8 @@ class AC3delay:
                 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
@@ -193,4 +174,3 @@ class AC3delay:
         del oAudioTracks
         if bInitialized == True:
             self.deleteAudio()
-
index 07d9daf..938a594 100644 (file)
@@ -1,4 +1,4 @@
-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
@@ -71,7 +71,7 @@ class AC3LipSync(Screen,InfoBarAudioSelection):
         self.keyStep["8"] = int(config.plugins.AC3LipSync.absoluteStep8.getValue()) 
 
         # AC3delay instance
-        self.AC3delay = AC3delay(self.session)
+        self.AC3delay = AC3delay()
 
         #Screen elements
 
@@ -97,10 +97,7 @@ class AC3LipSync(Screen,InfoBarAudioSelection):
         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 = {}
@@ -125,7 +122,6 @@ class AC3LipSync(Screen,InfoBarAudioSelection):
             "red": self.keyCancel,
             "green": self.keyOk,
             "yellow": self.keyAudioSelection,
-            "blue": self.keySaveToLamedb,
             "1": self.keyNumberRelative,
             "3": self.keyNumberRelative,
             "4": self.keyNumberRelative,
@@ -139,8 +135,8 @@ class AC3LipSync(Screen,InfoBarAudioSelection):
         }, -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)
@@ -183,7 +179,7 @@ class AC3LipSync(Screen,InfoBarAudioSelection):
         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)
@@ -198,7 +194,7 @@ class AC3LipSync(Screen,InfoBarAudioSelection):
         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()
@@ -207,11 +203,11 @@ class AC3LipSync(Screen,InfoBarAudioSelection):
         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):
@@ -237,56 +233,6 @@ class AC3LipSync(Screen,InfoBarAudioSelection):
         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
index 3b3518b..ebd6c48 100644 (file)
@@ -1,5 +1,5 @@
 from AC3main import AC3LipSync
-from AC3utils import dec2hex, hex2dec, PLUGIN_BASE, PLUGIN_VERSION
+from AC3utils import PLUGIN_BASE, PLUGIN_VERSION
 from Components.ActionMap import ActionMap, NumberActionMap
 from Components.Button import Button
 from Components.ConfigList import ConfigListScreen
index f18eeec..93e4dfb 100644 (file)
@@ -3,27 +3,4 @@ PCM = "PCM"
 AC3PCM = (AC3,PCM)
 
 PLUGIN_BASE = "AC3LipSync"
-PLUGIN_VERSION = "0.8"
-
-lFileDelay = {}
-lFileDelay[AC3] = "/proc/stb/audio/audio_delay_bitstream"
-lFileDelay[PCM] = "/proc/stb/audio/audio_delay_pcm"
-
-def dec2hex(n):
-    """return the signed hexadecimal string representation of integer n"""
-    if n >= 0:
-        s = "%X" % n
-    else:
-        n2 = 2**32 + n + 1
-        s = "%X" % n2
-    return s
-
-def hex2dec(s):
-    """return the signed integer value of a hexadecimal string s"""
-    if s[:2] == "0x":
-        s = s[2:]
-    if s[:1] < '8':
-        i = int(s,16)
-    else:
-        i = int(long(s,16)-2**32)
-    return i
+PLUGIN_VERSION = "0.9"
\ No newline at end of file