Support for 10 level deep SD folder hierarchy

This commit is contained in:
Scott Lahteine
2013-05-04 04:18:02 -07:00
parent 0ef54f2f85
commit a5cd582665
2 changed files with 17 additions and 7 deletions

View File

@ -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];
}
}