summaryrefslogtreecommitdiff
path: root/tools.c
diff options
context:
space:
mode:
authorMartin Prochnow <nordlicht@martins-kabuff.de>2006-04-11 19:12:01 +0200
committerAndreas Mair <andreas@vdr-developer.org>2006-04-11 19:12:01 +0200
commit82bfd4c15949019ede37b2b04be79659c5c65dbe (patch)
tree5deb5bf0d98cbee6c5ee17bb9323d0748ed567a7 /tools.c
parentc849f2898257df19fddb97ac99c392c410f120d1 (diff)
downloadvdr-plugin-extrecmenu-82bfd4c15949019ede37b2b04be79659c5c65dbe.tar.gz
vdr-plugin-extrecmenu-82bfd4c15949019ede37b2b04be79659c5c65dbe.tar.bz2
Version 0.9v0.9
- removed myDvbPlayer, use VDR's cDvbPlayer instead - made adjustments to work with BigPatch-VDRs (JumpPlay-patch) - added option for sort recordings - moved editing of priority and lifetime to its own submenu - removed option to select alternative dvd marker, the icon is now default - added default values for setup options - moved content of patches/ and tools/ to contrib/ and added a small README - new version of 'dvdarchive.sh'; thanks to vejoun from vdr-portal.de - fixed problem with archive dvd recordings at the base dir; thanks to Mase from vdr-portal.de for reporting
Diffstat (limited to 'tools.c')
-rw-r--r--tools.c65
1 files changed, 65 insertions, 0 deletions
diff --git a/tools.c b/tools.c
index d685571..6c52a63 100644
--- a/tools.c
+++ b/tools.c
@@ -1,6 +1,14 @@
+/*
+ * See the README file for copyright information and how to reach the author.
+ *
+ * The code for sort recordings as adopted from the SortRecordings-patch
+ * copyright by FrankJepsen and FRank99 from vdr-portal.de
+ */
+
#include <vdr/videodir.h>
#include <vdr/recording.h>
#include "tools.h"
+#include "mymenusetup.h"
bool MoveVideoFile(cRecording *Recording,char *NewName)
{
@@ -23,3 +31,60 @@ bool MoveVideoFile(cRecording *Recording,char *NewName)
isyslog("[extrecmenu] moving failed");
return false;
}
+
+// --- myRecListItem ----------------------------------------------------------
+myRecListItem::myRecListItem(cRecording *Recording)
+{
+ recording=Recording;
+ filename=recording->FileName();
+ sortbuffer=NULL;
+}
+
+myRecListItem::~myRecListItem()
+{
+ free(sortbuffer);
+}
+
+char *myRecListItem::StripEpisodeName(char *s)
+{
+ char *t=s,*s1=NULL,*s2=NULL;
+ while(*t)
+ {
+ if(*t=='/')
+ {
+ if(s1)
+ {
+ if(s2)
+ s1=s2;
+ s2=t;
+ }
+ else
+ s1=t;
+ }
+ t++;
+ }
+ *s1=255;
+ if(s1&&s2&&(s1==s&&(mysetup.SortRecords&1)||s1!=s&&(mysetup.SortRecords==3||mysetup.SortRecords!=2&&!strchr(".-$ª·",*(s1-1)))))
+ memmove(s1+1,s2,t-s2+1);
+ return s;
+}
+
+char *myRecListItem::SortName()const
+{
+ if(!sortbuffer)
+ {
+ char *s=StripEpisodeName(strdup(filename+strlen(VideoDirectory)));
+ strreplace(s,'/','a');
+ int l=strxfrm(NULL,s,0)+1;
+ sortbuffer=MALLOC(char,l);
+ strxfrm(sortbuffer,s,l);
+ free(s);
+ }
+ return sortbuffer;
+}
+
+int myRecListItem::Compare(const cListObject &ListObject)const
+{
+ myRecListItem *item=(myRecListItem*)&ListObject;
+ return strcasecmp(SortName(),item->SortName());
+}