namespace Msp {
namespace DataFile {
-void DirectorySource::add_directory(const FS::Path &d)
+void DirectorySource::add_directory(const FS::Path &d, bool replace)
{
list<string> files = FS::list_files(d);
for(list<string>::const_iterator i=files.begin(); i!=files.end(); ++i)
- objects[*i] = d / *i;
+ {
+ if(!objects.count(*i) || replace)
+ objects[*i] = d / *i;
+ }
}
bool DirectorySource::is_loadable(const CollectionItemTypeBase &, const string &name) const
}
}
+IO::Seekable *DirectorySource::open(const string &name) const
+{
+ FS::Path file;
+ if(lookup_file(name, file))
+ return new IO::BufferedFile(file.str());
+
+ return 0;
+}
+
bool DirectorySource::lookup_file(const string &name, FS::Path &result) const
{
ObjectMap::const_iterator i = objects.find(name);