added configurable activation delay to allow multiple keypresses before setting the...
authorTorsten Link <tode@users.schwerkraft.elitedvb.net>
Wed, 4 Mar 2009 22:31:28 +0000 (22:31 +0000)
committerTorsten Link <tode@users.schwerkraft.elitedvb.net>
Wed, 4 Mar 2009 22:31:28 +0000 (22:31 +0000)
ac3lipsync/po/de.po
ac3lipsync/po/it.po
ac3lipsync/src/AC3delay.py
ac3lipsync/src/AC3main.py
ac3lipsync/src/AC3setup.py
ac3lipsync/src/plugin.py

index c132a37..60afd84 100644 (file)
@@ -2,7 +2,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: AC3LipSync-0.5\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2009-03-01 15:16+0100\n"
+"POT-Creation-Date: 2009-03-04 23:28+0100\n"
 "PO-Revision-Date: \n"
 "Last-Translator: \n"
 "Language-Team: \n"
@@ -15,22 +15,22 @@ msgstr ""
 "X-Poedit-SourceCharset: utf-8\n"
 "X-Poedit-SearchPath-0: ..\\src\n"
 
-#: ..\src/plugin.py:29
-#: ..\src/plugin.py:33
-#: ..\src/plugin.py:35
+#: ..\src/plugin.py:30
+#: ..\src/plugin.py:34
+#: ..\src/plugin.py:36
 msgid "AC3 Lip Sync"
 msgstr "AC3 Lip Sync"
 
-#: ..\src/plugin.py:33
-#: ..\src/plugin.py:35
+#: ..\src/plugin.py:34
+#: ..\src/plugin.py:36
 msgid "sets the AC3 audio Delay (LipSync)"
 msgstr "setzt die Audio- Verzögerung (Lippensynchronität)"
 
-#: ..\src/plugin.py:34
+#: ..\src/plugin.py:35
 msgid "AC3 Lip Sync Setup"
 msgstr "AC3 Lip Sync Setup"
 
-#: ..\src/plugin.py:34
+#: ..\src/plugin.py:35
 msgid "Setup for the AC3 Lip Sync Plugin"
 msgstr "Setup für das AC3 Lip Sync Plugin"
 
@@ -47,6 +47,7 @@ msgstr "autom. Verz."
 #: ..\src/AC3main.py:140
 #: ..\src/AC3main.py:271
 #: ..\src/AC3main.py:275
+#: ..\src/AC3main.py:276
 #, python-format
 msgid "%i ms"
 msgstr "%i ms"
@@ -65,19 +66,15 @@ msgstr "%s:"
 msgid "Channel audio:"
 msgstr "Tonspur Sender: "
 
-#: ..\src/AC3main.py:93
-msgid " "
-msgstr " "
+#: ..\src/AC3main.py:92
+msgid "Switch audio"
+msgstr "Tonspur ..."
 
-#: ..\src/AC3main.py:95
-#: ..\src/AC3setup.py:55
+#: ..\src/AC3main.py:96
+#: ..\src/AC3setup.py:59
 msgid "Save"
 msgstr "Speichern"
 
-#: ..\src/AC3main.py:96
-msgid "Switch audio"
-msgstr "Tonspur ..."
-
 #: ..\src/AC3main.py:97
 msgid "Set user delay"
 msgstr "Setze Ben. Verz."
@@ -134,19 +131,25 @@ msgstr "Maximale Verzögerung"
 msgid "Step in ms for arrow keys"
 msgstr "Schrittweite in ms für Pfeiltasten"
 
-#: ..\src/AC3setup.py:47
+#: ..\src/AC3setup.py:45
+msgid "Wait time in ms before activation:"
+msgstr "Wartezeit in ms vor Aktivierung"
+
+#: ..\src/AC3setup.py:49
 #, python-format
 msgid "Step in ms for key %i"
 msgstr "Schrittweite in ms für Taste %i"
 
-#: ..\src/AC3setup.py:54
+#: ..\src/AC3setup.py:58
 msgid "Cancel"
 msgstr "Abbrechen"
 
-#: ..\src/AC3setup.py:56
+#: ..\src/AC3setup.py:60
 msgid "Recalculate..."
 msgstr "Neuberechnen"
 
+#~ msgid " "
+#~ msgstr " "
 #~ msgid "ms"
 #~ msgstr "ms"
 #~ msgid "OK"
index f9eba14..ba343e6 100644 (file)
@@ -3,8 +3,8 @@ msgstr ""
 "Project-Id-Version: enigma2 - AC3lipsync\n"
 "Report-Msgid-Bugs-To: \n"
 "POT-Creation-Date: 2009-02-28 13:48+0100\n"
