Remove unused fields from control files.
[vuplus_dvbapp-plugin] / ac3lipsync / src / AC3delay.py
index 610dfca..a92c859 100644 (file)
@@ -1,4 +1,4 @@
-from AC3utils import AC3, PCM, AC3PCM, lFileDelay, dec2hex, hex2dec
+from AC3utils import AC3, PCM, AC3GLOB, PCMGLOB, 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
@@ -16,7 +16,7 @@ class AC3delay:
         self.bIsRecording = False
 
         # Current audio- delay
-        self.lamedbDelay = {}
+        self.systemDelay = {}
 
         self.getAudioInformation()
 
@@ -29,10 +29,7 @@ class AC3delay:
 
         # find out box type
         self.oHWInfo = HardwareInfo()
-        if self.oHWInfo.get_device_name() in ("dm800","dm8000"):
-            self.bHasToRestartService = False
-        else:
-            self.bHasToRestartService = True
+        self.bHasToRestartService = self.oHWInfo.get_device_name() == "dm7025"
         
     def initAudio(self):
         self.iService = NavigationInstance.instance.getCurrentService()
@@ -54,6 +51,8 @@ class AC3delay:
         self.activateTimer.start(self.activateWait, False)
 
     def activateDelay(self):
+        # This activation code is only neccessary for DM7025. 
+        # DM800, DM8000 and DM500HD directly activate the delay after using "setAC3Delay" and "setPCMDelay", they don't need the service restart
         if self.activateTimer.isActive:
             self.activateTimer.stop()
         if self.bHasToRestartService == True:
@@ -92,7 +91,7 @@ class AC3delay:
             return None
         return long(r[1])
 
-    def getLamedbDelay(self, sAudio):
+    def getSystemDelay(self, sAudio):
         bInitialized = False
         if self.iService == None:
             self.initAudio()
@@ -101,47 +100,47 @@ class AC3delay:
         if self.iAudioDelay is not None:
             if sAudio == AC3:
                 iDelay = self.iAudioDelay.getAC3Delay()
-            else:
+            elif sAudio == PCM:
                 iDelay = self.iAudioDelay.getPCMDelay()
-            if iDelay == -1:
-                iDelay = 0
+            elif sAudio == AC3GLOB:
+                iDelay = config.av.generalAC3delay.getValue()
+            else:
+                iDelay = config.av.generalPCMdelay.getValue()
         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 setSystemDelay(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
+            iDelayLameDb = iDelay
+            if iDelayLameDb == 0:
+                iDelayLameDb = -1
             if sAudio == AC3:
-                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()
+                self.iAudioDelay.setAC3Delay(iDelayLameDb)
+            elif sAudio == PCM:
+                self.iAudioDelay.setPCMDelay(iDelayLameDb)
+            elif sAudio == AC3GLOB:
+                config.av.generalAC3delay.setValue(iDelay)
+                config.av.generalAC3delay.save()
+                #Setting the global delay does not activate it, so now we call setAC3Delay to activate the new delay..
+                self.iAudioDelay.setAC3Delay(self.systemDelay[AC3])
             else:
-                self.activateDelay()
+                config.av.generalPCMdelay.setValue(iDelay)
+                config.av.generalPCMdelay.save()
+                #Setting the global delay does not activate it, so now we call setPCMDelay to activate the new delay..
+                self.iAudioDelay.setPCMDelay(self.systemDelay[PCM])
+        if bInitialized == True:
+            self.deleteAudio()
+        if bDelayStart == True:
+            self.delayedActivateDelay()
+        else:
+            self.activateDelay()
 
     def getAudioInformation(self):
         bInitialized = False
@@ -189,8 +188,7 @@ class AC3delay:
 
             self.audioTrackList = tlist
         for sAudio in AC3PCM:
-            self.lamedbDelay[sAudio]=self.getLamedbDelay(sAudio)
+            self.systemDelay[sAudio]=self.getSystemDelay(sAudio)
         del oAudioTracks
         if bInitialized == True:
             self.deleteAudio()
-