rename BlinkingPoint to BlinkingPixmap (is more generic)
authorStefan Pluecken <stefan.pluecken@multimedia-labs.de>
Sat, 26 Nov 2005 02:47:56 +0000 (02:47 +0000)
committerStefan Pluecken <stefan.pluecken@multimedia-labs.de>
Sat, 26 Nov 2005 02:47:56 +0000 (02:47 +0000)
lib/python/Components/BlinkingPixmap.py [new file with mode: 0644]
lib/python/Components/BlinkingPoint.py [deleted file]
lib/python/Components/Makefile.am
lib/python/Screens/InfoBarGenerics.py

diff --git a/lib/python/Components/BlinkingPixmap.py b/lib/python/Components/BlinkingPixmap.py
new file mode 100644 (file)
index 0000000..e34e916
--- /dev/null
@@ -0,0 +1,95 @@
+from HTMLComponent import *
+from GUIComponent import *
+
+from Pixmap import Pixmap
+
+from enigma import *
+
+import time
+
+class BlinkingPixmap(GUIComponent, Pixmap):
+       SHOWN = 0
+       HIDDEN = 1
+       
+       def __init__(self, filename):
+               Pixmap.__init__(self)
+               GUIComponent.__init__(self)
+               
+               self.filename = filename
+               
+               self.state = self.SHOWN
+               self.blinking = False
+               
+               self.setBlinkTime(500)
+
+               self.timer = eTimer()
+               self.timer.timeout.get().append(self.blink)
+       
+               
+       def createWidget(self, parent):
+               return self.getePixmap(parent, self.filename)
+
+       def removeWidget(self, w):
+               pass
+       
+       def showPoint(self):
+               print "Show point"
+               self.state = self.SHOWN
+               self.instance.show()
+
+       def hidePoint(self):
+               print "Hide point"
+               self.state = self.HIDDEN
+               self.instance.hide()
+               
+       def setBlinkTime(self, time):
+               self.blinktime = time
+               
+       def blink(self):
+               if self.blinking == True:
+                       if (self.state == self.SHOWN):
+                               self.hidePoint()
+                       elif (self.state == self.HIDDEN):
+                               self.showPoint()
+                       
+       def startBlinking(self):
+               self.blinking = True
+               self.timer.start(self.blinktime)
+               
+       def stopBlinking(self):
+               self.blinking = False
+               if (self.state == self.SHOWN):
+                       self.hidePoint()
+               self.timer.stop()
+               
+class BlinkingPixmapConditional(BlinkingPixmap):
+       def __init__(self, filename):
+               BlinkingPixmap.__init__(self, filename)
+               
+               self.setConnect(None)
+               
+               self.conditionCheckTimer = eTimer()
+               self.conditionCheckTimer.timeout.get().append(self.conditionallyBlink)
+               self.conditionCheckTimer.start(1000)
+               
+       def setConnect(self, conditionalFunction):
+               self.conditionalFunction = conditionalFunction
+               
+       def conditionallyBlink(self):
+               try:
+                       self.conditionalFunction() # check, if the conditionalfunction is still valid
+               except:
+                       self.conditionalFunction = None
+                       self.stopBlinking()
+                       
+               if self.conditionalFunction != None:
+                       if self.conditionalFunction(): # we shall blink
+                               if self.blinking: # we are already blinking
+                                       pass
+                               else: # we don't blink
+                                       self.startBlinking()
+                       else: # we shall not blink
+                               if self.blinking: # we are blinking
+                                       self.stopBlinking()
+                               else: # we don't blink
+                                       pass
\ No newline at end of file
diff --git a/lib/python/Components/BlinkingPoint.py b/lib/python/Components/BlinkingPoint.py
deleted file mode 100644 (file)
index e69de29..0000000
index 31eb61c..ebad6d0 100644 (file)
@@ -10,4 +10,4 @@ install_PYTHON = \
        InputDevice.py ServicePosition.py SetupDevices.py Harddisk.py                                           \
        AVSwitch.py Network.py RFmod.py DiskInfo.py NimManager.py Lcd.py                                \
        EpgList.py ScrollLabel.py Timezones.py Language.py HelpMenuList.py \
-       BlinkingPoint.py Pixmap.py
+       BlinkingPixmap.py Pixmap.py
index 671c7aa..3dc59cf 100644 (file)
@@ -6,7 +6,7 @@ from Components.config import configfile, configsequencearg
 from Components.config import config, configElement, ConfigSubsection, configSequence
 from ChannelSelection import ChannelSelection
 
-from Components.BlinkingPoint import BlinkingPointConditional
+from Components.BlinkingPixmap import BlinkingPixmapConditional
 from Components.ServiceName import ServiceName
 from Components.EventInfo import EventInfo
 
@@ -393,14 +393,13 @@ class InfoBarInstantRecord:
                        })
                self.recording = None
                
-               self["BlinkingPoint"] = BlinkingPointConditional("/usr/share/enigma2/record.png")
+               self["BlinkingPoint"] = BlinkingPixmapConditional("/usr/share/enigma2/record.png")
                self.onShown.append(self["BlinkingPoint"].hidePoint)
 
        def stopCurrentRecording(self): 
                self.session.nav.RecordTimer.removeEntry(self.recording)
                self.recording = None
-               #self["BlinkingPoint"].stopBlinking()
-       
+                       
        def startInstantRecording(self):
                serviceref = self.session.nav.getCurrentlyPlayingServiceReference()
                        
@@ -419,8 +418,7 @@ class InfoBarInstantRecord:
                self.recording.dontSave = True
                
                self["BlinkingPoint"].setConnect(lambda: self.recording.isRunning())
-               #self["BlinkingPoint"].startBlinking()
-
+               
        def isInstantRecordRunning(self):
                if self.recording != None:
                        if self.recording.isRunning():