fix window title a bit
[enigma2.git] / Navigation.py
1 from enigma import *
2 import RecordTimer
3
4 import NavigationInstance
5 import ServiceReference
6
7 # TODO: remove pNavgation, eNavigation and rewrite this stuff in python.
8 class Navigation:
9         def __init__(self):
10                 if NavigationInstance.instance is not None:
11                         raise NavigationInstance.instance
12                 
13                 NavigationInstance.instance = self
14                 self.ServiceHandler = eServiceCenter.getInstance()
15
16                 import Navigation as Nav
17                 Nav.navcore = self
18                 
19                 self.pnav = pNavigation()
20                 self.pnav.m_event.get().append(self.callEvent)
21                 self.event = [ ]
22                 self.currentlyPlayingService = None
23                 self.currentlyPlayingServiceReference = None
24                 
25                 self.RecordTimer = RecordTimer.RecordTimer()
26
27         def callEvent(self, i):
28                 for x in self.event:
29                         x(i)
30         
31         def playService(self, ref):
32                 self.currentlyPlayingServiceReference = None
33                 if not self.pnav.playService(ref):
34                         self.currentlyPlayingServiceReference = ref
35                         return 0
36                 return 1
37         
38         def getCurrentlyPlayingServiceReference(self):
39                 return self.currentlyPlayingServiceReference
40         
41         def recordService(self, ref):
42                 print "recording service: %s" % (str(ref))
43                 if isinstance(ref, ServiceReference.ServiceReference):
44                         ref = ref.ref
45                 service = self.pnav.recordService(ref)
46                 
47                 if service is None:
48                         print "record returned non-zero"
49                         return None
50                 else:
51                         return service
52         
53         def enqueueService(self, ref):
54                 return self.pnav.enqueueService(ref)
55         
56         def getCurrentService(self):
57                 service = self.pnav.getCurrentService()
58                 
59                 if service is None:
60                         return None
61                 
62                 return service
63         
64         def stopService(self):
65                 self.pnav.stopService()
66         
67         def getPlaylist(self):
68                 playlist = ePlaylistPtr()
69                 if self.pnav.getPlaylist(playlist):
70                         return None
71                 return playlist
72         
73         def pause(self, p):
74                 return self.pnav.pause(p)
75         
76         def recordWithTimer(self, begin, end, ref, epg, description):
77                 if isinstance(ref, eServiceReference):
78                         ref = ServiceReference.ServiceReference(ref)
79                 entry = RecordTimer.RecordTimerEntry(begin, end, ref, epg, description)
80                 self.RecordTimer.record(entry)
81                 return entry
82         
83         def shutdown(self):
84                 self.RecordTimer.shutdown()