summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKlaus Schmidinger <vdr@tvdr.de>2014-01-29 10:45:28 +0100
committerKlaus Schmidinger <vdr@tvdr.de>2014-01-29 10:45:28 +0100
commit6a9502ab1789ca438ebd598c004818303168e604 (patch)
tree62eaab8c2611143d0400000effc637dbfe1a40c7
parent9eda923269f49291317547130d24067cad9cb669 (diff)
downloadvdr-6a9502ab1789ca438ebd598c004818303168e604.tar.gz
vdr-6a9502ab1789ca438ebd598c004818303168e604.tar.bz2
Fixed sorting recordings by time in the Recordings menu if "Setup/OSD/Recording directories" is set to "no"
-rw-r--r--HISTORY4
-rw-r--r--menu.c4
-rw-r--r--recording.c26
3 files changed, 22 insertions, 12 deletions
diff --git a/HISTORY b/HISTORY
index f5e74534..872e729b 100644
--- a/HISTORY
+++ b/HISTORY
@@ -8170,7 +8170,7 @@ Video Disk Recorder Revision History
- Fixed a superfluous call to the skin's SetRecording() function after renaming a
recording (reported by Christoph Haubrich).
-2014-01-26: Version 2.1.5
+2014-01-29: Version 2.1.5
- Now checking whether the primary device actually has a decoder before retuning the
current channel after a change in its parameters. This fixes broken recordings on
@@ -8179,3 +8179,5 @@ Video Disk Recorder Revision History
of actual video TS packets in cTsPayload in order to be able to record channels that
sometimes need even more than 10 TS packets for detecting frame borders (reported by
Oliver Endriss).
+- Fixed sorting recordings by time in the Recordings menu if "Setup/OSD/Recording
+ directories" is set to "no".
diff --git a/menu.c b/menu.c
index 1001d29e..cc5279bd 100644
--- a/menu.c
+++ b/menu.c
@@ -4,7 +4,7 @@
* See the main source file 'vdr.c' for copyright information and
* how to reach the author.
*
- * $Id: menu.c 3.16 2014/01/25 12:40:28 kls Exp $
+ * $Id: menu.c 3.17 2014/01/29 10:41:10 kls Exp $
*/
#include "menu.h"
@@ -3024,7 +3024,7 @@ eOSState cMenuSetupOSD::ProcessKey(eKeys Key)
ModifiedAppearance = true;
if (strcmp(data.FontFix, Setup.FontFix) || !DoubleEqual(data.FontFixSizeP, Setup.FontFixSizeP))
ModifiedAppearance = true;
- if (data.AlwaysSortFoldersFirst != Setup.AlwaysSortFoldersFirst)
+ if (data.AlwaysSortFoldersFirst != Setup.AlwaysSortFoldersFirst || data.RecordingDirs != Setup.RecordingDirs)
Recordings.ClearSortNames();
}
diff --git a/recording.c b/recording.c
index 382a8ea2..92b2e416 100644
--- a/recording.c
+++ b/recording.c
@@ -4,7 +4,7 @@
* See the main source file 'vdr.c' for copyright information and
* how to reach the author.
*
- * $Id: recording.c 3.13 2014/01/18 12:54:56 kls Exp $
+ * $Id: recording.c 3.14 2014/01/29 10:38:46 kls Exp $
*/
#include "recording.h"
@@ -969,14 +969,22 @@ char *cRecording::SortName(void) const
{
char **sb = (RecordingsSortMode == rsmName) ? &sortBufferName : &sortBufferTime;
if (!*sb) {
- char *s = strdup(FileName() + strlen(cVideoDirectory::Name()));
- if (RecordingsSortMode != rsmName || Setup.AlwaysSortFoldersFirst)
- s = StripEpisodeName(s, RecordingsSortMode != rsmName);
- strreplace(s, '/', '0'); // some locales ignore '/' when sorting
- int l = strxfrm(NULL, s, 0) + 1;
- *sb = MALLOC(char, l);
- strxfrm(*sb, s, l);
- free(s);
+ if (RecordingsSortMode == rsmTime && !Setup.RecordingDirs) {
+ char buf[32];
+ struct tm tm_r;
+ strftime(buf, sizeof(buf), "%Y%m%d%H%I", localtime_r(&start, &tm_r));
+ *sb = strdup(buf);
+ }
+ else {
+ char *s = strdup(FileName() + strlen(cVideoDirectory::Name()));
+ if (RecordingsSortMode != rsmName || Setup.AlwaysSortFoldersFirst)
+ s = StripEpisodeName(s, RecordingsSortMode != rsmName);
+ strreplace(s, '/', '0'); // some locales ignore '/' when sorting
+ int l = strxfrm(NULL, s, 0) + 1;
+ *sb = MALLOC(char, l);
+ strxfrm(*sb, s, l);
+ free(s);
+ }
}
return *sb;
}