2 Copyright 2004-2020 Chris Tallon
4 This file is part of VOMP.
6 VOMP is free software; you can redistribute it and/or modify
7 it under the terms of the GNU General Public License as published by
8 the Free Software Foundation; either version 2 of the License, or
9 (at your option) any later version.
11 VOMP is distributed in the hope that it will be useful,
12 but WITHOUT ANY WARRANTY; without even the implied warranty of
13 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 GNU General Public License for more details.
16 You should have received a copy of the GNU General Public License
17 along with VOMP. If not, see <https://www.gnu.org/licenses/>.
20 #include "directory.h"
22 Directory::Directory(const char* newName)
24 name = new char[strlen(newName) + 1];
25 strcpy(name, newName);
28 Directory::~Directory()
30 if (name) delete[] name;
32 index = -1; // just in case // FIXME remove this
35 for (i = 0; i < dirList.size(); i++)
41 for (i = 0; i < recList.size(); i++)
48 Directory* Directory::getDirByName(char* dirName)
50 for(UINT i = 0; i < dirList.size(); i++)
52 if (!strcmp(dirName, dirList[i]->name)) return dirList[i];
57 ULONG Directory::getNumRecordings()
59 ULONG total = recList.size();
60 for(UINT i = 0; i < dirList.size(); i++)
62 total += dirList[i]->getNumRecordings();
67 ULONG Directory::getNumNewRecordings()
70 for (UINT i = 0; i < recList.size(); i++)
72 if (recList[i]->getNew()) ++total;
75 for(UINT i = 0; i < dirList.size(); i++)
77 total += dirList[i]->getNumNewRecordings();
82 void Directory::sort(bool chronoSortOrder)
84 // Sort the directory order
85 std::sort(dirList.begin(), dirList.end(), DirectorySorter());
87 // Sort the recordings order
89 std::sort(recList.begin(), recList.end(), RecordingSorterChrono());
91 std::sort(recList.begin(), recList.end(), RecordingSorterAlpha());
93 // Now get the dirs to sort themselves! oh I love recursion.
94 for(UINT i = 0; i < dirList.size(); i++) dirList[i]->sort(chronoSortOrder);