diff --git a/src/common/FSNodeFactory.hxx b/src/common/FSNodeFactory.hxx index 1bb944be1..f11568943 100644 --- a/src/common/FSNodeFactory.hxx +++ b/src/common/FSNodeFactory.hxx @@ -38,7 +38,7 @@ class AbstractFSNode; @author Stephen Anthony */ -class FilesystemNodeFactory +class FSNodeFactory { public: enum class Type { SYSTEM, ZIP }; @@ -50,16 +50,16 @@ class FilesystemNodeFactory { case Type::SYSTEM: #if defined(BSPF_UNIX) || defined(BSPF_MACOS) - return make_unique(path); + return make_unique(path); #elif defined(BSPF_WINDOWS) - return make_unique(path); + return make_unique(path); #elif defined(__LIB_RETRO__) - return make_unique(path); + return make_unique(path); #endif break; case Type::ZIP: #if defined(ZIP_SUPPORT) - return make_unique(path); + return make_unique(path); #endif break; } @@ -68,11 +68,11 @@ class FilesystemNodeFactory private: // Following constructors and assignment operators not supported - FilesystemNodeFactory() = delete; - FilesystemNodeFactory(const FilesystemNodeFactory&) = delete; - FilesystemNodeFactory(FilesystemNodeFactory&&) = delete; - FilesystemNodeFactory& operator=(const FilesystemNodeFactory&) = delete; - FilesystemNodeFactory& operator=(FilesystemNodeFactory&&) = delete; + FSNodeFactory() = delete; + FSNodeFactory(const FSNodeFactory&) = delete; + FSNodeFactory(FSNodeFactory&&) = delete; + FSNodeFactory& operator=(const FSNodeFactory&) = delete; + FSNodeFactory& operator=(FSNodeFactory&&) = delete; }; #endif diff --git a/src/common/FSNodeZIP.cxx b/src/common/FSNodeZIP.cxx index 315c38dec..aa0cb75d3 100644 --- a/src/common/FSNodeZIP.cxx +++ b/src/common/FSNodeZIP.cxx @@ -26,7 +26,7 @@ #include "FSNodeZIP.hxx" // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -FilesystemNodeZIP::FilesystemNodeZIP(const string& p) +FSNodeZIP::FSNodeZIP(const string& p) { // Extract ZIP file and virtual file (if specified) const size_t pos = BSPF::findIgnoreCase(p, ".zip"); @@ -100,8 +100,8 @@ FilesystemNodeZIP::FilesystemNodeZIP(const string& p) // has direct access to the actual filesystem (aka, a 'System' node) // Behind the scenes, this node is actually a platform-specific object // for whatever system we are running on - _realNode = FilesystemNodeFactory::create(_zipFile, - FilesystemNodeFactory::Type::SYSTEM); + _realNode = FSNodeFactory::create(_zipFile, + FSNodeFactory::Type::SYSTEM); setFlags(_zipFile, _virtualPath, _realNode); // cerr << "==============================================================\n"; @@ -109,9 +109,8 @@ FilesystemNodeZIP::FilesystemNodeZIP(const string& p) } // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -FilesystemNodeZIP::FilesystemNodeZIP( - const string& zipfile, const string& virtualpath, - const AbstractFSNodePtr& realnode, size_t size, bool isdir) +FSNodeZIP::FSNodeZIP(const string& zipfile, const string& virtualpath, + const AbstractFSNodePtr& realnode, size_t size, bool isdir) : _size{size}, _isDirectory{isdir}, _isFile{!isdir} @@ -121,9 +120,8 @@ FilesystemNodeZIP::FilesystemNodeZIP( } // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -void FilesystemNodeZIP::setFlags(const string& zipfile, - const string& virtualpath, - const AbstractFSNodePtr& realnode) +void FSNodeZIP::setFlags(const string& zipfile, const string& virtualpath, + const AbstractFSNodePtr& realnode) { _zipFile = zipfile; _virtualPath = virtualpath; @@ -147,7 +145,7 @@ void FilesystemNodeZIP::setFlags(const string& zipfile, } // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -bool FilesystemNodeZIP::exists() const +bool FSNodeZIP::exists() const { if(_realNode && _realNode->exists()) { @@ -172,7 +170,7 @@ bool FilesystemNodeZIP::exists() const } // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -bool FilesystemNodeZIP::getChildren(AbstractFSList& myList, ListMode mode) const +bool FSNodeZIP::getChildren(AbstractFSList& myList, ListMode mode) const { // Files within ZIP archives don't contain children if(!isDirectory() || _error != zip_error::NONE) @@ -199,14 +197,14 @@ bool FilesystemNodeZIP::getChildren(AbstractFSList& myList, ListMode mode) const if(pos != string::npos) dirs.emplace(curr.substr(0, pos)); else - myList.emplace_back(new FilesystemNodeZIP(_zipFile, name, _realNode, size, false)); + myList.emplace_back(new FSNodeZIP(_zipFile, name, _realNode, size, false)); } } for(const auto& dir: dirs) { // Prepend previous path const string& vpath = _virtualPath != "" ? _virtualPath + "/" + dir : dir; - myList.emplace_back(new FilesystemNodeZIP(_zipFile, vpath, _realNode, 0, true)); + myList.emplace_back(new FSNodeZIP(_zipFile, vpath, _realNode, 0, true)); } // cerr << "list: \n"; @@ -217,7 +215,7 @@ bool FilesystemNodeZIP::getChildren(AbstractFSList& myList, ListMode mode) const } // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -size_t FilesystemNodeZIP::read(ByteBuffer& image, size_t) const +size_t FSNodeZIP::read(ByteBuffer& image, size_t) const { switch(_error) { @@ -240,7 +238,7 @@ size_t FilesystemNodeZIP::read(ByteBuffer& image, size_t) const } // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -size_t FilesystemNodeZIP::read(stringstream& image) const +size_t FSNodeZIP::read(stringstream& image) const { // For now, we just read into a buffer and store in the stream // TODO: maybe there's a more efficient way to do this? @@ -253,21 +251,21 @@ size_t FilesystemNodeZIP::read(stringstream& image) const } // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -size_t FilesystemNodeZIP::write(const ByteBuffer& buffer, size_t size) const +size_t FSNodeZIP::write(const ByteBuffer& buffer, size_t size) const { // TODO: Not yet implemented throw runtime_error("ZIP file not writable"); } // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -size_t FilesystemNodeZIP::write(const stringstream& buffer) const +size_t FSNodeZIP::write(const stringstream& buffer) const { // TODO: Not yet implemented throw runtime_error("ZIP file not writable"); } // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -AbstractFSNodePtr FilesystemNodeZIP::getParent() const +AbstractFSNodePtr FSNodeZIP::getParent() const { if(_virtualPath == "") return _realNode ? _realNode->getParent() : nullptr; @@ -275,10 +273,10 @@ AbstractFSNodePtr FilesystemNodeZIP::getParent() const const char* start = _path.c_str(); const char* end = lastPathComponent(_path); - return make_unique(string(start, end - start - 1)); + return make_unique(string(start, end - start - 1)); } // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -unique_ptr FilesystemNodeZIP::myZipHandler = make_unique(); +unique_ptr FSNodeZIP::myZipHandler = make_unique(); #endif // ZIP_SUPPORT diff --git a/src/common/FSNodeZIP.hxx b/src/common/FSNodeZIP.hxx index dc4c49127..1ff9f110b 100644 --- a/src/common/FSNodeZIP.hxx +++ b/src/common/FSNodeZIP.hxx @@ -32,15 +32,15 @@ * * Parts of this class are documented in the base interface class, AbstractFSNode. */ -class FilesystemNodeZIP : public AbstractFSNode +class FSNodeZIP : public AbstractFSNode { public: /** - * Creates a FilesystemNodeZIP for a given path. + * Creates a FSNodeZIP for a given path. * * @param path String with the path the new node should point to. */ - explicit FilesystemNodeZIP(const string& path); + explicit FSNodeZIP(const string& path); bool exists() const override; const string& getName() const override { return _name; } @@ -69,13 +69,13 @@ class FilesystemNodeZIP : public AbstractFSNode size_t write(const stringstream& buffer) const override; private: - FilesystemNodeZIP(const string& zipfile, const string& virtualpath, + FSNodeZIP(const string& zipfile, const string& virtualpath, const AbstractFSNodePtr& realnode, size_t size, bool isdir); void setFlags(const string& zipfile, const string& virtualpath, const AbstractFSNodePtr& realnode); - friend ostream& operator<<(ostream& os, const FilesystemNodeZIP& node) + friend ostream& operator<<(ostream& os, const FSNodeZIP& node) { os << "_zipFile: " << node._zipFile << endl << "_virtualPath: " << node._virtualPath << endl diff --git a/src/common/PNGLibrary.cxx b/src/common/PNGLibrary.cxx index 1bbe09e4d..db7b17ffc 100644 --- a/src/common/PNGLibrary.cxx +++ b/src/common/PNGLibrary.cxx @@ -314,7 +314,7 @@ void PNGLibrary::takeSnapshot(uInt32 number) // Determine if the file already exists, checking each successive filename // until one doesn't exist filename = sspath + ".png"; - FilesystemNode node(filename); + FSNode node(filename); if(node.exists()) { ostringstream buf; @@ -322,7 +322,7 @@ void PNGLibrary::takeSnapshot(uInt32 number) { buf.str(""); buf << sspath << "_" << i << ".png"; - FilesystemNode next(buf.str()); + FSNode next(buf.str()); if(!next.exists()) break; } diff --git a/src/common/main.cxx b/src/common/main.cxx index 9e7cb4da1..e0ff11f93 100644 --- a/src/common/main.cxx +++ b/src/common/main.cxx @@ -226,7 +226,7 @@ int main(int ac, char* av[]) else if(localOpts["rominfo"].toBool()) { Logger::debug("Showing output from 'rominfo' ..."); - FilesystemNode romnode(romfile); + FSNode romnode(romfile); Logger::error(theOSystem->getROMInfo(romnode)); return Cleanup(); @@ -245,7 +245,7 @@ int main(int ac, char* av[]) // open the rom launcher in that directory. // If not, use the built-in ROM launcher. In this case, we enter 'launcher' // mode and let the main event loop take care of opening a new console/ROM. - FilesystemNode romnode(romfile); + FSNode romnode(romfile); if(romfile == "" || romnode.isDirectory()) { Logger::debug("Attempting to use ROM launcher ..."); diff --git a/src/common/repository/KeyValueRepositoryConfigfile.cxx b/src/common/repository/KeyValueRepositoryConfigfile.cxx index c0562f32b..a538aa123 100644 --- a/src/common/repository/KeyValueRepositoryConfigfile.cxx +++ b/src/common/repository/KeyValueRepositoryConfigfile.cxx @@ -19,7 +19,7 @@ #include "Logger.hxx" // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -KeyValueRepositoryConfigfile::KeyValueRepositoryConfigfile(const FilesystemNode& file) +KeyValueRepositoryConfigfile::KeyValueRepositoryConfigfile(const FSNode& file) : KeyValueRepositoryFile(file) { } diff --git a/src/common/repository/KeyValueRepositoryConfigfile.hxx b/src/common/repository/KeyValueRepositoryConfigfile.hxx index d1137c4fe..14859153b 100644 --- a/src/common/repository/KeyValueRepositoryConfigfile.hxx +++ b/src/common/repository/KeyValueRepositoryConfigfile.hxx @@ -27,7 +27,7 @@ class KeyValueRepositoryConfigfile : public KeyValueRepositoryFile::load; using KeyValueRepositoryFile::save; - explicit KeyValueRepositoryConfigfile(const FilesystemNode& node); + explicit KeyValueRepositoryConfigfile(const FSNode& node); static std::map load(istream& in); diff --git a/src/common/repository/KeyValueRepositoryFile.hxx b/src/common/repository/KeyValueRepositoryFile.hxx index f26e2633e..a59818ba0 100644 --- a/src/common/repository/KeyValueRepositoryFile.hxx +++ b/src/common/repository/KeyValueRepositoryFile.hxx @@ -28,7 +28,7 @@ template class KeyValueRepositoryFile : public KeyValueRepository { public: - explicit KeyValueRepositoryFile(const FilesystemNode& node); + explicit KeyValueRepositoryFile(const FSNode& node); std::map load() override; @@ -36,7 +36,7 @@ class KeyValueRepositoryFile : public KeyValueRepository { protected: - const FilesystemNode& myNode; + const FSNode& myNode; }; /////////////////////////////////////////////////////////////////////////////// @@ -45,7 +45,7 @@ class KeyValueRepositoryFile : public KeyValueRepository { // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - template -KeyValueRepositoryFile::KeyValueRepositoryFile(const FilesystemNode& node) +KeyValueRepositoryFile::KeyValueRepositoryFile(const FSNode& node) : myNode{node} {} diff --git a/src/common/repository/KeyValueRepositoryJsonFile.cxx b/src/common/repository/KeyValueRepositoryJsonFile.cxx index 956f964f1..25ef6772c 100644 --- a/src/common/repository/KeyValueRepositoryJsonFile.cxx +++ b/src/common/repository/KeyValueRepositoryJsonFile.cxx @@ -30,7 +30,7 @@ namespace { } // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -KeyValueRepositoryJsonFile::KeyValueRepositoryJsonFile(const FilesystemNode& node) +KeyValueRepositoryJsonFile::KeyValueRepositoryJsonFile(const FSNode& node) : KeyValueRepositoryFile(node) { } diff --git a/src/common/repository/KeyValueRepositoryJsonFile.hxx b/src/common/repository/KeyValueRepositoryJsonFile.hxx index 24dfe8a37..547560fff 100644 --- a/src/common/repository/KeyValueRepositoryJsonFile.hxx +++ b/src/common/repository/KeyValueRepositoryJsonFile.hxx @@ -29,7 +29,7 @@ class KeyValueRepositoryJsonFile : public KeyValueRepositoryFile::load; using KeyValueRepositoryFile::save; - explicit KeyValueRepositoryJsonFile(const FilesystemNode& node); + explicit KeyValueRepositoryJsonFile(const FSNode& node); static std::map load(istream& in); diff --git a/src/common/repository/KeyValueRepositoryPropertyFile.cxx b/src/common/repository/KeyValueRepositoryPropertyFile.cxx index 97ac97a73..595dacdc1 100644 --- a/src/common/repository/KeyValueRepositoryPropertyFile.cxx +++ b/src/common/repository/KeyValueRepositoryPropertyFile.cxx @@ -71,7 +71,7 @@ namespace { // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - KeyValueRepositoryPropertyFile::KeyValueRepositoryPropertyFile( - const FilesystemNode& node) + const FSNode& node) : KeyValueRepositoryFile(node) { } diff --git a/src/common/repository/KeyValueRepositoryPropertyFile.hxx b/src/common/repository/KeyValueRepositoryPropertyFile.hxx index 95a6ae432..41d32a0f1 100644 --- a/src/common/repository/KeyValueRepositoryPropertyFile.hxx +++ b/src/common/repository/KeyValueRepositoryPropertyFile.hxx @@ -29,7 +29,7 @@ class KeyValueRepositoryPropertyFile : public KeyValueRepositoryFile::load; using KeyValueRepositoryFile::save; - explicit KeyValueRepositoryPropertyFile(const FilesystemNode& node); + explicit KeyValueRepositoryPropertyFile(const FSNode& node); static std::map load(istream& in); diff --git a/src/common/repository/sqlite/StellaDb.cxx b/src/common/repository/sqlite/StellaDb.cxx index ae7b7414c..c9bf2f072 100644 --- a/src/common/repository/sqlite/StellaDb.cxx +++ b/src/common/repository/sqlite/StellaDb.cxx @@ -87,7 +87,7 @@ void StellaDb::initialize() // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - const string StellaDb::databaseFileName() const { - return myDb ? FilesystemNode(myDb->fileName()).getShortPath() : "[failed]"; + return myDb ? FSNode(myDb->fileName()).getShortPath() : "[failed]"; } // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -101,7 +101,7 @@ void StellaDb::initializeDb() { importOldSettings(); - FilesystemNode legacyPropertyFile{myDatabaseDirectory}; + FSNode legacyPropertyFile{myDatabaseDirectory}; legacyPropertyFile /= "stella.pro"; if (legacyPropertyFile.exists() && legacyPropertyFile.isFile()) @@ -124,10 +124,10 @@ void StellaDb::importOldSettings() constexpr char LEGACY_SETTINGS_FILE[] = "stellarc"; #endif - FilesystemNode legacyConfigFile{myDatabaseDirectory}; + FSNode legacyConfigFile{myDatabaseDirectory}; legacyConfigFile /= LEGACY_SETTINGS_FILE; - FilesystemNode legacyConfigDatabase{myDatabaseDirectory}; + FSNode legacyConfigDatabase{myDatabaseDirectory}; legacyConfigDatabase /= "settings.sqlite3"; if (legacyConfigDatabase.exists() && legacyConfigDatabase.isFile()) @@ -138,7 +138,7 @@ void StellaDb::importOldSettings() } // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -void StellaDb::importStellarc(const FilesystemNode& node) +void StellaDb::importStellarc(const FSNode& node) { Logger::info("importing old settings from " + node.getPath()); @@ -146,7 +146,7 @@ void StellaDb::importStellarc(const FilesystemNode& node) } // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -void StellaDb::importOldStellaDb(const FilesystemNode& node) +void StellaDb::importOldStellaDb(const FSNode& node) { Logger::info("importing old settings from " + node.getPath()); @@ -167,7 +167,7 @@ void StellaDb::importOldStellaDb(const FilesystemNode& node) } // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -void StellaDb::importOldPropset(const FilesystemNode& node) +void StellaDb::importOldPropset(const FSNode& node) { Logger::info("importing old game properties from " + node.getPath()); diff --git a/src/common/repository/sqlite/StellaDb.hxx b/src/common/repository/sqlite/StellaDb.hxx index c8d7995dd..d744eda1c 100644 --- a/src/common/repository/sqlite/StellaDb.hxx +++ b/src/common/repository/sqlite/StellaDb.hxx @@ -44,9 +44,9 @@ class StellaDb void initializeDb(); void importOldSettings(); - void importStellarc(const FilesystemNode& node); - void importOldStellaDb(const FilesystemNode& node); - void importOldPropset(const FilesystemNode& node); + void importStellarc(const FSNode& node); + void importOldStellaDb(const FSNode& node); + void importOldPropset(const FSNode& node); void migrate(); diff --git a/src/debugger/CartDebug.cxx b/src/debugger/CartDebug.cxx index abdcbf4e7..1b9862ca8 100644 --- a/src/debugger/CartDebug.cxx +++ b/src/debugger/CartDebug.cxx @@ -815,7 +815,7 @@ string CartDebug::loadListFile() // The default naming/location for list files is the ROM dir based on the // actual ROM filename - FilesystemNode lst(myOSystem.romFile().getPathWithExt(".lst")); + FSNode lst(myOSystem.romFile().getPathWithExt(".lst")); if(!lst.isReadable()) return DebuggerParser::red("list file \'" + lst.getShortPath() + "\' not found"); @@ -876,7 +876,7 @@ string CartDebug::loadSymbolFile() // The default naming/location for symbol files is the ROM dir based on the // actual ROM filename - FilesystemNode sym(myOSystem.romFile().getPathWithExt(".sym")); + FSNode sym(myOSystem.romFile().getPathWithExt(".sym")); if(!sym.isReadable()) return DebuggerParser::red("symbol file \'" + sym.getShortPath() + "\' not found"); @@ -937,8 +937,8 @@ string CartDebug::loadConfigFile() // The default naming/location for config files is the CFG dir and based // on the actual ROM filename - FilesystemNode romNode(myOSystem.romFile().getPathWithExt(".cfg")); - FilesystemNode cfg = myOSystem.cfgDir(); cfg /= romNode.getName(); + FSNode romNode(myOSystem.romFile().getPathWithExt(".cfg")); + FSNode cfg = myOSystem.cfgDir(); cfg /= romNode.getName(); if(!cfg.isReadable()) return DebuggerParser::red("config file \'" + cfg.getShortPath() + "\' not found"); @@ -1076,8 +1076,8 @@ string CartDebug::saveConfigFile() stringstream retVal; try { - FilesystemNode romNode(myOSystem.romFile().getPathWithExt(".cfg")); - FilesystemNode cfg = myOSystem.cfgDir(); cfg /= romNode.getName(); + FSNode romNode(myOSystem.romFile().getPathWithExt(".cfg")); + FSNode cfg = myOSystem.cfgDir(); cfg /= romNode.getName(); if(!cfg.getParent().isWritable()) return DebuggerParser::red("config file \'" + cfg.getShortPath() + "\' not writable"); @@ -1413,7 +1413,7 @@ string CartDebug::saveDisassembly(string path) if(path.find_last_of('.') == string::npos) path += ".asm"; - FilesystemNode node(path); + FSNode node(path); stringstream retVal; try { @@ -1441,7 +1441,7 @@ string CartDebug::saveRom(string path) if(path.find_last_of('.') == string::npos) path += ".a26"; - FilesystemNode node(path); + FSNode node(path); if(myConsole.cartridge().saveROM(node)) return "saved ROM as " + node.getShortPath(); @@ -1467,7 +1467,7 @@ string CartDebug::saveAccessFile(string path) if(path.find_last_of('.') == string::npos) path += ".csv"; - FilesystemNode node(path); + FSNode node(path); node.write(out); return "saved access counters as " + node.getShortPath(); diff --git a/src/debugger/Debugger.cxx b/src/debugger/Debugger.cxx index 1d943b040..c9b777d79 100644 --- a/src/debugger/Debugger.cxx +++ b/src/debugger/Debugger.cxx @@ -177,13 +177,13 @@ string Debugger::autoExec(StringList* history) ostringstream buf; // autoexec.script is always run - FilesystemNode autoexec(myOSystem.baseDir().getPath() + "autoexec.script"); + FSNode autoexec(myOSystem.baseDir().getPath() + "autoexec.script"); buf << "autoExec():" << endl << myParser->exec(autoexec, history) << endl; // Also, "romname.script" if present const string path = myOSystem.userDir().getPath() + myOSystem.romFile().getNameWithExt(".script"); - FilesystemNode romname(path); + FSNode romname(path); buf << myParser->exec(romname, history) << endl; // Init builtins diff --git a/src/debugger/DebuggerParser.cxx b/src/debugger/DebuggerParser.cxx index 6dfa63dfa..41a2a910d 100644 --- a/src/debugger/DebuggerParser.cxx +++ b/src/debugger/DebuggerParser.cxx @@ -132,7 +132,7 @@ string DebuggerParser::run(const string& command) } // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -string DebuggerParser::exec(const FilesystemNode& file, StringList* history) +string DebuggerParser::exec(const FSNode& file, StringList* history) { if(file.exists()) { @@ -686,10 +686,10 @@ string DebuggerParser::saveScriptFile(string file) file += ".script"; // Use user dir if no path is provided - if(file.find_first_of(FilesystemNode::PATH_SEPARATOR) == string::npos) + if(file.find_first_of(FSNode::PATH_SEPARATOR) == string::npos) file = debugger.myOSystem.userDir().getPath() + file; - FilesystemNode node(file); + FSNode node(file); if(node.exists() || out.str().length()) { @@ -709,7 +709,7 @@ string DebuggerParser::saveScriptFile(string file) } // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -void DebuggerParser::saveDump(const FilesystemNode& node, const stringstream& out, +void DebuggerParser::saveDump(const FSNode& node, const stringstream& out, ostringstream& result) { try @@ -1270,7 +1270,7 @@ void DebuggerParser::executeDump() BrowserDialog::show(dlg, "Save Dump as", path.str(), BrowserDialog::Mode::FileSave, [this, dlg, outStr, resultStr] - (bool OK, const FilesystemNode& node) + (bool OK, const FSNode& node) { if(OK) { @@ -1286,7 +1286,7 @@ void DebuggerParser::executeDump() commandResult.str("_NO_PROMPT"); } else - saveDump(FilesystemNode(path.str()), out, commandResult); + saveDump(FSNode(path.str()), out, commandResult); } } @@ -1298,9 +1298,9 @@ void DebuggerParser::executeExec() string file = argStrings[0]; if(file.find_last_of('.') == string::npos) file += ".script"; - FilesystemNode node(file); + FSNode node(file); if (!node.exists()) - node = FilesystemNode(debugger.myOSystem.userDir().getPath() + file); + node = FSNode(debugger.myOSystem.userDir().getPath() + file); if (argCount == 2) { execPrefix = argStrings[1]; @@ -1925,7 +1925,7 @@ void DebuggerParser::executeSave() { BrowserDialog::show(dlg, "Save Workbench as", fileName, BrowserDialog::Mode::FileSave, - [this, dlg](bool OK, const FilesystemNode& node) + [this, dlg](bool OK, const FSNode& node) { if(OK) dlg->prompt().print(saveScriptFile(node.getPath()) + '\n'); @@ -1952,7 +1952,7 @@ void DebuggerParser::executeSaveAccess() BrowserDialog::show(dlg, "Save Access Counters as", dlg->instance().userDir().getPath() + cartName() + ".csv", BrowserDialog::Mode::FileSave, - [this, dlg](bool OK, const FilesystemNode& node) + [this, dlg](bool OK, const FSNode& node) { if(OK) dlg->prompt().print(debugger.cartDebug().saveAccessFile(node.getPath()) + '\n'); @@ -1983,7 +1983,7 @@ void DebuggerParser::executeSaveDisassembly() BrowserDialog::show(dlg, "Save Disassembly as", dlg->instance().userDir().getPath() + cartName() + ".asm", BrowserDialog::Mode::FileSave, - [this, dlg](bool OK, const FilesystemNode& node) + [this, dlg](bool OK, const FSNode& node) { if(OK) dlg->prompt().print(debugger.cartDebug().saveDisassembly(node.getPath()) + '\n'); @@ -2007,7 +2007,7 @@ void DebuggerParser::executeSaveRom() BrowserDialog::show(dlg, "Save ROM as", dlg->instance().userDir().getPath() + cartName() + ".a26", BrowserDialog::Mode::FileSave, - [this, dlg](bool OK, const FilesystemNode& node) + [this, dlg](bool OK, const FSNode& node) { if(OK) dlg->prompt().print(debugger.cartDebug().saveRom(node.getPath()) + '\n'); @@ -2035,7 +2035,7 @@ void DebuggerParser::executeSaveSes() BrowserDialog::show(dlg, "Save Session as", dlg->instance().userDir().getPath() + filename.str(), BrowserDialog::Mode::FileSave, - [this, dlg](bool OK, const FilesystemNode& node) + [this, dlg](bool OK, const FSNode& node) { if(OK) dlg->prompt().print(debugger.prompt().saveBuffer(node) + '\n'); @@ -2053,7 +2053,7 @@ void DebuggerParser::executeSaveSes() else path << debugger.myOSystem.userDir() << filename.str(); - commandResult << debugger.prompt().saveBuffer(FilesystemNode(path.str())); + commandResult << debugger.prompt().saveBuffer(FSNode(path.str())); } } diff --git a/src/debugger/DebuggerParser.hxx b/src/debugger/DebuggerParser.hxx index 595649967..dbfa4408c 100644 --- a/src/debugger/DebuggerParser.hxx +++ b/src/debugger/DebuggerParser.hxx @@ -23,7 +23,7 @@ class Debugger; class Settings; -class FilesystemNode; +class FSNode; struct Command; #include "bspf.hxx" @@ -38,7 +38,7 @@ class DebuggerParser string run(const string& command); /** Execute parser commands given in 'file' */ - string exec(const FilesystemNode& file, StringList* history = nullptr); + string exec(const FSNode& file, StringList* history = nullptr); /** Given a substring, determine matching substrings from the list of available commands. Used in the debugger prompt for tab-completion */ @@ -65,7 +65,7 @@ class DebuggerParser bool validateArgs(int cmd); string eval(); string saveScriptFile(string file); - void saveDump(const FilesystemNode& node, const stringstream& out, + void saveDump(const FSNode& node, const stringstream& out, ostringstream& result); const string& cartName() const; diff --git a/src/debugger/gui/DebuggerDialog.hxx b/src/debugger/gui/DebuggerDialog.hxx index b334a67ec..04d4d77ba 100644 --- a/src/debugger/gui/DebuggerDialog.hxx +++ b/src/debugger/gui/DebuggerDialog.hxx @@ -21,7 +21,7 @@ class Debugger; class OSystem; class DialogContainer; -class FilesystemNode; +class FSNode; class ButtonWidget; class CpuWidget; class PromptWidget; diff --git a/src/debugger/gui/PromptWidget.cxx b/src/debugger/gui/PromptWidget.cxx index ea5897160..737f34dcd 100644 --- a/src/debugger/gui/PromptWidget.cxx +++ b/src/debugger/gui/PromptWidget.cxx @@ -928,7 +928,7 @@ void PromptWidget::scrollToCurrent() } // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -string PromptWidget::saveBuffer(const FilesystemNode& file) +string PromptWidget::saveBuffer(const FSNode& file) { stringstream out; for(int start = 0; start < _promptStartPos; start += _lineWidth) diff --git a/src/debugger/gui/PromptWidget.hxx b/src/debugger/gui/PromptWidget.hxx index 3776141e3..510fc6ac4 100644 --- a/src/debugger/gui/PromptWidget.hxx +++ b/src/debugger/gui/PromptWidget.hxx @@ -21,7 +21,7 @@ #include class ScrollBarWidget; -class FilesystemNode; +class FSNode; #include "Widget.hxx" #include "Command.hxx" @@ -44,7 +44,7 @@ class PromptWidget : public Widget, public CommandSender public: void print(const string& str); void printPrompt(); - string saveBuffer(const FilesystemNode& file); + string saveBuffer(const FSNode& file); // Clear screen void clearScreen(); diff --git a/src/emucore/AtariVox.cxx b/src/emucore/AtariVox.cxx index 3ed388430..d8f43cf9e 100644 --- a/src/emucore/AtariVox.cxx +++ b/src/emucore/AtariVox.cxx @@ -22,7 +22,7 @@ // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - AtariVox::AtariVox(Jack jack, const Event& event, const System& system, - const string& portname, const FilesystemNode& eepromfile, + const string& portname, const FSNode& eepromfile, const onMessageCallback& callback) : SaveKey(jack, event, system, eepromfile, callback, Controller::Type::AtariVox), mySerialPort{MediaFactory::createSerialPort()} diff --git a/src/emucore/AtariVox.hxx b/src/emucore/AtariVox.hxx index 720fcbe8d..96602a2e7 100644 --- a/src/emucore/AtariVox.hxx +++ b/src/emucore/AtariVox.hxx @@ -20,7 +20,7 @@ class OSystem; class SerialPort; -class FilesystemNode; +class FSNode; #include "Control.hxx" #include "SaveKey.hxx" @@ -48,7 +48,7 @@ class AtariVox : public SaveKey @param callback Called to pass messages back to the parent controller */ AtariVox(Jack jack, const Event& event, const System& system, - const string& portname, const FilesystemNode& eepromfile, + const string& portname, const FSNode& eepromfile, const onMessageCallback& callback); ~AtariVox() override; diff --git a/src/emucore/Bankswitch.cxx b/src/emucore/Bankswitch.cxx index b491dca8b..ea5481182 100644 --- a/src/emucore/Bankswitch.cxx +++ b/src/emucore/Bankswitch.cxx @@ -40,7 +40,7 @@ string Bankswitch::typeToDesc(Bankswitch::Type type) } // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -Bankswitch::Type Bankswitch::typeFromExtension(const FilesystemNode& file) +Bankswitch::Type Bankswitch::typeFromExtension(const FSNode& file) { const string& name = file.getPath(); const string::size_type idx = name.find_last_of('.'); @@ -72,13 +72,13 @@ bool Bankswitch::isValidRomName(const string& name, string& ext) } // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -bool Bankswitch::isValidRomName(const FilesystemNode& name, string& ext) +bool Bankswitch::isValidRomName(const FSNode& name, string& ext) { return isValidRomName(name.getPath(), ext); } // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -bool Bankswitch::isValidRomName(const FilesystemNode& name) +bool Bankswitch::isValidRomName(const FSNode& name) { string ext; // extension not used return isValidRomName(name.getPath(), ext); diff --git a/src/emucore/Bankswitch.hxx b/src/emucore/Bankswitch.hxx index 5ec54982b..fb0f68928 100644 --- a/src/emucore/Bankswitch.hxx +++ b/src/emucore/Bankswitch.hxx @@ -71,7 +71,7 @@ class Bankswitch // Determine bankswitch type by filename extension // Use '_AUTO' if unknown - static Bankswitch::Type typeFromExtension(const FilesystemNode& file); + static Bankswitch::Type typeFromExtension(const FSNode& file); /** Is this a valid ROM filename (does it have a valid extension?). @@ -84,8 +84,8 @@ class Bankswitch /** Convenience functions for different parameter types. */ - static bool isValidRomName(const FilesystemNode& name, string& ext); - static bool isValidRomName(const FilesystemNode& name); + static bool isValidRomName(const FSNode& name, string& ext); + static bool isValidRomName(const FSNode& name); static bool isValidRomName(const string& name); // Output operator diff --git a/src/emucore/Cart.cxx b/src/emucore/Cart.cxx index 974b20e39..7f08c4451 100644 --- a/src/emucore/Cart.cxx +++ b/src/emucore/Cart.cxx @@ -53,7 +53,7 @@ void Cartridge::setAbout(const string& about, const string& type, } // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -bool Cartridge::saveROM(const FilesystemNode& out) const +bool Cartridge::saveROM(const FSNode& out) const { try { diff --git a/src/emucore/Cart.hxx b/src/emucore/Cart.hxx index a8a1afec4..b3b393e86 100644 --- a/src/emucore/Cart.hxx +++ b/src/emucore/Cart.hxx @@ -19,7 +19,7 @@ #define CARTRIDGE_HXX class Properties; -class FilesystemNode; +class FSNode; class CartDebugWidget; class CartRamWidget; class GuiObject; @@ -79,7 +79,7 @@ class Cartridge : public Device @param out The output file to save the image */ - bool saveROM(const FilesystemNode& out) const; + bool saveROM(const FSNode& out) const; /** Lock/unlock bankswitching and other hotspot capabilities. The debugger diff --git a/src/emucore/CartCreator.cxx b/src/emucore/CartCreator.cxx index d15039a00..7ee630c56 100644 --- a/src/emucore/CartCreator.cxx +++ b/src/emucore/CartCreator.cxx @@ -70,7 +70,7 @@ #include "CartCreator.hxx" // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -unique_ptr CartCreator::create(const FilesystemNode& file, +unique_ptr CartCreator::create(const FSNode& file, const ByteBuffer& image, size_t size, string& md5, const string& propertiesType, Settings& settings) { diff --git a/src/emucore/CartCreator.hxx b/src/emucore/CartCreator.hxx index 910b60a1d..10a2f457d 100644 --- a/src/emucore/CartCreator.hxx +++ b/src/emucore/CartCreator.hxx @@ -45,7 +45,7 @@ class CartCreator @param settings The settings container @return Pointer to the new cartridge object allocated on the heap */ - static unique_ptr create(const FilesystemNode& file, + static unique_ptr create(const FSNode& file, const ByteBuffer& image, size_t size, string& md5, const string& dtype, Settings& settings); diff --git a/src/emucore/CartDetector.cxx b/src/emucore/CartDetector.cxx index 6467d041f..a88f704ed 100644 --- a/src/emucore/CartDetector.cxx +++ b/src/emucore/CartDetector.cxx @@ -728,7 +728,7 @@ bool CartDetector::isProbablyMVC(const ByteBuffer& image, size_t size) } // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -size_t CartDetector::isProbablyMVC(const FilesystemNode& rom) +size_t CartDetector::isProbablyMVC(const FSNode& rom) { constexpr size_t frameSize = 2 * CartridgeMVC::MVC_FIELD_PAD_SIZE; diff --git a/src/emucore/CartDetector.hxx b/src/emucore/CartDetector.hxx index 4e2a623fe..d11db4682 100644 --- a/src/emucore/CartDetector.hxx +++ b/src/emucore/CartDetector.hxx @@ -45,7 +45,7 @@ class CartDetector MVC cartridges are of arbitary large length Returns size of frame if stream is probably an MVC movie cartridge */ - static size_t isProbablyMVC(const FilesystemNode& rom); + static size_t isProbablyMVC(const FSNode& rom); /** Returns true if the image is probably a HSC PlusROM diff --git a/src/emucore/Console.cxx b/src/emucore/Console.cxx index 4d98ab731..c45949b0b 100644 --- a/src/emucore/Console.cxx +++ b/src/emucore/Console.cxx @@ -972,7 +972,7 @@ unique_ptr Console::getControllerPort(const Controller::Type type, case Controller::Type::AtariVox: { - FilesystemNode nvramfile = myOSystem.nvramDir(); + FSNode nvramfile = myOSystem.nvramDir(); nvramfile /= "atarivox_eeprom.dat"; Controller::onMessageCallback callback = [&os = myOSystem](const string& msg) { bool devSettings = os.settings().getBool("dev.settings"); @@ -985,7 +985,7 @@ unique_ptr Console::getControllerPort(const Controller::Type type, } case Controller::Type::SaveKey: { - FilesystemNode nvramfile = myOSystem.nvramDir(); + FSNode nvramfile = myOSystem.nvramDir(); nvramfile /= "savekey_eeprom.dat"; Controller::onMessageCallback callback = [&os = myOSystem](const string& msg) { bool devSettings = os.settings().getBool("dev.settings"); diff --git a/src/emucore/FSNode.cxx b/src/emucore/FSNode.cxx index e2adfc626..03a13658f 100644 --- a/src/emucore/FSNode.cxx +++ b/src/emucore/FSNode.cxx @@ -20,19 +20,19 @@ #include "CartDetector.hxx" // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -FilesystemNode::FilesystemNode(const AbstractFSNodePtr& realNode) +FSNode::FSNode(const AbstractFSNodePtr& realNode) : _realNode{realNode} { } // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -FilesystemNode::FilesystemNode(const string& path) +FSNode::FSNode(const string& path) { setPath(path); } // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -void FilesystemNode::setPath(const string& path) +void FSNode::setPath(const string& path) { // Only create a new object when necessary if (path == getPath()) @@ -41,16 +41,14 @@ void FilesystemNode::setPath(const string& path) // Is this potentially a ZIP archive? #if defined(ZIP_SUPPORT) if (BSPF::containsIgnoreCase(path, ".zip")) - _realNode = FilesystemNodeFactory::create(path, - FilesystemNodeFactory::Type::ZIP); + _realNode = FSNodeFactory::create(path, FSNodeFactory::Type::ZIP); else #endif - _realNode = FilesystemNodeFactory::create(path, - FilesystemNodeFactory::Type::SYSTEM); + _realNode = FSNodeFactory::create(path, FSNodeFactory::Type::SYSTEM); } // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -FilesystemNode& FilesystemNode::operator/=(const string& path) +FSNode& FSNode::operator/=(const string& path) { if (path != EmptyString) { @@ -65,16 +63,16 @@ FilesystemNode& FilesystemNode::operator/=(const string& path) } // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -bool FilesystemNode::exists() const +bool FSNode::exists() const { return _realNode ? _realNode->exists() : false; } // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -bool FilesystemNode::getAllChildren(FSList& fslist, ListMode mode, - const NameFilter& filter, - bool includeParentDirectory, - const CancelCheck& isCancelled) const +bool FSNode::getAllChildren(FSList& fslist, ListMode mode, + const NameFilter& filter, + bool includeParentDirectory, + const CancelCheck& isCancelled) const { if(getChildren(fslist, mode, filter, includeParentDirectory, true, isCancelled)) { @@ -86,14 +84,14 @@ bool FilesystemNode::getAllChildren(FSList& fslist, ListMode mode, { if(BSPF::endsWithIgnoreCase(i.getPath(), ".zip")) { - FilesystemNodeZIP zipNode(i.getPath()); + FSNodeZIP zipNode(i.getPath()); i.setName(zipNode.getName()); } } #endif std::sort(fslist.begin(), fslist.end(), - [](const FilesystemNode& node1, const FilesystemNode& node2) + [](const FSNode& node1, const FSNode& node2) { if(node1.isDirectory() != node2.isDirectory()) return node1.isDirectory(); @@ -109,9 +107,9 @@ bool FilesystemNode::getAllChildren(FSList& fslist, ListMode mode, if(BSPF::endsWithIgnoreCase(i.getPath(), ".zip")) { // Force ZIP c'tor to be called - AbstractFSNodePtr ptr = FilesystemNodeFactory::create( - i.getPath(), FilesystemNodeFactory::Type::ZIP); - FilesystemNode zipNode(ptr); + AbstractFSNodePtr ptr = FSNodeFactory::create( + i.getPath(), FSNodeFactory::Type::ZIP); + FSNode zipNode(ptr); i = zipNode; } } @@ -122,11 +120,11 @@ bool FilesystemNode::getAllChildren(FSList& fslist, ListMode mode, } // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -bool FilesystemNode::getChildren(FSList& fslist, ListMode mode, - const NameFilter& filter, - bool includeChildDirectories, - bool includeParentDirectory, - const CancelCheck& isCancelled) const +bool FSNode::getChildren(FSList& fslist, ListMode mode, + const NameFilter& filter, + bool includeChildDirectories, + bool includeParentDirectory, + const CancelCheck& isCancelled) const { if (!_realNode || !_realNode->isDirectory()) return false; @@ -150,7 +148,7 @@ bool FilesystemNode::getChildren(FSList& fslist, ListMode mode, { if(BSPF::endsWithIgnoreCase(i->getPath(), ".zip")) { - FilesystemNodeZIP node(i->getPath()); + FSNodeZIP node(i->getPath()); i->setName(node.getName()); } } @@ -170,7 +168,7 @@ bool FilesystemNode::getChildren(FSList& fslist, ListMode mode, // Add parent node, if it is valid to do so if (includeParentDirectory && hasParent()) { - FilesystemNode parent = getParent(); + FSNode parent = getParent(); parent.setName(".."); fslist.emplace_back(parent); } @@ -185,9 +183,9 @@ bool FilesystemNode::getChildren(FSList& fslist, ListMode mode, if (BSPF::endsWithIgnoreCase(i->getPath(), ".zip")) { // Force ZIP c'tor to be called - AbstractFSNodePtr ptr = FilesystemNodeFactory::create( - i->getPath(), FilesystemNodeFactory::Type::ZIP); - FilesystemNode zipNode(ptr); + AbstractFSNodePtr ptr = FSNodeFactory::create( + i->getPath(), FSNodeFactory::Type::ZIP); + FSNode zipNode(ptr); if(filter(zipNode)) { @@ -196,7 +194,7 @@ bool FilesystemNode::getChildren(FSList& fslist, ListMode mode, else { // filter by zip node but add file node - FilesystemNode node(i); + FSNode node(i); fslist.emplace_back(node); } } @@ -204,7 +202,7 @@ bool FilesystemNode::getChildren(FSList& fslist, ListMode mode, else #endif { - FilesystemNode node(i); + FSNode node(i); if(includeChildDirectories) { @@ -226,32 +224,32 @@ bool FilesystemNode::getChildren(FSList& fslist, ListMode mode, } // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -const string& FilesystemNode::getName() const +const string& FSNode::getName() const { return _realNode ? _realNode->getName() : EmptyString; } // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -void FilesystemNode::setName(const string& name) +void FSNode::setName(const string& name) { if (_realNode) _realNode->setName(name); } // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -const string& FilesystemNode::getPath() const +const string& FSNode::getPath() const { return _realNode ? _realNode->getPath() : EmptyString; } // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -string FilesystemNode::getShortPath() const +string FSNode::getShortPath() const { return _realNode ? _realNode->getShortPath() : EmptyString; } // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -string FilesystemNode::getNameWithExt(const string& ext) const +string FSNode::getNameWithExt(const string& ext) const { if (!_realNode) return EmptyString; @@ -265,7 +263,7 @@ string FilesystemNode::getNameWithExt(const string& ext) const } // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -string FilesystemNode::getPathWithExt(const string& ext) const +string FSNode::getPathWithExt(const string& ext) const { if (!_realNode) return EmptyString; @@ -277,65 +275,65 @@ string FilesystemNode::getPathWithExt(const string& ext) const } // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -bool FilesystemNode::hasParent() const +bool FSNode::hasParent() const { return _realNode ? _realNode->hasParent() : false; } // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -FilesystemNode FilesystemNode::getParent() const +FSNode FSNode::getParent() const { if (!_realNode) return *this; AbstractFSNodePtr node = _realNode->getParent(); - return node ? FilesystemNode(node) : *this; + return node ? FSNode(node) : *this; } // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -bool FilesystemNode::isDirectory() const +bool FSNode::isDirectory() const { return _realNode ? _realNode->isDirectory() : false; } // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -bool FilesystemNode::isFile() const +bool FSNode::isFile() const { return _realNode ? _realNode->isFile() : false; } // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -bool FilesystemNode::isReadable() const +bool FSNode::isReadable() const { return _realNode ? _realNode->isReadable() : false; } // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -bool FilesystemNode::isWritable() const +bool FSNode::isWritable() const { return _realNode ? _realNode->isWritable() : false; } // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -bool FilesystemNode::makeDir() +bool FSNode::makeDir() { return (_realNode && !_realNode->exists()) ? _realNode->makeDir() : false; } // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -bool FilesystemNode::rename(const string& newfile) +bool FSNode::rename(const string& newfile) { return (_realNode && _realNode->exists()) ? _realNode->rename(newfile) : false; } // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -size_t FilesystemNode::getSize() const +size_t FSNode::getSize() const { return (_realNode && _realNode->exists()) ? _realNode->getSize() : 0; } // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -size_t FilesystemNode::read(ByteBuffer& buffer, size_t size) const +size_t FSNode::read(ByteBuffer& buffer, size_t size) const { size_t sizeRead = 0; @@ -370,7 +368,7 @@ size_t FilesystemNode::read(ByteBuffer& buffer, size_t size) const } // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -size_t FilesystemNode::read(stringstream& buffer) const +size_t FSNode::read(stringstream& buffer) const { size_t sizeRead = 0; @@ -403,7 +401,7 @@ size_t FilesystemNode::read(stringstream& buffer) const } // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -size_t FilesystemNode::write(const ByteBuffer& buffer, size_t size) const +size_t FSNode::write(const ByteBuffer& buffer, size_t size) const { size_t sizeWritten = 0; @@ -428,7 +426,7 @@ size_t FilesystemNode::write(const ByteBuffer& buffer, size_t size) const } // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -size_t FilesystemNode::write(const stringstream& buffer) const +size_t FSNode::write(const stringstream& buffer) const { size_t sizeWritten = 0; diff --git a/src/emucore/FSNode.hxx b/src/emucore/FSNode.hxx index fc9587ec3..21555e760 100644 --- a/src/emucore/FSNode.hxx +++ b/src/emucore/FSNode.hxx @@ -31,7 +31,7 @@ * paths (and it's left to them whether / or \ or : is the path separator :-). */ -class FilesystemNode; +class FSNode; class AbstractFSNode; using AbstractFSNodePtr = shared_ptr; @@ -40,13 +40,13 @@ using AbstractFSNodePtr = shared_ptr; * This is subclass instead of just a typedef so that we can use forward * declarations of it in other places. */ -class FSList : public vector { }; +class FSList : public vector { }; /** * This class acts as a wrapper around the AbstractFSNode class defined * in backends/fs. */ -class FilesystemNode +class FSNode { public: #ifdef BSPF_WINDOWS @@ -63,19 +63,19 @@ class FilesystemNode /** Function used to filter the file listing. Returns true if the filename should be included, else false.*/ - using NameFilter = std::function; + using NameFilter = std::function; using CancelCheck = std::function const; /** - * Create a new pathless FilesystemNode. Since there's no path associated + * Create a new pathless FSNode. Since there's no path associated * with this node, path-related operations (i.e. exists(), isDirectory(), * getPath()) will always return false or raise an assertion. */ - FilesystemNode() = default; - ~FilesystemNode() = default; + FSNode() = default; + ~FSNode() = default; /** - * Create a new FilesystemNode referring to the specified path. This is + * Create a new FSNode referring to the specified path. This is * the counterpart to the path() method. * * If path is empty or equals '~', then a node representing the @@ -83,21 +83,21 @@ class FilesystemNode * operating system doesn't support the concept), some other directory is * used (usually the root directory). */ - explicit FilesystemNode(const string& path); + explicit FSNode(const string& path); /** * Assignment operators. */ - FilesystemNode(const FilesystemNode&) = default; - FilesystemNode& operator=(const FilesystemNode&) = default; - FilesystemNode& operator=(FilesystemNode&&) = default; - FilesystemNode(FilesystemNode&&) = default; + FSNode(const FSNode&) = default; + FSNode& operator=(const FSNode&) = default; + FSNode& operator=(FSNode&&) = default; + FSNode(FSNode&&) = default; /** * Compare the name of this node to the name of another, testing for * equality. */ - inline bool operator==(const FilesystemNode& node) const + inline bool operator==(const FSNode& node) const { return BSPF::compareIgnoreCase(getName(), node.getName()) == 0; } @@ -106,13 +106,13 @@ class FilesystemNode * Append the given path to the node, adding a directory separator * when necessary. Modelled on the C++17 fs::path API. */ - FilesystemNode& operator/=(const string& path); + FSNode& operator/=(const string& path); /** * By default, the output operator simply outputs the fully-qualified * pathname of the node. */ - friend ostream& operator<<(ostream& os, const FilesystemNode& node) + friend ostream& operator<<(ostream& os, const FSNode& node) { return os << node.getPath(); } @@ -133,7 +133,7 @@ class FilesystemNode * does not exist). */ bool getAllChildren(FSList& fslist, ListMode mode = ListMode::DirectoriesOnly, - const NameFilter& filter = [](const FilesystemNode&) { return true; }, + const NameFilter& filter = [](const FSNode&) { return true; }, bool includeParentDirectory = true, const CancelCheck& isCancelled = []() { return false; }) const; @@ -145,7 +145,7 @@ class FilesystemNode * does not exist). */ bool getChildren(FSList& fslist, ListMode mode = ListMode::DirectoriesOnly, - const NameFilter& filter = [](const FilesystemNode&){ return true; }, + const NameFilter& filter = [](const FSNode&){ return true; }, bool includeChildDirectories = false, bool includeParentDirectory = true, const CancelCheck& isCancelled = []() { return false; }) const; @@ -188,7 +188,7 @@ class FilesystemNode * Get the parent node of this node. If this node has no parent node, * then it returns a duplicate of this node. */ - FilesystemNode getParent() const; + FSNode getParent() const; /** * Indicates whether the path refers to a directory or not. @@ -306,7 +306,7 @@ class FilesystemNode string getPathWithExt(const string& ext) const; private: - explicit FilesystemNode(const AbstractFSNodePtr& realNode); + explicit FSNode(const AbstractFSNodePtr& realNode); AbstractFSNodePtr _realNode; void setPath(const string& path); }; @@ -326,9 +326,9 @@ using AbstractFSList = vector; class AbstractFSNode { protected: - friend class FilesystemNode; - using ListMode = FilesystemNode::ListMode; - using NameFilter = FilesystemNode::NameFilter; + friend class FSNode; + using ListMode = FSNode::ListMode; + using NameFilter = FSNode::NameFilter; public: /** @@ -360,7 +360,7 @@ class AbstractFSNode virtual bool getChildren(AbstractFSList& list, ListMode mode) const = 0; /** - * Returns the last component of the path pointed by this FilesystemNode. + * Returns the last component of the path pointed by this FSNode. * * Examples (POSIX): * /foo/bar.txt would return /bar.txt diff --git a/src/emucore/MD5.hxx b/src/emucore/MD5.hxx index 55fe71145..8b99d243e 100644 --- a/src/emucore/MD5.hxx +++ b/src/emucore/MD5.hxx @@ -18,7 +18,7 @@ #ifndef MD5_HXX #define MD5_HXX -class FilesystemNode; +class FSNode; #include "bspf.hxx" diff --git a/src/emucore/MT24LC256.cxx b/src/emucore/MT24LC256.cxx index d9c6ed709..7c254fa59 100644 --- a/src/emucore/MT24LC256.cxx +++ b/src/emucore/MT24LC256.cxx @@ -43,7 +43,7 @@ */ // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -MT24LC256::MT24LC256(const FilesystemNode& eepromfile, const System& system, +MT24LC256::MT24LC256(const FSNode& eepromfile, const System& system, const Controller::onMessageCallback& callback) : mySystem{system}, myCallback{callback}, diff --git a/src/emucore/MT24LC256.hxx b/src/emucore/MT24LC256.hxx index b840bfc90..588ca3513 100644 --- a/src/emucore/MT24LC256.hxx +++ b/src/emucore/MT24LC256.hxx @@ -41,7 +41,7 @@ class MT24LC256 @param system The system using the controller of this device @param callback Called to pass messages back to the parent controller */ - MT24LC256(const FilesystemNode& eepromfile, const System& system, + MT24LC256(const FSNode& eepromfile, const System& system, const Controller::onMessageCallback& callback); ~MT24LC256(); @@ -111,7 +111,7 @@ class MT24LC256 uInt64 myCyclesWhenSDASet{0}, myCyclesWhenSCLSet{0}; // The file containing the EEPROM data - FilesystemNode myDataFile; + FSNode myDataFile; // Indicates if the EEPROM has changed since class invocation bool myDataChanged{false}; diff --git a/src/emucore/OSystem.cxx b/src/emucore/OSystem.cxx index 36f17cf82..05dca1e17 100644 --- a/src/emucore/OSystem.cxx +++ b/src/emucore/OSystem.cxx @@ -223,11 +223,11 @@ void OSystem::loadConfig(const Settings::Options& options) ourOverrideBaseDirWithApp, ourOverrideBaseDir); // Get fully-qualified pathnames, and make directories when needed - myBaseDir = FilesystemNode(baseDir); + myBaseDir = FSNode(baseDir); if(!myBaseDir.isDirectory()) myBaseDir.makeDir(); - myHomeDir = FilesystemNode(homeDir); + myHomeDir = FSNode(homeDir); if(!myHomeDir.isDirectory()) myHomeDir.makeDir(); @@ -242,7 +242,7 @@ void OSystem::loadConfig(const Settings::Options& options) string userDir = mySettings->getString("userdir"); if(userDir.empty()) userDir = homeDir; - myUserDir = FilesystemNode(userDir); + myUserDir = FSNode(userDir); if(!myUserDir.isDirectory()) myUserDir.makeDir(); @@ -272,8 +272,8 @@ void OSystem::saveConfig() void OSystem::setConfigPaths() { // Make sure all required directories actually exist - const auto buildDirIfRequired = [](FilesystemNode& path, - const FilesystemNode& initialPath, + const auto buildDirIfRequired = [](FSNode& path, + const FSNode& initialPath, const string& pathToAppend = EmptyString) { path = initialPath; @@ -294,7 +294,7 @@ void OSystem::setConfigPaths() if(ssSaveDir == EmptyString) mySnapshotSaveDir = userDir(); else - mySnapshotSaveDir = FilesystemNode(ssSaveDir); + mySnapshotSaveDir = FSNode(ssSaveDir); if(!mySnapshotSaveDir.isDirectory()) mySnapshotSaveDir.makeDir(); @@ -302,7 +302,7 @@ void OSystem::setConfigPaths() if(ssLoadDir == EmptyString) mySnapshotLoadDir = userDir(); else - mySnapshotLoadDir = FilesystemNode(ssLoadDir); + mySnapshotLoadDir = FSNode(ssLoadDir); if(!mySnapshotLoadDir.isDirectory()) mySnapshotLoadDir.makeDir(); #endif @@ -312,7 +312,7 @@ void OSystem::setConfigPaths() #if 0 // Debug code - auto dbgPath = [](const string& desc, const FilesystemNode& location) + auto dbgPath = [](const string& desc, const FSNode& location) { cerr << desc << ": " << location << endl; }; @@ -332,7 +332,7 @@ void OSystem::setUserDir(const string& path) { mySettings->setValue("userdir", path); - myUserDir = FilesystemNode(path); + myUserDir = FSNode(path); } // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -413,7 +413,7 @@ void OSystem::createSound() } // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -string OSystem::createConsole(const FilesystemNode& rom, const string& md5sum, +string OSystem::createConsole(const FSNode& rom, const string& md5sum, bool newrom) { bool showmessage = false; @@ -489,7 +489,7 @@ string OSystem::createConsole(const FilesystemNode& rom, const string& md5sum, } buf << "Game console created:" << endl << " ROM file: " << myRomFile.getShortPath() << endl; - FilesystemNode propsFile(myRomFile.getPathWithExt(".pro")); + FSNode propsFile(myRomFile.getPathWithExt(".pro")); if(propsFile.exists()) buf << " PRO file: " << propsFile.getShortPath() << endl; buf << endl << getROMInfo(*myConsole); @@ -602,7 +602,7 @@ bool OSystem::launcherLostFocus() } // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -string OSystem::getROMInfo(const FilesystemNode& romfile) +string OSystem::getROMInfo(const FSNode& romfile) { unique_ptr console; try @@ -634,7 +634,7 @@ void OSystem::resetFps() } // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -unique_ptr OSystem::openConsole(const FilesystemNode& romfile, string& md5) +unique_ptr OSystem::openConsole(const FSNode& romfile, string& md5) { unique_ptr console; @@ -746,7 +746,7 @@ void OSystem::closeConsole() } // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -ByteBuffer OSystem::openROM(const FilesystemNode& rom, string& md5, size_t& size) +ByteBuffer OSystem::openROM(const FSNode& rom, string& md5, size_t& size) { // This method has a documented side-effect: // It not only loads a ROM and creates an array with its contents, @@ -770,7 +770,7 @@ ByteBuffer OSystem::openROM(const FilesystemNode& rom, string& md5, size_t& size } // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -string OSystem::getROMMD5(const FilesystemNode& rom) const +string OSystem::getROMMD5(const FSNode& rom) const { size_t size = 0; const ByteBuffer image = openROM(rom, size, false); // ignore error message @@ -779,7 +779,7 @@ string OSystem::getROMMD5(const FilesystemNode& rom) const } // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -ByteBuffer OSystem::openROM(const FilesystemNode& rom, size_t& size, +ByteBuffer OSystem::openROM(const FSNode& rom, size_t& size, bool showErrorMessage) const { // First check if this is a valid ROM filename diff --git a/src/emucore/OSystem.hxx b/src/emucore/OSystem.hxx index 840dea9b7..683caf4c6 100644 --- a/src/emucore/OSystem.hxx +++ b/src/emucore/OSystem.hxx @@ -266,31 +266,31 @@ class OSystem /** Return the default full/complete path name for storing data. */ - const FilesystemNode& baseDir() const { return myBaseDir; } + const FSNode& baseDir() const { return myBaseDir; } /** Return the full/complete path name for storing state files. */ - const FilesystemNode& stateDir() const { return myStateDir; } + const FSNode& stateDir() const { return myStateDir; } /** Return the full/complete path name for storing nvram (flash/EEPROM) files. */ - const FilesystemNode& nvramDir() const { return myNVRamDir; } + const FSNode& nvramDir() const { return myNVRamDir; } #ifdef CHEATCODE_SUPPORT /** Return the full/complete path name of the cheat file. */ - const FilesystemNode& cheatFile() const { return myCheatFile; } + const FSNode& cheatFile() const { return myCheatFile; } #endif #ifdef DEBUGGER_SUPPORT /** Return the full/complete path name for storing Distella cfg files. */ - const FilesystemNode& cfgDir() const { return myCfgDir; } + const FSNode& cfgDir() const { return myCfgDir; } #endif #ifdef PNG_SUPPORT @@ -298,14 +298,14 @@ class OSystem Return the full/complete path name for saving and loading PNG snapshots. */ - const FilesystemNode& snapshotSaveDir() const { return mySnapshotSaveDir; } - const FilesystemNode& snapshotLoadDir() const { return mySnapshotLoadDir; } + const FSNode& snapshotSaveDir() const { return mySnapshotSaveDir; } + const FSNode& snapshotLoadDir() const { return mySnapshotLoadDir; } #endif /** Return the full/complete path name of the (optional) palette file. */ - const FilesystemNode& paletteFile() const { return myPaletteFile; } + const FSNode& paletteFile() const { return myPaletteFile; } /** Checks if a valid a user-defined palette file exists. @@ -315,14 +315,14 @@ class OSystem /** Return the full/complete path name of the currently loaded ROM. */ - const FilesystemNode& romFile() const { return myRomFile; } + const FSNode& romFile() const { return myRomFile; } /** The default and user defined locations for saving and loading various files that don't already have a specific location. */ - const FilesystemNode& homeDir() const { return myHomeDir; } - const FilesystemNode& userDir() const { return myUserDir; } + const FSNode& homeDir() const { return myHomeDir; } + const FSNode& userDir() const { return myUserDir; } /** Open the given ROM and return an array containing its contents. @@ -336,7 +336,7 @@ class OSystem @return Unique pointer to the array */ - ByteBuffer openROM(const FilesystemNode& rom, string& md5, size_t& size); + ByteBuffer openROM(const FSNode& rom, string& md5, size_t& size); /** Open the given ROM and return the MD5sum of the data. @@ -345,7 +345,7 @@ class OSystem @return MD5 of the ROM image (if valid), otherwise EmptyString */ - string getROMMD5(const FilesystemNode& rom) const; + string getROMMD5(const FSNode& rom) const; /** Creates a new game console from the specified romfile, and correctly @@ -357,7 +357,7 @@ class OSystem @return String indicating any error message (EmptyString for no errors) */ - string createConsole(const FilesystemNode& rom, const string& md5 = "", + string createConsole(const FSNode& rom, const string& md5 = "", bool newrom = true); /** @@ -402,7 +402,7 @@ class OSystem @param romfile The file node of the ROM to use @return Some information about this ROM */ - string getROMInfo(const FilesystemNode& romfile); + string getROMInfo(const FSNode& romfile); /** Toggle state rewind recording mode; this uses the RewindManager @@ -499,7 +499,7 @@ class OSystem virtual void getBaseDirectories(string& basedir, string& homedir, bool useappdir, const string& usedir) = 0; - virtual void initPersistence(FilesystemNode& basedir) = 0; + virtual void initPersistence(FSNode& basedir) = 0; virtual string describePresistence() = 0; @@ -587,10 +587,10 @@ class OSystem bool myQuitLoop{false}; private: - FilesystemNode myBaseDir, myStateDir, mySnapshotSaveDir, mySnapshotLoadDir, - myNVRamDir, myCfgDir, myHomeDir, myUserDir; - FilesystemNode myCheatFile, myPaletteFile; - FilesystemNode myRomFile; string myRomMD5; + FSNode myBaseDir, myStateDir, mySnapshotSaveDir, mySnapshotLoadDir, + myNVRamDir, myCfgDir, myHomeDir, myUserDir; + FSNode myCheatFile, myPaletteFile; + FSNode myRomFile; string myRomMD5; string myFeatures; string myBuildInfo; @@ -628,7 +628,7 @@ class OSystem @return Unique pointer to the array, otherwise nullptr */ - ByteBuffer openROM(const FilesystemNode& romfile, size_t& size, + ByteBuffer openROM(const FSNode& romfile, size_t& size, bool showErrorMessage) const; /** @@ -639,7 +639,7 @@ class OSystem @return The actual Console object, otherwise nullptr */ - unique_ptr openConsole(const FilesystemNode& romfile, string& md5); + unique_ptr openConsole(const FSNode& romfile, string& md5); /** Close and finalize any currently open console. diff --git a/src/emucore/OSystemStandalone.cxx b/src/emucore/OSystemStandalone.cxx index d017408dd..abce35399 100644 --- a/src/emucore/OSystemStandalone.cxx +++ b/src/emucore/OSystemStandalone.cxx @@ -19,7 +19,7 @@ #include "OSystemStandalone.hxx" // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -void OSystemStandalone::initPersistence(FilesystemNode& basedir) +void OSystemStandalone::initPersistence(FSNode& basedir) { myStellaDb = make_shared(basedir.getPath(), "stella"); myStellaDb->initialize(); diff --git a/src/emucore/OSystemStandalone.hxx b/src/emucore/OSystemStandalone.hxx index 031f765e2..0c59db71e 100644 --- a/src/emucore/OSystemStandalone.hxx +++ b/src/emucore/OSystemStandalone.hxx @@ -36,7 +36,7 @@ class OSystemStandalone : public OSystem protected: - void initPersistence(FilesystemNode& basedir) override; + void initPersistence(FSNode& basedir) override; string describePresistence() override; diff --git a/src/emucore/ProfilingRunner.cxx b/src/emucore/ProfilingRunner.cxx index 0ba712ab6..95c43ba99 100644 --- a/src/emucore/ProfilingRunner.cxx +++ b/src/emucore/ProfilingRunner.cxx @@ -96,7 +96,7 @@ bool ProfilingRunner::run() // stacksize '16384'. Consider moving some data to heap. bool ProfilingRunner::runOne(const ProfilingRun& run) { - FilesystemNode imageFile(run.romFile); + FSNode imageFile(run.romFile); if (!imageFile.isFile()) { cout << "ERROR: " << run.romFile << " is not a ROM image" << endl; diff --git a/src/emucore/PropsSet.cxx b/src/emucore/PropsSet.cxx index b80c7245c..f3e00a921 100644 --- a/src/emucore/PropsSet.cxx +++ b/src/emucore/PropsSet.cxx @@ -144,7 +144,7 @@ void PropertiesSet::insert(const Properties& properties, bool save) } // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -void PropertiesSet::loadPerROM(const FilesystemNode& rom, const string& md5) +void PropertiesSet::loadPerROM(const FSNode& rom, const string& md5) { Properties props; @@ -154,7 +154,7 @@ void PropertiesSet::loadPerROM(const FilesystemNode& rom, const string& md5) // First, does this ROM have a per-ROM properties entry? // If so, load it into the database - FilesystemNode propsNode(rom.getPathWithExt(".pro")); + FSNode propsNode(rom.getPathWithExt(".pro")); if (propsNode.exists()) { KeyValueRepositoryPropertyFile repo(propsNode); props.load(repo); diff --git a/src/emucore/PropsSet.hxx b/src/emucore/PropsSet.hxx index 946b61f89..4fb82a861 100644 --- a/src/emucore/PropsSet.hxx +++ b/src/emucore/PropsSet.hxx @@ -20,7 +20,7 @@ #include -class FilesystemNode; +class FSNode; class OSystem; #include "bspf.hxx" @@ -82,7 +82,7 @@ class PropertiesSet @param rom The node representing the rom file @param md5 The md5 of the property to get */ - void loadPerROM(const FilesystemNode& rom, const string& md5); + void loadPerROM(const FSNode& rom, const string& md5); /** Prints the contents of the PropertiesSet as a flat file. diff --git a/src/emucore/QuadTari.cxx b/src/emucore/QuadTari.cxx index 5440aae36..c132cc54a 100644 --- a/src/emucore/QuadTari.cxx +++ b/src/emucore/QuadTari.cxx @@ -68,7 +68,7 @@ QuadTari::QuadTari(Jack jack, const OSystem& osystem, const System& system, // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - unique_ptr QuadTari::addController(const Controller::Type type, bool second) { - FilesystemNode nvramfile = myOSystem.nvramDir(); + FSNode nvramfile = myOSystem.nvramDir(); Controller::onMessageCallback callback = [&os = myOSystem](const string& msg) { bool devSettings = os.settings().getBool("dev.settings"); if(os.settings().getBool(devSettings ? "dev.extaccess" : "plr.extaccess")) diff --git a/src/emucore/SaveKey.cxx b/src/emucore/SaveKey.cxx index c9b4139dc..f7fcee62b 100644 --- a/src/emucore/SaveKey.cxx +++ b/src/emucore/SaveKey.cxx @@ -22,7 +22,7 @@ // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - SaveKey::SaveKey(Jack jack, const Event& event, const System& system, - const FilesystemNode& eepromfile, const onMessageCallback& callback, + const FSNode& eepromfile, const onMessageCallback& callback, Type type) : Controller(jack, event, system, type), myEEPROM{make_unique(eepromfile, system, callback)} @@ -33,7 +33,7 @@ SaveKey::SaveKey(Jack jack, const Event& event, const System& system, // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - SaveKey::SaveKey(Jack jack, const Event& event, const System& system, - const FilesystemNode& eepromfile, const onMessageCallback& callback) + const FSNode& eepromfile, const onMessageCallback& callback) : SaveKey(jack, event, system, eepromfile, callback, Controller::Type::SaveKey) { } diff --git a/src/emucore/SaveKey.hxx b/src/emucore/SaveKey.hxx index 8b1e6ce05..62bc62546 100644 --- a/src/emucore/SaveKey.hxx +++ b/src/emucore/SaveKey.hxx @@ -20,7 +20,7 @@ class MT24LC256; class OSystem; -class FilesystemNode; +class FSNode; #include "Control.hxx" @@ -46,7 +46,7 @@ class SaveKey : public Controller @param callback Called to pass messages back to the parent controller */ SaveKey(Jack jack, const Event& event, const System& system, - const FilesystemNode& eepromfile, const onMessageCallback& callback); + const FSNode& eepromfile, const onMessageCallback& callback); ~SaveKey() override; protected: @@ -55,7 +55,7 @@ class SaveKey : public Controller that inherit from SaveKey (currently, AtariVox) */ SaveKey(Jack jack, const Event& event, const System& system, - const FilesystemNode& eepromfile, + const FSNode& eepromfile, const onMessageCallback& callback, Type type); public: diff --git a/src/emucore/Serializer.cxx b/src/emucore/Serializer.cxx index 80376eb9b..546379201 100644 --- a/src/emucore/Serializer.cxx +++ b/src/emucore/Serializer.cxx @@ -26,7 +26,7 @@ Serializer::Serializer(const string& filename, Mode m) { if(m == Mode::ReadOnly) { - FilesystemNode node(filename); + FSNode node(filename); if(node.isFile() && node.isReadable()) { unique_ptr str = make_unique(filename, ios::in | ios::binary); diff --git a/src/gui/BrowserDialog.cxx b/src/gui/BrowserDialog.cxx index 016d06bf9..3d00b5d34 100644 --- a/src/gui/BrowserDialog.cxx +++ b/src/gui/BrowserDialog.cxx @@ -115,7 +115,7 @@ void BrowserDialog::show(GuiObject* parent, const GUI::Font& font, const string& title, const string& startpath, BrowserDialog::Mode mode, const Command& command, - const FilesystemNode::NameFilter& namefilter) + const FSNode::NameFilter& namefilter) { uInt32 w = 0, h = 0; @@ -136,7 +136,7 @@ void BrowserDialog::show(GuiObject* parent, const string& title, const string& startpath, BrowserDialog::Mode mode, const Command& command, - const FilesystemNode::NameFilter& namefilter) + const FSNode::NameFilter& namefilter) { show(parent, parent->instance().frameBuffer().font(), title, startpath, mode, command, namefilter); @@ -153,7 +153,7 @@ void BrowserDialog::hide() void BrowserDialog::show(const string& startpath, BrowserDialog::Mode mode, const Command& command, - const FilesystemNode::NameFilter& namefilter) + const FSNode::NameFilter& namefilter) { const int fontWidth = Dialog::fontWidth(), VGAP = Dialog::vGap(); @@ -167,7 +167,7 @@ void BrowserDialog::show(const string& startpath, if(_mode != Mode::Directories) { // split startpath into path and filename - FilesystemNode fs = FilesystemNode(startpath); + FSNode fs = FSNode(startpath); fileName = fs.getName(); directory = fs.isDirectory() ? "" : fs.getParent().getPath(); } @@ -175,7 +175,7 @@ void BrowserDialog::show(const string& startpath, switch(_mode) { case Mode::FileLoad: - _fileList->setListMode(FilesystemNode::ListMode::All); + _fileList->setListMode(FSNode::ListMode::All); _fileList->setNameFilter(namefilter); _fileList->setHeight(_selected->getTop() - VGAP * 2 - _fileList->getTop()); // Show "save" checkbox @@ -192,7 +192,7 @@ void BrowserDialog::show(const string& startpath, break; case Mode::FileSave: - _fileList->setListMode(FilesystemNode::ListMode::All); + _fileList->setListMode(FSNode::ListMode::All); _fileList->setNameFilter(namefilter); _fileList->setHeight(_selected->getTop() - VGAP * 2 - _fileList->getTop()); // Show "save" checkbox @@ -211,8 +211,8 @@ void BrowserDialog::show(const string& startpath, break; case Mode::Directories: - _fileList->setListMode(FilesystemNode::ListMode::DirectoriesOnly); - _fileList->setNameFilter([](const FilesystemNode&) { return true; }); + _fileList->setListMode(FSNode::ListMode::DirectoriesOnly); + _fileList->setNameFilter([](const FSNode&) { return true; }); // TODO: scrollbar affected too! _fileList->setHeight(_selected->getBottom() - _fileList->getTop()); // Hide "save" checkbox @@ -230,9 +230,9 @@ void BrowserDialog::show(const string& startpath, // Set start path if(_mode != Mode::Directories) - _fileList->setDirectory(FilesystemNode(directory), fileName); + _fileList->setDirectory(FSNode(directory), fileName); else - _fileList->setDirectory(FilesystemNode(startpath)); + _fileList->setDirectory(FSNode(startpath)); updateUI(fileSelected); @@ -241,14 +241,14 @@ void BrowserDialog::show(const string& startpath, } // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -const FilesystemNode& BrowserDialog::getResult() const +const FSNode& BrowserDialog::getResult() const { if(_mode == Mode::FileLoad || _mode == Mode::FileSave) { - static FilesystemNode node; + static FSNode node; return node - = FilesystemNode(_fileList->currentDir().getPath() + _selected->getText()); + = FSNode(_fileList->currentDir().getPath() + _selected->getText()); } else return _fileList->currentDir(); @@ -296,11 +296,11 @@ void BrowserDialog::handleCommand(CommandSender* sender, int cmd, break; case kBaseDirCmd: - _fileList->selectDirectory(FilesystemNode(instance().baseDir())); + _fileList->selectDirectory(FSNode(instance().baseDir())); break; case kHomeDirCmd: - _fileList->selectDirectory(FilesystemNode(instance().homeDir())); + _fileList->selectDirectory(FSNode(instance().homeDir())); break; case EditableWidget::kChangedCmd: diff --git a/src/gui/BrowserDialog.hxx b/src/gui/BrowserDialog.hxx index 7a0e3f211..33d252701 100644 --- a/src/gui/BrowserDialog.hxx +++ b/src/gui/BrowserDialog.hxx @@ -41,9 +41,9 @@ class BrowserDialog : public Dialog /** Function which is run when the user clicks OK or Cancel. Boolean parameter is passed as 'true' when OK is clicked, else 'false'. - FilesystemNode parameter is what is currently selected in the browser. + FSNode parameter is what is currently selected in the browser. */ - using Command = std::function; + using Command = std::function; public: // NOTE: Do not call this c'tor directly! Use the static show method below @@ -66,8 +66,8 @@ class BrowserDialog : public Dialog const string& title, const string& startpath, BrowserDialog::Mode mode, const Command& command, - const FilesystemNode::NameFilter& namefilter = { - [](const FilesystemNode&) { return true; }}); + const FSNode::NameFilter& namefilter = { + [](const FSNode&) { return true; }}); /** Place the browser window onscreen, using the given attributes. @@ -83,8 +83,8 @@ class BrowserDialog : public Dialog const string& title, const string& startpath, BrowserDialog::Mode mode, const Command& command, - const FilesystemNode::NameFilter& namefilter = { - [](const FilesystemNode&) { return true; } }); + const FSNode::NameFilter& namefilter = { + [](const FSNode&) { return true; } }); /** Since the show methods allocate a static BrowserDialog, at some @@ -99,10 +99,10 @@ class BrowserDialog : public Dialog void show(const string& startpath, BrowserDialog::Mode mode, const Command& command, - const FilesystemNode::NameFilter& namefilter); + const FSNode::NameFilter& namefilter); /** Get resulting file node (called after receiving kChooseCmd) */ - const FilesystemNode& getResult() const; + const FSNode& getResult() const; void handleKeyDown(StellaKey key, StellaMod mod, bool repeated) override; void handleCommand(CommandSender* sender, int cmd, int data, int id) override; @@ -118,7 +118,7 @@ class BrowserDialog : public Dialog // Called when the user selects OK (bool is true) or Cancel (bool is false) // FSNode will be set to whatever is active (basically, getResult()) - Command _command{[](bool, const FilesystemNode&){}}; + Command _command{[](bool, const FSNode&){}}; FileListWidget* _fileList{nullptr}; NavigationWidget* _navigationBar{nullptr}; diff --git a/src/gui/FavoritesManager.cxx b/src/gui/FavoritesManager.cxx index 954524d7c..90ad44513 100644 --- a/src/gui/FavoritesManager.cxx +++ b/src/gui/FavoritesManager.cxx @@ -45,7 +45,7 @@ void FavoritesManager::load() for (const auto& u : jUser) { const string& path = u.get(); - FilesystemNode node(path); + FSNode node(path); if (node.exists()) addUser(path); } @@ -69,7 +69,7 @@ void FavoritesManager::load() for (const auto& r : jRecent) { const string& path = r.get(); - FilesystemNode node(path); + FSNode node(path); if (node.exists()) addRecent(path); } @@ -93,7 +93,7 @@ void FavoritesManager::load() { const string& path = p[0].get(); const uInt32 count = p[1].get(); - FilesystemNode node(path); + FSNode node(path); if (node.exists()) myPopularMap.emplace(path, count); } @@ -186,8 +186,8 @@ const FavoritesManager::UserList& FavoritesManager::userList() const [](const string& a, const string& b) { // Sort without path - FilesystemNode aNode(a); - FilesystemNode bNode(b); + FSNode aNode(a); + FSNode bNode(b); const bool realDir = aNode.isDirectory() && !BSPF::endsWithIgnoreCase(aNode.getPath(), ".zip"); if(realDir != (bNode.isDirectory() && !BSPF::endsWithIgnoreCase(bNode.getPath(), ".zip"))) @@ -248,8 +248,8 @@ const FavoritesManager::RecentList& FavoritesManager::recentList() const [](const string& a, const string& b) { // Sort alphabetical, without path - FilesystemNode aNode(a); - FilesystemNode bNode(b); + FSNode aNode(a); + FSNode bNode(b); return BSPF::compareIgnoreCase(aNode.getName(), bNode.getName()) < 0; }); @@ -329,8 +329,8 @@ const FavoritesManager::PopularList& FavoritesManager::sortedPopularList(bool so return a.second > b.second; // 2. Sort alphabetical, without path - FilesystemNode aNode(a.first); - FilesystemNode bNode(b.first); + FSNode aNode(a.first); + FSNode bNode(b.first); return BSPF::compareIgnoreCase(aNode.getName(), bNode.getName()) < 0; }); return sortedList; diff --git a/src/gui/FileListWidget.cxx b/src/gui/FileListWidget.cxx index 2bec83dd3..39f51deea 100644 --- a/src/gui/FileListWidget.cxx +++ b/src/gui/FileListWidget.cxx @@ -30,15 +30,14 @@ FileListWidget::FileListWidget(GuiObject* boss, const GUI::Font& font, int x, int y, int w, int h) : StringListWidget(boss, font, x, y, w, h), - _filter{[](const FilesystemNode&) { return true; }} + _filter{[](const FSNode&) { return true; }} { // This widget is special, in that it catches signals and redirects them setTarget(this); } // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -void FileListWidget::setDirectory(const FilesystemNode& node, - const string& select) +void FileListWidget::setDirectory(const FSNode& node, const string& select) { _node = node; @@ -56,7 +55,7 @@ void FileListWidget::setDirectory(const FilesystemNode& node, } // Initialize history - FilesystemNode tmp = _node; + FSNode tmp = _node; string name = select; _history.clear(); @@ -77,12 +76,11 @@ void FileListWidget::setDirectory(const FilesystemNode& node, } // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -void FileListWidget::setLocation(const FilesystemNode& node, - const string select) +void FileListWidget::setLocation(const FSNode& node, const string select) { progress().resetProgress(); progress().open(); - FilesystemNode::CancelCheck isCancelled = [this]() { + FSNode::CancelCheck isCancelled = [this]() { return myProgressDialog->isCancelled(); }; @@ -138,13 +136,13 @@ void FileListWidget::setLocation(const FilesystemNode& node, } // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -bool FileListWidget::isDirectory(const FilesystemNode& node) const +bool FileListWidget::isDirectory(const FSNode& node) const { return node.isDirectory(); } // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -void FileListWidget::getChildren(const FilesystemNode::CancelCheck& isCancelled) +void FileListWidget::getChildren(const FSNode::CancelCheck& isCancelled) { if(_includeSubDirs) { @@ -162,7 +160,7 @@ void FileListWidget::getChildren(const FilesystemNode::CancelCheck& isCancelled) // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - FileListWidget::IconType FileListWidget::getIconType(const string& path) const { - const FilesystemNode node(path); + const FSNode node(path); if(node.isDirectory()) { @@ -182,7 +180,7 @@ void FileListWidget::selectDirectory() } // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -void FileListWidget::selectDirectory(const FilesystemNode& node) +void FileListWidget::selectDirectory(const FSNode& node) { if(node.getPath() != _node.getPath()) addHistory(node); @@ -195,7 +193,7 @@ void FileListWidget::selectParent() if(_node.hasParent()) { string name = _node.getName(); - FilesystemNode parent(_node.getParent()); + FSNode parent(_node.getParent()); _currentHistory->selected = selected().getName(); addHistory(parent); @@ -247,7 +245,7 @@ bool FileListWidget::hasNextHistory() // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - string& FileListWidget::fixPath(string& path) { - if(path.length() > 0 && path.back() == FilesystemNode::PATH_SEPARATOR) + if(path.length() > 0 && path.back() == FSNode::PATH_SEPARATOR) { path.pop_back(); if(path.length() == 2 && path.back() == ':') @@ -257,7 +255,7 @@ string& FileListWidget::fixPath(string& path) } // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -void FileListWidget::addHistory(const FilesystemNode& node) +void FileListWidget::addHistory(const FSNode& node) { if (_history.size() > 0) { while(_currentHistory != std::prev(_history.end(), 1)) @@ -284,7 +282,7 @@ void FileListWidget::reload() } // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -const FilesystemNode& FileListWidget::selected() +const FSNode& FileListWidget::selected() { if(_fileList.size() > 0) { @@ -731,4 +729,4 @@ string FileListWidget::getToolTip(const Common::Point& pos) const uInt64 FileListWidget::_QUICK_SELECT_DELAY = 300; // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -FilesystemNode FileListWidget::ourDefaultNode = FilesystemNode("~"); +FSNode FileListWidget::ourDefaultNode = FSNode("~"); diff --git a/src/gui/FileListWidget.hxx b/src/gui/FileListWidget.hxx index b59dfb041..7cca110cf 100644 --- a/src/gui/FileListWidget.hxx +++ b/src/gui/FileListWidget.hxx @@ -50,7 +50,7 @@ class FileListWidget : public StringListWidget kPrevDirCmd = 'prvc', // go back in history to previous directory kNextDirCmd = 'nxtc' // go back in history to next directory }; - using IconTypeFilter = std::function; + using IconTypeFilter = std::function; public: FileListWidget(GuiObject* boss, const GUI::Font& font, @@ -63,8 +63,8 @@ class FileListWidget : public StringListWidget /** Determines how to display files/folders; either setDirectory or reload must be called after any of these are called. */ - void setListMode(FilesystemNode::ListMode mode) { _fsmode = mode; } - void setNameFilter(const FilesystemNode::NameFilter& filter) { + void setListMode(FSNode::ListMode mode) { _fsmode = mode; } + void setNameFilter(const FSNode::NameFilter& filter) { _filter = filter; } @@ -81,13 +81,13 @@ class FileListWidget : public StringListWidget will instead be used, and the file will be selected @param select An optional entry to select (if applicable) */ - void setDirectory(const FilesystemNode& node, + void setDirectory(const FSNode& node, const string& select = EmptyString); /** Descend into currently selected directory */ void selectDirectory(); /** Go to directory */ - void selectDirectory(const FilesystemNode& node); + void selectDirectory(const FSNode& node); /** Select parent directory (if applicable) */ void selectParent(); /** Check if the there is a previous directory in history */ @@ -99,8 +99,8 @@ class FileListWidget : public StringListWidget void reload(); /** Gets current node(s) */ - const FilesystemNode& selected(); - const FilesystemNode& currentDir() const { return _node; } + const FSNode& selected(); + const FSNode& currentDir() const { return _node; } static void setQuickSelectDelay(uInt64 time) { _QUICK_SELECT_DELAY = time; } uInt64 getQuickSelectDelay() const { return _QUICK_SELECT_DELAY; } @@ -111,10 +111,10 @@ class FileListWidget : public StringListWidget protected: struct HistoryType { - FilesystemNode node; + FSNode node; string selected; - explicit HistoryType(const FilesystemNode& _hnode, const string& _hselected) + explicit HistoryType(const FSNode& _hnode, const string& _hselected) : node{_hnode}, selected{_hselected} {} }; enum class IconType { @@ -137,27 +137,27 @@ class FileListWidget : public StringListWidget protected: /** Very similar to setDirectory(), but also updates the history */ - void setLocation(const FilesystemNode& node, const string select); + void setLocation(const FSNode& node, const string select); /** Select to home directory */ void selectHomeDir(); /** Select previous directory in history (if applicable) */ void selectPrevHistory(); /** Select next directory in history (if applicable) */ void selectNextHistory(); - virtual bool isDirectory(const FilesystemNode& node) const; - virtual void getChildren(const FilesystemNode::CancelCheck& isCancelled); + virtual bool isDirectory(const FSNode& node) const; + virtual void getChildren(const FSNode::CancelCheck& isCancelled); virtual void extendLists(StringList& list) { } virtual IconType getIconType(const string& path) const; virtual const Icon* getIcon(int i) const; int iconWidth() const; virtual bool fullPathToolTip() const { return false; } string& fixPath(string& path); - void addHistory(const FilesystemNode& node); + void addHistory(const FSNode& node); protected: - FilesystemNode _node; + FSNode _node; FSList _fileList; - FilesystemNode::NameFilter _filter; + FSNode::NameFilter _filter; string _selectedFile; StringList _dirList; std::vector _history; @@ -171,7 +171,7 @@ class FileListWidget : public StringListWidget int drawIcon(int i, int x, int y, ColorId color) override; private: - FilesystemNode::ListMode _fsmode{FilesystemNode::ListMode::All}; + FSNode::ListMode _fsmode{FSNode::ListMode::All}; bool _includeSubDirs{false}; bool _showFileExtensions{true}; @@ -187,7 +187,7 @@ class FileListWidget : public StringListWidget unique_ptr myProgressDialog; - static FilesystemNode ourDefaultNode; + static FSNode ourDefaultNode; private: // Following constructors and assignment operators not supported diff --git a/src/gui/GameInfoDialog.cxx b/src/gui/GameInfoDialog.cxx index 5d16bcf81..0406c469a 100644 --- a/src/gui/GameInfoDialog.cxx +++ b/src/gui/GameInfoDialog.cxx @@ -703,7 +703,7 @@ void GameInfoDialog::loadConfig() { const string& md5 = instance().launcher().selectedRomMD5(); instance().propSet().getMD5(md5, myGameProperties); - myGameFile = FilesystemNode(instance().launcher().selectedRom()); + myGameFile = FSNode(instance().launcher().selectedRom()); } loadEmulationProperties(myGameProperties); @@ -734,7 +734,7 @@ void GameInfoDialog::loadEmulationProperties(const Properties& props) } else { - const FilesystemNode& node = FilesystemNode(instance().launcher().selectedRom()); + const FSNode& node = FSNode(instance().launcher().selectedRom()); ByteBuffer image; string md5 = props.get(PropType::Cart_MD5); size_t size = 0; @@ -1131,7 +1131,7 @@ void GameInfoDialog::updateControllerStates() // try to load the image for auto detection if(!instance().hasConsole()) { - const FilesystemNode& node = FilesystemNode(instance().launcher().selectedRom()); + const FSNode& node = FSNode(instance().launcher().selectedRom()); autoDetect = node.exists() && !node.isDirectory() && (image = instance().openROM(node, md5, size)) != nullptr; } @@ -1382,7 +1382,7 @@ void GameInfoDialog::setAddressVal(const EditTextWidget* addressWidget, EditText } // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -void GameInfoDialog::exportCurrentPropertiesToDisk(const FilesystemNode& node) +void GameInfoDialog::exportCurrentPropertiesToDisk(const FSNode& node) { saveProperties(); @@ -1414,7 +1414,7 @@ void GameInfoDialog::handleCommand(CommandSender* sender, int cmd, instance().userDir().getPath() + myGameFile.getNameWithExt(".pro"), BrowserDialog::Mode::FileSave, - [this](bool OK, const FilesystemNode& node) { + [this](bool OK, const FSNode& node) { if(OK) exportCurrentPropertiesToDisk(node); }); break; diff --git a/src/gui/GameInfoDialog.hxx b/src/gui/GameInfoDialog.hxx index c04a88168..dd5373d4c 100644 --- a/src/gui/GameInfoDialog.hxx +++ b/src/gui/GameInfoDialog.hxx @@ -79,7 +79,7 @@ class GameInfoDialog : public Dialog, public CommandSender // set formatted memory value for given address field void setAddressVal(const EditTextWidget* address, EditTextWidget* val, bool isBCD = true, bool zeroBased = false, uInt8 maxVal = 255); - void exportCurrentPropertiesToDisk(const FilesystemNode& node); + void exportCurrentPropertiesToDisk(const FSNode& node); private: TabWidget* myTab{nullptr}; @@ -193,7 +193,7 @@ class GameInfoDialog : public Dialog, public CommandSender // Game properties for currently loaded ROM Properties myGameProperties; // Filename of the currently loaded ROM - FilesystemNode myGameFile; + FSNode myGameFile; private: // Following constructors and assignment operators not supported diff --git a/src/gui/Launcher.cxx b/src/gui/Launcher.cxx index dccc72f53..f05b7258f 100644 --- a/src/gui/Launcher.cxx +++ b/src/gui/Launcher.cxx @@ -73,7 +73,7 @@ const string& Launcher::selectedRomMD5() } // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -const FilesystemNode& Launcher::currentDir() const +const FSNode& Launcher::currentDir() const { return (static_cast(myBaseDialog))->currentDir(); } diff --git a/src/gui/Launcher.hxx b/src/gui/Launcher.hxx index c63192cb0..af467b563 100644 --- a/src/gui/Launcher.hxx +++ b/src/gui/Launcher.hxx @@ -20,7 +20,7 @@ class Properties; class OSystem; -class FilesystemNode; +class FSNode; #include "Rect.hxx" #include "FrameBufferConstants.hxx" @@ -58,7 +58,7 @@ class Launcher : public DialogContainer /** Wrapper for LauncherDialog::currentDir() method. */ - const FilesystemNode& currentDir() const; + const FSNode& currentDir() const; /** Wrapper for LauncherDialog::reload() method. diff --git a/src/gui/LauncherDialog.cxx b/src/gui/LauncherDialog.cxx index 125185196..92fb6300e 100644 --- a/src/gui/LauncherDialog.cxx +++ b/src/gui/LauncherDialog.cxx @@ -290,7 +290,7 @@ void LauncherDialog::addRomWidgets(int ypos) instance().settings().setValue("startromdir", getRomDir()); myList = new LauncherFileListWidget(this, _font, xpos, ypos, listWidth, listHeight); myList->setEditable(false); - myList->setListMode(FilesystemNode::ListMode::All); + myList->setListMode(FSNode::ListMode::All); // since we cannot know how many files there are, use are really high value here myList->progress().setRange(0, 50000, 5); myList->progress().setMessage(" Filtering files" + ELLIPSIS + " "); @@ -401,13 +401,13 @@ const string& LauncherDialog::selectedRomMD5() } // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -const FilesystemNode& LauncherDialog::currentNode() const +const FSNode& LauncherDialog::currentNode() const { return myList->selected(); } // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -const FilesystemNode& LauncherDialog::currentDir() const +const FSNode& LauncherDialog::currentDir() const { return myList->currentDir(); } @@ -471,9 +471,9 @@ void LauncherDialog::loadConfig() // has been called (and we should reload the list) if(myList->getList().empty()) { - FilesystemNode node(romdir == "" ? "~" : romdir); + FSNode node(romdir == "" ? "~" : romdir); if(!myList->isDirectory(node)) - node = FilesystemNode("~"); + node = FSNode("~"); myList->setDirectory(node, settings.getString("lastrom")); updateUI(); @@ -601,7 +601,7 @@ bool LauncherDialog::matchWithWildcardsIgnoreCase(const string& str, const strin void LauncherDialog::applyFiltering() { myList->setNameFilter( - [&](const FilesystemNode& node) { + [&](const FSNode& node) { myList->incProgress(); if(!node.isDirectory()) { @@ -1015,10 +1015,10 @@ void LauncherDialog::handleCommand(CommandSender* sender, int cmd, if(myList->currentDir().getPath() != romDir) { - FilesystemNode node(romDir); + FSNode node(romDir); if(!myList->isDirectory(node)) - node = FilesystemNode("~"); + node = FSNode("~"); myList->setDirectory(node); } diff --git a/src/gui/LauncherDialog.hxx b/src/gui/LauncherDialog.hxx index 2b0398ef5..185111029 100644 --- a/src/gui/LauncherDialog.hxx +++ b/src/gui/LauncherDialog.hxx @@ -81,16 +81,16 @@ class LauncherDialog : public Dialog, CommandSender /** Get node for the currently selected entry. - @return FilesystemNode currently selected + @return FSNode currently selected */ - const FilesystemNode& currentNode() const; + const FSNode& currentNode() const; /** Get node for the current directory. - @return FilesystemNode (directory) currently active + @return FSNode (directory) currently active */ - const FilesystemNode& currentDir() const; + const FSNode& currentDir() const; /** Reload the current listing diff --git a/src/gui/LauncherFileListWidget.cxx b/src/gui/LauncherFileListWidget.cxx index 9401460bb..39faa6cdc 100644 --- a/src/gui/LauncherFileListWidget.cxx +++ b/src/gui/LauncherFileListWidget.cxx @@ -35,7 +35,7 @@ LauncherFileListWidget::LauncherFileListWidget(GuiObject* boss, const GUI::Font& } // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -bool LauncherFileListWidget::isDirectory(const FilesystemNode& node) const +bool LauncherFileListWidget::isDirectory(const FSNode& node) const { const bool isDir = node.isDirectory(); @@ -49,7 +49,7 @@ bool LauncherFileListWidget::isDirectory(const FilesystemNode& node) const } // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -void LauncherFileListWidget::getChildren(const FilesystemNode::CancelCheck& isCancelled) +void LauncherFileListWidget::getChildren(const FSNode::CancelCheck& isCancelled) { if(_node.exists() || !_node.hasParent()) { @@ -62,7 +62,7 @@ void LauncherFileListWidget::getChildren(const FilesystemNode::CancelCheck& isCa myInVirtualDir = true; myVirtualDir = _node.getName(); - FilesystemNode parent(_node.getParent()); + FSNode parent(_node.getParent()); parent.setName(".."); _fileList.emplace_back(parent); @@ -70,10 +70,10 @@ void LauncherFileListWidget::getChildren(const FilesystemNode::CancelCheck& isCa { for(auto& item : myFavorites->userList()) { - FilesystemNode node(item); + FSNode node(item); string name = node.getName(); - if(name.back() == FilesystemNode::PATH_SEPARATOR) + if(name.back() == FSNode::PATH_SEPARATOR) { name.pop_back(); node.setName(name); @@ -86,7 +86,7 @@ void LauncherFileListWidget::getChildren(const FilesystemNode::CancelCheck& isCa { for(auto& item : myFavorites->popularList()) { - FilesystemNode node(item.first); + FSNode node(item.first); if(_filter(node)) _fileList.emplace_back(node); } @@ -95,7 +95,7 @@ void LauncherFileListWidget::getChildren(const FilesystemNode::CancelCheck& isCa { for(auto& item : myFavorites->recentList()) { - FilesystemNode node(item); + FSNode node(item); if(_filter(node)) _fileList.emplace_back(node); } @@ -107,7 +107,7 @@ void LauncherFileListWidget::getChildren(const FilesystemNode::CancelCheck& isCa void LauncherFileListWidget::addFolder(StringList& list, int& offset, const string& name, IconType icon) { _fileList.insert(_fileList.begin() + offset, - FilesystemNode(_node.getPath() + name)); + FSNode(_node.getPath() + name)); list.insert(list.begin() + offset, name); _dirList.insert(_dirList.begin() + offset, ""); _iconTypeList.insert((_iconTypeList.begin() + offset), icon); @@ -118,7 +118,7 @@ void LauncherFileListWidget::addFolder(StringList& list, int& offset, const stri string LauncherFileListWidget::startRomDir() { string romDir = instance().settings().getString("startromdir"); - FilesystemNode node(romDir); + FSNode node(romDir); return node.getPath(); } @@ -256,7 +256,7 @@ FileListWidget::IconType LauncherFileListWidget::getIconType(const string& path) if(!isUserFavorite(path)) return FileListWidget::getIconType(path); - const FilesystemNode node(path); + const FSNode node(path); if(node.isDirectory()) return BSPF::endsWithIgnoreCase(node.getName(), ".zip") ? IconType::favzip : IconType::favdir; diff --git a/src/gui/LauncherFileListWidget.hxx b/src/gui/LauncherFileListWidget.hxx index b5c6abb8f..825c3c929 100644 --- a/src/gui/LauncherFileListWidget.hxx +++ b/src/gui/LauncherFileListWidget.hxx @@ -19,7 +19,7 @@ #define LAUNCHER_FILE_LIST_WIDGET_HXX class FavoritesManager; -class FilesystemNode; +class FSNode; class ProgressDialog; class Settings; @@ -50,7 +50,7 @@ class LauncherFileListWidget : public FileListWidget void removeAllPopular(); void removeAllRecent(); - bool isDirectory(const FilesystemNode& node) const override; + bool isDirectory(const FSNode& node) const override; bool inVirtualDir() const { return myInVirtualDir; } bool inUserDir() const { return myVirtualDir == user_name; } bool inRecentDir() const { return myVirtualDir == recent_name; } @@ -71,7 +71,7 @@ class LauncherFileListWidget : public FileListWidget private: string startRomDir(); - void getChildren(const FilesystemNode::CancelCheck& isCancelled) override; + void getChildren(const FSNode::CancelCheck& isCancelled) override; void userFavor(const string& path); void addFolder(StringList& list, int& offset, const string& name, IconType icon); void extendLists(StringList& list) override; diff --git a/src/gui/LoggerDialog.cxx b/src/gui/LoggerDialog.cxx index 82d24f903..f05382191 100644 --- a/src/gui/LoggerDialog.cxx +++ b/src/gui/LoggerDialog.cxx @@ -114,7 +114,7 @@ void LoggerDialog::saveConfig() } // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -void LoggerDialog::saveLogFile(const FilesystemNode& node) +void LoggerDialog::saveLogFile(const FSNode& node) { try { @@ -144,7 +144,7 @@ void LoggerDialog::handleCommand(CommandSender* sender, int cmd, BrowserDialog::show(this, _font, "Save Log as", instance().userDir().getPath() + "stella.log", BrowserDialog::Mode::FileSave, - [this](bool OK, const FilesystemNode& node) { + [this](bool OK, const FSNode& node) { if(OK) saveLogFile(node); }); break; diff --git a/src/gui/LoggerDialog.hxx b/src/gui/LoggerDialog.hxx index e58584902..06aae1bcb 100644 --- a/src/gui/LoggerDialog.hxx +++ b/src/gui/LoggerDialog.hxx @@ -37,7 +37,7 @@ class LoggerDialog : public Dialog private: void loadConfig() override; void saveConfig() override; - void saveLogFile(const FilesystemNode& node); + void saveLogFile(const FSNode& node); void handleCommand(CommandSender* sender, int cmd, int data, int id) override; diff --git a/src/gui/NavigationWidget.cxx b/src/gui/NavigationWidget.cxx index 33cf5e437..7a56d649e 100644 --- a/src/gui/NavigationWidget.cxx +++ b/src/gui/NavigationWidget.cxx @@ -133,7 +133,7 @@ void NavigationWidget::handleCommand(CommandSender* sender, int cmd, int data, i { case kFolderClicked: { - FilesystemNode node(myPath->getPath(id)); + FSNode node(myPath->getPath(id)); myList->selectDirectory(node); break; } @@ -156,7 +156,7 @@ void NavigationWidget::PathWidget::setPath(const string& path) { const int fontWidth = _font.getMaxCharWidth(); int x = _x + fontWidth, w = _w; - FilesystemNode node(path); + FSNode node(path); // Calculate how many path parts can be displayed StringList paths; @@ -166,7 +166,7 @@ void NavigationWidget::PathWidget::setPath(const string& path) const string& name = node.getName(); int l = static_cast(name.length() + 2); - if(name.back() == FilesystemNode::PATH_SEPARATOR) + if(name.back() == FSNode::PATH_SEPARATOR) l--; if(node.getParent().hasParent()) l++; @@ -183,14 +183,14 @@ void NavigationWidget::PathWidget::setPath(const string& path) for(auto it = paths.rbegin(); it != paths.rend(); ++it, ++idx) { const string& curPath = *it; - node = FilesystemNode(curPath); + node = FSNode(curPath); string name = node.getName(); if(it == paths.rbegin() && cutFirst) name = ">"; else { - if(name.back() == FilesystemNode::PATH_SEPARATOR) + if(name.back() == FSNode::PATH_SEPARATOR) name.pop_back(); if(it + 1 != paths.rend()) name += " >"; diff --git a/src/gui/RomAuditDialog.cxx b/src/gui/RomAuditDialog.cxx index 50ca6f846..fc6f857e3 100644 --- a/src/gui/RomAuditDialog.cxx +++ b/src/gui/RomAuditDialog.cxx @@ -112,10 +112,10 @@ void RomAuditDialog::auditRoms() myResults1->setText(""); myResults2->setText(""); - FilesystemNode node(auditPath); + FSNode node(auditPath); FSList files; files.reserve(2048); - node.getChildren(files, FilesystemNode::ListMode::FilesOnly); + node.getChildren(files, FSNode::ListMode::FilesOnly); // Create a progress dialog box to show the progress of processing // the ROMs, since this is usually a time-consuming operation @@ -201,7 +201,7 @@ void RomAuditDialog::handleCommand(CommandSender* sender, int cmd, BrowserDialog::show(this, _font, "Select ROM Directory to Audit", myRomPath->getText(), BrowserDialog::Mode::Directories, - [this](bool OK, const FilesystemNode& node) { + [this](bool OK, const FSNode& node) { if(OK) { myRomPath->setText(node.getShortPath()); myResults1->setText(""); diff --git a/src/gui/RomInfoWidget.cxx b/src/gui/RomInfoWidget.cxx index 25e673a58..3ae305082 100644 --- a/src/gui/RomInfoWidget.cxx +++ b/src/gui/RomInfoWidget.cxx @@ -46,7 +46,7 @@ RomInfoWidget::RomInfoWidget(GuiObject* boss, const GUI::Font& font, } // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -void RomInfoWidget::setProperties(const FilesystemNode& node, const string& md5) +void RomInfoWidget::setProperties(const FSNode& node, const string& md5) { myHaveProperties = true; @@ -75,7 +75,7 @@ void RomInfoWidget::clearProperties() } // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -void RomInfoWidget::reloadProperties(const FilesystemNode& node) +void RomInfoWidget::reloadProperties(const FSNode& node) { // The ROM may have changed since we were last in the browser, either // by saving a different image or through a change in video renderer, @@ -85,7 +85,7 @@ void RomInfoWidget::reloadProperties(const FilesystemNode& node) } // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -void RomInfoWidget::parseProperties(const FilesystemNode& node) +void RomInfoWidget::parseProperties(const FSNode& node) { // Check if a surface has ever been created; if so, we use it // The surface will always be the maximum size, but sometimes we'll diff --git a/src/gui/RomInfoWidget.hxx b/src/gui/RomInfoWidget.hxx index fbd77e4f2..fc3b449e6 100644 --- a/src/gui/RomInfoWidget.hxx +++ b/src/gui/RomInfoWidget.hxx @@ -40,9 +40,9 @@ class RomInfoWidget : public Widget, public CommandSender const Common::Size& imgSize); ~RomInfoWidget() override = default; - void setProperties(const FilesystemNode& node, const string& md5); + void setProperties(const FSNode& node, const string& md5); void clearProperties(); - void reloadProperties(const FilesystemNode& node); + void reloadProperties(const FSNode& node); const string& getUrl() const { return myUrl; } @@ -51,7 +51,7 @@ class RomInfoWidget : public Widget, public CommandSender void handleMouseUp(int x, int y, MouseButton b, int clickCount) override; private: - void parseProperties(const FilesystemNode& node); + void parseProperties(const FSNode& node); #ifdef PNG_SUPPORT bool loadPng(const string& filename); #endif diff --git a/src/gui/SnapshotDialog.cxx b/src/gui/SnapshotDialog.cxx index 86cc9050a..629ccbe8b 100644 --- a/src/gui/SnapshotDialog.cxx +++ b/src/gui/SnapshotDialog.cxx @@ -148,7 +148,7 @@ void SnapshotDialog::handleCommand(CommandSender* sender, int cmd, BrowserDialog::show(this, _font, "Select Snapshot Save Directory", mySnapSavePath->getText(), BrowserDialog::Mode::Directories, - [this](bool OK, const FilesystemNode& node) { + [this](bool OK, const FSNode& node) { if(OK) mySnapSavePath->setText(node.getShortPath()); }); break; diff --git a/src/gui/StellaSettingsDialog.cxx b/src/gui/StellaSettingsDialog.cxx index d9de40db6..3d3be7893 100644 --- a/src/gui/StellaSettingsDialog.cxx +++ b/src/gui/StellaSettingsDialog.cxx @@ -528,7 +528,7 @@ void StellaSettingsDialog::updateControllerStates() // try to load the image for auto detection if(!instance().hasConsole()) { - const FilesystemNode& node = FilesystemNode(instance().launcher().selectedRom()); + const FSNode& node = FSNode(instance().launcher().selectedRom()); autoDetect = node.exists() && !node.isDirectory() && (image = instance().openROM(node, md5, size)) != nullptr; } diff --git a/src/gui/UIDialog.cxx b/src/gui/UIDialog.cxx index 83896f8b0..3d771bff9 100644 --- a/src/gui/UIDialog.cxx +++ b/src/gui/UIDialog.cxx @@ -540,7 +540,7 @@ void UIDialog::setDefaults() break; case 1: // Launcher options { - FilesystemNode node("~"); + FSNode node("~"); const Common::Size& size = instance().frameBuffer().desktopSize(BufferType::Launcher); myRomPath->setText(node.getShortPath()); @@ -634,7 +634,7 @@ void UIDialog::handleCommand(CommandSender* sender, int cmd, int data, int id) BrowserDialog::show(this, _font, "Select ROM Directory", myRomPath->getText(), BrowserDialog::Mode::Directories, - [this](bool OK, const FilesystemNode& node) { + [this](bool OK, const FSNode& node) { if(OK) myRomPath->setText(node.getShortPath()); }); break; @@ -647,7 +647,7 @@ void UIDialog::handleCommand(CommandSender* sender, int cmd, int data, int id) BrowserDialog::show(this, _font, "Select ROM Info Viewer Image Directory", mySnapLoadPath->getText(), BrowserDialog::Mode::Directories, - [this](bool OK, const FilesystemNode& node) { + [this](bool OK, const FSNode& node) { if(OK) mySnapLoadPath->setText(node.getShortPath()); }); break; diff --git a/src/libretro/FSNodeLIBRETRO.cxx b/src/libretro/FSNodeLIBRETRO.cxx index 8a9a0f4c9..195ba6509 100644 --- a/src/libretro/FSNodeLIBRETRO.cxx +++ b/src/libretro/FSNodeLIBRETRO.cxx @@ -26,14 +26,14 @@ #endif // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -FilesystemNodeLIBRETRO::FilesystemNodeLIBRETRO() +FSNodeLIBRETRO::FSNodeLIBRETRO() : _name{"rom"}, _path{"." + slash} { } // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -FilesystemNodeLIBRETRO::FilesystemNodeLIBRETRO(const string& p) +FSNodeLIBRETRO::FSNodeLIBRETRO(const string& p) : _name{p}, _path{p} { @@ -43,56 +43,56 @@ FilesystemNodeLIBRETRO::FilesystemNodeLIBRETRO(const string& p) } // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -bool FilesystemNodeLIBRETRO::exists() const +bool FSNodeLIBRETRO::exists() const { return true; } // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -bool FilesystemNodeLIBRETRO::isReadable() const +bool FSNodeLIBRETRO::isReadable() const { return true; } // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -bool FilesystemNodeLIBRETRO::isWritable() const +bool FSNodeLIBRETRO::isWritable() const { return true; } // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -string FilesystemNodeLIBRETRO::getShortPath() const +string FSNodeLIBRETRO::getShortPath() const { return "."; } // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -bool FilesystemNodeLIBRETRO:: +bool FSNodeLIBRETRO:: getChildren(AbstractFSList& myList, ListMode mode) const { return false; } // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -bool FilesystemNodeLIBRETRO::makeDir() +bool FSNodeLIBRETRO::makeDir() { return false; } // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -bool FilesystemNodeLIBRETRO::rename(const string& newfile) +bool FSNodeLIBRETRO::rename(const string& newfile) { return false; } // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -AbstractFSNodePtr FilesystemNodeLIBRETRO::getParent() const +AbstractFSNodePtr FSNodeLIBRETRO::getParent() const { return nullptr; } // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -size_t FilesystemNodeLIBRETRO::read(ByteBuffer& image, size_t) const +size_t FSNodeLIBRETRO::read(ByteBuffer& image, size_t) const { image = make_unique(Cartridge::maxSize()); diff --git a/src/libretro/FSNodeLIBRETRO.hxx b/src/libretro/FSNodeLIBRETRO.hxx index 6723d915f..dcf7f3963 100644 --- a/src/libretro/FSNodeLIBRETRO.hxx +++ b/src/libretro/FSNodeLIBRETRO.hxx @@ -26,12 +26,12 @@ * Parts of this class are documented in the base interface class, * AbstractFSNode. */ -class FilesystemNodeLIBRETRO : public AbstractFSNode +class FSNodeLIBRETRO : public AbstractFSNode { public: - FilesystemNodeLIBRETRO(); + FSNodeLIBRETRO(); - explicit FilesystemNodeLIBRETRO(const string& path); + explicit FSNodeLIBRETRO(const string& path); bool exists() const override; const string& getName() const override { return _name; } diff --git a/src/libretro/OSystemLIBRETRO.cxx b/src/libretro/OSystemLIBRETRO.cxx index 8ccf9b39a..d702792c3 100644 --- a/src/libretro/OSystemLIBRETRO.cxx +++ b/src/libretro/OSystemLIBRETRO.cxx @@ -34,7 +34,7 @@ void OSystemLIBRETRO::getBaseDirectories(string& basedir, string& homedir, } // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -void OSystemLIBRETRO::initPersistence(FilesystemNode& basedir) +void OSystemLIBRETRO::initPersistence(FSNode& basedir) { } diff --git a/src/libretro/OSystemLIBRETRO.hxx b/src/libretro/OSystemLIBRETRO.hxx index 6641188b1..764817322 100644 --- a/src/libretro/OSystemLIBRETRO.hxx +++ b/src/libretro/OSystemLIBRETRO.hxx @@ -57,7 +57,7 @@ class OSystemLIBRETRO : public OSystem protected: - void initPersistence(FilesystemNode& basedir) override; + void initPersistence(FSNode& basedir) override; string describePresistence() override; }; diff --git a/src/libretro/StellaLIBRETRO.cxx b/src/libretro/StellaLIBRETRO.cxx index 44910bb1b..5ab9e62fb 100644 --- a/src/libretro/StellaLIBRETRO.cxx +++ b/src/libretro/StellaLIBRETRO.cxx @@ -92,7 +92,7 @@ bool StellaLIBRETRO::create(bool logging) settings.setValue(AudioSettings::SETTING_VOLUME, 100); settings.setValue(AudioSettings::SETTING_STEREO, audio_mode); - FilesystemNode rom(rom_path); + FSNode rom(rom_path); if(myOSystem->createConsole(rom) != EmptyString) return false; diff --git a/src/macos/OSystemMACOS.cxx b/src/macos/OSystemMACOS.cxx index 5da8daf1f..4d40e8ecd 100644 --- a/src/macos/OSystemMACOS.cxx +++ b/src/macos/OSystemMACOS.cxx @@ -29,9 +29,9 @@ void OSystemMACOS::getBaseDirectories(string& basedir, string& homedir, if(useappdir) cout << "ERROR: base dir in app folder not supported" << endl; else if(usedir != "") - basedir = FilesystemNode(usedir).getPath(); + basedir = FSNode(usedir).getPath(); #endif - FilesystemNode desktop("~/Desktop/"); + FSNode desktop("~/Desktop/"); homedir = desktop.isDirectory() ? desktop.getShortPath() : "~/"; } diff --git a/src/macos/SerialPortMACOS.cxx b/src/macos/SerialPortMACOS.cxx index 8398123e5..15bdc0b27 100644 --- a/src/macos/SerialPortMACOS.cxx +++ b/src/macos/SerialPortMACOS.cxx @@ -108,14 +108,14 @@ StringList SerialPortMACOS::portNames() }; // Get all possible devices in the '/dev' directory - const FilesystemNode::NameFilter filter = [](const FilesystemNode& node) { + const FSNode::NameFilter filter = [](const FSNode& node) { return BSPF::startsWithIgnoreCase(node.getPath(), "/dev/cu.usb"); }; FSList portList; portList.reserve(5); - FilesystemNode dev("/dev/"); - dev.getChildren(portList, FilesystemNode::ListMode::All, filter, false); + FSNode dev("/dev/"); + dev.getChildren(portList, FSNode::ListMode::All, filter, false); // Add only those that can be opened for(const auto& port: portList) diff --git a/src/unix/FSNodePOSIX.cxx b/src/unix/FSNodePOSIX.cxx index 3582f4cbe..de143da54 100644 --- a/src/unix/FSNodePOSIX.cxx +++ b/src/unix/FSNodePOSIX.cxx @@ -24,14 +24,14 @@ #include "FSNodePOSIX.hxx" // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -FilesystemNodePOSIX::FilesystemNodePOSIX() +FSNodePOSIX::FSNodePOSIX() : _path{ROOT_DIR}, _displayName{_path} { } // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -FilesystemNodePOSIX::FilesystemNodePOSIX(const string& path, bool verify) +FSNodePOSIX::FSNodePOSIX(const string& path, bool verify) : _path{path.length() > 0 ? path : "~"} // Default to home directory { // Expand '~' to the HOME environment variable @@ -56,7 +56,7 @@ FilesystemNodePOSIX::FilesystemNodePOSIX(const string& path, bool verify) } // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -void FilesystemNodePOSIX::setFlags() +void FSNodePOSIX::setFlags() { struct stat st; @@ -75,7 +75,7 @@ void FilesystemNodePOSIX::setFlags() } // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -string FilesystemNodePOSIX::getShortPath() const +string FSNodePOSIX::getShortPath() const { // If the path starts with the home directory, replace it with '~' const char* env_home = std::getenv("HOME"); @@ -93,13 +93,13 @@ string FilesystemNodePOSIX::getShortPath() const } // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -bool FilesystemNodePOSIX::hasParent() const +bool FSNodePOSIX::hasParent() const { return _path != "" && _path != ROOT_DIR; } // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -bool FilesystemNodePOSIX::getChildren(AbstractFSList& myList, ListMode mode) const +bool FSNodePOSIX::getChildren(AbstractFSList& myList, ListMode mode) const { assert(_isDirectory); @@ -120,7 +120,7 @@ bool FilesystemNodePOSIX::getChildren(AbstractFSList& myList, ListMode mode) con newPath += '/'; newPath += dp->d_name; - FilesystemNodePOSIX entry(newPath, false); + FSNodePOSIX entry(newPath, false); #if defined(SYSTEM_NOT_SUPPORTING_D_TYPE) /* TODO: d_type is not part of POSIX, so it might not be supported @@ -169,11 +169,11 @@ bool FilesystemNodePOSIX::getChildren(AbstractFSList& myList, ListMode mode) con continue; // Honor the chosen mode - if ((mode == FilesystemNode::ListMode::FilesOnly && !entry._isFile) || - (mode == FilesystemNode::ListMode::DirectoriesOnly && !entry._isDirectory)) + if ((mode == FSNode::ListMode::FilesOnly && !entry._isFile) || + (mode == FSNode::ListMode::DirectoriesOnly && !entry._isDirectory)) continue; - myList.emplace_back(make_shared(entry)); + myList.emplace_back(make_shared(entry)); } closedir(dirp); @@ -181,14 +181,14 @@ bool FilesystemNodePOSIX::getChildren(AbstractFSList& myList, ListMode mode) con } // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -size_t FilesystemNodePOSIX::getSize() const +size_t FSNodePOSIX::getSize() const { struct stat st; return (stat(_path.c_str(), &st) == 0) ? st.st_size : 0; } // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -bool FilesystemNodePOSIX::makeDir() +bool FSNodePOSIX::makeDir() { if(mkdir(_path.c_str(), 0777) == 0) { @@ -211,7 +211,7 @@ bool FilesystemNodePOSIX::makeDir() } // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -bool FilesystemNodePOSIX::rename(const string& newfile) +bool FSNodePOSIX::rename(const string& newfile) { if(std::rename(_path.c_str(), newfile.c_str()) == 0) { @@ -236,7 +236,7 @@ bool FilesystemNodePOSIX::rename(const string& newfile) } // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -AbstractFSNodePtr FilesystemNodePOSIX::getParent() const +AbstractFSNodePtr FSNodePOSIX::getParent() const { if (_path == ROOT_DIR) return nullptr; @@ -244,5 +244,5 @@ AbstractFSNodePtr FilesystemNodePOSIX::getParent() const const char* start = _path.c_str(); const char* end = lastPathComponent(_path); - return make_unique(string(start, size_t(end - start))); + return make_unique(string(start, size_t(end - start))); } diff --git a/src/unix/FSNodePOSIX.hxx b/src/unix/FSNodePOSIX.hxx index 1c7a8f10d..67bf1b2f8 100644 --- a/src/unix/FSNodePOSIX.hxx +++ b/src/unix/FSNodePOSIX.hxx @@ -43,22 +43,22 @@ * * Parts of this class are documented in the base interface class, AbstractFSNode. */ -class FilesystemNodePOSIX : public AbstractFSNode +class FSNodePOSIX : public AbstractFSNode { public: /** - * Creates a FilesystemNodePOSIX with the root node as path. + * Creates a FSNodePOSIX with the root node as path. */ - FilesystemNodePOSIX(); + FSNodePOSIX(); /** - * Creates a FilesystemNodePOSIX for a given path. + * Creates a FSNodePOSIX for a given path. * * @param path String with the path the new node should point to. * @param verify true if the isValid and isDirectory/isFile flags should * be verified during the construction. */ - explicit FilesystemNodePOSIX(const string& path, bool verify = true); + explicit FSNodePOSIX(const string& path, bool verify = true); bool exists() const override { return access(_path.c_str(), F_OK) == 0; } const string& getName() const override { return _displayName; } diff --git a/src/unix/OSystemUNIX.cxx b/src/unix/OSystemUNIX.cxx index 2dc62d6bf..b3ebef4c4 100644 --- a/src/unix/OSystemUNIX.cxx +++ b/src/unix/OSystemUNIX.cxx @@ -35,5 +35,5 @@ void OSystemUNIX::getBaseDirectories(string& basedir, string& homedir, if(useappdir) cout << "ERROR: base dir in app folder not supported" << endl; else if(usedir != "") - basedir = FilesystemNode(usedir).getPath(); + basedir = FSNode(usedir).getPath(); } diff --git a/src/unix/SerialPortUNIX.cxx b/src/unix/SerialPortUNIX.cxx index c598e69e3..82b8dfddd 100644 --- a/src/unix/SerialPortUNIX.cxx +++ b/src/unix/SerialPortUNIX.cxx @@ -111,15 +111,15 @@ StringList SerialPortUNIX::portNames() }; // Get all possible devices in the '/dev' directory - const FilesystemNode::NameFilter filter = [](const FilesystemNode& node) { + const FSNode::NameFilter filter = [](const FSNode& node) { return BSPF::startsWithIgnoreCase(node.getPath(), "/dev/ttyACM") || BSPF::startsWithIgnoreCase(node.getPath(), "/dev/ttyUSB"); }; FSList portList; portList.reserve(5); - FilesystemNode dev("/dev/"); - dev.getChildren(portList, FilesystemNode::ListMode::All, filter, false); + FSNode dev("/dev/"); + dev.getChildren(portList, FSNode::ListMode::All, filter, false); // Add only those that can be opened for(const auto& port: portList) diff --git a/src/windows/FSNodeWINDOWS.cxx b/src/windows/FSNodeWINDOWS.cxx index 762e30a03..37ef0dbda 100644 --- a/src/windows/FSNodeWINDOWS.cxx +++ b/src/windows/FSNodeWINDOWS.cxx @@ -40,25 +40,25 @@ #include "FSNodeWINDOWS.hxx" // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -bool FilesystemNodeWINDOWS::exists() const +bool FSNodeWINDOWS::exists() const { return _access(_path.c_str(), F_OK) == 0; } // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -bool FilesystemNodeWINDOWS::isReadable() const +bool FSNodeWINDOWS::isReadable() const { return _access(_path.c_str(), R_OK) == 0; } // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -bool FilesystemNodeWINDOWS::isWritable() const +bool FSNodeWINDOWS::isWritable() const { return _access(_path.c_str(), W_OK) == 0; } // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -void FilesystemNodeWINDOWS::setFlags() +void FSNodeWINDOWS::setFlags() { // Get absolute path TCHAR buf[4096]; @@ -88,10 +88,10 @@ void FilesystemNodeWINDOWS::setFlags() } // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -void FilesystemNodeWINDOWS::addFile(AbstractFSList& list, ListMode mode, +void FSNodeWINDOWS::addFile(AbstractFSList& list, ListMode mode, const char* base, WIN32_FIND_DATA* find_data) { - FilesystemNodeWINDOWS entry; + FSNodeWINDOWS entry; const char* const asciiName = toAscii(find_data->cFileName); bool isDirectory = false, isFile = false; @@ -102,8 +102,8 @@ void FilesystemNodeWINDOWS::addFile(AbstractFSList& list, ListMode mode, isDirectory = ((find_data->dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY) ? true : false); isFile = !isDirectory;//(find_data->dwFileAttributes & FILE_ATTRIBUTE_NORMAL ? true : false); - if((isFile && mode == FilesystemNode::ListMode::DirectoriesOnly) || - (isDirectory && mode == FilesystemNode::ListMode::FilesOnly)) + if((isFile && mode == FSNode::ListMode::DirectoriesOnly) || + (isDirectory && mode == FSNode::ListMode::FilesOnly)) return; entry._isDirectory = isDirectory; @@ -116,11 +116,11 @@ void FilesystemNodeWINDOWS::addFile(AbstractFSList& list, ListMode mode, entry._isValid = true; entry._isPseudoRoot = false; - list.emplace_back(make_shared(entry)); + list.emplace_back(make_shared(entry)); } // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -char* FilesystemNodeWINDOWS::toAscii(TCHAR* str) +char* FSNodeWINDOWS::toAscii(TCHAR* str) { #ifndef UNICODE return str; @@ -132,7 +132,7 @@ char* FilesystemNodeWINDOWS::toAscii(TCHAR* str) } // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -const TCHAR* FilesystemNodeWINDOWS::toUnicode(const char* str) +const TCHAR* FSNodeWINDOWS::toUnicode(const char* str) { #ifndef UNICODE return str; @@ -144,12 +144,12 @@ const TCHAR* FilesystemNodeWINDOWS::toUnicode(const char* str) } // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -FilesystemNodeWINDOWS::FilesystemNodeWINDOWS() +FSNodeWINDOWS::FSNodeWINDOWS() { } // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -FilesystemNodeWINDOWS::FilesystemNodeWINDOWS(const string& p) +FSNodeWINDOWS::FSNodeWINDOWS(const string& p) : _path{p.length() > 0 ? p : "~"} // Default to home directory { // Expand '~' to the users 'home' directory @@ -160,7 +160,7 @@ FilesystemNodeWINDOWS::FilesystemNodeWINDOWS(const string& p) } // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -string FilesystemNodeWINDOWS::getShortPath() const +string FSNodeWINDOWS::getShortPath() const { // If the path starts with the home directory, replace it with '~' const string& home = myHomeFinder.getHomePath(); @@ -176,7 +176,7 @@ string FilesystemNodeWINDOWS::getShortPath() const } // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -bool FilesystemNodeWINDOWS:: +bool FSNodeWINDOWS:: getChildren(AbstractFSList& myList, ListMode mode) const { assert(_isDirectory); @@ -190,7 +190,7 @@ bool FilesystemNodeWINDOWS:: for(TCHAR *current_drive = drive_buffer; *current_drive; current_drive += _tcslen(current_drive) + 1) { - FilesystemNodeWINDOWS entry; + FSNodeWINDOWS entry; char drive_name[2] = { 0, 0 }; drive_name[0] = toAscii(current_drive)[0]; @@ -201,7 +201,7 @@ bool FilesystemNodeWINDOWS:: entry._isValid = true; entry._isPseudoRoot = false; entry._path = toAscii(current_drive); - myList.emplace_back(make_shared(entry)); + myList.emplace_back(make_shared(entry)); } } else @@ -229,14 +229,14 @@ bool FilesystemNodeWINDOWS:: } // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -size_t FilesystemNodeWINDOWS::getSize() const +size_t FSNodeWINDOWS::getSize() const { struct _stat st; return _stat(_path.c_str(), &st) == 0 ? st.st_size : 0; } // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -bool FilesystemNodeWINDOWS::makeDir() +bool FSNodeWINDOWS::makeDir() { if(!_isPseudoRoot && CreateDirectory(_path.c_str(), NULL) != 0) { @@ -248,7 +248,7 @@ bool FilesystemNodeWINDOWS::makeDir() } // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -bool FilesystemNodeWINDOWS::rename(const string& newfile) +bool FSNodeWINDOWS::rename(const string& newfile) { if(!_isPseudoRoot && MoveFile(_path.c_str(), newfile.c_str()) != 0) { @@ -260,7 +260,7 @@ bool FilesystemNodeWINDOWS::rename(const string& newfile) } // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -AbstractFSNodePtr FilesystemNodeWINDOWS::getParent() const +AbstractFSNodePtr FSNodeWINDOWS::getParent() const { if(_isPseudoRoot) return nullptr; @@ -270,8 +270,8 @@ AbstractFSNodePtr FilesystemNodeWINDOWS::getParent() const const char* start = _path.c_str(); const char* end = lastPathComponent(_path); - return make_shared(string(start, static_cast(end - start))); + return make_shared(string(start, static_cast(end - start))); } else - return make_shared(); + return make_shared(); } diff --git a/src/windows/FSNodeWINDOWS.hxx b/src/windows/FSNodeWINDOWS.hxx index af2eca064..dfcb479ac 100644 --- a/src/windows/FSNodeWINDOWS.hxx +++ b/src/windows/FSNodeWINDOWS.hxx @@ -34,19 +34,19 @@ static HomeFinder myHomeFinder; * Parts of this class are documented in the base interface class, * AbstractFSNode. */ -class FilesystemNodeWINDOWS : public AbstractFSNode +class FSNodeWINDOWS : public AbstractFSNode { public: /** - * Creates a FilesystemNodeWINDOWS with the root node as path. + * Creates a FSNodeWINDOWS with the root node as path. * * In regular windows systems, a virtual root path is used "". * In windows CE, the "\" root is used instead. */ - FilesystemNodeWINDOWS(); + FSNodeWINDOWS(); /** - * Creates a FilesystemNodeWINDOWS for a given path. + * Creates a FSNodeWINDOWS for a given path. * * Examples: * path=c:\foo\bar.txt, currentDir=false -> c:\foo\bar.txt @@ -55,7 +55,7 @@ class FilesystemNodeWINDOWS : public AbstractFSNode * * @param path String with the path the new node should point to. */ - explicit FilesystemNodeWINDOWS(const string& path); + explicit FSNodeWINDOWS(const string& path); bool exists() const override; const string& getName() const override { return _displayName; } @@ -90,7 +90,7 @@ class FilesystemNodeWINDOWS : public AbstractFSNode void setFlags(); /** - * Adds a single FilesystemNodeWINDOWS to a given list. + * Adds a single FSNodeWINDOWS to a given list. * This method is used by getChildren() to populate the directory entries list. * * @param list List to put the file entry node in. diff --git a/src/windows/OSystemWINDOWS.cxx b/src/windows/OSystemWINDOWS.cxx index fd44c8bda..8e33e9b0f 100644 --- a/src/windows/OSystemWINDOWS.cxx +++ b/src/windows/OSystemWINDOWS.cxx @@ -26,7 +26,7 @@ void OSystemWINDOWS::getBaseDirectories(string& basedir, string& homedir, bool useappdir, const string& usedir) { HomeFinder homefinder; - FilesystemNode appdata(homefinder.getAppDataPath()); + FSNode appdata(homefinder.getAppDataPath()); if(appdata.isDirectory()) { @@ -36,7 +36,7 @@ void OSystemWINDOWS::getBaseDirectories(string& basedir, string& homedir, basedir += "Stella\\"; } - FilesystemNode defaultHomeDir(homefinder.getDesktopPath()); + FSNode defaultHomeDir(homefinder.getDesktopPath()); homedir = defaultHomeDir.getShortPath(); // Check to see if basedir overrides are active @@ -44,12 +44,12 @@ void OSystemWINDOWS::getBaseDirectories(string& basedir, string& homedir, { char filename[MAX_PATH]; GetModuleFileNameA(NULL, filename, sizeof(filename)); - FilesystemNode appdir(filename); + FSNode appdir(filename); appdir = appdir.getParent(); if(appdir.isDirectory()) basedir = appdir.getPath(); } else if(usedir != "") - basedir = FilesystemNode(usedir).getPath(); + basedir = FSNode(usedir).getPath(); }