diff --git a/es-app/src/Gamelist.cpp b/es-app/src/Gamelist.cpp index 8f3db352d..aeb8d0580 100644 --- a/es-app/src/Gamelist.cpp +++ b/es-app/src/Gamelist.cpp @@ -215,6 +215,12 @@ void updateGamelist(SystemData* system) { const char* tag = ((*fit)->getType() == GAME) ? "game" : "folder"; + // check if current file has metadata, if no, skip it as it wont be in the gamelist anyway. + if ((*fit)->metadata.isDefault()) { + ++fit; + continue; + } + // check if the file already exists in the XML // if it does, remove it before adding for(pugi::xml_node fileNode = root.child(tag); fileNode; fileNode = fileNode.next_sibling(tag)) diff --git a/es-app/src/MetaData.cpp b/es-app/src/MetaData.cpp index 2d5340bd2..76c82b9d6 100644 --- a/es-app/src/MetaData.cpp +++ b/es-app/src/MetaData.cpp @@ -133,3 +133,12 @@ boost::posix_time::ptime MetaDataList::getTime(const std::string& key) const { return string_to_ptime(get(key), "%Y%m%dT%H%M%S%F%q"); } + +bool MetaDataList::isDefault() +{ + for (int i = 1; i < mMap.size(); i++) { + if (mMap.at(gameDecls[i].key) != gameDecls[i].defaultValue) return false; + } + + return true; +} diff --git a/es-app/src/MetaData.h b/es-app/src/MetaData.h index 1143d9204..d111cec78 100644 --- a/es-app/src/MetaData.h +++ b/es-app/src/MetaData.h @@ -56,6 +56,8 @@ public: float getFloat(const std::string& key) const; boost::posix_time::ptime getTime(const std::string& key) const; + bool isDefault(); + inline MetaDataListType getType() const { return mType; } inline const std::vector& getMDD() const { return getMDDByType(getType()); }