adding volume control
[enigma2.git] / lib / python / Screens / InfoBar.py
index 5eb5ab10f2d075b91ae6ac55a98851b8af63cabb..6f8dde1b0adfac2916e43f60258a44caff17c137 100644 (file)
@@ -1,17 +1,21 @@
 from Screen import Screen
 from ChannelSelection import ChannelSelection
 from Components.Clock import Clock
+from Components.VolumeBar import VolumeBar
 from Components.ActionMap import ActionMap
 from Components.Button import Button
 from Components.ServiceName import ServiceName
 from Components.EventInfo import EventInfo
 
+from Screens.MessageBox import MessageBox
+from Screens.MovieSelection import MovieSelection
+
 from enigma import *
 
 import time
 
 # hack alert!
-from Menu import *
+from Menu import MainMenu, mdom
 
 class InfoBar(Screen):
        def __init__(self, session):
@@ -19,18 +23,29 @@ class InfoBar(Screen):
 
                #instantiate forever
                self.servicelist = self.session.instantiateDialog(ChannelSelection)
-               
+               self.volumeBar = VolumeBar()            
+
                self["actions"] = ActionMap( [ "InfobarActions" ], 
                        {
-                               "switchChannel": self.switchChannel,
+                               "switchChannelUp": self.switchChannelUp,
+                               "switchChannelDown": self.switchChannelDown,
                                "mainMenu": self.mainMenu,
                                "zapUp": self.zapUp,
                                "zapDown": self.zapDown,
-                               "instantRecord": self.instantRecord
+                               "volumeUp": self.volUp,
+                               "volumeDown": self.volDown,
+                               "volumeMute": self.volMute,
+                               "instantRecord": self.instantRecord,
+                               "hide": self.hide,
+                               "toggleShow": self.toggleShow,
+                               "showMovies": self.showMovies,
+                               "quit": self.quit
                        })
-               self["okbutton"] = Button("mainMenu", [self.mainMenu])
+#              self["okbutton"] = Button("mainMenu", [self.mainMenu])
                
                self["CurrentTime"] = Clock()
+
+               self["Volume"] = self.volumeBar
                
                self["ServiceName"] = ServiceName(self.session.nav)
                
@@ -46,18 +61,52 @@ class InfoBar(Screen):
                print "loading mainmenu XML..."
                menu = mdom.childNodes[0]
                assert menu.tagName == "menu", "root element in menu must be 'menu'!"
-               self.session.open(Menu, menu, menu.childNodes)
+               self.session.open(MainMenu, menu, menu.childNodes)
 
-       def switchChannel(self):        
+       def switchChannelUp(self):      
+               self.servicelist.moveUp()
                self.session.execDialog(self.servicelist)
 
+       def switchChannelDown(self):    
+               self.servicelist.moveDown()
+               self.session.execDialog(self.servicelist)
+
+       def hide(self): 
+               self.instance.hide()
+
+       def toggleShow(self):
+               if self.instance.isVisible():
+                       self.instance.hide()
+               else:
+                       self.instance.show()
+
        def     zapUp(self):
-               self.servicelist.zapUp()
+               self.servicelist.moveUp()
+               self.servicelist.zap()
 
        def     zapDown(self):
-               self.servicelist.zapDown()
+               self.servicelist.moveDown()
+               self.servicelist.zap()
+
+       def     volUp(self):
+               eDVBVolumecontrol.getInstance().volumeUp()
+               self.volumeBar.setValue(eDVBVolumecontrol.getInstance().getVolume())
+
+       def     volDown(self):
+               eDVBVolumecontrol.getInstance().volumeDown()
+               self.volumeBar.setValue(eDVBVolumecontrol.getInstance().getVolume())
+
+       def     volMute(self):
+               eDVBVolumecontrol.getInstance().volumeToggleMute()
+               self.volumeBar.setValue(eDVBVolumecontrol.getInstance().getVolume())
+
+       def     quit(self):
+               quitMainloop()
                
        def instantRecord(self):
+               self.session.open(MessageBox, "this would be an instant recording! do you really know what you're doing?!")
+               return
+       
                if self.recording != None:
                        print "remove entry"
                        self.session.nav.RecordTimer.removeEntry(self.recording)
@@ -74,7 +123,9 @@ class InfoBar(Screen):
                                        ev = eServiceEventPtr()
                                        if info.getEvent(ev, 0) == 0:
                                                epg = ev
-
-                       self.recording = self.session.nav.recordWithTimer(time.time(), time.time() + 30, serviceref, epg)
-                       print "got entry: %s" % (str(self.recording))
+                       # fix me, description. 
+                       self.recording = self.session.nav.recordWithTimer(time.time(), time.time() + 30, serviceref, epg, "instant record")
+       
+       def showMovies(self):
+               self.session.open(MovieSelection)