[vdr] sort recordings

Emil Naepflein Emil.Naepflein at philosys.de
Sun Apr 23 19:45:48 CEST 2006


On Sun, 23 Apr 2006 19:31:35 +0300, you wrote:

>The /video directory is nfs-mounted to secondary
>box as /video/MainVDR.
>There those same recordings show in chronological
>order, how do I change that to same as main-box.

Recordings in subdirectories are normally not sorted by name.

Since I use VDR I do always two changes to the source of recording.c:

char *cRecording::StripEpisodeName(char *s)
{
#ifdef nodef
  char *t = s, *s1 = NULL, *s2 = NULL;
  while (*t) {
        if (*t == '/') {
           if (s1) {
              if (s2)
                 s1 = s2;
              s2 = t;
              }
           else
              s1 = t;
           }
        t++;
        }
  if (s1 && s2)
     memmove(s1 + 1, s2, t - s2 + 1);
#endif
  return s;
}

...

int cRecording::Compare(const cListObject &ListObject) const
{
#ifdef nodef
  cRecording *r = (cRecording *)&ListObject;
  return strcasecmp(SortName(), r->SortName());
#else
  cRecording *r = (cRecording *)&ListObject;
  char *s1 = SortName();
  char *s2 = r->SortName();

  if (s1[0] != '%' && s2[0] != '%')
       return(strcasecmp(s1, s2));


  if (s1[0] == '%' && s2[0] != '%')
       return 1;

  if (s1[0] != '%' && s2[0] == '%')
       return -1;

  return(strcasecmp(&s1[1], &s2[1]));
#endif
}


The first change cause the recordings in subdirectories to be sorted
(as far as I remember). The second change moves entries beginning with
% to the end of the list.

Emil



More information about the vdr mailing list