Moin,
benutzt jemand das Remotetimers-Plugin zusammen mit dem hide-first-recording-level Patch?
Auf meinem Server läuft yaVDR. Die Klienten mounten das Aufnahmeverzeichnis via autofs nach /srv/vdr/video/VDR-Server.
Meine Klienten nehmen selber nicht auf.
Der erste Teil des Patches sorgt nur dafür, das die Festplattenbelegung des Servers im Titel angezeigt wird.
Die Änderung an 'SetCols' braucht es für den Skidesigner.
Der dritte Teil ist nochmal für die Festplattenbelegung des Servers im Titel, diesmal aber für das Edit-Menü.
Damit das serverseitige Schneiden funktioniert, braucht es die dritte vierte Anpassung.Ob der letzte Teil in watcher.c wirklich notwendig ist müsste mal jemand testen, der auf dem Klient auch aufnimmt...
Änderungen an watcher.c waren unnötig und wurden entfernt.
diff -ruN _old/vdr-plugin-remotetimers-1.0.2/menu.c vdr-plugin-remotetimers-1.0.2/menu.c
--- _old/vdr-plugin-remotetimers-1.0.2/menu.c 2015-07-29 21:31:37.000000000 +0200
+++ vdr-plugin-remotetimers-1.0.2/menu.c 2016-07-29 08:29:12.591163870 +0200
@@ -189,11 +189,28 @@
bool cFreeDiskSpace::HasChanged(const char *SubDir, bool ForceCheck)
{
cString path(ExchangeChars(strdup(SubDir ? SubDir : ""), true), true);
+ bool remote = false;
+#ifdef HIDE_FIRST_RECORDING_LEVEL_PATCH
+ if (cVideoDirectory::HideFirstRecordingLevel()) {
+ remote = RemoteTimersSetup.serverDir[0];
+ }
+#endif
+ if (remote) {
+ char *tmpDir = strdup(RemoteTimersSetup.serverDir);
+ tmpDir = ExchangeChars(tmpDir, true);
+#if APIVERSNUM > 20101
+ path = cString::sprintf("%s/%s/%s", cVideoDirectory::Name(), tmpDir, *path);
+#else
+ path = cString::sprintf("%s/%s/%s", VideoDirectory, tmpDir, *path);
+#endif
+ free(tmpDir);
+ } else {
#if APIVERSNUM > 20101
- path = cString::sprintf("%s/%s", cVideoDirectory::Name(), *path);
+ path = cString::sprintf("%s/%s", cVideoDirectory::Name(), *path);
#else
- path = cString::sprintf("%s/%s", VideoDirectory, *path);
+ path = cString::sprintf("%s/%s", VideoDirectory, *path);
#endif
+ }
if (ForceCheck || time(NULL) - lastDiskSpaceCheck > DISKSPACECHEK || !EntriesOnSameFileSystem(path, lastPath)) {
int FreeMB;
int Percent;
@@ -323,7 +340,8 @@
cMenuEditRemoteTimer::cMenuEditRemoteTimer(cTimer *Timer, bool Remote, bool New, cMenuTimerItem **TimerItem)
:cMenuEditTimer(Timer, New), timer(Timer), timerItem(TimerItem)
{
- SetCols(15, 4, 12);
+/* SetCols(15, 4, 12); */
+ SetCols(15, 45);
remote = tmpRemote = Remote;
user = tmpUser = New ? MASK_FROM_SETUP(RemoteTimersSetup.defaultUser) : cMenuTimerItem::ParseUser(timer);
cOsdItem *item = new cMenuEditBoolItem(trREMOTETIMERS("Location"), &tmpRemote, trREMOTETIMERS("local"), trREMOTETIMERS("remote"));
@@ -1735,6 +1753,20 @@
subMenuFolder = NULL;
file = NULL;
SetHelpKeys();
+#ifdef HIDE_FIRST_RECORDING_LEVEL_PATCH
+ if (cVideoDirectory::HideFirstRecordingLevel()) {
+ const char *firstFolder = Recording->FirstFolder();
+ if (strstr(firstFolder, RemoteTimersSetup.serverDir) == firstFolder) {
+ SetTitle(cString::sprintf("%s - %s", trREMOTETIMERS("Edit recording"), FreeDiskSpace.FreeDiskSpaceString()));
+ Add(new cOsdItem(tr("Remote Directory"), osUnknown, false));
+ }
+ else {
+ SetTitle(cString::sprintf("%s - %s", trREMOTETIMERS("Edit recording"), *cFreeDiskSpace::FreeDiskSpaceString(Recording)));
+ Add(new cOsdItem(tr("Local Directory"), osUnknown, false));
+ }
+ }
+ else
+#endif
SetTitle(cString::sprintf("%s - %s", trREMOTETIMERS("Edit recording"), *cFreeDiskSpace::FreeDiskSpaceString(Recording)));
Add(new cMenuEditIntItem(tr("Priority"), &priority, 0, MAXPRIORITY));
Add(new cMenuEditIntItem(tr("Lifetime"), &lifetime, 0, MAXLIFETIME));
@@ -1770,6 +1802,15 @@
const char *name = recording->Name();
int len = strlen(RemoteTimersSetup.serverDir);
bool remote = len == 0 || (strstr(name, RemoteTimersSetup.serverDir) == name && name[len] == FOLDERDELIMCHAR);
+#ifdef HIDE_FIRST_RECORDING_LEVEL_PATCH
+ if (cVideoDirectory::HideFirstRecordingLevel()) {
+ const char *firstFolder = recording->FirstFolder();
+ if (strstr(firstFolder, RemoteTimersSetup.serverDir) == firstFolder) {
+ remote = true;
+ len = 0;
+ }
+ }
+#endif
if (!remote) {
#if APIVERSNUM > 20101
if (RecordingsHandler.GetUsage(*fileName) == ruNone) {
Alles anzeigen
Verbesserungsvorschläge?
Have Fun