Support for 10 level deep SD folder hierarchy
This commit is contained in:
@ -18,6 +18,8 @@ CardReader::CardReader()
|
||||
saving = false;
|
||||
logging = false;
|
||||
autostart_atmillis=0;
|
||||
workDirDepth = 0;
|
||||
memset(workDirParents, 0, sizeof(workDirParents));
|
||||
|
||||
autostart_stilltocheck=true; //the sd start is delayed, because otherwise the serial cannot answer fast enought to make contact with the hostsoftware.
|
||||
lastnr=0;
|
||||
@ -521,19 +523,24 @@ void CardReader::chdir(const char * relpath)
|
||||
}
|
||||
else
|
||||
{
|
||||
workDirParentParent=workDirParent;
|
||||
workDirParent=*parent;
|
||||
|
||||
if (workDirDepth < MAX_DIR_DEPTH) {
|
||||
for (int d = ++workDirDepth; d--;)
|
||||
workDirParents[d+1] = workDirParents[d];
|
||||
workDirParents[0]=*parent;
|
||||
}
|
||||
workDir=newfile;
|
||||
}
|
||||
}
|
||||
|
||||
void CardReader::updir()
|
||||
{
|
||||
if(!workDir.isRoot())
|
||||
if(workDirDepth > 0)
|
||||
{
|
||||
workDir=workDirParent;
|
||||
workDirParent=workDirParentParent;
|
||||
--workDirDepth;
|
||||
workDir = workDirParents[0];
|
||||
int d;
|
||||
for (int d = 0; d < workDirDepth; d++)
|
||||
workDirParents[d] = workDirParents[d+1];
|
||||
}
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user