-"PO-Revision-Date: 2009-03-01 05:11+0100\n"
-"Last-Translator: Spaeleus <spaeleus@croci.org>\n"
+"PO-Revision-Date: 2009-03-04 23:29+0100\n"
+"Last-Translator: \n"
 "Language-Team: www.linsat.net - Italy <spaeleus@croci.org>\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
index c68f6c0..a75d304 100644 (file)
@@ -19,6 +19,10 @@ class AC3delay:
 
         self.getAudioInformation()
 
+        self.activateTimer = eTimer()
+        self.activateTimer.callback.append(self.activateDelay)
+        self.activateWait = config.plugins.AC3LipSync.activationDelay.getValue()
+        
         # Current value for movie start behaviour
         self.movieStart = config.usage.on_movie_start.getValue()
 
@@ -36,7 +40,14 @@ class AC3delay:
     def setChannelAudio(self, sAudio):
         self.channelAudio = sAudio
 
+    def delayedActivateDelay(self):
+        if self.activateTimer.isActive:
+            self.activateTimer.stop()
+        self.activateTimer.start(self.activateWait, False)
+
     def activateDelay(self):
+        if self.activateTimer.isActive:
+            self.activateTimer.stop()
         bInitialized = False
         if self.iService == None:
             self.initAudio()
@@ -52,11 +63,11 @@ class AC3delay:
                 if lCurPosition is not None:
                     self.lCurPosition = lCurPosition
                     self.timer = eTimer()
-                    self.timer.timeout.get().append(self.seekAfterWait)
-                    self.timer.start(400, False)
+                    self.timer.callback.append(self.seekAfterWait)
+                    self.timer.start(200, False)
         else:
             self.deleteAudio()
-
+        
     def seekAfterWait(self):
         self.timer.stop()
         self.initAudio()
@@ -110,16 +121,19 @@ class AC3delay:
                 self.iAudioDelay.setAC3Delay(iDelay)
             else:
                 self.iAudioDelay.setPCMDelay(iDelay)
-        self.activateDelay()
+        #self.activateDelay()
 
