Avoiding double entries when externally renaming a recording (cont'd)

This commit is contained in:
Klaus Schmidinger 2013-12-27 11:06:01 +01:00
parent 1379b621f7
commit ae4ffacbda
2 changed files with 7 additions and 6 deletions

View File

@ -4,7 +4,7 @@
* See the main source file 'vdr.c' for copyright information and
* how to reach the author.
*
* $Id: recording.c 3.10 2013/12/27 08:46:17 kls Exp $
* $Id: recording.c 3.11 2013/12/27 11:06:01 kls Exp $
*/
#include "recording.h"
@ -1390,7 +1390,7 @@ void cRecordings::Refresh(bool Foreground)
ScanVideoDir(cVideoDirectory::Name(), Foreground);
}
void cRecordings::ScanVideoDir(const char *DirName, bool Foreground, int LinkLevel, int DirLevel)
bool cRecordings::ScanVideoDir(const char *DirName, bool Foreground, int LinkLevel, int DirLevel)
{
bool DoChangeState = false;
// Find any new recordings:
@ -1432,7 +1432,7 @@ void cRecordings::ScanVideoDir(const char *DirName, bool Foreground, int LinkLev
}
}
else
ScanVideoDir(buffer, Foreground, LinkLevel + Link, DirLevel + 1);
DoChangeState |= ScanVideoDir(buffer, Foreground, LinkLevel + Link, DirLevel + 1);
}
}
}
@ -1450,8 +1450,9 @@ void cRecordings::ScanVideoDir(const char *DirName, bool Foreground, int LinkLev
}
}
}
if (DoChangeState)
if (DoChangeState && DirLevel == 0)
ChangeState();
return DoChangeState;
}
bool cRecordings::StateChanged(int &State)

View File

@ -4,7 +4,7 @@
* See the main source file 'vdr.c' for copyright information and
* how to reach the author.
*
* $Id: recording.h 3.2 2013/12/24 13:32:18 kls Exp $
* $Id: recording.h 3.3 2013/12/27 11:05:07 kls Exp $
*/
#ifndef __RECORDING_H
@ -223,7 +223,7 @@ private:
int state;
const char *UpdateFileName(void);
void Refresh(bool Foreground = false);
void ScanVideoDir(const char *DirName, bool Foreground = false, int LinkLevel = 0, int DirLevel = 0);
bool ScanVideoDir(const char *DirName, bool Foreground = false, int LinkLevel = 0, int DirLevel = 0);
protected:
void Action(void);
public: