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 03e582c..ea225d6 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 442fe13..e1e10dc 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
84 index f9c4065..5817a49 100644
85 --- a/lib/python/Components/SystemInfo.py
86 +++ b/lib/python/Components/SystemInfo.py
88 from enigma import eDVBResourceManager
89 from Tools.Directories import fileExists
90 -from Tools.HardwareInfo import HardwareInfo
91 +from Tools.HardwareInfo import HardwareInfo, HardwareInfoVu
95 @@ -29,3 +29,4 @@ SystemInfo["NumFrontpanelLEDs"] = countFrontpanelLEDs()
96 SystemInfo["FrontpanelDisplay"] = fileExists("/dev/dbox/oled0") or fileExists("/dev/dbox/lcd0")
97 SystemInfo["FrontpanelDisplayGrayscale"] = fileExists("/dev/dbox/oled0")
98 SystemInfo["DeepstandbySupport"] = HardwareInfo().get_device_name() != "dm800"
99 +SystemInfo["PVRSupport"] = HardwareInfoVu().get_device_name() != "solose"
100 diff --git a/lib/python/Screens/InfoBarGenerics.py b/lib/python/Screens/InfoBarGenerics.py
101 index 80cc196..d635eac 100755
102 --- a/lib/python/Screens/InfoBarGenerics.py
103 +++ b/lib/python/Screens/InfoBarGenerics.py
104 @@ -233,7 +233,7 @@ class InfoBarNumberZap:
106 self.servicelist.recallPrevService()
108 - if self.has_key("TimeshiftActions") and not self.timeshift_enabled:
109 + if not (self.has_key("TimeshiftActions") and self.timeshift_enabled):
110 self.session.openWithCallback(self.numberEntered, NumberZap, number)
112 def numberEntered(self, retval):
113 @@ -1181,11 +1181,12 @@ class InfoBarShowMovies:
115 class InfoBarTimeshift:
117 - self["TimeshiftActions"] = HelpableActionMap(self, "InfobarTimeshiftActions",
119 - "timeshiftStart": (self.startTimeshift, _("start timeshift")), # the "yellow key"
120 - "timeshiftStop": (self.stopTimeshift, _("stop timeshift")) # currently undefined :), probably 'TV'
122 + if SystemInfo["PVRSupport"]:
123 + self["TimeshiftActions"] = HelpableActionMap(self, "InfobarTimeshiftActions",
125 + "timeshiftStart": (self.startTimeshift, _("start timeshift")), # the "yellow key"
126 + "timeshiftStop": (self.stopTimeshift, _("stop timeshift")) # currently undefined :), probably 'TV'
128 self["TimeshiftActivateActions"] = ActionMap(["InfobarTimeshiftActivateActions"],
130 "timeshiftActivateEnd": self.activateTimeshiftEnd, # something like "rewind key"
131 @@ -1501,10 +1502,11 @@ class InfoBarInstantRecord:
132 """Instant Record - handles the instantRecord action in order to
133 start/stop instant records"""
135 - self["InstantRecordActions"] = HelpableActionMap(self, "InfobarInstantRecord",
137 - "instantRecord": (self.instantRecord, _("Instant Record...")),
139 + if SystemInfo["PVRSupport"]:
140 + self["InstantRecordActions"] = HelpableActionMap(self, "InfobarInstantRecord",
142 + "instantRecord": (self.instantRecord, _("Instant Record...")),
146 def stopCurrentRecording(self, entry = -1):
147 diff --git a/lib/python/Screens/TimerEntry.py b/lib/python/Screens/TimerEntry.py
148 index 9885e70..1d40547 100644
149 --- a/lib/python/Screens/TimerEntry.py
150 +++ b/lib/python/Screens/TimerEntry.py
151 @@ -94,7 +94,12 @@ class TimerEntry(Screen, ConfigListScreen):
152 weekday = (int(strftime("%w", localtime(self.timer.begin))) - 1) % 7
155 - self.timerentry_justplay = ConfigSelection(choices = [("zap", _("zap")), ("record", _("record"))], default = {0: "record", 1: "zap"}[justplay])
156 + timer_choices = [("zap", _("zap"))]
158 + if SystemInfo["PVRSupport"]:
159 + timer_choices.append(("record", _("record")))
160 + default = {0: "record", 1: "zap"}[justplay]
161 + self.timerentry_justplay = ConfigSelection(choices = timer_choices, default = default)
162 if SystemInfo["DeepstandbySupport"]:
163 shutdownString = _("go to deep standby")
165 diff --git a/lib/python/Tools/HardwareInfo.py b/lib/python/Tools/HardwareInfo.py
166 index e72d291..a1188c1 100644
167 --- a/lib/python/Tools/HardwareInfo.py
168 +++ b/lib/python/Tools/HardwareInfo.py
169 @@ -32,3 +32,26 @@ class HardwareInfo:
171 def get_device_name(self):
172 return HardwareInfo.device_name
174 +class HardwareInfoVu:
177 + def __init__(self):
178 + if HardwareInfoVu.device_name is not None:
181 + HardwareInfoVu.device_name = "unknown"
182 + HardwareInfoVu.vendor_name = "unknown"
184 + file = open("/proc/stb/info/vumodel", "r")
185 + HardwareInfoVu.device_name = file.readline().strip()
187 + HardwareInfoVu.vendor_name = "vuplus"
191 + def get_device_name(self):
192 + return HardwareInfoVu.device_name
194 + def get_vendor_name(self):
195 + return HardwareInfoVu.vendor_name