summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--menu.c21
1 files changed, 14 insertions, 7 deletions
diff --git a/menu.c b/menu.c
index 2d1406f6..0d128704 100644
--- a/menu.c
+++ b/menu.c
@@ -4,7 +4,7 @@
* See the main source file 'xineliboutput.c' for copyright information and
* how to reach the author.
*
- * $Id: menu.c,v 1.66 2009-08-03 12:08:40 phintuka Exp $
+ * $Id: menu.c,v 1.67 2009-08-03 12:23:38 phintuka Exp $
*
*/
@@ -64,7 +64,7 @@ class cMenuBrowseFiles : public cOsdMenu
char *m_ConfigLastDir;
virtual bool ScanDir(const char *DirName);
- virtual eOSState Open(bool ForceOpen = false, bool Queue = false);
+ virtual eOSState Open(bool ForceOpen = false, bool Queue = false, bool Rewind = false);
virtual eOSState Delete(void);
virtual eOSState Info(void);
virtual void Set(void);
@@ -198,9 +198,12 @@ void cMenuBrowseFiles::SetHelpButtons(void)
{
bool isDir = !GetCurrent() || GetCurrent()->IsDir();
bool isDvd = GetCurrent() && GetCurrent()->IsDvd();
+ bool hasResume = GetCurrent() && GetCurrent()->HasResume();
+
SetHelp((isDir && isDvd) ? trVDR("Button$Open") : !m_OnlyQueue ? trVDR("Button$Play"): NULL,
- (m_Mode == ShowMusic) ? tr("Button$Queue") :
- strlen(m_CurrentDir)>1 ? "[..]" : NULL,
+ (m_Mode == ShowMusic) ? tr("Button$Queue") :
+ (m_Mode == ShowFiles && hasResume) ? trVDR("Button$Rewind") :
+ NULL,
(isDir && !isDvd) ? NULL : trVDR("Button$Delete"),
isDir ? NULL : trVDR("Button$Info"));
Display();
@@ -230,7 +233,7 @@ eOSState cMenuBrowseFiles::Delete(void)
return osContinue;
}
-eOSState cMenuBrowseFiles::Open(bool ForceOpen, bool Queue)
+eOSState cMenuBrowseFiles::Open(bool ForceOpen, bool Queue, bool Rewind)
{
if(!GetCurrent()) {
return osContinue;
@@ -315,10 +318,13 @@ eOSState cMenuBrowseFiles::Open(bool ForceOpen, bool Queue)
cControl::Shutdown();
if(Queue)
cXinelibPlayerControl::Queue(f);
- if(!cXinelibPlayerControl::IsOpen())
+ if(!cXinelibPlayerControl::IsOpen()) {
+ if (Rewind)
+ unlink(cString::sprintf("%s.resume", *f));
cControl::Launch(GetCurrent()->IsDvd()
? new cXinelibDvdPlayerControl(f)
: new cXinelibPlayerControl(m_Mode, f, GetCurrent()->SubFile()));
+ }
if(Queue)
return osContinue;
} else {
@@ -436,7 +442,8 @@ eOSState cMenuBrowseFiles::ProcessKey(eKeys Key)
case kOk: return Open(false, m_OnlyQueue);
case kRed: return Open(true);
case kGreen: return Open(true,
- m_Mode==ShowMusic ? m_OnlyQueue=true : false);
+ m_Mode==ShowMusic ? m_OnlyQueue=true : false,
+ m_Mode == ShowFiles);
case kYellow: return Delete();
case kBlue: return Info();
default: break;