Hallo,
wie wohl viele habe ich meine Aufnahmen in Verzeichnisse und Unterverzeichnisse kopiert. Leider sortiert der VDR Verzeichnisse zwischen die Aufnahmen. Nachdem ich zunächst mit dem Vorsetzen von Leerzeichen (werden machmal durch _ ersetzt) und '-' (geschnittene Aufnahmen mit '%' landen doch wieder davor) die richtige Sortierung erzwingen wollte, hier nun ein kleiner aber feiner Patch.
Vorher:
[Blockierte Grafik: http://www.jepsennet.de/vdr/forum/sortrecordings1.gif]
Nachher:
[Blockierte Grafik: http://www.jepsennet.de/vdr/forum/sortrecordings2.gif]
Hauptsächlich war das Ziel die Verzeichnisse vorn einzusortieren.
Mit diesem Patch sortiert der VDR wie folgt:
- Verzeichnisse mit Aufnahmen werden immer vor einzelne Aufnahmen sortiert.
- Aufnahmen im Hauptverzeichnis werden wie bisher nach Name sortiert.
- Wenn Unterverzeichnisse auf eines der Zeichen "-",".","$" oder "ª" enden werden Aufnahmen nach Name sortiert.
- Sonst werden Aufnahmen in Unterverzeichnissen nach Datum sortiert
Dabei ist der Patch so einfach, dass er schneller abgetippt werden kann als patch auszuführen.
--- vdrdevel-1.3.24.org/recording.c 2005-05-07 17:25:15.000000000 +0200
+++ vdrdevel-1.3.24/recording.c 2005-06-17 00:24:44.000000000 +0200
@@ -445,8 +445,8 @@
s1 = t;
}
t++;
- }
- if (s1 && s2)
+ } *s1 = 255;
+ if (s1 && s2 && s1 != s && !strchr(".-$ª·", *(s1 - 1)))
memmove(s1 + 1, s2, t - s2 + 1);
return s;
}
@@ -454,7 +454,7 @@
char *cRecording::SortName(void) const
{
if (!sortBuffer) {
- char *s = StripEpisodeName(strdup(FileName() + strlen(VideoDirectory) + 1));
+ char *s = StripEpisodeName(strdup(FileName() + strlen(VideoDirectory) ));
int l = strxfrm(NULL, s, 0) + 1;
sortBuffer = MALLOC(char, l);
strxfrm(sortBuffer, s, l);
Alles anzeigen
Auch wenn ich ihn unter V1.3.24 gestestet und entwickelt habe, sollte er bis V1.2.6 funktionieren, da sich die betroffenen Funktionen seit dem nicht geändert haben.
Update: Auch unter 1.3.27 funktioniert er tadellos.
Update: Auch Verzeichnisse die auf das Zeichen "ª" (Alt-0170) enden werden jetzt alphanumerisch sortiert. Mit dem neuen sortswitch kann dies umgeschaltet werden. Beim Umschalten werden im VDR Messages angezeigt (z.B. 'Filme' wird jetzt nach Name sortiert.).
Update: Auch Verzeichnisse die auf das Zeichen "·" (Alt-0183) enden werden jetzt alphanumerisch sortiert.
Update: Dieser Patch ist jetzt in den Paketen von TomG für c'tVDR und im BigPatch von Frank99 integriert.
Über diesen Command-Hook läßt sich an jedes Unterverzeichnis ein "ª"-Zeichen anhängen beziehungsweise wieder entfernen und somit die Sortierung des Menüs von "nach Datum" zu "nach Name" und zurück zu wechseln.
[Blockierte Grafik: http://www.jepsennet.de/vdr/forum/sortrecordings3.gif]
Downloads:
reccmds.sortswitch.conf
sortswitch (new and improved)
sortrecordings.diff (diff zum Selberpatchen)
Tschüß Frank