1 diff --git a/RecordTimer.py b/RecordTimer.py
2 index d3ccd75..838b18a 100755
5 @@ -4,6 +4,7 @@ from enigma import eEPGCache, getBestPlayableServiceReference, \
6 from Components.config import config
7 from Components.UsageConfig import defaultMoviePath
8 from Components.TimerSanityCheck import TimerSanityCheck
9 +from Components.SystemInfo import SystemInfo
11 from Screens.MessageBox import MessageBox
12 import Screens.Standby
13 @@ -114,7 +115,10 @@ class RecordTimerEntry(timer.TimerEntry, object):
15 self.__record_service = None
16 self.start_prepare = 0
17 - self.justplay = justplay
18 + if SystemInfo["PVRSupport"]:
19 + self.justplay = justplay
21 + self.justplay = True
22 self.afterEvent = afterEvent
23 self.dirname = dirname
24 self.dirnameHadToFallback = False
25 @@ -404,7 +408,10 @@ def createTimer(xml):
26 description = xml.get("description").encode("utf-8")
27 repeated = xml.get("repeated").encode("utf-8")
28 disabled = long(xml.get("disabled") or "0")
29 - justplay = long(xml.get("justplay") or "0")
30 + if SystemInfo["PVRSupport"]:
31 + justplay = long(xml.get("justplay") or "0")
33 + justplay = long("1")
34 afterevent = str(xml.get("afterevent") or "nothing")
36 "nothing": AFTEREVENT.NONE,
37 @@ -590,7 +597,10 @@ class RecordTimer(timer.Timer):
38 if timer.tags is not None:
39 list.append(' tags="' + str(stringToXML(' '.join(timer.tags))) + '"')
40 list.append(' disabled="' + str(int(timer.disabled)) + '"')
41 - list.append(' justplay="' + str(int(timer.justplay)) + '"')
42 + if SystemInfo["PVRSupport"]:
43 + list.append(' justplay="' + str(int(timer.justplay)) + '"')
45 + list.append(' justplay="1"')
48 if config.recording.debug.value:
49 diff --git a/data/menu.xml b/data/menu.xml
50 index 5c8cbb2..ed0b415 100755
54 <item level="1" text="Device Setup..." entryID="device_setup"><screen module="NetworkSetup" screen="NetworkAdapterSelection"/></item>
55 <item level="1" text="Nameserver Setup..." entryID="dns_setup"><screen module="NetworkSetup" screen="NameserverSetup"/></item>
57 - <item level="2" text="Recording paths" entryId="RecordPaths"><screen module="RecordPaths" screen="RecordPathsSettings" /></item>
58 + <item level="2" text="Recording paths" entryId="RecordPaths" requires="PVRSupport"><screen module="RecordPaths" screen="RecordPathsSettings" /></item>
60 <item weight="10" level="1" text="Common Interface" entryID="ci_setup" requires="CommonInterface"><screen module="Ci" screen="CiSelection" /></item>
61 <item weight="15" level="0" text="Parental control" entryID="parental_setup"><screen module="ParentalControlSetup" screen="ParentalControlSetup" /></item>
62 diff --git a/data/setup.xml b/data/setup.xml
63 index 5ce6b62..9892f34 100755
68 <setup key="usage" title="Customize">
69 <item level="0" text="Setup Mode">config.usage.setup_level</item>
70 - <item level="1" text="Recordings always have priority">config.recording.asktozap</item>
71 - <item level="0" text="Margin before record (minutes)">config.recording.margin_before</item>
72 - <item level="0" text="Margin after record">config.recording.margin_after</item>
73 - <item level="0" text="Show blinking clock in display during recording">config.usage.blinking_display_clock_during_recording</item>
74 - <item level="2" text="Show Message when Recording starts">config.usage.show_message_when_recording_starts</item>
75 + <item level="1" text="Recordings always have priority" requires="PVRSupport">config.recording.asktozap</item>
76 + <item level="0" text="Margin before record (minutes)" requires="PVRSupport">config.recording.margin_before</item>
77 + <item level="0" text="Margin after record" requires="PVRSupport">config.recording.margin_after</item>
78 + <item level="0" text="Show blinking clock in display during recording" requires="PVRSupport">config.usage.blinking_display_clock_during_recording</item>
79 + <item level="2" text="Show Message when Recording starts" requires="PVRSupport">config.usage.show_message_when_recording_starts</item>
80 <item level="2" text="Load Length of Movies in Movielist">config.usage.load_length_of_movies_in_moviellist</item>
81 <item level="1" text="Show positioner movement">config.usage.showdish</item>
82 <item level="1" text="Enable multiple bouquets">config.usage.multibouquet</item>
83 diff --git a/lib/python/Components/SystemInfo.py b/lib/python/Components/SystemInfo.py
86 index 67f2e75..9ecd94d
87 --- a/lib/python/Components/SystemInfo.py
88 +++ b/lib/python/Components/SystemInfo.py
90 from enigma import eDVBResourceManager
91 from Tools.Directories import fileExists
92 -from Tools.HardwareInfo import HardwareInfo
93 +from Tools.HardwareInfo import HardwareInfo, HardwareInfo
97 @@ -31,4 +31,5 @@ SystemInfo["FrontpanelDisplayGrayscale"] = fileExists("/dev/dbox/oled0")
98 SystemInfo["DeepstandbySupport"] = HardwareInfo().get_device_name() != "dm800"
99 SystemInfo["HdmiInSupport"] = HardwareInfo().get_vu_device_name() == "ultimo4k"
100 SystemInfo["WOWLSupport"] = HardwareInfo().get_vu_device_name() == "ultimo4k"
101 +SystemInfo["PVRSupport"] = HardwareInfo().get_vu_device_name() not in ["solose", "zero", "uno4k"]
103 diff --git a/lib/python/Screens/InfoBarGenerics.py b/lib/python/Screens/InfoBarGenerics.py
104 index b5bd06d..bc2b8a9 100755
105 --- a/lib/python/Screens/InfoBarGenerics.py
106 +++ b/lib/python/Screens/InfoBarGenerics.py
107 @@ -235,7 +235,7 @@ class InfoBarNumberZap:
109 self.servicelist.recallPrevService()
111 - if self.has_key("TimeshiftActions") and not self.timeshift_enabled:
112 + if not (self.has_key("TimeshiftActions") and self.timeshift_enabled):
113 self.session.openWithCallback(self.numberEntered, NumberZap, number)
115 def numberEntered(self, retval):
116 @@ -1185,11 +1185,12 @@ class InfoBarShowMovies:
118 class InfoBarTimeshift:
120 - self["TimeshiftActions"] = HelpableActionMap(self, "InfobarTimeshiftActions",
122 - "timeshiftStart": (self.startTimeshift, _("start timeshift")), # the "yellow key"
123 - "timeshiftStop": (self.stopTimeshift, _("stop timeshift")) # currently undefined :), probably 'TV'
125 + if SystemInfo["PVRSupport"]:
126 + self["TimeshiftActions"] = HelpableActionMap(self, "InfobarTimeshiftActions",
128 + "timeshiftStart": (self.startTimeshift, _("start timeshift")), # the "yellow key"
129 + "timeshiftStop": (self.stopTimeshift, _("stop timeshift")) # currently undefined :), probably 'TV'
131 self["TimeshiftActivateActions"] = ActionMap(["InfobarTimeshiftActivateActions"],
133 "timeshiftActivateEnd": self.activateTimeshiftEnd, # something like "rewind key"
134 @@ -1509,10 +1510,11 @@ class InfoBarInstantRecord:
135 """Instant Record - handles the instantRecord action in order to
136 start/stop instant records"""
138 - self["InstantRecordActions"] = HelpableActionMap(self, "InfobarInstantRecord",
140 - "instantRecord": (self.instantRecord, _("Instant Record...")),
142 + if SystemInfo["PVRSupport"]:
143 + self["InstantRecordActions"] = HelpableActionMap(self, "InfobarInstantRecord",
145 + "instantRecord": (self.instantRecord, _("Instant Record...")),
149 def stopCurrentRecording(self, entry = -1):
150 diff --git a/lib/python/Screens/TimerEntry.py b/lib/python/Screens/TimerEntry.py
151 index 9885e70..1d40547 100644
152 --- a/lib/python/Screens/TimerEntry.py
153 +++ b/lib/python/Screens/TimerEntry.py
154 @@ -94,7 +94,12 @@ class TimerEntry(Screen, ConfigListScreen):
155 weekday = (int(strftime("%w", localtime(self.timer.begin))) - 1) % 7
158 - self.timerentry_justplay = ConfigSelection(choices = [("zap", _("zap")), ("record", _("record"))], default = {0: "record", 1: "zap"}[justplay])
159 + timer_choices = [("zap", _("zap"))]
161 + if SystemInfo["PVRSupport"]:
162 + timer_choices.append(("record", _("record")))
163 + default = {0: "record", 1: "zap"}[justplay]
164 + self.timerentry_justplay = ConfigSelection(choices = timer_choices, default = default)
165 if SystemInfo["DeepstandbySupport"]:
166 shutdownString = _("go to deep standby")