from os import stat as os_stat, system as os_system
from bisect import insort
-from RecordTimer import RecordTimerEntry, RecordTimer
+from RecordTimer import RecordTimerEntry, RecordTimer, findSafeRecordPath
# hack alert!
from Menu import MainMenu, mdom
+def isStandardInfoBar(self):
+ return self.__class__.__name__ == "InfoBar"
+
class InfoBarDish:
def __init__(self):
self.dishDialog = self.session.instantiateDialog(Dish)
else:
self.servicelist.recallPrevService()
else:
- if self.has_key("TimeshiftActions") and not self.timeshift_enabled:
+ if not (self.has_key("TimeshiftActions") and self.timeshift_enabled):
self.session.openWithCallback(self.numberEntered, NumberZap, number)
def numberEntered(self, retval):
return seek
def isSeekable(self):
- if self.getSeek() is None:
+ if self.getSeek() is None or (isStandardInfoBar(self) and not self.timeshift_enabled):
return False
return True
class InfoBarTimeshift:
def __init__(self):
- self["TimeshiftActions"] = HelpableActionMap(self, "InfobarTimeshiftActions",
- {
- "timeshiftStart": (self.startTimeshift, _("start timeshift")), # the "yellow key"
- "timeshiftStop": (self.stopTimeshift, _("stop timeshift")) # currently undefined :), probably 'TV'
- }, prio=1)
+ if SystemInfo["PVRSupport"]:
+ self["TimeshiftActions"] = HelpableActionMap(self, "InfobarTimeshiftActions",
+ {
+ "timeshiftStart": (self.startTimeshift, _("start timeshift")), # the "yellow key"
+ "timeshiftStop": (self.stopTimeshift, _("stop timeshift")) # currently undefined :), probably 'TV'
+ }, prio=1)
self["TimeshiftActivateActions"] = ActionMap(["InfobarTimeshiftActivateActions"],
{
"timeshiftActivateEnd": self.activateTimeshiftEnd, # something like "rewind key"
if self.timeshift_enabled:
print "hu, timeshift already enabled?"
else:
+ from Components import Harddisk
+ if Harddisk.getMountPath(config.usage.timeshift_path.value) != '/' and \
+ SystemInfo.get("DisableUsbRecord", True) and \
+ Harddisk.isUsbStorage(config.usage.timeshift_path.value):
+ self.session.open(MessageBox, _("Timeshift not possible on a USB storage."), MessageBox.TYPE_ERROR)
+ return 0
+
if not ts.startTimeshift():
self.timeshift_enabled = 1
"""Instant Record - handles the instantRecord action in order to
start/stop instant records"""
def __init__(self):
- self["InstantRecordActions"] = HelpableActionMap(self, "InfobarInstantRecord",
- {
- "instantRecord": (self.instantRecord, _("Instant Record...")),
- })
+ if SystemInfo["PVRSupport"]:
+ self["InstantRecordActions"] = HelpableActionMap(self, "InfobarInstantRecord",
+ {
+ "instantRecord": (self.instantRecord, _("Instant Record...")),
+ })
self.recording = []
def stopCurrentRecording(self, entry = -1):
self.session.nav.RecordTimer.timeChanged(entry)
def instantRecord(self):
- dir = preferredInstantRecordPath()
- if not dir or not fileExists(dir, 'w'):
- dir = defaultMoviePath()
-
if not fileExists("/hdd", 0):
print "not found /hdd"
os_system("ln -s /media/hdd /hdd")
-#
- try:
- stat = os_stat(dir)
- except:
- # XXX: this message is a little odd as we might be recording to a remote device
+
+ recPath = preferredInstantRecordPath()
+ if not findSafeRecordPath(recPath) and not findSafeRecordPath(defaultMoviePath()):
+ if not recPath:
+ recPath = ""
self.session.open(MessageBox, _("No HDD found or HDD not initialized!"), MessageBox.TYPE_ERROR)
return