-    def setFileDelay(self, sAudio, 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()
-            self.activateDelay()
+            if bDelayStart == True:
+                self.delayedActivateDelay()
+            else:
+                self.activateDelay()
 
     def getAudioInformation(self):
         bInitialized = False
index e06720b..1822c2d 100644 (file)
@@ -26,12 +26,12 @@ class AC3LipSync(Screen,InfoBarAudioSelection):
             <ePixmap pixmap="/usr/lib/enigma2/python/Plugins/Extensions/AC3LipSync/img/AC3LipSyncBarBG.png" zPosition="2" position="190,26" size="370,21" alphatest="on" transparent="1" />
             <widget name="PCMSlider" pixmap="/usr/lib/enigma2/python/Plugins/Extensions/AC3LipSync/img/AC3LipSyncBar.png" zPosition="3" position="190,26" size="370,21" transparent="1" />
             <widget name="PCMSliderText" zPosition="4" position="190,26" size="370,21" font="Regular;18" halign="center" valign="center" transparent="1" />
-            <widget name="ServiceInfoText" zPosition="4" position="5,52" size="180,21" font="Regular;21" foregroundColor="#ffffff" />
-            <widget name="ServiceInfo" zPosition="4" position="190,52" size="180,21" font="Regular;21" foregroundColor="#cccccc" />
-            <widget name="AC3DelayInfoText" zPosition="4" position="380,52" size="40,21" font="Regular;21" foregroundColor="#ffffff" />
-            <widget name="AC3DelayInfo" zPosition="4" position="430,52" size="50,21" font="Regular;21" foregroundColor="#cccccc" />
-            <widget name="PCMDelayInfoText" zPosition="4" position="490,52" size="40,21" font="Regular;21" foregroundColor="#ffffff" />
-            <widget name="PCMDelayInfo" zPosition="4" position="540,52" size="50,21" font="Regular;21" foregroundColor="#cccccc" />
+            <widget name="ServiceInfoText" zPosition="4" position="5,52" size="180,21" font="Regular;18" foregroundColor="#ffffff" />
+            <widget name="ServiceInfo" zPosition="4" position="190,52" size="180,21" font="Regular;18" foregroundColor="#cccccc" />
+            <widget name="AC3DelayInfoText" zPosition="4" position="380,52" size="40,21" font="Regular;18" foregroundColor="#ffffff" />
+            <widget name="AC3DelayInfo" zPosition="4" position="430,52" size="50,21" font="Regular;18" foregroundColor="#cccccc" />
+            <widget name="PCMDelayInfoText" zPosition="4" position="490,52" size="40,21" font="Regular;18" foregroundColor="#ffffff" />
+            <widget name="PCMDelayInfo" zPosition="4" position="540,52" size="50,21" font="Regular;18" foregroundColor="#cccccc" />
             <ePixmap pixmap="/usr/lib/enigma2/python/Plugins/Extensions/AC3LipSync/img/key-red.png" position="5,78" zPosition="5" size="20,20" transparent="1" alphatest="on" />
             <ePixmap pixmap="/usr/lib/enigma2/python/Plugins/Extensions/AC3LipSync/img/key-green.png" position="150,78" zPosition="5" size="20,20" transparent="1" alphatest="on" />
             <ePixmap pixmap="/usr/lib/enigma2/python/Plugins/Extensions/AC3LipSync/img/key-yellow.png" position="295,78" zPosition="5" size="20,20" transparent="1" alphatest="on" />
@@ -164,7 +164,7 @@ class AC3LipSync(Screen,InfoBarAudioSelection):
         if iSliderValue < 0:
             iSliderValue = 0
         self.setSliderInfo(iSliderValue)
-        self.AC3delay.setFileDelay(sAudio, self.currentValue[sAudio])
+        self.AC3delay.setFileDelay(sAudio, self.currentValue[sAudio], True)
 
     def keyRight(self):
         sAudio = self.AC3delay.whichAudio
@@ -175,7 +175,7 @@ class AC3LipSync(Screen,InfoBarAudioSelection):
         if iSliderValue > self.upperBound:
             iSliderValue = self.upperBound
         self.setSliderInfo(iSliderValue)
-        self.AC3delay.setFileDelay(sAudio, self.currentValue[sAudio])
+        self.AC3delay.setFileDelay(sAudio, self.currentValue[sAudio], True)
 
     def keyNumberGlobal(self, number):
         sAudio = self.AC3delay.whichAudio
@@ -191,7 +191,7 @@ class AC3LipSync(Screen,InfoBarAudioSelection):
                 if iSliderValue < 0:
                     iSliderValue = 0
         self.setSliderInfo(iSliderValue)
-        self.AC3delay.setFileDelay(sAudio, self.currentValue[sAudio])
+        self.AC3delay.setFileDelay(sAudio, self.currentValue[sAudio], True)
 
     def keyAudioSelection(self):
         self.audioSelection()
@@ -204,7 +204,7 @@ class AC3LipSync(Screen,InfoBarAudioSelection):
             iSliderValue = self.currentValue[sAudio]
             if iSliderValue <> self.savedValue[sAudio]:
                 self.whichAudio = sAudio
-                self.AC3delay.setFileDelay(sAudio, self.savedValue[sAudio])
+                self.AC3delay.setFileDelay(sAudio, self.savedValue[sAudio], False)
         self.close()
 
     def keySaveToLamedb(self):
index 9fbcdc3..bc630b1 100644 (file)
@@ -41,7 +41,8 @@ class AC3LipSyncSetup(ConfigListScreen, Screen):
         self.list = [
             getConfigListEntry(_("Minimum delay"), config.plugins.AC3LipSync.lowerBound),
             getConfigListEntry(_("Maximum delay"), config.plugins.AC3LipSync.upperBound),
-            getConfigListEntry(_("Step in ms for arrow keys"), config.plugins.AC3LipSync.arrowStepSize)
+            getConfigListEntry(_("Step in ms for arrow keys"), config.plugins.AC3LipSync.arrowStepSize),
+            getConfigListEntry(_("Wait time in ms before activation:"), config.plugins.AC3LipSync.activationDelay)
         ]
         
         self.list.extend([
index a0ec8aa..da9bd99 100644 (file)
@@ -9,6 +9,7 @@ config.plugins.AC3LipSync.lowerBound = ConfigInteger(default = 0, limits = (0,10
 config.plugins.AC3LipSync.upperBound = ConfigInteger(default = 405, limits = (0,10000))
 config.plugins.AC3LipSync.arrowStepSize = ConfigInteger(default = 5, limits = (0,10000))
 config.plugins.AC3LipSync.stepSize = ConfigInteger(default = 45, limits = (0,10000))
+config.plugins.AC3LipSync.activationDelay = ConfigInteger(default = 800, limits = (0,10000))
 config.plugins.AC3LipSync.keySteps = ConfigSubList()
 for i in range(0, 10):
     s = ConfigSubsection()